|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
--------------------------------------------------------------------------------
|
|
Packit Service |
8101fe |
* Contacts
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
ModemManager should implement the Contacts interface if modems allow to query
|
|
Packit Service |
8101fe |
and manipulate the contacts information stored in SIM or device.
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
--------------------------------------------------------------------------------
|
|
Packit Service |
8101fe |
* Probing time mitigation
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
Probing time may end up being quite long if we're checking support of a modem
|
|
Packit Service |
8101fe |
which exposes multiple ports. It is specially bad if the modem exports a port
|
|
Packit Service |
8101fe |
which is neither AT nor QCDM, as we use all our probing attempts before we can
|
|
Packit Service |
8101fe |
export the modem in DBus (we do wait to get all ports probed before running the
|
|
Packit Service |
8101fe |
initialization sequence, as we want to use the primary port for that always).
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
Therefore, looking for ways to mitigate probing time in the specific bad cases
|
|
Packit Service |
8101fe |
is a good way of minimizing this problem. Some ideas:
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** If one AT probing succeeds, don't allow timeouts in remaining ports when
|
|
Packit Service |
8101fe |
probing for AT.
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
--------------------------------------------------------------------------------
|
|
Packit Service |
8101fe |
* AT+CMUX & Serial multiplexing
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
Some modes allow to use virtual channels set up over one single serial
|
|
Packit Service |
8101fe |
interface, as defined at 3G TS 27.010. This allows devices with one single port
|
|
Packit Service |
8101fe |
to get a virtual secondary port for AT commands while in connected mode, for
|
|
Packit Service |
8101fe |
example to update the signal quality value or check registration status.
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
--------------------------------------------------------------------------------
|
|
Packit Service |
8101fe |
* Additional minor enhancements, fixes and general brainstorm
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** Per-device log function? Something like mm_modem_log() and
|
|
Packit Service |
8101fe |
mm_modem_port_log(), so that we include automatically the modem number
|
|
Packit Service |
8101fe |
(and port name) in each log line.
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** Do we really need function name, filename and line in the debug log?
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** In the default MMBroadbandModem, check how we can know if we're sitting in
|
|
Packit Service |
8101fe |
a rev0, revA or revB CDMA network. We need to expose the exact access
|
|
Packit Service |
8101fe |
technology in the interface.
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** Fix object names to show proper inheritance? For example:
|
|
Packit Service |
8101fe |
- MMPort, MMPortSerial, MMPortSerialAt, MMPortSerialQcdm
|
|
Packit Service |
8101fe |
- MMModem (instead of MMBaseModem), MMModemBroadband, MMModemPots
|
|
Packit Service |
8101fe |
- MMBearer, MMBearerBroadband, MMBearerPots
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** Test cases for CIEV responses.
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** When a 3GPP modem is disabled, we run AT+CREG=0. That will just disable the
|
|
Packit Service |
8101fe |
automatic registration checks and unsolicited messages, the modem will
|
|
Packit Service |
8101fe |
still be registered in the network. AT+COPS=2 is the one doing manual
|
|
Packit Service |
8101fe |
unregistration from the network, and we should probably include such step
|
|
Packit Service |
8101fe |
in the 3GPP disabling sequence.
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** serial-parsers: convert the v1 parser to a GObject.
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** MMBroadbandBearer: include additional step for authentication, with
|
|
Packit Service |
8101fe |
retries.
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** MMBroadbandBearer: include additional step for waiting to get connected via
|
|
Packit Service |
8101fe |
unsolicited messages.
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** Huawei plugin: Seems to me that whenever we update the allowed modes OR the
|
|
Packit Service |
8101fe |
bands, we're actually also changing the other one. This is because we're
|
|
Packit Service |
8101fe |
using hardcoded values in ^SYSCFG write operations; we should instead read
|
|
Packit Service |
8101fe |
current mode or band when updating the other.
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** Huawei plugin: The K4505, at least, doesn't like the default command to
|
|
Packit Service |
8101fe |
setup messaging related unsolicited messages:
|
|
Packit Service |
8101fe |
> AT+CNMI=2,1,2,1,0
|
|
Packit Service |
8101fe |
+CMS ERROR: 303
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** ZTE plugin: The MF637, at least, doesn't like the default command to setup
|
|
Packit Service |
8101fe |
messaging related unsolicited messages:
|
|
Packit Service |
8101fe |
> AT+CNMI=2,1,2,1,0
|
|
Packit Service |
8101fe |
+CMS ERROR: 303
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** Pantech plugin: The UMW190 needs some time to settle down after sending the
|
|
Packit Service |
8101fe |
PIN, or it will end up stuck if we ask too many PIN-related stuff one after
|
|
Packit Service |
8101fe |
the other.
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** HSO plugin: shouldn't we have the same logic for unsolicited messages
|
|
Packit Service |
8101fe |
handling in both connect and disconnect contexts? See Icera plugin for ref.
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** Icera plugin: retry authentication step in 3gpp dialling to 3 times with 1s
|
|
Packit Service |
8101fe |
delay.
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** QMI: Gobi 2k devices don't like the SYNC command, which is supposed to
|
|
Packit Service |
8101fe |
release all previously allocated clients. It gets worse, as if clients are
|
|
Packit Service |
8101fe |
not cleanly released by ModemManager (e.g. a segfault), the device reaches
|
|
Packit Service |
8101fe |
a point where it doesn't allow allocating more:
|
|
Packit Service |
8101fe |
couldn't create client for the 'nas' service:
|
|
Packit Service |
8101fe |
QMI protocol error (5): 'client-ids-exhausted'
|
|
Packit Service |
8101fe |
This may force us to have something like a state file in /tmp with the IDs
|
|
Packit Service |
8101fe |
currently allocated, so that ModemManager can re-use them if needed.
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** QMI: in NAS >= 1.8 we don't have the operator name given in the
|
|
Packit Service |
8101fe |
registration status queries, we'll need to get it with "NAS Get PLMN Name".
|
|
Packit Service |
8101fe |
|
|
Packit Service |
8101fe |
** QMI: mark the modem as invalid if we lose the QMI and/or WWAN ports. For
|
|
Packit Service |
8101fe |
example, we should handle 'sudo rmmod qmi_wwan && sudo modprobe qmi_wwan'
|