USSD interface for ModemManager



Hi Dan, Marcel and others,

we would like to extend the ModemManager API so that it can handle USSD commands. The USSD API of oFono [0] looks quite nice IMHO and I'd like to propose a similar API:

USSD Interface
===============

Service org.freedesktop.ModemManager
Interface         org.freedesktop.ModemManager.Modem.Gsm.Ussd

Methods string Initiate(string command)

Sends a USSD command string to the network
initiating a session.  When the request is handled
by the appropriate node of the network, the
method returns the response or an appropriate
error.  The network may be awaiting further response
from the ME after returning from this method and no
new command can be initiated until this one is
cancelled or ended.

void Respond(string reply)

Send a response to the network either when
it is awaiting further input after Initiate()
was called or after a network-initiated request.

void Cancel()

Cancel an ongoing USSD session, mobile- or
network-initiated.

Signals
                NotificationReceived(string message)

Signal is emitted on a network-initiated USSD
request for which no response is needed.

RequestReceived(string message)

Signal is emitted on a network-initiated USSD
request for which a response must be sent using
the Respond method unless it is cancelled or
the request is not supported.

Properties string State [readonly]

Reflects the state of current USSD session.  The
values have the following meanings:

"idle" No active USSD session.
"active" A session is active between the
network and the ME, the ME is
waiting for a reply from the
network.
"user-response" The network is waiting for the
user's response, client must
call Respond().


It is basically a copy of their API (they nailed it down) except for GetProperties and PropertiesChanged signal which are ConnMan-specific. I haven't had a use-case yet for the "Respond" command (my USSD petitions are simple), but it needs to be there indeed for future uses. Thoughts?

[0] http://git.kernel.org/?p=network/ofono/ofono.git;a=blob_plain;f=doc/supplementaryservices-api.txt;hb=HEAD

--
Pablo Martí
http://www.linkedin.com/in/pmarti || http://www.warp.es
python -c "print '706d6172746940776172702e6573'.decode('hex')"



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]