====== SMS ======
===== Use of integrated SMS commands =====
Wirnetâ„¢ i-series gateways can be configured using SMS commands. Most features available from the web interface and the REST API can be activated/configured over SMS.
SMS syntax and list of available SMS are described in //Keros SMS commands specification//. Specification aligned with your firmware can be found in [[wiki:resources:resources#keros_sms_documentation|the resources page]].
===== Use of customs SMS =====
Wirnetâ„¢ i-series gateways are able to send and receive SMS if the mobile network is properly configured. Modems are identified by ''manufacturer_X'' where:
* ''manufacturer'' is the modem manufacturer (''sierra'', ''quectelqmi'', ...)
* ''X'' is a number starting from 0. It can vary if there are more than one modem on gateway or if modem has been reset (dongle unplug and replug for example)
To retrieve the identifier, use the ''gsmdiag.py'' command.
Here is an output of ''/tmp/gsmdiag.txt''. Two modems are displayed, and only one has a SIM card present. Its identifier is ''/sierra_0''.
++++
Content - gsmdiag.py output |
root@klk-lpbs-060434:~ # gsmdiag.py
Diagnostic written in /tmp/gsmdiag.txt
root@klk-lpbs-060434:~ # cat /tmp/gsmdiag.txt
Number of modems: 2
[Modem:/sierra_1]
Syspath:/sys/devices/soc0/soc/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb2/2-1/2-1.3
HardwarePosition:1,1
Powered:1
Online:0
Manufacturer:Sierra Wireless, Incorporated
Model:MC7304
Revision:SWI9X15C_05.05.58.00 r27038 carmd-fwbuild1 2015/03/04 21:30:23
[SimProps]
Present:0
Error: no SIM in modem
[Modem:/sierra_0]
Powered:1
Online:1
Manufacturer:Sierra Wireless, Incorporated
Model:MC7354
Revision:SWI9X15C_05.05.58.00 r27038 carmd-fwbuild1 2015/03/04 21:30:23
[SimProps]
Present:1
CardIdentifier:895XXXXXXXXXXXX1015
SubscriberIdentity:3XXXXXXXXXXXXX3
LockedPins:dbus.Array([], signature=dbus.Signature('s'), variant_level=1)
PinRequired:none
[NetworkRegistrationProps]
Status:registered
MobileCountryCode:XXX
MobileNetworkCode:YY
Name:ABCD
Strength:80
[ConnectionContexts]
[/sierra_0/context1]
Name:Internet
Active:1
Type:internet
Protocol:ip
AccessPointName:apname
Username:uname
Password:pass
AuthenticationMethod:chap
++++
==== Send ====
It is possible to send an SMS using a DBUS command. Examples:
* To send an SMS using the modem ''/sierra_0'' (Wirnet iBTS):
dbus-send --system --print-reply --dest=org.ofono /sierra_0 org.ofono.MessageManager.SendMessage string:"+33XXXXXXXXXX" string:"test sms"
* To send an SMS using the modem ''/huawei_0'' (Wirnet iFemtoCell):
dbus-send --system --print-reply --dest=org.ofono /huawei_0 org.ofono.MessageManager.SendMessage string:"+33XXXXXXXXXX" string:"test sms"
==== Receive ====
Receive an SMS using a python test script :
++++
File - receive SMS python script |
#!/usr/bin/python2
from gi.repository import GLib
import dbus
import dbus.mainloop.glib
def chunkstring(string, length):
return (string[0+i:length+i] for i in range(0, len(string), length))
def incoming_message(message, details, path, interface):
message_txt = str(message.encode('utf-8'))
print("Size of message: %d" % len(message_txt))
print("%s" % (message_txt))
for line in chunkstring(message_txt, 40):
print("%s" % line)
for key in details:
val = details[key]
print(" %s = %s" % (key, val))
print(" %s = %s" % ('path',path))
print(" %s = %s" % ('interface', interface))
if __name__ == '__main__':
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
bus.add_signal_receiver(incoming_message,
bus_name="org.ofono",
signal_name = "ImmediateMessage",
path_keyword="path",
interface_keyword="interface")
bus.add_signal_receiver(incoming_message,
bus_name="org.ofono",
signal_name = "IncomingMessage",
path_keyword="path",
interface_keyword="interface")
mainloop = GLib.MainLoop()
mainloop.run()
++++