Page 2 - Wapme Systems AG; Aarno Syvänen; Chief MMS Developer
[email protected] http://www.smsrelay.com http://www.gni.ch Bruno Rodrigues [email protected] http://litux.org/bruno Stipe Tolj CTO & CIO Wapme Systems AG [email protected] http://www.wapme.de http://www.kannel.org Aarno Syvänen Chief MMS Developer Global Networks Inc. [email protected] http:...
Page 4 - Table of Contents
Table of Contents 1. Introduction............................................................................................................................................ 1 Overview of WAP ...............................................................................................................
Page 7 - List of Tables
List of Tables 3-1. Core Group Variables ......................................................................................................................... 143-2. Kannel Command Line Options .........................................................................................................
Page 8 - Chapter 1. Introduction; Overview of WAP
Chapter 1. Introduction This chapter introduces WAP and SMS in general terms, and explains the role of the gateway in WAPand SMS, outlining their duties and features. It also explains why the Kannel project was started in thefirst place, and why it is open source. With hundreds of millions of mobile...
Page 9 - Overview of WAP Push
Chapter 1. Introduction intermittent bandwidth, and extremely awkward input mechanisms. Most existing HTML pages do notwork on mobiles phones, and never will. WAP defines a completely new markup language, the Wireless Markup Language (WML), which issimpler and much more strictly defined than HTML. I...
Page 10 - Overview of SMS
Chapter 1. Introduction instance, when it must send a mail notification or a stock quote. For this purpose Wapforum definedWAP Push. Push is an application level service, sitting on the top of existing WAP stack. It defines two protocols,OTA and PAP. OTA is a ligthweigth protocol speaking with WAP s...
Page 11 - Features; Requirements
Chapter 1. Introduction Figure 1-2. Logical position of SMS gateway between a phone and a content server. An SMS gateway can also be used to relay SMS messages from one GSM network to another, if thenetworks do not roam messages normally. Kannel works as an SMS gateway, talking with many different k...
Page 13 - Chapter 2. Installing the gateway; Getting the source code
Chapter 2. Installing the gateway This chapter explains how the gateway can be installed, either from a source code package or by using apre-compiled binary version. The goal of this chapter is to get the gateway compiled and all the files inthe correct places; the next chapter will explain how the ...
Page 14 - Compiling the gateway
Chapter 2. Installing the gateway • GNU autoconf, if you want to modify the configuration script. Compiling the gateway If you are using Kannel on a supported platform, or one that is similar enough to one, compiling Kannelis trivial. After you have unpacked the source package of your choosing, or a...
Page 15 - Installing the gateway; Using pre-compiled binary packages; Installing Kannel from RPM packages
Chapter 2. Installing the gateway You may need to add compilations flags to configure: CFLAGS=’-pthread’ ./configure The above, for instance, seems to be required on FreeBSD. If you want to develop Kannel, you probablywant to add CFLAGS that make your compiler use warning messages. For example, for ...
Page 17 - Installing Kannel from DEB packages
Chapter 2. Installing the gateway cd /etc/rc.d/rc5.d/ ln -s ../init.d/kannel S91kannel ln -s ../init.d/kannel K91kannel To run Kannel as a SMS gateway you need to edit the configuration file which is at/etc/kannel/kannel.conf. In the same directory there is an example file called smskannel.conf. It ...
Page 20 - Chapter 3. Using the gateway; Configuring the gateway; Configuration file syntax
Chapter 3. Using the gateway This chapter explains how the gateway core, bearerbox, is configured and used. It covers theconfiguration file, keeping an eye on the gateway while it is running, and using the HTTP interface tocontrol the gateway. After this chapter there is distinct chapter for each ki...
Page 21 - Inclusion of configuration files
Chapter 3. Using the gateway Lines 1 and 6 are comment lines. Line 5 separates the two groups. The remaining lines define variables.The group type is defined by the group variable value. The various variables that are understood in each type of configuration group are explained below. Some variable ...
Page 22 - Core configuration
Chapter 3. Using the gateway Core configuration Configuration for Kannel MUST always include a group for general bearerbox configuration. This group is named as ’core’ in configuration file, and should be the first group in the configuration file. As its simplest form, ’core’ group looks like this: ...
Page 28 - Running Kannel; Starting the gateway; Command line options
Chapter 3. Using the gateway Running Kannel To start the gateway, you need to start each box you need. You always need the bearer box, anddepending on whether you want WAP and SMS gateways you need to start the WAP and SMS boxes. Ifyou want, you can run several of them, but we’ll explain the simple ...
Page 29 - Kannel statuses
Chapter 3. Using the gateway --verbosity < level > -D < places > Set debug-places for ’debug’ level output. --debug < places > -F < file-name > Log to file named file-name, too. Does not overrun or affect any logfile defined in configuration file. --logfile < file-name >...
Page 30 - HTTP administration
Chapter 3. Using the gateway The state can be changed via HTTP administration interface (see below), and shutdown can also beinitiated via TERM or INT signal from terminal. In addition, the bearerbox can be started already insuspended or isolated state with -S or -I command line option, see above. H...
Page 32 - Chapter 4. Setting up a WAP gateway; WAP gateway configuration; Wapbox configuration
Chapter 4. Setting up a WAP gateway This chapter tells you how to set Kannel up as a WAP gateway. WAP gateway configuration To set up a WAP Kannel, you have to edit the ’core’ group in the configuration file, and define the’wapbox’ group. You must set following variables for the ’core’ group: wapbox...
Page 34 - Running WAP gateway
Chapter 4. Setting up a WAP gateway Variable Value Description log-file filename As with bearerbox ’core’ group. log-level number 0..5 syslog-level number Messages of this log level or higher will also be sent to syslog,the UNIX system log daemon.The wapbox logs under the’daemon’ category. The defau...
Page 35 - Chapter 5. Setting up a SMS Gateway; Required components; SMS centers
Chapter 5. Setting up a SMS Gateway This chapter is a more detailed guide on how to set up Kannel as an SMS gateway. Required components To set up an SMS gateway, you need, in addition to a machine running Kannel, access to (an operator’s)SMS center, or possibly to multiple ones. The list of support...
Page 50 - GSM modem
Chapter 5. Setting up a SMS Gateway smsc-username = foo smsc-password = foo Variable Value Description host (m) hostname Machine that runs SMSC. As IP (10.11.12.13) or hostname(host.foobar.com) port (m) port-number The port number for the connection to the SMSC. smsc-username (m) string The ’usernam...
Page 52 - GSM modem 2
Chapter 5. Setting up a SMS Gateway Modem Type Modems nokiaphone Nokia 6210, 7110, 8210 (tested). Probably other Nokia phonestoo. ericsson Ericsson GSM modem 2 This new driver is replacing the old GSM Modem driver from Kannel. It allows a GSM Modem or Phoneto be connected to Kannel and work as a vir...
Page 55 - Fake SMSC
Chapter 5. Setting up a SMS Gateway Variable Value Description sendline-sleep number (miliseconds) Optional, defaults to 100 miliseconds. The sleep time aftersending a AT command. keepalive-cmd string Optional, defaults to "AT". If keepalive is activated in AT2group, this is the command to b...
Page 56 - HTTP-based relay and content gateways
Chapter 5. Setting up a SMS Gateway group = smsc smsc = fake port = 10000 connect-allow-ip = 127.0.0.1 Variable Value Description host (m) hostname Machine that runs the SMSC. As IP (100.100.100.100) orhostname (their.machine.here) port (m) port-number Port number in smsc host machine connect-allow-...
Page 57 - Using multiple SMS centers
Chapter 5. Setting up a SMS Gateway Variable Value Description port (m) port-number Port number in which Kannel listens to (MO) messages fromother gateway connect-allow-ip IP-list IPs allowed to use this interface. If not set, "127.0.0.1" (localhost)is the only host allowed toconnect. smsc-u...
Page 59 - Smsbox configuration
Chapter 5. Setting up a SMS Gateway Featurecimd cimd2 emi emi_ip emi2 smpp sema ois at2 at http fake Correctly encodes @ when sending y? y? ? ? y y? ? y? y? ? y? y? Correctly encodes ä when sending y? y? ? ? y y? ? y? y? ? y? y? Correctly encodes { when sending n y? ? ? y y? ? n N c ? y? y? Can rece...
Page 63 - Smsbox routing inside bearerbox
Chapter 5. Setting up a SMS Gateway log-level = 0 Smsbox routing inside bearerbox The communication link between bearerbox and smsbox has been designed for the purpose ofload-balancing via random assignment. Which means, bearerbox holds all smsc connections and passesinbound message to one of the co...
Page 64 - SMS-service configurations
Chapter 5. Setting up a SMS Gateway Variable Value Description smsc-ids word-list If set, specifies from which smsc-ids all inbound messagesshould be routed to this smsboxinstance. List contains smsc-idsseperated by semilon (";"). Thisrule may be used to pull anysmsc specific message stream ...
Page 70 - How sms-service interprets the HTTP response
Chapter 5. Setting up a SMS Gateway %P the phone number of the receiver of the SMSmessage %q like %p, but a leading ‘00’ is replaced with ‘+’ %Q like %P, but a leading ‘00’ is replaced with ‘+’ %i the smsc-id of the connection that received themessage %d the delivery report value %A the delivery rep...
Page 72 - Kannel POST
Chapter 5. Setting up a SMS Gateway Kannel POST Kannel can do POST if service is contains a post-url="..." . Table 5-9. X-Kannel Post Headers Parameter (escape code)equivalent X-Kannel Header Notes %p (from) X-Kannel-From Only sent if send-sender is true %P (to) X-Kannel-To %t (time) X-Kanne...
Page 73 - Warning
Chapter 5. Setting up a SMS Gateway <alt-dcs>alt-dcs</alt-dcs> </dcs> <pid>pid</pid> <statusrequest> <dlr-mask>dlr-mask</dlr-mask> <dlr-url>dlr-url</dlr-url> </statusrequest> <from> <user>username</user> <username...
Page 74 - SendSMS-user configurations
Chapter 5. Setting up a SMS Gateway SendSMS-user configurations To enable an SMS push, you must set sendsms-port into the ’smsbox’ group and define one or more ’sendsms-user’ groups. Each of these groups define one account, which can be used for the SMS push,via HTTP interface (see below) Table 5-10...
Page 76 - Internal DLR storage; MySQL DLR storage; LibSDB DLR storage
Chapter 5. Setting up a SMS Gateway External delivery report (DLR) storage Delivery reports are supported by default internaly, which means all DLRs are stored in the memory ofthe bearerbox process. This is problematic if bearerbox crashes or you take the process down in acontrolled way, but there a...
Page 77 - DLR database field configuration
Chapter 5. Setting up a SMS Gateway In addition to that you must have a dlr-db group defined that specifies the table field names that are used to the DLR attributes and a sdb-connection group that defines the LibSDB ressource itself. Here is the example configuration from doc/examples/dlr-sdb.conf ...
Page 79 - MySQL connection configuration
Chapter 5. Setting up a SMS Gateway MySQL connection configuration For several reasons external storage may be required to handle dynamical issues, i.e. DLRs, sms-service,sendsms-user, ota-setting, ota-bookmark definitions and so on. To define a MySQL database connectionyou simple need to specify a ...
Page 81 - Setting up more complex services
Chapter 5. Setting up a SMS Gateway phonenumber = 013456789 bearer = data calltype = analog connection = cont pppsecurity = off authentication = normal login = wapusr secret = thepasswd And a ’sendsms-user’ to use with it. With concatenation enabled: group = sendsms-user username = otauser password ...
Page 82 - Redirected replies; Setting up operator specific services; Setting up multi-operator Kannel
Chapter 5. Setting up a SMS Gateway Redirected replies The basic service system always sends the answer back to original requester, but sometimes the contentserver needs to send something to other terminals or delay the answer. To create such systems, an SMSpush is used. The idea is to get the initi...
Page 83 - Running SMS gateway; Using the HTTP interface to send SMS messages
Chapter 5. Setting up a SMS Gateway accepted-smsc = B get-url = "..." As can be seen, the smsc-id is used to identify the SMS center from which the message came. Then, the denied-smsc-id variable is used to prevent messages originally from the other SMS center from being sent through the oth...
Page 87 - GET method for the OTA HTTP interface
Chapter 5. Setting up a SMS Gateway account string Account name or number to carry forward for billingpurposes. This field is logged asACT in the log file so it allowsyou to do some accounting on itif your front end uses the sameusername for all services butwants to distinguish them in thelog. In th...
Page 91 - Chapter 7. Setting up Push Proxy Gateway
Chapter 7. Setting up Push Proxy Gateway This chapter explains how to set up a push proxy gateway (PPG). An example configuration file aregiven. A working push proxy gateway is described. Configuring ppg core group, for push initiator (PI)interface PPG configuration group defines gateway’s service i...
Page 92 - Configuring PPG user group variables
Chapter 7. Setting up Push Proxy Gateway Variable Value Description ssl-server-key-file string Mandatory value for PPG HTTPS support. The filecontaining server’s ssl privatekey. ppg-url url URL locating PPG services. Default /wappush . global-sender string Sender phone number required by some protoc...
Page 94 - Finishing ppg configuration
Chapter 7. Setting up Push Proxy Gateway Variable Value Description deny-ip ip-list Defines ips wherefrom this pi cannot do pushes. Ips notmentioned in either list aredenied, too. default-smsc string If no SMSC ID is given with the wappush HTTP request (seebelow), use this one as defaultroute for th...
Page 95 - Running a push proxy gateway
Chapter 7. Setting up Push Proxy Gateway smsc = http smsc-id = HTTP port = 10000 system-type = kannel smsc-username = foo smsc-password = bar no-sender = true no-coding = true send-url = http://host:port/path To set up smsbox. This group will eventually disappear, use here only necessary configurati...
Page 96 - Default network and bearer used by push proxy gateway
Chapter 7. Setting up Push Proxy Gateway Default network and bearer used by push proxy gateway If network and bearer attributes of the pap control document are missing or set any, Kannel uses addresstype for routing purposes: if the address type is a phone number (TYPE=PLMN), network defaults toGSM ...
Page 97 - Chapter 8. Using SSL for HTTP; Using SSL client support
Chapter 8. Using SSL for HTTP This chapter explains how you can use SSL to ensure secure HTTP communication on both, client andserver side. Beware that the gateway, is acting in both roles of the HTTP model: 1. as HTTP client, i.e. for requesting URLs while acting as WAP gateway and while fetching i...
Page 98 - Using SSL server support for PPG HTTPS interface
Chapter 8. Using SSL for HTTP Using SSL server support for the sendsms HTTPinterface To use the SSL-enabled HTTP server please use the following configuration directive within the core andsmsbox groups group = core ... ssl-server-cert-file = "filename" ssl-server-key-file = "filenane"...
Page 99 - Chapter 9. Delivery Reports
Chapter 9. Delivery Reports This chapter explains how to set up kannel to deliver delivery reports. Delivery reports are a method to tell your system if the message has arrived on the destination phone.There are different things which can happen to a message on the way to the phone which are: • Mess...
Page 100 - Chapter 10. Getting help and reporting bugs
Chapter 10. Getting help and reporting bugs This chapter explains where to find help with problems related to the gateway, and the preferredprocedure for reporting bugs and sending corrections to them. The Kannel development mailing list is [email protected]. To subscribe, send mail todevel-sub...
Page 101 - Appendix A. Using the fake WAP sender
Appendix A. Using the fake WAP sender This appendix explains how to use the fake WAP sender to test the gateway. 94
Page 102 - Appendix B. Using the fake SMS center; Setting up fakesmsc; Compiling fakesmsc; Configuring Kannel; Running Kannel with fakesmsc connections; Starting fake SMS center
Appendix B. Using the fake SMS center Fakesmsc is a simple testing tool to test out Kannel and its SMS services. It cannot be used to send messages to mobile terminals, it is just a simulated SMS center with no connection to real terminals. Setting up fakesmsc This section sums up needed steps to se...
Page 105 - Creating push content and control document for testing
Appendix C. Setting up a test environment forPush Proxy Gateway This appendix explains how to set a test environment for PPG. This contains a simulated SMSC, forinstance a http server simulation (this is used as example, because it is simplest) and a simulated pushinitiator. Between them, there is t...
Page 106 - Starting necessary programs
Appendix C. Setting up a test environment for Push Proxy Gateway si-expires="2002-06-30T00:00:00Z"> Want to test a fetch? </indication> </si> Note that the date value of the si-expires attribute contains trailing zeroes. They are OK here, because SItokenizer removes them. But ...
Page 108 - Testing PAP protocol over HTTPS
Appendix C. Setting up a test environment for Push Proxy Gateway Using Nokia Toolkit as a part of a developingenvironment This chapter describes a developing environment using Nokia Toolkit instead of test_http_server program. You cannot use a real phone for testing a push server. Sending random mes...
Page 111 - Analog modem
Appendix D. Setting up a dial-up line This appendix explains how to set up a dial-up line in Linux for use with the Kannel WAP gateway. Inorder for it to work you need a Linux kernel with PPP capabilities. Most distributions provides PPPkernel support by default. For more information how to compile ...
Page 112 - ISDN terminal
Appendix D. Setting up a dial-up line In /etc/ppp/pap-secrets add the username and password for the ppp account. The IP address is the oneassigned to the phone. wapuser * wappswd 192.168.0.20 Configure your phone (this example is for Nokia 7110) homepage http:/yourhost/hello.wml connection type cont...
Page 113 - Appendix E. Log files; Bearerbox Access Log; Log rotation
Appendix E. Log files This appendix describes the log file format. Bearerbox Access Log 2001-01-01 12:00:00 Sent SMS [SMSC:smsc] [SVC:sms] [from:12345] [to:67890] [flags:0:1:0:0:0] [msg:11:Hello World] [udh:0] Variable Value Description Date 2001-01-01 12:00:00 Date Result Sent SMS Result: Send, fai...
Page 115 - Glossary
Glossary M MO Mobile Originated - a SMS from mobile to application MT Mobile Terminated - a SMS from application to mobile MWI Message Waiting Indicator (See [BIBLIO-3GPP-23038]) MClass Message Class (See [BIBLIO-3GPP-23038]) Coding Message Coding (See [BIBLIO-3GPP-23038]) 108
Page 116 - Bibliography
Bibliography RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1 , http://www.w3.org/Protocols/rfc2616/rfc2616.html, Request for Comments: 2616 , The Internet Society, 1999. 3GPP 23.038 , http://www.3gpp.org/ftp/Specs/latest/Rel-5/23_series/23038-500.zip, ... , 3GPP, ?. 3GPP 23.040 , http://www.3gpp....