Commit Graph

4265 Commits

Author SHA1 Message Date
Aleksander Morgado
57882f6dad sms: decide whether to create a 3GPP2 or 3GPP SMS based on caps
Don't rely on receiving a Teleservice ID. If none received, and the modem is
CDMA-only, default to WMT.
2013-10-25 19:49:56 +02:00
Aleksander Morgado
43694e2677 sms: unknown delivery state in newly created SMS objects 2013-10-25 19:49:56 +02:00
Aleksander Morgado
0341c1663c sms: handle CDMA SMS when creating new ones from MMSmsProperties 2013-10-25 19:49:56 +02:00
Aleksander Morgado
86795b928e libmm-glib: allow new 'teleservice-id' and 'service-category' keywords in MMSmsProperties 2013-10-25 19:49:54 +02:00
Aleksander Morgado
663017a3d2 sms: clear generated parts when storing/sending fails 2013-10-25 19:47:20 +02:00
Aleksander Morgado
bd05787b51 sms-qmi: check whether the modem supports the specific SMS type 2013-10-25 19:47:20 +02:00
Aleksander Morgado
b728b14efb sms: only set concat reference on multipart messages 2013-10-25 19:47:19 +02:00
Aleksander Morgado
9ed42af537 sms: handle CDMA SMS part creation 2013-10-25 19:47:19 +02:00
Aleksander Morgado
5267cf6f4a cli,sms: print properties just when they are available
The logic to decide whether a property is valid in a given PDU type is kind of
fuzzy for 3GPP2 as it is currently implemented; so just print whatever we have
in the interface.
2013-10-25 19:47:19 +02:00
Aleksander Morgado
7a56b143aa sms-qmi: handle CDMA SMS messages 2013-10-25 19:47:19 +02:00
Aleksander Morgado
2eb5e0d578 sms-part-cdma: new CDMA SMS creator
Currently very limited:
 * Only WMT teleservice.
 * Only DMTF-encoded numbers.
 * Only either raw binary data or ASCII-7 text.
2013-10-25 19:47:19 +02:00
Aleksander Morgado
cadbc0412d sms-part-3gpp: ensure PDU type in part is the correct one when building SUBMIT 2013-10-25 19:47:19 +02:00
Aleksander Morgado
3a6bdabcdf sms-part-cdma: consolidate logging 2013-10-25 19:47:19 +02:00
Aleksander Morgado
49ab6ce980 sms-part-cdma: read 7-bit ASCII text or raw data 2013-10-25 19:47:19 +02:00
Aleksander Morgado
aba7efb615 broadband-modem-qmi: add CDMA SMS parts if found 2013-10-25 19:47:19 +02:00
Aleksander Morgado
e493292b7a tests: new CDMA SMS part tester 2013-10-25 19:47:19 +02:00
Aleksander Morgado
c440f121cc tests: rename 3GPP SMS part tester 2013-10-25 19:47:19 +02:00
Aleksander Morgado
5ecdae8dc8 sms-part-cdma: new CDMA SMS parser 2013-10-25 19:47:18 +02:00
Aleksander Morgado
7db17b64a3 sms-part: handle CDMA teleservice ID and service category 2013-10-25 19:47:18 +02:00
Aleksander Morgado
df986c076d sms: split SMS part handling into common and 3GPP-specific 2013-10-25 19:47:18 +02:00
Aleksander Morgado
e90ff4155c api,header: added new CDMA-specific 'MMSmsDeliveryState' enumeration values 2013-10-25 19:47:18 +02:00
Aleksander Morgado
0bb91ce53d api: add 'ServiceCategory' property to the SMS interface
Will be used in 3GPP2 SMS messages.
2013-10-25 19:47:16 +02:00
Aleksander Morgado
d0fb94c49f api: add 'TeleserviceId' property to the SMS interface
Will be used in 3GPP2 SMS messages.
2013-10-25 19:46:37 +02:00
Aleksander Morgado
2864e777ae cli,sms: 'class' and 'smsc' are 3GPP specific 2013-10-25 19:36:14 +02:00
Aleksander Morgado
13595dcd7f api,introspection: minor indentation fixes in 'Validity' property definition 2013-10-25 19:36:14 +02:00
Aleksander Morgado
1ebbd16f98 api,header: added new CDMA-specific 'MMSmsPduType' enumeration values 2013-10-25 19:36:14 +02:00
Aleksander Morgado
c37f94ffd0 broadband-modem-qmi: SM storage not supported in CDMA-only modems 2013-10-25 19:36:14 +02:00
Aleksander Morgado
cb42a80b1e broadband-modem-qmi: also request to read 3GPP2 SMS 2013-10-25 19:36:14 +02:00
Ben Chan
9a9638ef20 iface-modem: remove unnecessary G_SIMPLE_ASYNC_RESULT() cast
This patch removes an unnecessary G_SIMPLE_ASYNC_RESULT() cast of the
'result' field, which is already of type GSimpleAsyncResult, of
InternalLoadUnlockRequiredContext.
2013-10-24 17:39:59 +02:00
Aleksander Morgado
5dc6db1962 libmm-glib: fix some more introspection annotations 2013-10-24 17:38:36 +02:00
Aleksander Morgado
e1c0621b09 libmm-glib: fix several introspection annotations 2013-10-24 17:16:33 +02:00
Ben Chan
babc4aa259 broadband-modem: remove unnecessary G_SIMPLE_ASYNC_RESULT() casts
This patch removes unnecessary G_SIMPLE_ASYNC_RESULT() casts of the
'result' field, which is already of type GSimpleAsyncResult, of
InitializeContext, EnablingContext and DisablingContext.
2013-10-24 17:09:46 +02:00
Ben Chan
686caef536 huawei: handle pending network-initiated disconnection in disconnect_3gpp
If a client-initiated disconnection attempt is issued while a
network-initiated disconnection is still pending, the latter may
interfere with the former. Also, when the client-initiated disconnection
attempt fails but the bearer status is reported as 'disconnected', the
pending network-initiated disconnection is not cleared and may result
in an assertion when a connection attempt is issued.

