Key pages on: FSO |
|
---|
This page documents the GSM networking solutions (commonly known as GPRS) using the FreeSmartphone.Org framework (FSO).
There are other ways to enable wireless communications on the smartphone, including Bluetooth and WLAN.
Since milestone 2 the system dbus has been extended with methods that enables connectivity using GPRS. The functionality is available under org.freesmartphone.ogsmd
at /org/freesmartphone/GSM/Device
.
The implementation should not interfere with other phone functionality, such as placing calls. In other words: you can use GPRS while talking on the phone without hanging up.
Currently, there's no GUI available but it's fairly easy to use the methods available using any dbus tool.
The methods available:
[METHOD] org.freesmartphone.GSM.PDP.ActivateContext( s:apn, s:user, s:password ) [METHOD] org.freesmartphone.GSM.PDP.DeactivateContext() [METHOD] org.freesmartphone.GSM.PDP.GetCurrentGprsClass() [METHOD] org.freesmartphone.GSM.PDP.ListAvailableGprsClasses() [METHOD] org.freesmartphone.GSM.PDP.SetCurrentGprsClass( s:class_ ) [SIGNAL] org.freesmartphone.GSM.PDP.ContextStatus( i:index, s:status, a{sv}:properties )
Use mdbus -s -l to monitor the emitted signals. Signals will look roughly like this:
[SIGNAL] org.freesmartphone.GSM.PDP.ContextStatus from :1.3 /org/freesmartphone/GSM/Device (dbus.Int32(1), dbus.String(u'outgoing'), dbus.Dictionary({}, signature=dbus.Signature('sv')))
[SIGNAL] org.freesmartphone.GSM.PDP.ContextStatus from :1.3 /org/freesmartphone/GSM/Device (dbus.Int32(1), dbus.String(u'active'), dbus.Dictionary({}, signature=dbus.Signature('sv')))
[SIGNAL] org.freesmartphone.GSM.PDP.ContextStatus from :1.3 /org/freesmartphone/GSM/Device (dbus.Int32(1), dbus.String(u'release'), dbus.Dictionary({}, signature=dbus.Signature('sv')))
While we wait for the preferences part of FSO to be completed (and a GUI), we can use two shell scripts. You need to know three things to successfully connect via GPRS (your carrier should provide this information to you):
If your APN has no username or password, you must still provide a string to satisfy the framework's input requirements. Entering bogus data, such as the "x" above, will suffice.
To connect, put the following in a file and make it executable (chmod +x gprs-on.sh
):
#!/bin/sh APN="internet.parlino.se" USERNAME="x" PASSWORD="x" BUSNAME="org.freesmartphone.ogsmd" OBJECTPATH="/org/freesmartphone/GSM/Device" METHODNAME="org.freesmartphone.GSM.PDP.ActivateContext" mdbus -s $BUSNAME $OBJECTPATH $METHODNAME $APN "$USERNAME" "$PASSWORD"
To disconnect, use the following method instead (chmod +x gprs-off.sh
):
#!/bin/sh BUSNAME="org.freesmartphone.ogsmd" OBJECTPATH="/org/freesmartphone/GSM/Device" METHODNAME="org.freesmartphone.GSM.PDP.DeactivateContext" mdbus -s $BUSNAME $OBJECTPATH $METHODNAME
The on script, using the ActivateContext method, will:
with settings received from the ISP.
For a list of known APN:s, see the main GPRS page.