Sunday, May 24, 2009

Developing SMS Gateway with Wavecom Fasttrack gsm modem, Kannel and Playsms

Developing a SMS Gateway itself appeared to be calculated so easy-hard, I need about four days to research and build it. Fortunately, i get loan gsm modem with brand Wavecom Fastrack, then the old desire to develop and build sms gateway arise again.

Indeed, current trends seem to make sms gateway is not the time anymore. However, because the cheapness sms services, this application is still interesting enough to be used as effective and cheaper, especially with the elections or the elections that the blow-back in my country. Use SMS campaign to become a practical tool for the prospective parlementary council or Head Officer Area Government Administrator(such as Governor, Bupati/Major).

Equipment that need to be provided: the first is clearly a PC, gsm modem (both usb or serial connector), a CD Linux distributions (I use Elastix Distro, based Centos 5.2), why choose this, because I am more familiar with Redhat based distributions, and added little knowledge of the linux command.

First, I need to install Centos. I installed on a PC Intel Atom. After finished install Centos. Test for probing modem, gsm modem (Wavecom Fastrack) that using the serial connector. I use wvdial program to test the modem, because this package should not be in install. I select to install wvdial package via the Internet, because it is easy and in my office LAN directly connected to the internet.
# yum install wvdial

After the installation have finished. I try to test with the command as follows:
# wvdialconf /etc/wvdial.conf

The display message as follows:
Scanning your serial ports for a modem.

ttyS0<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyS0<*1>: ATQ0 V1 E1 -- OK
ttyS0<*1>: ATQ0 V1 E1 Z -- OK
ttyS0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyS0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyS0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyS0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyS0<*1>: Modem Identifier: ATI -- WAVECOM MODEM
ttyS0<*1>: Speed 19200: AT --
ttyS0<*1>: Speed 19200: AT --
ttyS0<*1>: Speed 19200: AT --
ttyS0<*1>: Max speed is 9600; that should be safe.
ttyS0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
Port Scan<*1>: S2 S3

Found a modem on /dev/ttyS0.
Modem configuration written to /etc/wvdial.conf.
ttyS0: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
Here they are,Wavecom gsm modem with a speed 9600 and the devices is at file /dev/ttyS0. This information is useful when we later do the settings in the configuration file kannel.

Next, we install kannel. Kannel sms engine is that we will use as a sms gateway. Actually there are several types of sms gateway, such as: gnokii, clickatell, sms server tools. However I choose kannel, because I see in google that many use kannel as sms engine and the average trial is listed at success story's list.

You can install using the tarball or rpm, can be downloaded in here for the tarball, for rpm package can be downloaded in here.
For installation using tarbal do the following:
After downloaded, put in the directory, for example : /opt
#tar -xvzf gateway-xxxtar.gz
#cd gateway-xxx
#./configure
#make
#make instal

Program bearerbox, smsbox, wapbox and run_kannel_box installed in /usr/local/sbin. We copy the configuration file from the source in /opt/gateway-xxx/debian.
To install the rpm, the more easily:
# rpm -ivh kannel-xxxrpm
Then edit the configuration file kannel.conf be as follows (this is in my configuration file, your configuration may be different):

group = core
admin-port = 13000
admin-password =
log-file = "/var/log/kannel/kannel.log"
log-level = 0
access-log = "/var/log/kannel/access.log"
smsbox-port = 13001
store-file = "/var/log/kannel/kannel.store"

group = smsc
smsc = at
host = 127.0.0.1
port = 13013
smsc-id = wavecom
modemtype = wavecom
device = /dev/ttyS0
speed = 9600
sms-center = "+6281100000"

group = modems
id = WAVECOM
name = WAVECOM
detect-string = WAVECOM
init-string = "AT+CNMI=2,1,0,0,0;+CMEE=1"

group = smsbox
bearerbox-host = 127.0.0.1
sendsms-port = 13131
sendsms-chars = "0123456789+"
global-sender = "+6281100000"
log-file = "/var/log/kannel/smsbox.log"
log-level = 0
access-log = "/var/log/kannel/access.log"

group = sendsms-user
username = playsms
password = playsms

