ok, so Kannel does not support "string table" creation in the OTA compiler module. The string table defines specific "own tokens" that are not pre-defined from any specs, but create a sort of "shortcode" for literal strings.
See attached a sample XML, then the corresponding WBXML output of libwxml's xml2wbxml WITH string table crating, WITHOUT string table creation and Kannel's test_ota output. In addition hexdump -C output of all 3 variants are included. What we see is that Kannel's OTA compiler produces a 919 byte block, the libwbxml creates 710 bytes even with no string table usage, and 601 bytes with string table use. So this is a 30% gap between the best and worst :/ We need to do something here. Anyone willing to pick up the item and go into the deeps of the gw/ota_compiler.c module for it? Stipe -- ------------------------------------------------------------------- Kölner Landstrasse 419 40589 Düsseldorf, NRW, Germany tolj.org system architecture Kannel Software Foundation (KSF) http://www.tolj.org/ http://www.kannel.org/ mailto:st_{at}_tolj.org mailto:stolj_{at}_kannel.org -------------------------------------------------------------------
00000000 03 0b 6a 52 57 4c 41 4e 00 50 52 4f 56 00 73 69 |..jRWLAN.PROV.si| 00000010 70 72 65 66 00 43 4f 44 45 43 00 4d 45 44 49 41 |pref.CODEC.MEDIA| 00000020 53 55 42 54 59 50 45 00 50 52 49 4f 52 49 54 59 |SUBTYPE.PRIORITY| 00000030 49 4e 44 45 58 00 61 75 74 68 6e 61 6d 65 00 61 |INDEX.authname.a| 00000040 75 74 68 73 65 63 72 65 74 00 66 6f 6f 2e 62 61 |uthsecret.foo.ba| 00000050 72 2e 63 6f 6d 00 c5 45 03 31 2e 31 00 01 c6 55 |r.com..E.1.1...U| 00000060 01 87 07 06 03 41 50 00 01 87 11 06 03 41 50 00 |.....AP......AP.| 00000070 01 87 00 01 38 00 00 06 03 41 50 00 01 87 10 06 |....8....AP.....| 00000080 83 00 01 c6 50 83 00 01 87 05 03 50 52 49 2d 53 |....P......PRI-S| 00000090 53 49 44 00 06 03 41 50 00 01 87 05 03 4e 45 54 |SID...AP.....NET| 000000a0 4d 4f 44 45 00 06 03 49 4e 46 52 41 00 01 01 01 |MODE...INFRA....| 000000b0 c6 00 01 55 01 87 36 00 00 06 03 77 39 30 31 33 |...U..6....w9013| 000000c0 00 01 87 00 01 38 00 00 06 83 05 01 87 07 06 83 |.....8..........| 000000d0 05 01 87 05 03 54 4f 2d 41 50 50 52 45 46 00 06 |.....TO-APPREF..| 000000e0 83 0a 01 87 05 03 55 41 48 53 54 52 49 4e 47 00 |......UAHSTRING.| 000000f0 06 03 48 65 6c 6c 6f 21 00 01 c6 50 83 11 01 87 |..Hello!...P....| 00000100 05 83 17 06 03 33 00 01 87 05 83 24 06 03 30 00 |.....3.....$..0.| 00000110 01 01 c6 50 83 11 01 87 05 83 17 06 03 30 00 01 |...P.........0..| 00000120 87 05 83 24 06 03 31 00 01 01 c6 50 83 11 01 87 |...$..1....P....| 00000130 05 83 17 06 03 34 00 01 87 05 83 24 06 03 32 00 |.....4.....$..2.| 00000140 01 01 01 c6 00 01 55 01 87 36 00 00 06 03 77 39 |......U..6....w9| 00000150 30 31 30 00 01 87 07 06 03 53 6f 6d 65 20 4e 61 |010......Some Na| 00000160 6e 65 00 01 87 05 03 41 50 50 52 45 46 00 06 83 |ne.....APPREF...| 00000170 0a 01 87 00 01 38 00 00 06 83 0a 01 87 05 03 50 |.....8.........P| 00000180 54 59 50 45 00 06 03 49 45 54 46 00 01 87 05 03 |TYPE...IETF.....| 00000190 50 55 49 44 00 06 03 78 78 78 78 78 78 78 78 78 |PUID...xxxxxxxxx| 000001a0 78 20 61 74 20 00 83 46 01 87 22 06 03 41 50 00 |x at ..F.."..AP.| 000001b0 01 87 00 01 37 00 00 06 03 55 44 50 00 01 c6 00 |....7....UDP....| 000001c0 01 56 01 87 34 00 00 06 03 73 69 70 3a 31 30 2e |.V..4....sip:10.| 000001d0 31 30 2e 31 30 2e 31 00 01 c6 53 01 87 23 06 03 |10.10.1...S..#..| 000001e0 35 30 36 30 00 01 01 01 c6 00 01 57 01 87 31 00 |5060.......W..1.| 000001f0 00 06 83 32 01 87 00 01 32 00 00 06 83 3b 01 87 |...2....2....;..| 00000200 00 01 2f 00 00 06 83 46 01 01 c6 00 01 59 01 87 |../....F.....Y..| 00000210 3a 00 00 06 03 73 69 70 3a 31 30 2e 31 30 2e 31 |:....sip:10.10.1| 00000220 30 2e 31 3a 35 30 36 30 3b 74 72 61 6e 73 70 6f |0.1:5060;transpo| 00000230 72 74 3d 55 44 50 00 01 87 00 01 31 00 00 06 83 |rt=UDP.....1....| 00000240 32 01 87 00 01 32 00 00 06 83 3b 01 87 00 01 2f |2....2....;..../| 00000250 00 00 06 83 46 01 01 01 01 |....F....| 00000259
voip.wbxml
Description: Binary data
<?xml version="1.0"?> <!DOCTYPE wap-provisioningdoc PUBLIC "-//WAPFORUM//DTD PROV 1.0//EN" " http://www.wapforum.org/DTD/prov.dtd"> <wap-provisioningdoc version="1.1"> <!-- WLAN Access point settings --> <characteristic type="NAPDEF"> <parm name="NAME" value="AP"/> <parm name="NAPID" value="AP"/> <parm name="PROVIDER-ID" value="AP"/> <parm name="BEARER" value="WLAN"/> <characteristic type="WLAN"> <parm name="PRI-SSID" value="AP"/> <parm name="NETMODE" value="INFRA"/> </characteristic> </characteristic> <!-- WLAN Access point settings end --> <!-- VoIP profile settings --> <characteristic type="APPLICATION"> <parm name="APPID" value="w9013"/> <parm name="PROVIDER-ID" value="PROV"/> <parm name="NAME" value="PROV"/> <parm name="TO-APPREF" value="sipref"/> <parm name="UAHSTRING" value="Hello!"/> <characteristic type="CODEC"> <parm name="MEDIASUBTYPE" value="3"/> <parm name="PRIORITYINDEX" value="0"/> </characteristic> <characteristic type="CODEC"> <parm name="MEDIASUBTYPE" value="0"/> <parm name="PRIORITYINDEX" value="1"/> </characteristic> <characteristic type="CODEC"> <parm name="MEDIASUBTYPE" value="4"/> <parm name="PRIORITYINDEX" value="2"/> </characteristic> </characteristic> <!-- VoIP profile settings end --> <!-- SIP profile settings end --> <characteristic type="APPLICATION"> <parm name="APPID" value="w9010"/> <parm name="NAME" value="Some Nane"/> <parm name="APPREF" value="sipref"/> <parm name="PROVIDER-ID" value="sipref"/> <parm name="PTYPE" value="IETF"/> <parm name="PUID" value="xxxxxxxxxx at foo.bar.com"/> <parm name="TO-NAPID" value="AP"/> <parm name="APROTOCOL" value="UDP"/> <characteristic type="APPADDR"> <parm name="ADDR" value="sip:10.10.10.1"/> <characteristic type="PORT"> <parm name="PORTNBR" value="5060"/> </characteristic> </characteristic> <characteristic type="APPAUTH"> <parm name="AAUTHNAME" value="authname"/> <parm name="AAUTHSECRET" value="authsecret"/> <parm name="AAUTHDATA" value="foo.bar.com"/> </characteristic> <characteristic type="RESOURCE"> <parm name="URI" value="sip:10.10.10.1:5060;transport=UDP"/> <parm name="AAUTHNAME" value="authname"/> <parm name="AAUTHSECRET" value="authsecret"/> <parm name="AAUTHDATA" value="foo.bar.com"/> </characteristic> </characteristic> <!-- SIP profile settings end --> </wap-provisioningdoc>
00000000 03 0b 6a 00 c5 45 03 31 2e 31 00 01 c6 50 03 4e |..j..E.1.1...P.N| 00000010 41 50 44 45 46 00 01 87 05 03 4e 41 4d 45 00 06 |APDEF.....NAME..| 00000020 03 41 50 00 01 87 05 03 4e 41 50 49 44 00 06 03 |.AP.....NAPID...| 00000030 41 50 00 01 87 05 03 50 52 4f 56 49 44 45 52 2d |AP.....PROVIDER-| 00000040 49 44 00 06 03 41 50 00 01 87 05 03 42 45 41 52 |ID...AP.....BEAR| 00000050 45 52 00 06 03 57 4c 41 4e 00 01 c6 50 03 57 4c |ER...WLAN...P.WL| 00000060 41 4e 00 01 87 05 03 50 52 49 2d 53 53 49 44 00 |AN.....PRI-SSID.| 00000070 06 03 41 50 00 01 87 05 03 4e 45 54 4d 4f 44 45 |..AP.....NETMODE| 00000080 00 06 03 49 4e 46 52 41 00 01 01 01 c6 50 03 41 |...INFRA.....P.A| 00000090 50 50 4c 49 43 41 54 49 4f 4e 00 01 87 05 03 41 |PPLICATION.....A| 000000a0 50 50 49 44 00 06 03 77 39 30 31 33 00 01 87 05 |PPID...w9013....| 000000b0 03 50 52 4f 56 49 44 45 52 2d 49 44 00 06 03 50 |.PROVIDER-ID...P| 000000c0 52 4f 56 00 01 87 05 03 4e 41 4d 45 00 06 03 50 |ROV.....NAME...P| 000000d0 52 4f 56 00 01 87 05 03 54 4f 2d 41 50 50 52 45 |ROV.....TO-APPRE| 000000e0 46 00 06 03 73 69 70 72 65 66 00 01 87 05 03 55 |F...sipref.....U| 000000f0 41 48 53 54 52 49 4e 47 00 06 03 48 65 6c 6c 6f |AHSTRING...Hello| 00000100 21 00 01 c6 50 03 43 4f 44 45 43 00 01 87 05 03 |!...P.CODEC.....| 00000110 4d 45 44 49 41 53 55 42 54 59 50 45 00 06 03 33 |MEDIASUBTYPE...3| 00000120 00 01 87 05 03 50 52 49 4f 52 49 54 59 49 4e 44 |.....PRIORITYIND| 00000130 45 58 00 06 03 30 00 01 01 c6 50 03 43 4f 44 45 |EX...0....P.CODE| 00000140 43 00 01 87 05 03 4d 45 44 49 41 53 55 42 54 59 |C.....MEDIASUBTY| 00000150 50 45 00 06 03 30 00 01 87 05 03 50 52 49 4f 52 |PE...0.....PRIOR| 00000160 49 54 59 49 4e 44 45 58 00 06 03 31 00 01 01 c6 |ITYINDEX...1....| 00000170 50 03 43 4f 44 45 43 00 01 87 05 03 4d 45 44 49 |P.CODEC.....MEDI| 00000180 41 53 55 42 54 59 50 45 00 06 03 34 00 01 87 05 |ASUBTYPE...4....| 00000190 03 50 52 49 4f 52 49 54 59 49 4e 44 45 58 00 06 |.PRIORITYINDEX..| 000001a0 03 32 00 01 01 01 c6 50 03 41 50 50 4c 49 43 41 |.2.....P.APPLICA| 000001b0 54 49 4f 4e 00 01 87 05 03 41 50 50 49 44 00 06 |TION.....APPID..| 000001c0 03 77 39 30 31 30 00 01 87 05 03 4e 41 4d 45 00 |.w9010.....NAME.| 000001d0 06 03 53 6f 6d 65 20 4e 61 6e 65 00 01 87 05 03 |..Some Nane.....| 000001e0 41 50 50 52 45 46 00 06 03 73 69 70 72 65 66 00 |APPREF...sipref.| 000001f0 01 87 05 03 50 52 4f 56 49 44 45 52 2d 49 44 00 |....PROVIDER-ID.| 00000200 06 03 73 69 70 72 65 66 00 01 87 05 03 50 54 59 |..sipref.....PTY| 00000210 50 45 00 06 03 49 45 54 46 00 01 87 05 03 50 55 |PE...IETF.....PU| 00000220 49 44 00 06 03 78 78 78 78 78 78 78 78 78 78 20 |ID...xxxxxxxxxx | 00000230 61 74 20 66 6f 6f 2e 62 61 72 2e 63 6f 6d 00 01 |at foo.bar.com..| 00000240 87 05 03 54 4f 2d 4e 41 50 49 44 00 06 03 41 50 |...TO-NAPID...AP| 00000250 00 01 87 05 03 41 50 52 4f 54 4f 43 4f 4c 00 06 |.....APROTOCOL..| 00000260 03 55 44 50 00 01 c6 50 03 41 50 50 41 44 44 52 |.UDP...P.APPADDR| 00000270 00 01 87 05 03 41 44 44 52 00 06 03 73 69 70 3a |.....ADDR...sip:| 00000280 31 30 2e 31 30 2e 31 30 2e 31 00 01 c6 50 03 50 |10.10.10.1...P.P| 00000290 4f 52 54 00 01 87 05 03 50 4f 52 54 4e 42 52 00 |ORT.....PORTNBR.| 000002a0 06 03 35 30 36 30 00 01 01 01 c6 50 03 41 50 50 |..5060.....P.APP| 000002b0 41 55 54 48 00 01 87 05 03 41 41 55 54 48 4e 41 |AUTH.....AAUTHNA| 000002c0 4d 45 00 06 03 61 75 74 68 6e 61 6d 65 00 01 87 |ME...authname...| 000002d0 05 03 41 41 55 54 48 53 45 43 52 45 54 00 06 03 |..AAUTHSECRET...| 000002e0 61 75 74 68 73 65 63 72 65 74 00 01 87 05 03 41 |authsecret.....A| 000002f0 41 55 54 48 44 41 54 41 00 06 03 66 6f 6f 2e 62 |AUTHDATA...foo.b| 00000300 61 72 2e 63 6f 6d 00 01 01 c6 50 03 52 45 53 4f |ar.com....P.RESO| 00000310 55 52 43 45 00 01 87 05 03 55 52 49 00 06 03 73 |URCE.....URI...s| 00000320 69 70 3a 31 30 2e 31 30 2e 31 30 2e 31 3a 35 30 |ip:10.10.10.1:50| 00000330 36 30 3b 74 72 61 6e 73 70 6f 72 74 3d 55 44 50 |60;transport=UDP| 00000340 00 01 87 05 03 41 41 55 54 48 4e 41 4d 45 00 06 |.....AAUTHNAME..| 00000350 03 61 75 74 68 6e 61 6d 65 00 01 87 05 03 41 41 |.authname.....AA| 00000360 55 54 48 53 45 43 52 45 54 00 06 03 61 75 74 68 |UTHSECRET...auth| 00000370 73 65 63 72 65 74 00 01 87 05 03 41 41 55 54 48 |secret.....AAUTH| 00000380 44 41 54 41 00 06 03 66 6f 6f 2e 62 61 72 2e 63 |DATA...foo.bar.c| 00000390 6f 6d 00 01 01 01 01 |om.....| 00000397
voip-kannel.wbxml
Description: Binary data
00000000 03 0b 6a 00 c5 45 03 31 2e 31 00 01 c6 55 01 87 |..j..E.1.1...U..| 00000010 07 06 03 41 50 00 01 87 11 06 03 41 50 00 01 87 |...AP......AP...| 00000020 00 01 38 00 00 06 03 41 50 00 01 87 10 06 03 57 |..8....AP......W| 00000030 4c 41 4e 00 01 c6 50 03 57 4c 41 4e 00 01 87 05 |LAN...P.WLAN....| 00000040 03 50 52 49 2d 53 53 49 44 00 06 03 41 50 00 01 |.PRI-SSID...AP..| 00000050 87 05 03 4e 45 54 4d 4f 44 45 00 06 03 49 4e 46 |...NETMODE...INF| 00000060 52 41 00 01 01 01 c6 00 01 55 01 87 36 00 00 06 |RA.......U..6...| 00000070 03 77 39 30 31 33 00 01 87 00 01 38 00 00 06 03 |.w9013.....8....| 00000080 50 52 4f 56 00 01 87 07 06 03 50 52 4f 56 00 01 |PROV......PROV..| 00000090 87 05 03 54 4f 2d 41 50 50 52 45 46 00 06 03 73 |...TO-APPREF...s| 000000a0 69 70 72 65 66 00 01 87 05 03 55 41 48 53 54 52 |ipref.....UAHSTR| 000000b0 49 4e 47 00 06 03 48 65 6c 6c 6f 21 00 01 c6 50 |ING...Hello!...P| 000000c0 03 43 4f 44 45 43 00 01 87 05 03 4d 45 44 49 41 |.CODEC.....MEDIA| 000000d0 53 55 42 54 59 50 45 00 06 03 33 00 01 87 05 03 |SUBTYPE...3.....| 000000e0 50 52 49 4f 52 49 54 59 49 4e 44 45 58 00 06 03 |PRIORITYINDEX...| 000000f0 30 00 01 01 c6 50 03 43 4f 44 45 43 00 01 87 05 |0....P.CODEC....| 00000100 03 4d 45 44 49 41 53 55 42 54 59 50 45 00 06 03 |.MEDIASUBTYPE...| 00000110 30 00 01 87 05 03 50 52 49 4f 52 49 54 59 49 4e |0.....PRIORITYIN| 00000120 44 45 58 00 06 03 31 00 01 01 c6 50 03 43 4f 44 |DEX...1....P.COD| 00000130 45 43 00 01 87 05 03 4d 45 44 49 41 53 55 42 54 |EC.....MEDIASUBT| 00000140 59 50 45 00 06 03 34 00 01 87 05 03 50 52 49 4f |YPE...4.....PRIO| 00000150 52 49 54 59 49 4e 44 45 58 00 06 03 32 00 01 01 |RITYINDEX...2...| 00000160 01 c6 00 01 55 01 87 36 00 00 06 03 77 39 30 31 |....U..6....w901| 00000170 30 00 01 87 07 06 03 53 6f 6d 65 20 4e 61 6e 65 |0......Some Nane| 00000180 00 01 87 05 03 41 50 50 52 45 46 00 06 03 73 69 |.....APPREF...si| 00000190 70 72 65 66 00 01 87 00 01 38 00 00 06 03 73 69 |pref.....8....si| 000001a0 70 72 65 66 00 01 87 05 03 50 54 59 50 45 00 06 |pref.....PTYPE..| 000001b0 03 49 45 54 46 00 01 87 05 03 50 55 49 44 00 06 |.IETF.....PUID..| 000001c0 03 78 78 78 78 78 78 78 78 78 78 20 61 74 20 66 |.xxxxxxxxxx at f| 000001d0 6f 6f 2e 62 61 72 2e 63 6f 6d 00 01 87 22 06 03 |oo.bar.com..."..| 000001e0 41 50 00 01 87 00 01 37 00 00 06 03 55 44 50 00 |AP.....7....UDP.| 000001f0 01 c6 00 01 56 01 87 34 00 00 06 03 73 69 70 3a |....V..4....sip:| 00000200 31 30 2e 31 30 2e 31 30 2e 31 00 01 c6 53 01 87 |10.10.10.1...S..| 00000210 23 06 03 35 30 36 30 00 01 01 01 c6 00 01 57 01 |#..5060.......W.| 00000220 87 31 00 00 06 03 61 75 74 68 6e 61 6d 65 00 01 |.1....authname..| 00000230 87 00 01 32 00 00 06 03 61 75 74 68 73 65 63 72 |...2....authsecr| 00000240 65 74 00 01 87 00 01 2f 00 00 06 03 66 6f 6f 2e |et...../....foo.| 00000250 62 61 72 2e 63 6f 6d 00 01 01 c6 00 01 59 01 87 |bar.com......Y..| 00000260 3a 00 00 06 03 73 69 70 3a 31 30 2e 31 30 2e 31 |:....sip:10.10.1| 00000270 30 2e 31 3a 35 30 36 30 3b 74 72 61 6e 73 70 6f |0.1:5060;transpo| 00000280 72 74 3d 55 44 50 00 01 87 00 01 31 00 00 06 03 |rt=UDP.....1....| 00000290 61 75 74 68 6e 61 6d 65 00 01 87 00 01 32 00 00 |authname.....2..| 000002a0 06 03 61 75 74 68 73 65 63 72 65 74 00 01 87 00 |..authsecret....| 000002b0 01 2f 00 00 06 03 66 6f 6f 2e 62 61 72 2e 63 6f |./....foo.bar.co| 000002c0 6d 00 01 01 01 01 |m.....| 000002c6
voip-no-st.wbxml
Description: Binary data
