aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-09-14sms: fix error message string when failing to parse input textAleksander Morgado
2012-09-14cli: minor text output fixesAleksander Morgado
2012-09-14sms: don't try the generic SMS method if we got a timeout errorAleksander Morgado
2012-09-14sms: create SMS parts only when storing or sendingAleksander Morgado
When a user creates an SMS object, we will expose all its properties in DBus properly, but we will not create the internal list of SMS parts. The list of SMS parts will be created when the SMS is stored or sent, whatever comes first. When the message is sent and it was previously stored, the list of parts is not re-created. If the message requires multiple parts, the multipart reference is computed as follows: * If the SMS was not stored and is being sent, we just use a random number. * If the SMS is being stored, we will use a multipart reference which is not being used already in another SMS to the same destination.
2012-09-14test: new tester for the messaging capabilities of a modem, using `mmcli'Aleksander Morgado
Usage: mmcli-test-sms [MODEM INDEX] [all|ucs2|gsm7|data] [NUMBER]" If [NUMBER] is not given, a dummy number will be used and NO SMS will be sent. If you give a proper [NUMBER], we will try to send the SMS.
2012-09-14sms: don't try to delete parts if SMS not storedAleksander Morgado
2012-09-14sms,sms-qmi: update timeout when sending an SMS to 30sAleksander Morgado
2012-09-14cli: new `--create-file-with-data' action for SMS objectsAleksander Morgado
This new action allows creating a new file with the binary data stored in the SMS, if any. E.g.: $> sudo mmcli -s 7 \ --create-file-with-data=output.txt This action can only be run on SMS object with binary data.
2012-09-14cli: new `--messaging-create-sms-with-data' switchAleksander Morgado
This switch can be run along with the `--messaging-create-sms' action, in order to include in the SMS the data as given in the file specified by the new switch. E.g.: $> sudo mmcli -m 0 \ --messaging-create-sms="number='1234567890'" \ --messaging-create-sms-with-data=file.txt In this case, the SMS properties string cannot contain a 'text' field.
2012-09-14sms-part: include user data, if passed, when building the PDUAleksander Morgado
2012-09-14libmm-glib: provide accessors for the 'Data' property in the SMS interfaceAleksander Morgado
2012-09-14libmm-common: added common utils from coreAleksander Morgado
Moved the utils to play with binary to hex strings into libmm-common.
2012-09-14sms: 'Text' and 'Data' will never be given at the same timeAleksander Morgado
When receiving an SMS, if the encoding is either GSM7 or UCS2, we will treat the contents of the SMS as text; and if the encoding is either 8BIT or unknown, we will just dump the contents of the SMS as data. When creating an SMS, the user is not allowed to give both text and data, only one can be given. We will use by default 8BIT when data is given, and guess the best encoding if text is given. Note that it's still possible to have SMS with neither text nor data, as in delivery status reports. This commit also handles the split of the input data in order to make it fit into singlepart or multipart messages.
2012-09-14sms: fix error return when a mandatory parameter missing in dictionaryAleksander Morgado
2012-09-14sms-part: don't keep track of the whole TP-DCS valueAleksander Morgado
We already retrieve the bits we use from it, class and encoding.
2012-09-14sms-part: read message class only if TP-DCS availableAleksander Morgado
2012-09-14broadband-modem: properly avoid duplicate CMTI indicationsAleksander Morgado
We will look for the part being notified in the CMTI indication directly in the list of processed parts; and if we have it there already we won't re-process it. Still, we may get several CMTI indications for the same part one after the other, so it may still happen that the second CMTI comes *before* we have parsed and created the part in the SMS list. For that case, the SMS list will reject taking the part if there is already a part with the same storage+index already processed. This fix removes the `known_sms_parts' hash table, which was being handled incorrectly. This should fix https://bugzilla.gnome.org/show_bug.cgi?id=675175
2012-09-14broadband-modem: fix SMS list object typeAleksander Morgado
2012-09-14broadband-modem: select and lock proper storage when reading CMTI indicationsAleksander Morgado
2012-09-14cli: print new SMS properties in SMS status reportAleksander Morgado
2012-09-14libmm-glib: added methods to retrieve new SMS propertiesAleksander Morgado
2012-09-14api: new `DeliveryState' property in the SMS interfaceAleksander Morgado
Given only for STATUS REPORT SMS messages.
2012-09-14sms: allow parts with neither text nor data only in Status Report PDUsAleksander Morgado
2012-09-14sms: fix double free when parsing PDUsAleksander Morgado
If we get an error when telling the SMS list to take the new PDU, the caller is the one responsible for freeing the part, so avoid doing it twice. Relevant valgrind log: ==7287== Invalid read of size 8 ==7287== at 0x437CE1: mm_sms_part_free (mm-sms-part.c:344) ==7287== by 0x454D11: mm_iface_modem_messaging_take_part (mm-iface-modem-messaging.c:359) ==7287== by 0x461234: cds_received (mm-broadband-modem.c:4626) ==7287== by 0x48A305: parse_unsolicited (mm-at-serial-port.c:256) ==7287== by 0x48723D: parse_response (mm-serial-port.c:731) ==7287== by 0x48759B: data_available (mm-serial-port.c:801) ==7287== by 0x36ADC47694: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.3200.4) ==7287== by 0x36ADC479C7: ??? (in /usr/lib64/libglib-2.0.so.0.3200.4) ==7287== by 0x36ADC47DC1: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.3200.4) ==7287== by 0x421398: main (main.c:150) ==7287== Address 0x9840b78 is 24 bytes inside a block of size 104 free'd ==7287== at 0x4A079AE: free (vg_replace_malloc.c:427) ==7287== by 0x36ADC4D37E: g_free (in /usr/lib64/libglib-2.0.so.0.3200.4) ==7287== by 0x36ADC61CCE: g_slice_free1 (in /usr/lib64/libglib-2.0.so.0.3200.4) ==7287== by 0x437D5A: mm_sms_part_free (mm-sms-part.c:351) ==7287== by 0x36ADC449EC: g_list_foreach (in /usr/lib64/libglib-2.0.so.0.3200.4) ==7287== by 0x36ADC44A0A: g_list_free_full (in /usr/lib64/libglib-2.0.so.0.3200.4) ==7287== by 0x43D8A1: finalize (mm-sms.c:1629) ==7287== by 0x36AE8145DA: g_object_unref (in /usr/lib64/libgobject-2.0.so.0.3200.4) ==7287== by 0x43CD52: mm_sms_singlepart_new (mm-sms.c:1376) ==7287== by 0x43E223: take_singlepart (mm-sms-list.c:236) ==7287== by 0x43E60D: mm_sms_list_take_part (mm-sms-list.c:338) ==7287== by 0x454CC7: mm_iface_modem_messaging_take_part (mm-iface-modem-messaging.c:353)
2012-09-14sms-part: don't read out of the pdu bufferAleksander Morgado
... or Valgrind will complain: ==4834== Invalid read of size 1 ==4834== at 0x43904C: mm_sms_part_new_from_binary_pdu (mm-sms-part.c:783) ==4834== by 0x4382C9: mm_sms_part_new_from_pdu (mm-sms-part.c:485) ==4834== by 0x461D85: sms_pdu_part_list_ready (mm-broadband-modem.c:5004) ==4834== by 0x3161A6CFB6: g_simple_async_result_complete (in /usr/lib64/libgio-2.0.so.0.3200.4) ==4834== by 0x432F82: at_command_parse_response (mm-base-modem-at.c:490) ==4834== by 0x489F96: handle_response (mm-at-serial-port.c:161) ==4834== by 0x486D0A: mm_serial_port_got_response (mm-serial-port.c:588) ==4834== by 0x48758B: data_available (mm-serial-port.c:804) ==4834== by 0x36ADC47694: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.3200.4) ==4834== by 0x36ADC479C7: ??? (in /usr/lib64/libglib-2.0.so.0.3200.4) ==4834== by 0x36ADC47DC1: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.3200.4) ==4834== by 0x421398: main (main.c:150) ==4834== Address 0x927e489 is 0 bytes after a block of size 25 alloc'd ==4834== at 0x4A06F18: calloc (vg_replace_malloc.c:566) ==4834== by 0x36ADC4D2C6: g_malloc0 (in /usr/lib64/libglib-2.0.so.0.3200.4) ==4834== by 0x4844B2: utils_hexstr2bin (mm-utils.c:63) ==4834== by 0x438284: mm_sms_part_new_from_pdu (mm-sms-part.c:476) ==4834== by 0x461D85: sms_pdu_part_list_ready (mm-broadband-modem.c:5004) ==4834== by 0x3161A6CFB6: g_simple_async_result_complete (in /usr/lib64/libgio-2.0.so.0.3200.4) ==4834== by 0x432F82: at_command_parse_response (mm-base-modem-at.c:490) ==4834== by 0x489F96: handle_response (mm-at-serial-port.c:161) ==4834== by 0x486D0A: mm_serial_port_got_response (mm-serial-port.c:588) ==4834== by 0x48758B: data_available (mm-serial-port.c:804) ==4834== by 0x36ADC47694: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.3200.4) ==4834== by 0x36ADC479C7: ??? (in /usr/lib64/libglib-2.0.so.0.3200.4)
2012-09-14api: make read-only all SMS properties for nowAleksander Morgado
We don't support yet modifying these properties on the fly (e.g. we would need to re-construct the internal PDU list when the text changes).
2012-09-14sms-list: don't look for duplicate parts if index is unknownAleksander Morgado
2012-09-14api: new `MessageReference' property in the SMS interfaceAleksander Morgado
Message reference allows to match a sent SMS with its corresponding delivery report, if requested.
2012-09-14api: new `DischargeTimestamp' property for Status Report SMS messagesAleksander Morgado
2012-09-14sms-part: always treat TP-DCS as a bitmaskAleksander Morgado
2012-09-14sms-part: always treat TP-MTI as a bitmaskAleksander Morgado
2012-09-14sms-part: implement parsing SUBMIT and STATUS REPORT PDUsAleksander Morgado
2012-09-14api: new `PduType' property in the SMS interfaceAleksander Morgado
It will help deciding the type of message.
2012-09-14test: set text encoding when testing PDU creatorAleksander Morgado
2012-09-14test: print all logs in SMS part testsAleksander Morgado
They are extremely helpful for debugging issues.
2012-09-14test: new tests to parse SUBMIT PDUsAleksander Morgado
2012-09-14test: new tests to parse non-stored PDUsAleksander Morgado
2012-09-14test: new tester for +CDS unsolicited messagesAleksander Morgado
2012-09-14broadband-modem: process not-stored SMS part indicationsAleksander Morgado
2012-09-14broadband-modem: minor improvement when reading from match infoAleksander Morgado
2012-09-14cli: print delivery report request information in SMS statusAleksander Morgado
2012-09-14libmm-glib,sms: new `mm_sms_get_delivery_report_request()'Aleksander Morgado
2012-09-14libmm-glib,sms: fix values returned on errorAleksander Morgado
2012-09-14api: new `Sms.DeliveryReportRequest' propertyAleksander Morgado
Also allowing the 'delivery-report-request' key in the `Messaging.CreateSms()' method.
2012-09-14iface-modem-messaging: automatically detect the best default storageAleksander Morgado
Instead of letting the plugins specify a default storage to use, just look at the supported ones and use the best one. "MT is preferred over "ME" or "SM", as "MT=ME+SM"
2012-09-14cli: include default SMS storage info in `--messaging-status'Aleksander Morgado
$> sudo mmcli -m 1 --messaging-status /org/freedesktop/ModemManager1/Modem/1 ---------------------------- Messaging | supported storages: 'sm, mt, me, sr' | default storage: 'me'
2012-09-14libmm-glib: new `mm_modem_messaging_get_default_storage()' methodAleksander Morgado
2012-09-14option,hso: properly parse returned IMEIAleksander Morgado
2012-09-14sms: select proper storage when sending SMS from storageAleksander Morgado
We need to select the correct 'mem2' storage before trying to send from storage.
2012-09-14iface-modem-messaging: instead of mem1,mem2,mem3 use just a new default storageAleksander Morgado
There is no point in specifying a default 'mem1' memory storage, which is used for reading/listing/deleting, as those are operations that need a specific 'mem1' set each time. Also, there is no point in specifying separate default 'mem2' and 'mem3' memory storages, specially because now we allow Sms.Store() to specify a storage. So, we will now only have a 'default' memory storage, which is applicable for both 'mem2' and 'mem3' (storing, sending from storage and deleting).