This patch addresses the issue by clearing any pending network-initiated
disconnection before proceeding with a client-initiated disconnection.
2013-10-24 16:44:05 +02:00
Dan Williams
613155cb2e broadband-modem: report signal quality as 0 when no service/unknown/etc
Instead of using the NO_NETWORK error, which is only ever read
internally by ModemManager and not very useful when reading quality,
just report signal quality as zero.  Before MM 1.0, the signal quality
could be explicitly requested by clients, so the NO_NETWORK error was of
some use, but now that the quality is updated automatically by MM and is
a property instead of a D-Bus method call, the error is pointless.
2013-10-23 19:39:04 -05:00
Prathmesh Prabhu
f81a3fc0b4 broadband-modem: mark SIM provisioned by default in load_subscription_state
load_subscription_state is called only after a successful registration, so the
default behaviour should be to mark the SIM as provisioned.
This default behaviour is needed because it is not possible for plugins to
detect a successful registration state during the registration update itself.
So, this function is the first place where a plugin can detect a successful
registration update.
2013-10-20 17:13:50 +02:00
Ben Chan
18053540ea huawei: handle unquoted strings in ^SYSINFOEX response
The original sysinfoex_parse() in MMBroadbandModemHuawei does not handle
unquoted <sysmode_name> and <submode_name> fields in ^SYSINFOEX responses,
which are sen on some Huawei modems (e.g. E303). This patch moves the
^SYSINFOEX parsing code to mm-modem-helpers-huawei.c, fixes the regex for
handling unquoted strings in ^SYSINFOEX responses, and adds unit tests.
2013-10-20 17:01:59 +02:00
Ben Chan
49d4163a2b huawei: fix ^SYSINFO parsing
The original sysinfo_parse() in MMBroadbandModemHuawei incorrectly sets
'out_sys_submode_valid' to TRUE even when <sys_submode> is not present
in a ^SYSINFO response. This patch moves the code to
mm-modem-helpers-huawei.c, fixes the regex for parsing ^SYSINFO
responses, and adds unit tests.
2013-10-20 17:01:51 +02:00
Aleksander Morgado
e529cd3212 build: ignore plugin testers 2013-10-10 08:34:52 +02:00
Prathmesh Prabhu
09ea458f78 altair-lte: obtain subscription state of SIM from registration failure code
This patch uses the extended error code after a registration failure to
determine if the SIM in the relevant modem is associated with a non-provisioned
account. It uses the standard AT+CEER command, but the implementation is
restricted to the altair plugin.
2013-10-10 08:29:56 +02:00
Aleksander Morgado
92a2953e93 docs: fixed a couple of issues regarding the new MMModem3gppSubscriptionState enum 2013-10-09 10:19:21 +02:00
Thieu Le
f9a4f87d52 iface-modem-3gpp: add SubscriptionState property 2013-10-09 09:59:42 +02:00
Aleksander Morgado
564b3610fd TODO: remove already implemented or no longer applicable items 2013-10-08 10:15:57 +02:00
Thieu Le
a006761c71 novatel-lte: abort connect request if call failed
Change-Id: Iae16ec87e12aaaf314b7e66b2f9c72a13251e352
2013-10-01 12:16:35 -05:00
Ben Chan
b5ef861d12 modem-helpers,sim: auto-detect if ICCID response is character swapped
This patch modifies mm_3gpp_parse_iccid() to auto-detect if an ICCID
response is character swapped or not by comparsing the major industry
identifier part of the ICCID response to the known value (89) for
telecommunication purposes. This addresses the issue where the same AT
command (e.g. AT^ICCID used by the huawei plugin) does not report ICCID
in a consistent format.
2013-09-26 20:23:51 +02:00
Ben Chan
b786ac0deb serial-port: ensure GCancellable handler is disconnected when serial port is closed 2013-09-26 09:22:33 +02:00
Aleksander Morgado
2a611c3856 cinterion: support QMI-based Cinterion PLXX and PHXX modules
E.g. with a Cinterion PLS8 LTE modem:

  $ sudo mmcli -m 0

  /org/freedesktop/ModemManager1/Modem/0 (device id '0042872f6597b3d772a3d9d3cd6f14f152af8a0b')
    -------------------------
    Hardware |   manufacturer: 'QUALCOMM INCORPORATED'
             |          model: '0'
             |       revision: 'M9615A-CETWMAZM-2.0.19015  1  [Jan 31 2013 00:00:00]'
             |      supported: 'gsm-umts
             |                  lte
             |                  gsm-umts, lte'
             |        current: 'gsm-umts, lte'
             |   equipment id: 'unknown'
    -------------------------
    System   |         device: '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7'
             |        drivers: 'option1, qmi_wwan'
             |         plugin: 'Cinterion'
             |   primary port: 'cdc-wdm0'
             |          ports: 'ttyUSB2 (at), cdc-wdm0 (qmi), wwp0s29u1u7i4 (net)'
    -------------------------
    Numbers  |           own : 'unknown'
    -------------------------
    Status   |           lock: 'sim-pin'
             | unlock retries: 'sim-pin (3), sim-pin2 (2), sim-puk (10), sim-puk2 (10)'
             |          state: 'locked'
             |    power state: 'on'
             |    access tech: 'unknown'
             | signal quality: '0' (cached)
    -------------------------
    Modes    |      supported: 'allowed: 2g, 3g, 4g; preferred: none'
             |        current: 'allowed: 2g, 3g, 4g; preferred: none'
    -------------------------
    Bands    |      supported: 'cdma-bc15-aws, dcs, egsm, u2100, u1800, u900, eutran-i, eutran-iii, eutran-vii, eutran-viii, eutran-xx'
             |        current: 'cdma-bc15-aws, dcs, egsm, u2100, u1800, u900, eutran-i, eutran-iii, eutran-vii, eutran-viii, eutran-xx'
    -------------------------
    IP       |      supported: 'ipv4, ipv6, ipv4v6'
    -------------------------
    SIM      |           path: '/org/freedesktop/ModemManager1/SIM/0'
2013-09-25 17:46:31 +02:00
Aleksander Morgado
0dd93549a1 blacklist: add Bluegiga BLE112B
https://bugs.launchpad.net/ubuntu/+source/modemmanager/+bug/1229748
2013-09-24 16:50:59 +02:00
Aleksander Morgado
2f7ec3df8c blacklist: add some missing commas 2013-09-24 16:49:13 +02:00
Arun Raghavan
6774d93aca blacklist: Add Adafruit Flora
The official PID is 8004, but I've seen the device sometimes turn up
with a 0004, so adding both to be safe.

https://bugzilla.gnome.org/show_bug.cgi?id=708644
2013-09-23 21:39:15 +02:00
Aleksander Morgado
21a5aaf4fe huawei: delay processing of network-initiated disconnection
Originally developed by:
  Prathmesh Prabhu <pprabhu@chromium.org>
  Ben Chan <benchan@chromium.org>

Huawei MU736 prematurely fires a ^NDISSTAT unsolicited message upon a
network-initiated disconnection. The modem can go into a bad state if a
reconnect attempt happens before the disconnection completes. This patch works
around the issue by delaying the reporting of the disconnection.
2013-09-23 08:29:21 +02:00