Nokia WAP and SMS gateway manual

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

Go to page of

A good user manual

The rules should oblige the seller to give the purchaser an operating instrucion of Nokia WAP and SMS gateway, along with an item. The lack of an instruction or false information given to customer shall constitute grounds to apply for a complaint because of nonconformity of goods with the contract. In accordance with the law, a customer can receive an instruction in non-paper form; lately graphic and electronic forms of the manuals, as well as instructional videos have been majorly used. A necessary precondition for this is the unmistakable, legible character of an instruction.

What is an instruction?

The term originates from the Latin word „instructio”, which means organizing. Therefore, in an instruction of Nokia WAP and SMS gateway one could find a process description. An instruction's purpose is to teach, to ease the start-up and an item's use or performance of certain activities. An instruction is a compilation of information about an item/a service, it is a clue.

Unfortunately, only a few customers devote their time to read an instruction of Nokia WAP and SMS gateway. A good user manual introduces us to a number of additional functionalities of the purchased item, and also helps us to avoid the formation of most of the defects.

What should a perfect user manual contain?

First and foremost, an user manual of Nokia WAP and SMS gateway should contain:
- informations concerning technical data of Nokia WAP and SMS gateway
- name of the manufacturer and a year of construction of the Nokia WAP and SMS gateway item
- rules of operation, control and maintenance of the Nokia WAP and SMS gateway item
- safety signs and mark certificates which confirm compatibility with appropriate standards

Why don't we read the manuals?

Usually it results from the lack of time and certainty about functionalities of purchased items. Unfortunately, networking and start-up of Nokia WAP and SMS gateway alone are not enough. An instruction contains a number of clues concerning respective functionalities, safety rules, maintenance methods (what means should be used), eventual defects of Nokia WAP and SMS gateway, and methods of problem resolution. Eventually, when one still can't find the answer to his problems, he will be directed to the Nokia service. Lately animated manuals and instructional videos are quite popular among customers. These kinds of user manuals are effective; they assure that a customer will familiarize himself with the whole material, and won't skip complicated, technical information of Nokia WAP and SMS gateway.

Why one should read the manuals?

It is mostly in the manuals where we will find the details concerning construction and possibility of the Nokia WAP and SMS gateway item, and its use of respective accessory, as well as information concerning all the functions and facilities.

After a successful purchase of an item one should find a moment and get to know with every part of an instruction. Currently the manuals are carefully prearranged and translated, so they could be fully understood by its users. The manuals will serve as an informational aid.