group = sms-service
keyword = default
accept-x-kannel-headers = true
max-messages = 0
assume-plain-text = true
catch-all = true
get-url = "http://localhost/playsms/plugin/gateway/kannel/geturl.php?t=%t&q=%q&a=%a"

Need to be your attention. these lines, please adjust this configuration and fill with your fit configuration:
smsc-id = wavecom
modemtype = wavecom
device = /dev/ttyS0
speed = 9600
sms-center = "+6281100000"

smsc-id and modemtype fill with wavecom, because i use gsm modem wavecom
and devices such as speed obtained in step wvdialconf above. sms-center use Telkomsel telco provider, because I use a simcard Telkomsel provider.

id = WAVECOM
name = WAVECOM
detect-string = WAVECOM
id, name, and detect-string match with the type of your modem

global-sender = "+6281100000"
global-sender Telkomsel because I use a sim card Simpati.

username = playsms
password = playsms
username and password same with the time we install playsms


If the directory /var/log/kannel not created (usually on the installation using the tarball, if you use the rpm is in the automatic-create), made with the command:

#mkdir /var/log/kannel
#chmod 755 /var/log/kannel


To test whether kannel running well, run the command as follows:
#bearerbox /etc/kannel.conf
Display the following message:
2009-03-13 10:11:44 [3293] [0] INFO: Debug_lvl = -1, log_file = , log_lvl = 0
2009-03-13 10:11:44 [3293] [0] WARNING: DLR: using default 'internal' for storage type.
2009-03-13 10:11:44 [3293] [0] INFO: DLR using storage type: internal
2009-03-13 10:11:44 [3293] [0] DEBUG: Kannel bearerbox version `1.4.3'.
Build `Mar 6 2009 16:02:25', compiler `4.1.2 20070626 (Red Hat 4.1.2-14)'.
System Linux, release 2.6.18-53.1.19.el5, version #1 SMP Wed May 7 08:20:19 EDT 2008, machine i686.
Hostname elastix.example.com, IP 127.0.0.1.
Libxml version 2.6.26.
Using OpenSSL 0.9.8b 04 May 2006.
Using native malloc.

