GPRS
Overview
Introduction
This package is helper application(s) for GSM modem handling. It mainly deals with GPRS connection/disconnection.
Architecture
It includes three parts:
Cms92init-simple
Gsmmux-alpha-2
connect
Cms92init-simple
This part is used to generate an executable file: cms92init, which should be executed in the start-up scripts.
It is mainly used to initialize the modem.
Gsmmux-alpha-2
GSM Multiplexer Daemon is intended to be used for GSM Modems. It implements (a subset of) the GSM 07.10 standard, it can be used to multiplex one or more logical channels over one physical serial channel to the modem.
It could be found from:
http://developer.berlios.de/projects/gsmmux/
This daemon divides one serial port into two or more "virtual" serial ports (pseudo TTYs), assuming the modem supports the GSM 07.10 multiplexer protocol. This way, the first virtual serial port can be used for e.g. GPRS dialup connection with pppd, while the other ports are used for modem AT commands.
The daemon takes the pseudo TTY master devices to-be-used as parameter. The corresponding pseudo TTY slave devices will become the virtual serial ports.
On some systems, there is only one master pseudo TTY device, the "/dev/ptmx". In this case, the slave TTYs will be named /dev/pts/0, /dev/pts/1, etc. And the names of the virtual serial ports are not static. To solve the problem, the daemon can create symbolic links with static names to the dynamically changing virtual serial port pseudo TTY slave devices.
To work on the CMS92-M GSM/GPRS Module, a patch has to be applied.
The reason of adding patch:
1). The CMS92-M GSM/GPRS Module uses non-standard frame size
2). Special AT commands used for CMS92-M Modem, such as AT+PPMUX instead of AT+CMUX
3). other reasons refer to the patch file
Usage:
Compile and make to generate a executable file: gsmMuxd
gsmMuxd is used for multiplexer, after running, there will be a usable multiplexed control channel at /dev/pts/0 and a data channel at /dev/pts/1
$ ./gsmMuxd -d -p /dev/ttyS0 -m cms92 -f 128 -b 115200 -c /dev/ptmx /dev/ptmx &
Connect
This part provides the APIs for connect and disconnect from GPRS.
Connect-sim.c/h: APIs to connect and disconnect to GPRS
Dbus-if.c/h: dbus related functions. DBUS is used as IPC of communication between applications/ libraries.
Dtest.c: Make this file to generate an executable file named dtestapi to disconnect from GPRS
Mtest.c: Make this file to generate an executable file named mtestapi to connect to GPRS
Shared.h: shared information about dbus between PHONESERVER and this module