Table of contents for the manual

  • Page 1

    Kannel 1.3.1 User’ s Guide Open Sour ce W AP and SMS gatewa y Lar s Wirz enius Gatewa y arc hitect W apit Ltd liw@wapit.com http://www .wapit.com http://www .kannel.org Kalle Marjola Manager W apit Ltd rpr@wapit.com http://www .wapit.com http://www .kannel.org Andreas Fink Chairman & CT O Global Networks Inc.[...]

  • Page 2

    andreas@fink.org http://www .smsrela y .com http://www .gni.ch Bruno Rodrigues bruno.rodrigues@litux.or g http://litux.org/bruno Stipe T olj CT O & CIO W apme Systems A G tolj@wapme-systems.de http://www .wapme.de http://www .kannel.org Aarno Syvänen Chief MMS Developer Global Networks Inc. as@gni.ch http://www .gni.ch[...]

  • Page 3

    Kannel 1.3.1 User’ s Guide: Open Source W AP and SMS gate way by Lars W irzenius, Kalle Marjola, Andreas Fink, Bruno Rodrigues, Stipe T olj, and Aarno Syvänen Abstract This document describes how to install and use Kannel, the Open Source W AP and SMS Gatew ay originally dev eloped by W apit Ltd (now out of b usiness) and now being de veloped fu[...]

  • Page 4

    T ab le of Contents 1. Introduction............................................................................................................................................ 1 Overvie w of W AP .............................................................................................................................. 1 Overvie w of W AP Push...[...]

  • Page 5

    Smsbox configuration ............................................................................................................. 51 Smsbox routing inside bearerbox ........................................................................................... 55 SMS-service configurations.............................................................[...]

  • Page 6

    Running Kannel with fakesmsc connections ................................................................................... 94 Starting fake SMS center ........................................................................................................ 94 Fake messages ...........................................................................[...]

  • Page 7

    List of T ab les 3-1. Core Group V ariables ......................................................................................................................... 14 3-2. Kannel Command Line Options ......................................................................................................... 20 3-3. Kannel HTTP Administration Command[...]

  • Page 8

    Chapter 1. Intr oduction This chapter introduces W AP and SMS in general terms, and explains the role of the gate way in W AP and SMS, outlining their duties and features. It also explains why the Kannel project w as started in the first place, and why it is open source. W ith hundreds of millions of mobile phones in use all ov er the world, the m[...]

  • Page 9

    Chapter 1. Intr oduction intermittent bandwidth, and extremely a wkward input mechanisms. Most existing HTML pages do not work on mobiles phones, and ne ver will. W AP defines a completely ne w markup language, the Wireless Markup Language (WML), which is simpler and much more strictly defined than HTML. It also defines a scripting language, WML[...]

  • Page 10

    Chapter 1. Intr oduction instance, when it must send a mail notification or a stock quote. For this purpose W apforum defined W AP Push. Push is an application lev el service, sitting on the top of existing W AP stack. It defines two protocols, O T A and P AP . O T A is a ligthweigth protocol speaking with W AP stack (to be more specific, with [...]

  • Page 11

    Chapter 1. Intr oduction Figure 1-2. Logical position of SMS gateway between a phone and a content ser ver . An SMS gate way can also be used to relay SMS messages from one GSM network to another , if the networks do not roam messages normally . Kannel works as an SMS gate way , talking with many dif ferent kind of SMS centers, and relaying the mes[...]

  • Page 12

    Chapter 1. Intr oduction • The Gnome XML library (known as gnome-xml and libxml), v ersion 2.2.5 or newer . See http://xmlsoft.org/xml.html. • GNU Make. • Posix threads (pthread.h). • GNU Bison 1.28 if you modify the WMLScript compiler . • DocBook markup language tools (jade, jadetex, DocBook stylesheets, etc; see README.docbook), if you [...]

  • Page 13

    Chapter 2. Installing the gate wa y This chapter explains ho w the gate way can be installed, either from a source code package or by using a pre-compiled binary version. The goal of this chapter is to get the gate way compiled and all the files in the correct places; the next chapter will e xplain how the gate way is configured. Getting the sour[...]

  • Page 14

    Chapter 2. Installing the gateway • GNU autoconf, if you want to modify the configuration script. Compiling the gate way If you are using Kannel on a supported platform, or one that is similar enough to one, compiling Kannel is trivial. After you ha ve unpack ed the source package of your choosing, or after you have check ed out the source code [...]

  • Page 15

    Chapter 2. Installing the gateway Y ou may need to add compilations flags to configure: CFLAGS=’-pthread’ ./configure The abov e, for instance, seems to be required on FreeBSD. If you want to dev elop Kannel, you probably want to add CFLA GS that make your compiler use w arning messages. For example, for GCC: CFLAGS=’-Wall -O2 -g’ ./confi[...]

  • Page 16

    Chapter 2. Installing the gateway Installing Kannel 1. Download the binary RPM pack et from the Kannel web site. 2. Log in as root: su - 3. Install the RPM package: rpm -ivh kannel-VERSION.i386.rpm Upgrading Kannel 1. Download the binary RPM pack et from the Kannel web site. 2. Log in as root 3. Upgrade the RPM package: rpm -Uvh kannel-VERSION.i386[...]

  • Page 17

    Chapter 2. Installing the gateway cd /etc/rc.d/rc5.d/ ln -s ../init.d/kannel S91kannel ln -s ../init.d/kannel K91kannel T o run Kannel as a SMS gatew ay 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 has some basic examples of the configuratio[...]

  • Page 18

    Chapter 2. Installing the gateway 3. Install or upgrade the DEB package: dpkg -i kannel- VERSION .deb Removing Kannel 1. Log in as root: 2. Remov e the package keeping configuration files: dpkg --remove kannel 3. Remov e the package completely: dpkg --purge kannel After you hav e installed Kannel from the DEB packages you should now be able to ru[...]

  • Page 19

    Chapter 2. Installing the gateway The documentation will be installed at /usr/share/doc/kannel/. In the Kannel documentation directory there is a html file called control.html. It is an example file that shows ho w to use the Kannel http administration interface. It also has a template for sending SMS messages. Aditionally to kannel-VERSION.deb, [...]

  • Page 20

    Chapter 3. Using the gate wa y This chapter explains ho w the gate way core, bearerbox, is configured and used. It cov ers the configuration file, keeping an eye on the g ateway while it is running, and using the HTTP interf ace to control the gate way . After this chapter there is distinct chapter for each kind of gate way use: W AP gatew ay , [...]

  • Page 21

    Chapter 3. Using the gateway Lines 1 and 6 are comment lines. Line 5 separates the two groups. The remaining lines define v ariables. The group type is defined by the group variable v alue. The various v ariables that are understood in each type of configuration group are explained belo w . Some variable v alues are marked as ’bool’ . The v [...]

  • Page 22

    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: group = core admin-port = 13000 ad[...]

  • Page 23

    Chapter 3. Using the gateway V ariable V alue Description admin-deny-ip IP-list These lists can be used to prev ent connection from giv en IP addresses. Each list can hav e sev eral addresses, separated with semicolons (’;’). An asterisk (’*’) can be used as a wildcard in a place of any ONE number , so *.*.*.* matches any IP . admin-allow-i[...]

  • Page 24

    Chapter 3. Using the gateway V ariable V alue Description box-deny-ip IP-list These lists can be used to prev ent box connections from giv en IP addresses. Each list can hav e sev eral addresses, separated with semicolons (’;’). An asterisk (’*’) can be used as a wildcard in place of any ONE number , so *.*.*.* matches any IP . box-allow-ip[...]

  • Page 25

    Chapter 3. Using the gateway V ariable V alue Description unified-prefix prefix-list String to unify receiv ed phone numbers, for SMSC routing and to ensure that SMS centers can handle them properly . This is applied to ’ sender’ number when receiving SMS messages from SMS Center and for ’ recei ver’ number when receiving messages from SMS[...]

  • Page 26

    Chapter 3. Using the gateway V ariable V alue Description store-file filename A file in which any recei ved SMS messages are stored until they are successfully handled. By using this variable, no SMS messages are lost in Kannel, but theoretically some messages can duplicate when system is taken down violently . http-proxy-host hostname Enable the[...]

  • Page 27

    Chapter 3. Using the gateway V ariable V alue Description ssl-trusted-ca-file filename This file contains the certificates Kannel is willing to trust when working as a HTTPS client. If this option is not set, certificates are not validated and those the identity of the server is not prov en. dlr-storage type Defines the way DLRs are stored. If[...]

  • Page 28

    Chapter 3. Using the gateway Running Kannel T o start the gatew ay , you need to start each box you need. Y ou always need the bearer box, and depending on whether you want W AP and SMS gateways you need to start the W AP and SMS boxes. If you want, you can run se veral of them, b ut we’ll explain the simple case of only running one each. Star ti[...]

  • Page 29

    Chapter 3. Using the gateway --verbosity < level > -D < places > Set debug-places for ’ debug’ le vel output. --debug < places > -F < file-name > Log to file named file-name, too. Does not ov errun or affect an y logfile defined in configuration file. --logfile < file-name > -V < level > Set verbosity l[...]

  • Page 30

    Chapter 3. Using the gateway The state can be changed via HTTP administration interface (see belo w), and shutdown can also be initiated via TERM or INT signal from terminal. In addition, the bearerbox can be started already in suspended or isolated state with -S or -I command line option, see abov e. HTTP administration Kannel can be controlled vi[...]

  • Page 31

    Chapter 3. Using the gateway shutdown Bring down the g ateway , by setting state to ’ shutdo wn’. After a shutdown is initiated, there is no other chance to resume normal operation. Howe ver , ’ status’ command still works. Passw ord required. If shutdown is sent for a second time, the gate way is forced down, e ven if it has still messages[...]

  • Page 32

    Chapter 4. Setting up a W AP gatewa y This chapter tells you how to set Kannel up as a W AP gate way . W AP gatewa y configuration T o set up a W AP Kannel, you hav e to edit the ’core’ group in the configuration file, and define the ’wapbox’ group. Y ou must set following v ariables for the ’core’ group: wapbox-port and wdp-interfa[...]

  • Page 33

    Chapter 4. Setting up a W AP gateway V ariable V alue Description map-url URL-pair The pair is separated with space. Adds a single mapping for the left side URL to the giv en destination. If you append an asterisk ‘*’ to the left side URL, its prefix Is matched against the incoming URL. Whenev er the prefix matches, the URL will be replaced c[...]

  • Page 34

    Chapter 4. Setting up a W AP gateway V ariable V alue Description log-file filename As with bearerbox ’core’ group. log-level number 0..5 syslog-level number Messages of this log lev el or higher will also be sent to syslog, the UNIX system log daemon. The wapbox logs under the ’ daemon’ category . The default is not to use syslog, and you[...]

  • Page 35

    Chapter 5. Setting up a SMS Gate wa y This chapter is a more detailed guide on how to set up Kannel as an SMS g ateway . Required components T o set up an SMS gatew ay , you need, in addition to a machine running Kannel, access to (an operator’ s) SMS center , or possibly to multiple ones. The list of supported SMS centers and their configuratio[...]

  • Page 36

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description group (m) smsc This is a mandatory variable smsc (m) string Identifies the SMS center type. See below for a complete list. smsc-id string An optional name or id for the smsc. Any string is acceptable, but semicolon ’;’ may cause problems, so av oid it and any other special non-al[...]

  • Page 37

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description allowed-prefix prefix-list A list of phone number prefixes which are accepted to be sent through this SMSC. Multiple entries are separated with semicolon (’;’). For e xample, "040;050" prev ents sending of any SMS message with prefix of 040 or 050 through this SMSC. If[...]

  • Page 38

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description unified-prefix prefix-list String to unify receiv ed phone numbers, for SMSC routing and to ensure that SMS centers can handle them properly . This is applied to ’ sender’ number when receiving SMS messages from SMS Center and for ’ recei ver’ number when receiving messages f[...]

  • Page 39

    Chapter 5. Setting up a SMS Gateway group = smsc smsc = cimd host = 100.101.102.103 port = 600 smsc-username = foo smsc-password = bar The driv er for CIMD2 is a "receiving SME" and e xpects the SMSC to be configured for that. It also expects the SMSC to automatically send stored messages as soon as Kannel logs in (this is the normal con[...]

  • Page 40

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description sender-prefix string The number that the SMSC will add in front of the sender number of all messages sent from Kannel. If Kannel is asked to send a message, it will remov e this prefix from the sender number so that the SMSC will add it again. If the prefix was not present, Kannel w[...]

  • Page 41

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description host (c) hostname Machine that runs SMSC. As IP (100.100.100.100) or hostname (their .machine.here) port (c) port-number Port number in the SMSC host machine alt-host hostname Optional alternate Machine that runs SMSC. As IP (100.100.100.100) or hostname (their .machine.here) (If unde[...]

  • Page 42

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description connect-allow-ip IP-list If set, only connections from these IP addresses are accepted to receiv e-port. TCP/IP connection only . idle-timeout number (seconds) If this option is set to a value larger than 0, then the connection will be closed after the configured amount of seconds wi[...]

  • Page 43

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description wait-ack-expire number Defines what kind of action should be taken if the the ack of a message expires. The options for this value are: 0x00 - disconnect/reconnect, (default) 0x01 - as is now , requeue, but this could potentially result in the msg arriving twice 0x02 - just carry on [...]

  • Page 44

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description my-number number If the large account number is different from the short number , assign it with this variable. F or example, if short number is 12345 and large account is 0100100100101234 (IP+port), set my-number to 12345 and ev ery message receiv ed will hav e that receiv er . alt-c[...]

  • Page 45

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description transceiver-mode bool Attempt to use a TRANSCEIVER mode connection to the SM-SC. It uses the standard transmit ’port’, there is no need to set ’ recei ve-port’. This is a SMPP 3.4 only feature and will not work on an earlier SM-SC. This will try a bind_transceiv er only and wi[...]

  • Page 46

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description interface-version number Change the "interface version" parameter sent from Kannel to a value other then 0x34 (for SMPP v3.4). the value entered here should be the hexadecimal representation of the interface version parameter . for example, the default (if not set) is "[...]

  • Page 47

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description reconnect-delay number Optional the time between attemps to connect an ESME to an SMSC having f ailed to connect initating or during an SMPP session. The default is 10 seconds. source-addr-ton number Optional, source address TON setting for the link. (Defaults to 0). source-addr-npi n[...]

  • Page 48

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description msg-id-type number Optional, specifies which number base the SMSC is using for the message ID numbers in the corresponding submit_sm_resp and deliver_sm PDUs. This is required to make deli very reports (DLR) work on SMSC that behav e differently . The number is a combined set of bit [...]

  • Page 49

    Chapter 5. Setting up a SMS Gateway you find out the more exact meaning, please send a report. The 5.0 implementation uses X.25 access gate way . group = smsc smsc = sema device = /dev/tty0 smsc_nua = (X121 smsc address) home_nua = (x121 radio pad address) wait_report = 0/1 (0 means false, 1 means true) V ariable V alue Description device (m) devi[...]

  • Page 50

    Chapter 5. Setting up a SMS Gateway smsc-username = foo smsc-password = foo V ariable V alue 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 ’username’ of the Messaging Entity connecting to t[...]

  • Page 51

    Chapter 5. Setting up a SMS Gateway pin = 2345 V ariable V alue Description modemtype string Modems from different manufacturers ha ve slightly different beha viour . W e need to know what type of modem is used. device (m) device-name The device the modem is connected to, like /dev/ttyS0 . pin string This is the PIN number of the SIM card in the GS[...]

  • Page 52

    Chapter 5. Setting up a SMS Gateway Modem T ype Modems nokiaphone Nokia 6210, 7110, 8210 (tested). Probably other Nokia phones too. ericsson Ericsson GSM modem 2 This new driv er is replacing the old GSM Modem driv er from Kannel. It allows a GSM Modem or Phone to be connected to Kannel and work as a virtual SMSC group = smsc smsc = at2 modemtype =[...]

  • Page 53

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description validityperiod integer How long the message will be valid, i.e., ho w long the SMS center (the real one, not the phone acting as one for Kannel) will try to send the message to the recipient. Encoded as per the GSM 03.40 standard, section 9.2.3.12. Default is 167, meaning 24 hours. re[...]

  • Page 54

    Chapter 5. Setting up a SMS Gateway Modem definitions are now multiple groups present in kannel.conf, either directly or , for example, by including the example modems.conf. (See Inclusion of configur ation files ) V ariable V alue Description group modems This is a mandatory variable id string This is the the id that should be used in modemtype[...]

  • Page 55

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description sendline-sleep number (miliseconds) Optional, defaults to 100 miliseconds. The sleep time after sending a A T command. keepalive-cmd string Optional, defaults to "A T". If keepali ve is acti vated in A T2 group, this is the command to be sent. If your modem supports it, for [...]

  • Page 56

    Chapter 5. Setting up a SMS Gateway group = smsc smsc = fake port = 10000 connect-allow-ip = 127.0.0.1 V ariable V alue Description host (m) hostname Machine that runs the SMSC. As IP (100.100.100.100) or hostname (their .machine.here) port (m) port-number Port number in smsc host machine connect-allow-ip IP-list If set, only connections from these[...]

  • Page 57

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description port (m) port-number Port number in which Kannel listens to (MO) messages from other gate way connect-allow-ip IP-list IPs allowed to use this interf ace. If not set, "127.0.0.1" (localhost) is the only host allowed to connect. smsc-username string Username associated to con[...]

  • Page 58

    Chapter 5. Setting up a SMS Gateway Feature cimd cimd2 emi emi_ip emi2 smpp sema ois at at2 http fake nnnnynnnnyn n Can set V alidity ? ? ? ? y ? ? ? ? y ? ? Can set Deferred ? ? ? ? y ? ? ? ? n ? ? Can set PID nnnnyynnnyn n Can set RPI nnnnyynnnnn n Can send Unicode ? ? ? ? y ? ? ? ? y ? ? Can send 8 bits ? ? ? ? y ? ? ? ? y ? ? Correctly send GSM[...]

  • Page 59

    Chapter 5. Setting up a SMS Gateway Feature cimd 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 receiv e @ in text messages y? y? ? ? y y? ? y? y? ?[...]

  • Page 60

    Chapter 5. Setting up a SMS Gateway SMSBox inherits from core the following fields: smsbox-port http-proxy-port http-proxy-host http-proxy-username http-proxy-password http-proxy-exceptions ssl-certkey-file T able 5-4. Smsbox Group V ariables V ariable V alue Description group (m) smsbox This is a mandatory variable bearerbox-host (m) hostname The[...]

  • Page 61

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description sendsms-chars string Only these characters are allowed in ’ to’ field when send-SMS service is requested via HTTP . Naturally , you should allow at least 0123456789 . The space character (’ ’) has special meaning: it is used to separate multiple phone numbers from each other [...]

  • Page 62

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description reply-couldnotrepresent string If set, replaces the SMS message sent back when kannel could not represent the result as a SMS message. Defaults to Result could not be represented as an SMS message. . reply-requestfailed string If set, replaces the SMS message sent back when kannel cou[...]

  • Page 63

    Chapter 5. Setting up a SMS Gateway log-level = 0 Smsbo x r outing inside bearerbo x The communication link between bearerbox and smsbox has been designed for the purpose of load-balancing via random assignment. Which means, bearerbox holds all smsc connections and passes inbound message to one of the connected smsboxes. So you ha ve a determined r[...]

  • Page 64

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description smsc-ids word-list If set, specifies from which smsc-ids all inbound messages should be routed to this smsbox instance. List contains smsc-ids seperated by semilon (";"). This rule may be used to pull any smsc specific message stream to an smsbox instance. shortcuts number[...]

  • Page 65

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description keyword (m) word Services are identified by the first word in the SMS Each ‘%s’ in the URL corresponds to one word in the SMS message. W ords are separated with spaces. A keyw ord is matched only if the number of words in the SMS message is the same as the number of ‘%s’ fi[...]

  • Page 66

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description text (c) string Predefined text answer . Only if there is neither url nor file set. Escape codes (parameters) are usable here, too. exec (c) string Executes the gi ven shell command as the current UID of the running smsbox user and returns the output to stdout as reply . Escape codes[...]

  • Page 67

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description allowed-receiver-prefix prefix-list A list of phone number prefixes of the receiv er number which are accepted to be receiv ed by this service. This may be used to allow only inbound SMS to certain shortcut numbers to be allowed to this service. denied-receiver-prefix prefix-list A l[...]

  • Page 68

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description assume-plain-text bool If client does not set Content-T ype for reply , it is normally application/octet-stream which is then handled as data in kannel. This can be forced to be plain/text to allo w backward compatibility , when data was not expected. concatenation bool Long messages [...]

  • Page 69

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description suffix string white-list URL Load a list of accepted senders of SMS messages. If a sender of an SMS message is not in this list, any message recei ved from the SMSC is rejected, unless a black-list service is defined. See notes of phone number format from numhash.h header file. blac[...]

  • Page 70

    Chapter 5. Setting up a SMS Gateway %P the phone number of the receiv er of the SMS message %q like %p, b ut a leading ‘00’ is replaced with ‘+’ %Q like %P , but a leading ‘00’ is replaced with ‘+’ %i the smsc-id of the connection that receiv ed the message %d the deliv ery report value %A the deliv ery report SMSC reply , if any %n[...]

  • Page 71

    Chapter 5. Setting up a SMS Gateway text/html T ags are removed, rest is chopped to fit an SMS message. text/vnd.wap.wml Processed like HTML. text/xml Processed as a POST -XML. See XML P ost application/octet-stream The body will be transmitted as the SMS message, as 8-bit data. This can be av oided by setting assume-plain-text variable on for the[...]

  • Page 72

    Chapter 5. Setting up a SMS Gateway Kannel POST Kannel can do POST if service is contains a post-url="..." . T able 5-9. X-Kannel P ost Headers P arameter (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-Kannel-Time %u (udh) X-Kannel-UDH in hex format: [...]

  • Page 73

    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>username</username> <pass>password[...]

  • Page 74

    Chapter 5. Setting up a SMS Gateway SendSMS-user configurations T o 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 belo w) T able 5-10. SendSMS-User Group V ariables V[...]

  • Page 75

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description allowed-prefix prefix-list A list of phone number prefixes which are accepted to be sent using this username. Multiple entries are separated with semicolon (’;’). For e xample, "040;050" prev ents sending of any SMS message with prefix of 040 or 050 through this SMSC. [...]

  • Page 76

    Chapter 5. Setting up a SMS Gateway External delivery repor t (DLR) storage Deliv ery reports are supported by default internaly , which means all DLRs are stored in the memory of the bearerbox process. This is problematic if bearerbox crashes or you take the process do wn in a controlled way , but there are still DLRs open. Therefore you may use e[...]

  • Page 77

    Chapter 5. Setting up a SMS Gateway In addition to that you must hav e 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 using a MySQL ressource: group = sdb-connect[...]

  • Page 78

    Chapter 5. Setting up a SMS Gateway V ariable V alue Description field-timestamp (m) string The table field that is used for the timestamp data. field-destination (m) string The table field that is used for the destination number data. field-service (m) string The table field that is used for the service username data. field-url (m) string The t[...]

  • Page 79

    Chapter 5. Setting up a SMS Gateway MySQL connection configuration For se veral reasons e xternal storage may be required to handle dynamical issues, i.e. DLRs, sms-service, sendsms-user , ota-setting, ota-bookmark definitions and so on. T o define a MySQL database connection you simple need to specify a mysql-connection group as follows: T able[...]

  • Page 80

    Chapter 5. Setting up a SMS Gateway phone as a XML document, but this method is perhaps more suitable for continous pro visioning. If you want to send multiple O T A configurations through the smsbox and you do not want to send XML documents, you will hav e to declare a ota-id string to the different ota-setting groups. T able 5-13. O T A Setting [...]

  • Page 81

    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. W ith concatenation enabled: group = sendsms-user username = otauser password = foo max-messages = 2 concatenation = 1 T a[...]

  • Page 82

    Chapter 5. Setting up a SMS Gateway Redirected replies The basic service system always sends the answer back to original requester , but sometimes the content server needs to send something to other terminals or delay the answer . T o create such systems, an SMS push is used. The idea is to get the initial request, but then send no reply . Instead,[...]

  • Page 83

    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 pre vent messages originally from the other SMS center from being sent through the other one. Finally ’ sms-service’ groups are d[...]

  • Page 84

    Chapter 5. Setting up a SMS Gateway password (or pass ) string Password associated with gi ven username . Must match corresponding field in the ’ sendsms-user’ group of the Kannel configuration, or ’Authorization failed’ is returned. from string Phone number of the sender . This field is usually ov erridden by the SMS Center , or it can [...]

  • Page 85

    Chapter 5. Setting up a SMS Gateway smsc string Optional virtual smsc-id from which the message is supposed to hav e arriv ed. This is used for routing purposes, if any denied or preferred SMS centers are set up in SMS center configuration. This variable can be o verridden with a forced-smsc configuration variable. Lik ewise, the default-smsc var[...]

  • Page 86

    Chapter 5. Setting up a SMS Gateway validity number (minutes) Optional. If giv en, kannel will inform SMS Center that it should only try to send the message for this many minutes. If the destination mobile is off other situation that it cannot receiv e the sms, the smsc discards the message. Note: you must hav e your kannel box time syncronized wit[...]

  • Page 87

    Chapter 5. Setting up a SMS Gateway account string Account name or number to carry forward for billing purposes. This field is logged as A CT in the log file so it allows you to do some accounting on it if your front end uses the same username for all services but wants to distinguish them in the log. In the case of a HTTP SMSC type the account n[...]

  • Page 88

    Chapter 5. Setting up a SMS Gateway Y ou can send either settings or bookmark, set CGI variable type accordingly . Default for this v ariable is settings. Here is an example XML document (this one contains CSD settings for logging in to a mobile service; note that you must store DTD locally): <?xml version="1.0"?> <!DOCTYPE CHARA[...]

  • Page 89

    Chapter 5. Setting up a SMS Gateway otaid string Name or ID of the ’ota-setting’ group in Kannel configuration that should be sent to the phone. This variable is optional. If it is not giv en the first ’ota-setting’ group is sent. This is unnecessary when a XML document is sended to the phone. username string Username of the ’ sendsms-u[...]

  • Page 90

    Chapter 6. Setting up a SMS&W AP gatewa y This chapter tells you how to set Kannel up as a combined W AP and SMS gate way . SMS&W AP gatewa y configuration Configuration is done as explained in pre vious chapters, you simply hav e to include all the data from both chapters into the configuration file. Running SMS&W AP gatewa y There[...]

  • Page 91

    Chapter 7. Setting up Push Pr o xy Gatewa y This chapter explains ho w to set up a push proxy gate way (PPG). An example configuration file are giv en. A working push proxy gate way is described. Configuring ppg core gr oup, f or push initiator (PI) interface PPG configuration group defines gate way’ s service interface. Configuring a PPG w[...]

  • Page 92

    Chapter 7. Setting up Push Pr oxy Gateway V ariable V alue Description ssl-server-key-file string Mandatory value for PPG HTTPS support. The file containing server’ s ssl priv ate key . ppg-url url URL locating PPG services. Default /wappush . global-sender string Sender phone number required by some protocols. concurrent-pushes number Number of[...]

  • Page 93

    Chapter 7. Setting up Push Pr oxy Gateway variables are elaborated in table 7.2. As an example, let us see ho w to configure a ppg user (a pi, named here ’picom’) allowed to send pushes only from a specified ip. group = wap-push-user wap-push-user = picom ppg-username = foo ppg-password = bar allow-ip = 62.254.217.163 It goes without saying t[...]

  • Page 94

    Chapter 7. Setting up Push Pr oxy Gateway V ariable V alue Description deny-ip ip-list Defines ips wherefrom this pi cannot do pushes. Ips not mentioned in either list are denied, too. default-smsc string If no SMSC ID is giv en with the wappush HTTP request (see below), use this one as def ault route for this specific push user . forced-smsc str[...]

  • Page 95

    Chapter 7. Setting up Push Pr oxy 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 T o set up smsbox. This group will ev entually disappear , use here only necessary configuration variables. group = smsbox bearerbox-host =[...]

  • Page 96

    Chapter 7. Setting up Push Pr oxy Gateway Default netw ork and bearer used b y push pro xy gatewa y If network and bearer attrib utes of the pap control document are missing or set any , Kannel uses address type for routing purposes: if the address type is a phone number (TYPE=PLMN), network defaults to GSM and bearer to SMS; if it is a IP-address [...]

  • Page 97

    Chapter 8. Using SSL f or HTTP This chapter explains ho w you can use SSL to ensure secure HTTP communication on both, client and server side. Bew are that the gatew ay , is acting in both roles of the HTTP model: 1. as HTTP client, i.e. for requesting URLs while acting as W AP gate way and while fetching information for the SMS services. 2. as HTT[...]

  • Page 98

    Chapter 8. Using SSL for HTTP Using SSL server suppor t for the sendsms HTTP interface T o use the SSL-enabled HTTP server please use the follo wing configuration directiv e within the core and smsbox groups group = core ... ssl-server-cert-file = "filename" ssl-server-key-file = "filenane" group = smsbox ... sendsms-port-ssl =[...]

  • Page 99

    Chapter 9. Delivery Repor ts This chapter explains ho w to set up kannel to deliv er deliv ery reports. Deliv ery reports are a method to tell your system if the message has arriv ed on the destination phone. There are different things which can happen to a message on the w ay to the phone which are: • Message gets rejected by the SMSC (unknown s[...]

  • Page 100

    Chapter 10. Getting help and repor ting b ugs This chapter explains where to find help with problems related to the gate way , and the preferred procedure for reporting bugs and sending corrections to them. The Kannel dev elopment mailing list is dev el@kannel.3glab .org. T o subscribe, send mail to dev el-subscribe@kannel.3glab .org (mailto:de ve[...]

  • Page 101

    Appendix A. Using the fake W AP sender This appendix explains ho w to use the fake W AP sender to test the gatew ay . 94[...]

  • Page 102

    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 set up system for fakesmsc use. Compiling fakesmsc T[...]

  • Page 103

    Appendix B. Using the fake SMS center Options and messages are explained belo w , but as a quick example, a typical startup can go like this: test/fakesmsc -i 0.1 -m 100 "100 200 text nop" "100 300 text echo this" This tells fakesmsc to connect to bearerbox at localhost:10000 (def ault) and send a hundred messages with an interv[...]

  • Page 104

    Appendix B. Using the fake SMS center Switch V alue Description -m max Send a maximum of max messages. V alue -1 means that an unlimited number of messages is sent. Default -1. Using 0 can be useful to listen for messages sent via other channels. In addition, fakesmsc accepts all common Kannel Command line options lik e --verbosity . 97[...]

  • Page 105

    Appendix C. Setting up a test en vir onment f or Push Pr o xy Gatewa y This appendix explains ho w to set a test en vironment for PPG. This contains a simulated SMSC, for instance a http server simulation (this is used as e xample, because it is simplest) and a simulated push initiator . Between them, there is the push proxy gate way to be tested. [...]

  • Page 106

    Appendix C. Setting up a test en vir onment for Push Pr oxy Gateway si-expires="2002-06-30T00:00:00Z"> Want to test a fetch? </indication> </si> Note that the date value of the si-e xpires attribute contains trailing zeroes. The y are OK here, because SI tokenizer remov es them. But phones does not accept them in the final[...]

  • Page 107

    Appendix C. Setting up a test en vir onment for Push Pr oxy Gateway second one pap control document. (For command line options, see T able C.1.). For example doing one push(you can simplify push url by setting a ppg configuration variable, see "Setting up push proxy gate way"; q flag here prev ents dumping of test_ppg program debugging [...]

  • Page 108

    Appendix C. Setting up a test en vir onment for Push Pr oxy Gateway Using Nokia T oolkit as a par t of a developing en vironment This chapter describes a dev eloping en vironment using Nokia T oolkit instead of test_http_server program. Y ou cannot use a real phone for testing a push server . Sending random messages to a phone does not work, becaus[...]

  • Page 109

    Appendix C. Setting up a test en vir onment for Push Pr oxy Gateway group = test-ppg retries = 2 pi-ssl = yes ssl-client-certkey-file = /home/aarno/kannelcvs/gateway/gw/certkey.pem group = configuration push-url = https://localhost:8900/wappush pap-file = /home/aarno/test/ipnoqos.txt content-file = /home/aarno/test/si.txt username = foo password = [...]

  • Page 110

    Appendix C. Setting up a test en vir onment for Push Pr oxy Gateway Directive V alue Description content-file filename Mandatory value. File containing pap request’ s content document. username string Mandatory value. PPG service user’ s username. password string Mandatory value. PPG service user’ s password. 103[...]

  • Page 111

    Appendix D . Setting up a dial-up line This appendix explains ho w to set up a dial-up line in Linux for use with the Kannel W AP gate way . In order for it to work you need a Linux kernel with PPP capabilities. Most distrib utions provides PPP kernel support by default. F or more information how to compile PPP support into the k ernel please read [...]

  • Page 112

    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 one assigned 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 continuous connection security off bearer data dial [...]

  • Page 113

    Appendix E. Log files This appendix describes the log file format. Bearerbo x 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] V ariable V alue Description Date 2001-01-01 12:00:00 Date Result Sent SMS Result: Send, failed, DLR (deliv er report), Receiv ed, etc. S[...]

  • Page 114

    Appendix E. Log files daily missingok rotate 365 compress delaycompress notifempty create 640 kannel adm sharedscripts postrotate killall -HUP bearerbox smsbox wapbox || true > /dev/null 2> /dev/null endscript } 107[...]

  • Page 115

    Glossary M MO Mobile Originated - a SMS from mobile to application MT Mobile T erminated - a SMS from application to mobile MWI Message W aiting Indicator (See [BIBLIO-3GPP-23038]) MClass Message Class (See [BIBLIO-3GPP-23038]) Coding Message Coding (See [BIBLIO-3GPP-23038]) 108[...]

  • Page 116

    Bibliograph y RFC 2616 - Hypertext T ransfer Pr otocol -- 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.org/ftp/Specs/latest/Rel-5/23_series/23040-5[...]