2009-03-13 10:11:44 [3293] [0] INFO: Added logfile `/var/log/kannel/kannel.log' with level `0'.
2009-03-13 10:11:44 [3293] [0] INFO: Started access logfile `/var/log/kannel/access.log'.
2009-03-13 10:11:44 [3293] [0] WARNING: 'store-file' option deprecated, please use 'store-location' and 'store-type' instead.
2009-03-13 10:11:44 [3293] [0] INFO: HTTP: Opening server at port 13000.
2009-03-13 10:11:44 [3293] [0] DEBUG: Started thread 1 (gwlib/fdset.c:poller)
2009-03-13 10:11:44 [3293] [0] DEBUG: Started thread 2 (gwlib/http.c:server_thread)
2009-03-13 10:11:44 [3293] [0] DEBUG: Started thread 3 (gw/bb_http.c:httpadmin_run)
2009-03-13 10:11:44 [3293] [2] DEBUG: Thread 2 (gwlib/http.c:server_thread) maps to pid 3293.
2009-03-13 10:11:44 [3293] [1] DEBUG: Thread 1 (gwlib/fdset.c:poller) maps to pid 3293.
2009-03-13 10:11:44 [3293] [0] DEBUG: starting smsbox connection module
2009-03-13 10:11:44 [3293] [0] INFO: BOXC: 'smsbox-max-pending' not set, using default (100).
2009-03-13 10:11:44 [3293] [3] DEBUG: Thread 3 (gw/bb_http.c:httpadmin_run) maps to pid 3293.
2009-03-13 10:11:44 [3293] [0] DEBUG: Started thread 4 (gw/bb_boxc.c:sms_to_smsboxes)
2009-03-13 10:11:44 [3293] [0] DEBUG: Started thread 5 (gw/bb_boxc.c:smsboxc_run)
2009-03-13 10:11:44 [3293] [5] DEBUG: Thread 5 (gw/bb_boxc.c:smsboxc_run) maps to pid 3293.
2009-03-13 10:11:44 [3293] [4] DEBUG: Thread 4 (gw/bb_boxc.c:sms_to_smsboxes) maps to pid 3293.
2009-03-13 10:11:44 [3293] [0] INFO: Set SMS resend frequency to 60 seconds.
2009-03-13 10:11:44 [3293] [0] INFO: SMS resend retry set to unlimited.
2009-03-13 10:11:44 [3293] [0] DEBUG: smsbox MO concatenated message handling enabled
2009-03-13 10:11:44 [3293] [0] INFO: DLR rerouting for smsc id disabled.
2009-03-13 10:11:44 [3293] [0] INFO: AT2[wavecom]: configuration shows modemtype
2009-03-13 10:11:44 [3293] [0] DEBUG: AT2[wavecom]: Reading modem definitions from

2009-03-13 10:11:44 [3293] [0] DEBUG: AT2[wavecom]: Found <1> modems in config
2009-03-13 10:11:44 [3293] [0] INFO: AT2[wavecom]: modemtype not found, revert to autodetect
2009-03-13 10:11:44 [3293] [0] DEBUG: Started thread 6 (gw/smsc/smsc_at.c:at2_device_thread)
2009-03-13 10:11:44 [3293] [0] DEBUG: Started thread 7 (gw/bb_smscconn.c:sms_router)
2009-03-13 10:11:44 [3293] [0] INFO: ----------------------------------------
2009-03-13 10:11:44 [3293] [0] INFO: Kannel bearerbox II version 1.4.3 starting
2009-03-13 10:11:44 [3293] [7] DEBUG: Thread 7 (gw/bb_smscconn.c:sms_router) maps to pid 3293.
2009-03-13 10:11:44 [3293] [0] INFO: Loading store file `/var/log/kannel/kannel.store'
2009-03-13 10:11:44 [3293] [0] INFO: Store-file size 0, starting to unpack
2009-03-13 10:11:44 [3293] [0] INFO: Retrieved 0 messages, non-acknowledged messages: 0
2009-03-13 10:11:44 [3293] [6] DEBUG: Thread 6 (gw/smsc/smsc_at.c:at2_device_thread) maps to pid 3293.
2009-03-13 10:11:44 [3293] [6] DEBUG: AT2[wavecom]: detecting modem type
2009-03-13 10:11:44 [3293] [6] INFO: AT2[wavecom]: opening device
2009-03-13 10:11:44 [3293] [0] DEBUG: Started thread 8 (gw/bb_store_file.c:store_dumper)
2009-03-13 10:11:44 [3293] [0] INFO: MAIN: Start-up done, entering mainloop
2009-03-13 10:11:44 [3293] [0] DEBUG: AT2[wavecom]: start called
2009-03-13 10:11:44 [3293] [6] DEBUG: AT2[wavecom]: device opened. Telnet mode = 0
2009-03-13 10:11:44 [3293] [8] DEBUG: Thread 8 (gw/bb_store_file.c:store_dumper) maps to pid 3293.
2009-03-13 10:11:44 [3293] [8] DEBUG: Dumping 0 messages to store
2009-03-13 10:11:45 [3293] [6] DEBUG: AT2[wavecom]: device opened
2009-03-13 10:11:45 [3293] [6] INFO: AT2[wavecom]: speed set to 9600
2009-03-13 10:11:45 [3293] [6] DEBUG: AT2[wavecom]: --> ^M
2009-03-13 10:11:47 [3293] [6] DEBUG: AT2[wavecom]: --> AT^M
2009-03-13 10:11:47 [3293] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-13 10:11:47 [3293] [6] DEBUG: AT2[wavecom]: --> AT&F^M
2009-03-13 10:11:47 [3293] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-13 10:11:47 [3293] [6] DEBUG: AT2[wavecom]: --> ATE0^M
2009-03-13 10:11:47 [3293] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-13 10:11:47 [3293] [6] DEBUG: AT2[wavecom]: --> ATI^M
2009-03-13 10:11:47 [3293] [6] DEBUG: AT2[wavecom]: <-- WAVECOM MODEM 009-03-13 10:11:47 [3293] [6] DEBUG: AT2[wavecom]: <-- MULTIBAND 900E 1800 2009-03-13 10:11:47 [3293] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-13 10:11:47 [3293] [6] DEBUG: AT2[wavecom]: found string , using modem definition
2009-03-13 10:11:47 [3293] [6] DEBUG: AT2[wavecom]: --> AT+CSMS=?^M
2009-03-13 10:11:47 [3293] [6] DEBUG: AT2[wavecom]: <-- +CSMS: (0,1) 2009-03-13 10:11:47 [3293] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-13 10:11:47 [3293] [6] INFO: AT2[wavecom]: Phase 2+ is supported 2009-03-13 10:11:47 [3293] [6] INFO: AT2[wavecom]: Closing device 2009-03-13 10:11:47 [3293] [6] INFO: AT2[wavecom]: opening device 2009-03-13 10:11:47 [3293] [6] DEBUG: AT2[wavecom]: device opened. Telnet mode = 0 2009-03-13 10:11:47 [3293] [6] DEBUG: AT2[wavecom]: device opened 2009-03-13 10:11:47 [3293] [6] INFO: AT2[wavecom]: Logging in 2009-03-13 10:11:48 [3293] [6] INFO: AT2[wavecom]: init device 2009-03-13 10:11:48 [3293] [6] INFO: AT2[wavecom]: speed set to 9600 2009-03-13 10:11:48 [3293] [6] DEBUG: AT2[wavecom]: --> ATZ^M
2009-03-13 10:11:48 [3293] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-13 10:11:48 [3293] [6] DEBUG: AT2[wavecom]: --> AT^M
2009-03-13 10:11:48 [3293] [6] DEBUG: AT2[wavecom]: <-- AT 2009-03-13 10:11:48 [3293] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-13 10:11:48 [3293] [6] DEBUG: AT2[wavecom]: --> AT&F^M
2009-03-13 10:11:48 [3293] [6] DEBUG: AT2[wavecom]: <-- AT&F 2009-03-13 10:11:48 [3293] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-13 10:11:48 [3293] [6] DEBUG: AT2[wavecom]: --> ATE0^M
2009-03-13 10:11:48 [3293] [6] DEBUG: AT2[wavecom]: <-- ATE0 2009-03-13 10:11:48 [3293] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-13 10:11:48 [3293] [6] DEBUG: AT2[wavecom]: --> AT+IFC=2,2^M
2009-03-13 10:11:48 [3293] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-13 10:11:48 [3293] [6] DEBUG: AT2[wavecom]: --> AT+CPIN?^M
2009-03-13 10:11:49 [3293] [6] DEBUG: AT2[wavecom]: <-- +CPIN: READY 2009-03-13 10:12:00 [3293] [6] DEBUG: AT2[wavecom]: --> AT+CSCA="+6281100000"^M
2009-03-13 10:12:00 [3293] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-13 10:12:00 [3293] [6] DEBUG: AT2[wavecom]: --> AT+CMGF=0^M
2009-03-13 10:12:00 [3293] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-13 10:12:00 [3293] [6] DEBUG: AT2[wavecom]: --> AT+CSMS=?^M
2009-03-13 10:12:00 [3293] [6] DEBUG: AT2[wavecom]: <-- +CSMS: (0,1) 2009-03-13 10:12:00 [3293] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-13 10:12:00 [3293] [6] INFO: AT2[wavecom]: Phase 2+ is supported 2009-03-13 10:12:00 [3293] [6] DEBUG: AT2[wavecom]: --> AT+CSMS=1^M
2009-03-13 10:12:00 [3293] [6] DEBUG: AT2[wavecom]: <-- +CSMS: 1,1,1 2009-03-13 10:12:00 [3293] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-13 10:12:00 [3293] [6] DEBUG: AT2[wavecom]: --> AT+CNMI=2,1,0,0,0;+CMEE=1^M
2009-03-13 10:12:00 [3293] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-13 10:12:00 [3293] [6] INFO: AT2[wavecom]: AT SMSC successfully opened.

