diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2013-07-18 13:27:18 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2013-10-25 19:46:37 +0200 |
commit | d0fb94c49f3c27590bb6134fdca328c6f0a2180f (patch) | |
tree | 16eafa97e78eea0b88a7e48d8d43b373e2242cb4 | |
parent | 2864e777ae0232561b23b7bf08fdebb8f26311a4 (diff) |
api: add 'TeleserviceId' property to the SMS interface
Will be used in 3GPP2 SMS messages.
-rw-r--r-- | cli/mmcli-sms.c | 10 | ||||
-rw-r--r-- | docs/reference/api/ModemManager-sections.txt | 1 | ||||
-rw-r--r-- | docs/reference/libmm-glib/libmm-glib-sections.txt | 7 | ||||
-rw-r--r-- | include/ModemManager-enums.h | 27 | ||||
-rw-r--r-- | introspection/org.freedesktop.ModemManager1.Sms.xml | 9 | ||||
-rw-r--r-- | libmm-glib/mm-sms.c | 18 | ||||
-rw-r--r-- | libmm-glib/mm-sms.h | 2 | ||||
-rw-r--r-- | src/mm-sms.c | 2 |
8 files changed, 76 insertions, 0 deletions
diff --git a/cli/mmcli-sms.c b/cli/mmcli-sms.c index 4453df0b..f3478bd2 100644 --- a/cli/mmcli-sms.c +++ b/cli/mmcli-sms.c @@ -200,6 +200,16 @@ print_sms_info (MMSms *sms) VALIDATE (mm_sms_get_smsc (sms)), mm_sms_get_class (sms)); } + /* Teleservice ID is 3GPP2 specific */ + else if (pdu_type == MM_SMS_PDU_TYPE_CDMA_DELIVER || + pdu_type == MM_SMS_PDU_TYPE_CDMA_SUBMIT || + pdu_type == MM_SMS_PDU_TYPE_CDMA_CANCELLATION || + pdu_type == MM_SMS_PDU_TYPE_CDMA_DELIVERY_ACKNOWLEDGEMENT || + pdu_type == MM_SMS_PDU_TYPE_CDMA_USER_ACKNOWLEDGEMENT || + pdu_type == MM_SMS_PDU_TYPE_CDMA_READ_ACKNOWLEDGEMENT) { + g_print (" | teleservice id: '%s'\n", + mm_sms_cdma_teleservice_id_get_string (mm_sms_get_teleservice_id (sms))); + } if (pdu_type == MM_SMS_PDU_TYPE_SUBMIT) g_print (" | delivery report: '%s'\n", diff --git a/docs/reference/api/ModemManager-sections.txt b/docs/reference/api/ModemManager-sections.txt index a9fa9cd4..0f238e81 100644 --- a/docs/reference/api/ModemManager-sections.txt +++ b/docs/reference/api/ModemManager-sections.txt @@ -43,6 +43,7 @@ MMSmsState MMSmsDeliveryState MMSmsStorage MMSmsValidityType +MMSmsCdmaTeleserviceId </SECTION> <SECTION> diff --git a/docs/reference/libmm-glib/libmm-glib-sections.txt b/docs/reference/libmm-glib/libmm-glib-sections.txt index 302f42c8..72c90643 100644 --- a/docs/reference/libmm-glib/libmm-glib-sections.txt +++ b/docs/reference/libmm-glib/libmm-glib-sections.txt @@ -1050,6 +1050,7 @@ mm_sms_get_smsc mm_sms_dup_smsc mm_sms_get_message_reference mm_sms_get_class +mm_sms_get_teleservice_id mm_sms_get_validity_type mm_sms_get_validity_relative mm_sms_get_timestamp @@ -1149,6 +1150,7 @@ mm_sms_state_get_string mm_sms_delivery_state_get_string mm_sms_storage_get_string mm_sms_validity_type_get_string +mm_sms_cdma_teleservice_id_get_string mm_firmware_image_type_get_string mm_oma_feature_build_string_from_mask mm_oma_session_type_get_string @@ -1169,6 +1171,7 @@ mm_sms_state_build_string_from_mask mm_sms_delivery_state_build_string_from_mask mm_sms_storage_build_string_from_mask mm_sms_validity_type_build_string_from_mask +mm_sms_cdma_teleservice_id_build_string_from_mask mm_modem_location_source_get_string mm_modem_contacts_storage_build_string_from_mask mm_bearer_ip_family_build_string_from_mask @@ -1218,6 +1221,7 @@ MM_TYPE_SMS_PDU_TYPE MM_TYPE_SMS_STATE MM_TYPE_SMS_STORAGE MM_TYPE_SMS_VALIDITY_TYPE +MM_TYPE_SMS_CDMA_TELESERVICE_ID MM_TYPE_OMA_FEATURE MM_TYPE_OMA_SESSION_STATE MM_TYPE_OMA_SESSION_STATE_FAILED_REASON @@ -1251,6 +1255,7 @@ mm_sms_pdu_type_get_type mm_sms_state_get_type mm_sms_storage_get_type mm_sms_validity_type_get_type +mm_sms_cdma_teleservice_id_get_type mm_oma_feature_get_type mm_oma_session_state_failed_reason_get_type mm_oma_session_state_get_type @@ -2608,6 +2613,7 @@ mm_gdbus_sms_dup_smsc mm_gdbus_sms_get_validity mm_gdbus_sms_dup_validity mm_gdbus_sms_get_class +mm_gdbus_sms_get_teleservice_id mm_gdbus_sms_get_timestamp mm_gdbus_sms_dup_timestamp mm_gdbus_sms_get_discharge_timestamp @@ -2623,6 +2629,7 @@ mm_gdbus_sms_call_store_finish mm_gdbus_sms_call_store_sync <SUBSECTION Private> mm_gdbus_sms_set_class +mm_gdbus_sms_set_teleservice_id mm_gdbus_sms_set_data mm_gdbus_sms_set_delivery_report_request mm_gdbus_sms_set_delivery_state diff --git a/include/ModemManager-enums.h b/include/ModemManager-enums.h index 0c3be279..22d737b2 100644 --- a/include/ModemManager-enums.h +++ b/include/ModemManager-enums.h @@ -574,6 +574,33 @@ typedef enum { /*< underscore_name=mm_sms_validity_type >*/ } MMSmsValidityType; /** + * MMSmsCdmaTeleserviceId: + * @MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN: Unknown. + * @MM_SMS_CDMA_TELESERVICE_ID_CMT91: IS-91 Extended Protocol Enhanced Services. + * @MM_SMS_CDMA_TELESERVICE_ID_WPT: Wireless Paging Teleservice. + * @MM_SMS_CDMA_TELESERVICE_ID_WMT: Wireless Messaging Teleservice. + * @MM_SMS_CDMA_TELESERVICE_ID_VMN: Voice Mail Notification. + * @MM_SMS_CDMA_TELESERVICE_ID_WAP: Wireless Application Protocol. + * @MM_SMS_CDMA_TELESERVICE_ID_WEMT: Wireless Enhanced Messaging Teleservice. + * @MM_SMS_CDMA_TELESERVICE_ID_SCPT: Service Category Programming Teleservice. + * @MM_SMS_CDMA_TELESERVICE_ID_CATPT: Card Application Toolkit Protocol Teleservice. + * + * Teleservice IDs supported for CDMA SMS, as defined in 3GPP2 X.S0004-550-E + * (section 2.256) and 3GPP2 C.S0015-B (section 3.4.3.1). + */ +typedef enum { /*< underscore_name=mm_sms_cdma_teleservice_id >*/ + MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN = 0x0000, + MM_SMS_CDMA_TELESERVICE_ID_CMT91 = 0x1000, + MM_SMS_CDMA_TELESERVICE_ID_WPT = 0x1001, + MM_SMS_CDMA_TELESERVICE_ID_WMT = 0x1002, + MM_SMS_CDMA_TELESERVICE_ID_VMN = 0x1003, + MM_SMS_CDMA_TELESERVICE_ID_WAP = 0x1004, + MM_SMS_CDMA_TELESERVICE_ID_WEMT = 0x1005, + MM_SMS_CDMA_TELESERVICE_ID_SCPT = 0x1006, + MM_SMS_CDMA_TELESERVICE_ID_CATPT = 0x1007, +} MMSmsCdmaTeleserviceId; + +/** * MMModemLocationSource: * @MM_MODEM_LOCATION_SOURCE_NONE: None. * @MM_MODEM_LOCATION_SOURCE_3GPP_LAC_CI: Location Area Code and Cell ID. diff --git a/introspection/org.freedesktop.ModemManager1.Sms.xml b/introspection/org.freedesktop.ModemManager1.Sms.xml index 34b31c60..729271e3 100644 --- a/introspection/org.freedesktop.ModemManager1.Sms.xml +++ b/introspection/org.freedesktop.ModemManager1.Sms.xml @@ -129,6 +129,15 @@ <property name="Class" type="i" access="read" /> <!-- + TeleserviceId: + + A <link linkend="MMSmsCdmaTeleserviceId">MMSmsCdmaTeleserviceId</link> value. + + Always <link linkend="MM-SMS-CDMA-TELESERVICE-ID-UNKNOWN:CAPS">MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN</link> for 3GPP. + --> + <property name="TeleserviceId" type="u" access="read" /> + + <!-- DeliveryReportRequest: #TRUE if delivery report request is required, #FALSE otherwise. diff --git a/libmm-glib/mm-sms.c b/libmm-glib/mm-sms.c index e7425f38..b8c6485c 100644 --- a/libmm-glib/mm-sms.c +++ b/libmm-glib/mm-sms.c @@ -571,6 +571,24 @@ mm_sms_get_pdu_type (MMSms *self) /*****************************************************************************/ /** + * mm_sms_get_teleservice_id: + * @self: A #MMSms. + * + * Gets the 3GPP2 Teleservice ID. + * + * Returns: a #MMSmsCdmaTeleserviceId. + */ +MMSmsCdmaTeleserviceId +mm_sms_get_teleservice_id (MMSms *self) +{ + g_return_val_if_fail (MM_IS_SMS (self), MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN); + + return (MMSmsCdmaTeleserviceId) mm_gdbus_sms_get_teleservice_id (MM_GDBUS_SMS (self)); +} + +/*****************************************************************************/ + +/** * mm_sms_send_finish: * @self: A #MMSms. * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to mm_sms_send(). diff --git a/libmm-glib/mm-sms.h b/libmm-glib/mm-sms.h index def70c10..e0490614 100644 --- a/libmm-glib/mm-sms.h +++ b/libmm-glib/mm-sms.h @@ -103,6 +103,8 @@ MMSmsStorage mm_sms_get_storage (MMSms *self); MMSmsPduType mm_sms_get_pdu_type (MMSms *self); +MMSmsCdmaTeleserviceId mm_sms_get_teleservice_id (MMSms *self); + void mm_sms_send (MMSms *self, GCancellable *cancellable, GAsyncReadyCallback callback, diff --git a/src/mm-sms.c b/src/mm-sms.c index a7b1d64b..3b66a52b 100644 --- a/src/mm-sms.c +++ b/src/mm-sms.c @@ -1499,6 +1499,7 @@ assemble_sms (MMSms *self, g_byte_array_ref (fulldata)), "smsc", mm_sms_part_get_smsc (sorted_parts[0]), "class", mm_sms_part_get_class (sorted_parts[0]), + "teleservice-id", MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN, "number", mm_sms_part_get_number (sorted_parts[0]), "validity", (validity_relative ? g_variant_new ("(uv)", MM_SMS_VALIDITY_TYPE_RELATIVE, g_variant_new_uint32 (validity_relative)) : @@ -1737,6 +1738,7 @@ mm_sms_new_from_properties (MMBaseModem *modem, NULL), "smsc", mm_sms_properties_get_smsc (properties), "class", mm_sms_properties_get_class (properties), + "teleservice-id", MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN, "delivery-report-request", mm_sms_properties_get_delivery_report_request (properties), "validity", (mm_sms_properties_get_validity_type (properties) == MM_SMS_VALIDITY_TYPE_RELATIVE ? g_variant_new ("(uv)", MM_SMS_VALIDITY_TYPE_RELATIVE, g_variant_new_uint32 (mm_sms_properties_get_validity_relative (properties))) : |