#smsbox /etc/kannel.conf
Display the following message:
2009-03-13 10:13:43 [3302] [0] INFO: Debug_lvl = -1, log_file = , log_lvl = 0
2009-03-13 10:13:43 [3302] [0] DEBUG: Kannel smsbox version `1.4.3'.
Build `Mar 6 2009 16:02:25', compiler `4.1.2 20070626 (Red Hat 4.1.2-14)'.
System Linux, release 2.6.18-53.1.19.el5, version #1 SMP Wed May 7 08:20:19 EDT 2008, machine i686.
Hostname elastix.example.com, IP 127.0.0.1.
Libxml version 2.6.26.
Using OpenSSL 0.9.8b 04 May 2006.
Using native malloc.

2009-03-13 10:13:43 [3302] [0] INFO: Starting to log to file /var/log/kannel/smsbox.log level 0
2009-03-13 10:13:43 [3302] [0] INFO: Added logfile `/var/log/kannel/smsbox.log' with level `0'.
2009-03-13 10:13:43 [3302] [0] INFO: Service global sender set as '+6281100000'
2009-03-13 10:13:43 [3302] [0] INFO: Logging accesses to '/var/log/kannel/access.log'.
2009-03-13 10:13:43 [3302] [0] INFO: Started access logfile `/var/log/kannel/access.log'.
2009-03-13 10:13:43 [3302] [0] INFO: HTTP: Opening server at port 13131.

2009-03-13 10:13:43 [3302] [0] DEBUG: Started thread 1 (gwlib/fdset.c:poller)
2009-03-13 10:13:43 [3302] [0] DEBUG: Started thread 2 (gwlib/http.c:server_thread)
2009-03-13 10:13:43 [3302] [0] INFO: Set up send sms service at port 13131
2009-03-13 10:13:43 [3302] [0] DEBUG: Started thread 3 (gw/smsbox.c:sendsms_thread)
2009-03-13 10:13:43 [3302] [3] DEBUG: Thread 3 (gw/smsbox.c:sendsms_thread) maps to pid 3302.
2009-03-13 10:13:43 [3302] [2] DEBUG: Thread 2 (gwlib/http.c:server_thread) maps to pid 3302.
2009-03-13 10:13:43 [3302] [0] DEBUG: ----------------------------------------------
2009-03-13 10:13:43 [3302] [1] DEBUG: Thread 1 (gwlib/fdset.c:poller) maps to pid 3302.
2009-03-13 10:13:43 [3302] [0] DEBUG: Kannel smsbox version 1.4.3 starting
2009-03-13 10:13:43 [3302] [0] DEBUG: dumping group (sendsms-user):
2009-03-13 10:13:43 [3302] [0] DEBUG: =
2009-03-13 10:13:43 [3302] [0] DEBUG: =
2009-03-13 10:13:43 [3302] [0] DEBUG: =
2009-03-13 10:13:43 [3302] [0] DEBUG: Started thread 4 (gw/smsbox.c:obey_request_thread)
2009-03-13 10:13:43 [3302] [0] DEBUG: Started thread 5 (gw/smsbox.c:url_result_thread)
2009-03-13 10:13:43 [3302] [0] DEBUG: Started thread 6 (gw/smsbox.c:http_queue_thread)
2009-03-13 10:13:43 [3302] [6] DEBUG: Thread 6 (gw/smsbox.c:http_queue_thread) maps to pid 3302.
2009-03-13 10:13:43 [3302] [5] DEBUG: Thread 5 (gw/smsbox.c:url_result_thread) maps to pid 3302.
2009-03-13 10:13:43 [3302] [0] INFO: Connected to bearerbox at 127.0.0.1 port 13001.
2009-03-13 10:13:43 [3302] [4] DEBUG: Thread 4 (gw/smsbox.c:obey_request_thread) maps to pid 3302.
2009-03-13 10:13:43 [3302] [0] DEBUG: Started thread 7 (gw/heartbeat.c:heartbeat_thread)
2009-03-13 10:13:43 [3302] [7] DEBUG: Thread 7 (gw/heartbeat.c:heartbeat_thread) maps to pid 3302.
Installation PlaySMS

PlaySMS installation requirements:
  • Web Server (Apache)
  • MySQL Database Server 4.x.x or higher
  • PHP version 4.4.x or higher with a stable module mysql
  • PHP pear DB (php-pear)
  • A connection to the SMTP server (playSMS use this to send email)
1. Download playsms-0.9.3.tar.gz from the website at http://playsms.sourceforge.net
2. Put in the directory /opt, and untar and unzip playsms-0.9.3.tar.gz
# tar -xvzf playsms-0.9.3.tar.gz
3. Create a playsms directory in /var/www/html
#mkdir /var/www/html/playsms
4. Copy playsms-0.9.3/web to /var/www/html
#cp -pr playsms-0.9.3/web /var/www/html/playsms
5. Create some directory for the log and spool playsms:
# mkdir -p /var/spool/playsms
# mkdir -p /var/log/playsms
6. Create a username and password:
#adduser playsms
#passwd playsms
7. Create a database playsms and import playsms.sql to create their table.
# mysqladmin -u root -p create playsms
# mysql -u root -p playsms < /opt/playsms-0.9.3/db/playsms.sql
8. Copy config-dist.php to config.php, and edit the file config.php
# cp config-dist.php config.php
# vi config.php
The contents more or less as follows:
$db_param['type'] = 'mysql'; // database engine
$db_param['host'] = 'localhost'; // database host/server
$db_param['port'] = ''; // database port
$db_param['user'] = 'root'; // database username
$db_param['pass'] = 'eLaStIx.2oo7'; // database password
$db_param['name'] = 'playsms'; // database name
$db_param['pref'] = 'playsms'; // table's prefix without trailing

Line 5, fill you with the password for user root at mysql database .
Line 6, and 7 same with steps 7.
9. Files playsms, playsmsd, playsmsd.php, and playsmsd_start to the directory /usr/local/bin:
# cd /opt/playsms-0.9.3/bin
# cp playsmsd playsmsd.php playsmsd_start /usr/local/bin/
# cp playsms /etc/default/ Playsms
10.Browse http://localhost/playsms/ and login with the username: admin and password: admin


The log message of send SMS, as follows:
2009-03-13 10:17:46 [3293] [9] DEBUG: boxc_receiver: sms received 2009-03-13 10:17:46 [3293] [9] DEBUG: send_msg: sending msg to box: <127.0.0.1>
2009-03-13 10:17:48 [3293] [6] DEBUG: AT2[wavecom]: TP-Validity-Period: 24.0 hours
2009-03-13 10:17:48 [3293] [6] DEBUG: AT2[wavecom]: --> AT+CMGS=60^M

2009-03-13 10:17:48 [3293] [6] DEBUG: AT2[wavecom]: <-- >

2009-03-13 10:17:48 [3293] [6] DEBUG: AT2[wavecom]: send command status: 1 2009-03-1310:17:48[3293][6]DEBUG:AT2[wavecom]:--> 0031000C912612641405510011A734C834A80EA2A3CBF2320B747EBFC9A0F65BEE4EBBCFA110A8051A4293A069730A42BEE9ECB4BB0C9A96E5F6F4B80C 2009-03-13 10:17:48 [3293] [6] DEBUG: AT2[wavecom]: --> ^Z
2009-03-13 10:17:51 [3293] [6] DEBUG: AT2[wavecom]: <-- >
2009-03-13 10:17:51 [3293] [6] DEBUG: AT2[wavecom]: <-- +CMGS: 81
2009-03-13 10:17:51 [3293] [6] DEBUG: AT2[wavecom]: <-- OK

2009-03-13 10:17:51 [3293] [6] DEBUG: AT2[wavecom]: send command status: 0 2009-03-1310:17:51[3293][6]DEBUG:DLR[internal]:AddingDLRsmsc=wavecom,ts=81, src=62818xxxxxx, dst=+6221xxxxxxxx, mask=31, boxc=
2009-03-13 10:17:51 [3293] [6] DEBUG: SMSC[wavecom]: creating DLR message
2009-03-13 10:17:51 [3293] [6] DEBUG: SMSC[wavecom]: DLR = http://localhost/playsms/plugin/gateway/kannel/dlr.php?type=%d&slid=14&uid=1

2009-03-13 10:17:51 [3293] [10] DEBUG: send_msg: sending msg to box: <127.0.0.1>
2009-03-13 10:17:51 [3293] [10] DEBUG: boxc_sender: sent message to <127.0.0.1>
2009-03-13 10:17:51 [3293] [9] DEBUG: boxc_receiver: got ack

2009-03-13 10:18:04 [3293] [8] DEBUG: Dumping 0 messages to store
2009-03-13 10:18:13 [3293] [9] DEBUG: boxc_receiver: heartbeat with load value 0 received
The log message of receive SMS, as follows:
2009-03-18 13:45:33 [5912] [7] DEBUG: clear_old_concat_parts called
2009-03-18 13:46:06 [5912] [6] DEBUG: AT2[wavecom]: <-- +CMTI: "SM",1 2009-03-18 13:46:06 [5912] [6] DEBUG: AT2[wavecom]: +CMTI incoming SMS indication: +CMTI: "SM",1 2009-03-18 13:46:08 [5912] [6] INFO: AT2[wavecom]: CMTI received, but no message-storage is set in confiuration.setting now to
2009-03-18 13:46:08 [5912] [6] INFO: System error 2: No such file or directory
2009-03-18 13:46:08 [5912] [6] DEBUG: AT2[wavecom]: --> AT+CPMS="SM"^M
2009-03-18 13:46:08 [5912] [6] DEBUG: AT2[wavecom]: <-- +CPMS: 1,40,1,40 2009-03-18 13:46:08 [5912] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-18 13:46:08 [5912] [6] DEBUG: AT2[wavecom]: --> AT+CMGR=1^M
2009-03-18 13:46:08 [5912] [6] DEBUG: AT2[wavecom]: <-- +CMGR: 0,,35 2009-03-18 13:46:08 [5912] [6] DEBUG: AT2[wavecom]: <-- 07912618485400F9240B912618987811F500009030813164958212502B485C76A741F4F29C0E5AA7E5E936 2009-03-18 13:46:08 [5912] [6] DEBUG: AT2[wavecom]: received message from SMSC: +62818445009 2009-03-18 13:46:08 [5912] [6] DEBUG: AT2[wavecom]: Numeric sender (international) <+62818987115>
2009-03-18 13:46:08 [5912] [6] DEBUG: AT2[wavecom]: User data length read as (18)
2009-03-18 13:46:08 [5912] [6] DEBUG: AT2[wavecom]: Udh decoding done len=18 udhi=0 udhlen=0 udh=''
2009-03-18 13:46:08 [5912] [10] DEBUG: send_msg: sending msg to box: <127.0.0.1>
2009-03-18 13:46:08 [5912] [10] DEBUG: boxc_sender: sent message to <127.0.0.1>
2009-03-18 13:46:08 [5912] [9] DEBUG: boxc_receiver: got ack
2009-03-18 13:46:08 [5912] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-18 13:46:08 [5912] [6] DEBUG: AT2[wavecom]: --> AT+CMGD=1^M
2009-03-18 13:46:09 [5912] [6] DEBUG: AT2[wavecom]: <-- OK 2009-03-18 13:46:24 [5912] [9] DEBUG: boxc_receiver: heartbeat with load value 0 received 2009-03-18 13:46:24 [5912] [8] DEBUG: Dumping 0 messages to store
Here are some screenshots of PlaySMS:
SMS Gateway Login
Welcome Page
Send SMS
Send SMS Broadcast
Inbox Incoming SMS
Inbox outgoing SMS
Manage Kannel

Administration Preferences
Main Configuration
Manage Users

2 comments:

  1. Thank you very much for this post. What model of Wavecom Fasttrack do you use?
    Are you able to receive sms via the wavecom fastrack?

    ReplyDelete
  2. That's really good post! I quite liked learning how to develop SMS gateway with this approach. Thanks for the guide. Even I am a businessman and was just thinking to run the car sales text messages campaigns. I might try developing a gateway or if I don't get time, will definitely go with an easy to use app. If you have suggestions for that, please let me know.

    ReplyDelete