1 /* ==================================================================== 2 * The Kannel Software License, Version 1.0 3 * 4 * Copyright (c) 2001-2014 Kannel Group 5 * Copyright (c) 1998-2001 WapIT Ltd. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 12 * 1. Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 15 * 2. Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in 17 * the documentation and/or other materials provided with the 18 * distribution. 19 * 20 * 3. The end-user documentation included with the redistribution, 21 * if any, must include the following acknowledgment: 22 * "This product includes software developed by the 23 * Kannel Group (http://www.kannel.org/)." 24 * Alternately, this acknowledgment may appear in the software itself, 25 * if and wherever such third-party acknowledgments normally appear. 26 * 27 * 4. The names "Kannel" and "Kannel Group" must not be used to 28 * endorse or promote products derived from this software without 29 * prior written permission. For written permission, please 30 * contact org@kannel.org. 31 * 32 * 5. Products derived from this software may not be called "Kannel", 33 * nor may "Kannel" appear in their name, without prior written 34 * permission of the Kannel Group. 35 * 36 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 37 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 38 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 39 * DISCLAIMED. IN NO EVENT SHALL THE KANNEL GROUP OR ITS CONTRIBUTORS 40 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 41 * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 42 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 43 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 44 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 45 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 46 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 47 * ==================================================================== 48 * 49 * This software consists of voluntary contributions made by many 50 * individuals on behalf of the Kannel Group. For more information on 51 * the Kannel Group, please see <http://www.kannel.org/>. 52 * 53 * Portions of this software are based upon software originally written at 54 * WapIT Ltd., Helsinki, Finland for the Kannel project. 55 */ 56 57 /* 58 * ota_prov_attr.h: binary encoded XML tag constants for the OTA provisioning 59 * 60 * In order to make handsets accept browser settings sent over the air, the 61 * settings must be provided in a binary encoded XML document with a specific 62 * MIME-type depending on the setting type. The settings must be pushed over 63 * SMS to a predefined WDP (Wireless Datagram Protocol) port (49999) as a WSP 64 * (Wirless Session Protocol) connection less unsecure push. Handsets able to 65 * receive settings over the air must always listen on this port. 66 * 67 * Two setting MIME-types are defined: 68 * 69 * - application/x-wap-prov.browser-settings 70 * - application/x-wap-prov.browser-bookmarks 71 * 72 * Description of the XML DTD (Document Type Definition): 73 * 74 * <!ELEMENT CHARACTERISTIC-LIST(CHARACTERISTIC)+> 75 * <!ELEMENT CHARACTERISTIC(PARM*)> 76 * <!ATTLIST CHARACTERISTIC 77 * TYPE CDATA #REQUIRED 78 * VALUE CDATA #IMPLIED 79 * > 80 * <!ELEMENT PARM EMPTY> 81 * <!ATTLIST PARM 82 * NAME CDATA #REQUIRED 83 * VALUE CDATA #REQUIRED 84 * > 85 * 86 * Simple example of a XML document: 87 * 88 * <?xml version="1.0"?> 89 * <!DOCTYPE CHARACTERISTIC-LIST SYSTEM "/DTD/characteristic_list.xml"> 90 * <CHARACTERISTIC-LIST> 91 * <CHARACTERISTIC TYPE="ADDRESS"> 92 * <PARM NAME="BEARER" VALUE="GSM/CSD"/> 93 * <PARM NAME="PROXY" VALUE="10.11.12.13"/> 94 * <PARM NAME="CSD_DIALSTRING" VALUE="013456789"/> 95 * <PARM NAME="PPP_AUTHTYPE" VALUE="PAP"/> 96 * <PARM NAME="PPP_AUTHNAME" VALUE="wapusr"/> 97 * <PARM NAME="PPP_AUTHSECRET" VALUE"thepasswd"/> 98 * </CHARACTERISTIC> 99 * <CHARACTERISTIC TYPE="NAME"> 100 * <PARM NAME="NAME" VALUE="Our company's WAP settings"/> 101 * </CHARACTERISTIC> 102 * <CHARACTERISTIC TYPE="URL" VALUE="http://wap.company.com"/> 103 * <CHARACTERISTIC TYPE="MMSURL" VALUE="http://mms.company.com"/> 104 * <CHARACTERISTIC TYPE="BOOKMARK"> 105 * <PARM NAME="NAME" VALUE="Our company's WAP site"/> 106 * <PARM NAME="URL" VALUE="http://wap.company.com"/> 107 * </CHARACTERISTIC> 108 * </CHARACTERISTIC-LIST> 109 * 110 * (based upon the Nokia Over The Air Settings Specification) 111 * 112 * initial re-engineered code by Yann Muller - 3G Lab, 2000. 113 * fixed to support official specs by Stipe Tolj - Wapme Systems AG, 2001. 114 * extensive inline documentation by Stipe Tolj - Wapme Systems AG, 2001. 115 */ 116 117 /* 118 * The XML document which is build in smsbox.c:smsbox_req_sendota() is 119 * binary encoded according to WBXML with the following global tokens 120 */ 121 122 #define WBXML_TOK_END_STR_I 0x00 123 #define WBXML_TOK_END 0x01 124 #define WBXML_TOK_STR_I 0x03 125 126 127 /******************************************************************** 128 * Description of the single XML tag tokens 129 */ 130 131 #define WBXML_TOK_CHARACTERISTIC_LIST 0x05 132 133 /* 134 * This element groups the browser settings into logical different types: 135 * ADDRESS, BOOKMARK, URL, MMSURL, NAME and ID. 136 */ 137 #define WBXML_TOK_CHARACTERISTIC 0x06 138 139 /* 140 * The PARM element is used to provide the actual value for the individual 141 * settings parameters within each CHARACTERISTIC element. 142 */ 143 #define WBXML_TOK_PARM 0x07 144 145 /* 146 * Tokens representing the NAME or VALUE tags 147 */ 148 #define WBXML_TOK_NAME 0x10 149 #define WBXML_TOK_VALUE 0x11 150 151 152 /******************************************************************** 153 * CHARACTERISTIC elements with TYPE=ADDRESS 154 * 155 * Characteristics elements with the TYPE=ADDRESS attribute embrace settings 156 * concerning a particular bearer, e.g. GSM/SMS or GSM/CSD. Several address 157 * settings can be provided in one document. However, for each bearer, only 158 * the address settings listed first will be used. The type of the bearer is 159 * specified by a PARM attribute and depending on the bearer additional PARM 160 * elements are required or optional. 161 * 162 * Example: 163 * 164 * <CHARACTERISTIC TYPE="ADDRESS"> 165 * <PARM NAME="BEARER" VALUE="GSM/CSD"/> 166 * <PARM NAME="PROXY" VALUE="10.11.12.13"/> 167 * <PARM NAME="CSD_DIALSTRING" VALUE="013456789"/> 168 * <PARM NAME="PPP_AUTHTYPE" VALUE="PAP"/> 169 * <PARM NAME="PPP_AUTHNAME" VALUE="wapusr"/> 170 * <PARM NAME="PPP_AUTHSECRET" VALUE"thepasswd"/> 171 * </CHARACTERISTIC> 172 */ 173 174 #define WBXML_TOK_TYPE_ADDRESS 0x06 175 176 /* 177 * The PARM element with NAME=BEARER attribute is used to identify the bearer 178 * to be used for a specific setting set. VALUE can be assigned following: 179 * 180 * VALUE -> [*GSM_CSD*|GSM_SMS|GSM_USSD|IS136_CSD|GPRS] 181 */ 182 #define WBXML_TOK_NAME_BEARER 0x12 183 184 #define WBXML_TOK_VALUE_GSM_CSD 0x45 185 #define WBXML_TOK_VALUE_GSM_SMS 0x46 186 #define WBXML_TOK_VALUE_GSM_USSD 0x47 187 #define WBXML_TOK_VALUE_IS136_CSD 0x48 188 #define WBXML_TOK_VALUE_GPRS 0x49 189 190 /* 191 * The PARM element with NAME=PROXY attribute is used to identify the IP 192 * address of the WAP proxy in case of CSD and the service number in case of 193 * SMS. In case of USSD the PROXY can be either an IP address or an MSISDN 194 * number. This is indicated in the PROXY_TYPE PARM element. VALUE can be 195 * assigned following: 196 * 197 * VALUE -> proxy(using inline string) 198 */ 199 #define WBXML_TOK_NAME_PROXY 0x13 200 201 /* 202 * The PARM element with NAME=PORT attribute specifies whether connection less 203 * or connection oriented connections should be used. VALUE can be assigned 204 * following: 205 * 206 * VALUE -> [*9200*|9201|9202|9203] 207 * 208 * Use 9200 (or 9202) for connection less connections and 9201 (or 9203) for 209 * connection oriented connections. Port numbers 9202 and 9203 enable secure 210 * connections (by means of WTLS), whereas port numbers 9200 and 9201 disable 211 * secure connections. 212 */ 213 #define WBXML_TOK_NAME_PORT 0x14 214 215 #define WBXML_TOK_VALUE_PORT_9200 0x60 216 #define WBXML_TOK_VALUE_PORT_9201 0x61 217 #define WBXML_TOK_VALUE_PORT_9202 0x62 218 #define WBXML_TOK_VALUE_PORT_9203 0x63 219 220 /* 221 * The PARM element with the NAME=PROXY_TYPE attribute is used to identify 222 * the format of the PROXY PARM element. VALUE can be assigned following: 223 * 224 * VALUE -> [*MSISDN_NO*|IPV4] 225 */ 226 #define WBXML_TOK_NAME_PROXY_TYPE 0x16 227 228 #define WBXML_TOK_VALUE_MSISDN_NO 0x76 229 #define WBXML_TOK_VALUE_IPV4 0x77 230 231 /* 232 * The PARM elements with the NAME=PROXY_AUTHNAME and NAME=PROXY_AUTHSECRET 233 * attributes indicates the login name and password to be used for gateway 234 * required authentication. Support of this PARM elements is manufacturer 235 * specific. VALUEs can be assigned following: 236 * 237 * VALUE -> login name(using inline string) 238 * VALUE -> password(using inline string) 239 */ 240 #define WBXML_TOK_NAME_PROXY_AUTHNAME 0x18 241 #define WBXML_TOK_NAME_PROXY_AUTHSECRET 0x19 242 243 /* 244 * The PARM element with the NAME=PROXY_LOGINTYPE attribute specifies whether 245 * an automatic or manual login should be performed at the proxy. VALUE can 246 * be assigned following: 247 * 248 * VALUE -> [AUTOMATIC|MANUAL] 249 * 250 * Using the MANUAL logintype the user will be prompted for username and 251 * password when a browse session is started. Using the AUTOMATIC logintype 252 * the user will be NOT prompted for username and password when a browse 253 * session is started, but a static name and password from the WAP settingset 254 * will be used. 255 */ 256 #define WBXML_TOK_NAME_PROXY_LOGINTYPE 0x1E 257 258 #define WBXML_TOK_VALUE_AUTOMATIC 0x64 259 #define WBXML_TOK_VALUE_MANUAL 0x65 260 261 /* 262 * The PARM element with the NAME=PPP_AUTHTYPE attribute indicates which 263 * protocol to use for user authentication. VALUE can be assigned following: 264 * 265 * VALUE -> [*PAP*|CHAP|MS_CHAP] 266 * 267 * PAP is short for Password Authentication Protocol, a type of authentication 268 * which uses clear-text passwords and is the least sophisticated 269 * authentication protocol, and CHAP stands for Challenge Handshake 270 * Authentication Protocol, a protocol used to negotiate the most secure form 271 * of encrypted authentication supported by both server and client. MS_CHAP 272 * (Microsoft(tm)-CHAP) is similar to the CHAP protocol, but is using an 273 * encryption scheme that is alternative to the one used for CHAP. 274 */ 275 #define WBXML_TOK_NAME_PPP_AUTHTYPE 0x22 276 277 #define WBXML_TOK_VALUE_AUTH_PAP 0x70 278 #define WBXML_TOK_VALUE_AUTH_CHAP 0x71 279 #define WBXML_TOK_VALUE_AUTH_MS_CHAP 0x78 280 281 /* 282 * The PARM elements with the NAME=PPP_AUTHNAME and NAME=PPP_AUTHSECRET 283 * attributes indicate the login name and password to be used. VALUEs can be 284 * assigned following: 285 * 286 * VALUE -> login name(using inline string) 287 * VALUE -> password(using inline string) 288 * 289 * Maximum length of login name is 32 bytes. 290 * Maximum length of password is 20 bytes. 291 */ 292 #define WBXML_TOK_NAME_PPP_AUTHNAME 0x23 293 #define WBXML_TOK_NAME_PPP_AUTHSECRET 0x24 294 295 /* 296 * The PARM element with the NAME=PPP_LOGINTYPE attribute specifies whether an 297 * automatic or manual login should be performed in the PPP negotiation at the 298 * access point of the service provider. VALUE can be assigned following 299 * 300 * VALUE -> [AUTOMATIC|MANUAL] 301 * 302 * (same impacts as for PROXY_LOGINTYPE) 303 */ 304 #define WBXML_TOK_NAME_PPP_LOGINTYPE 0x1D 305 306 /* 307 * The PARM element with the NAME=CSD_DIALSTRING attribute specifies the 308 * MSISDN number of the modem pool. VALUE can be assigned following: 309 * 310 * VALUE -> msisdn number(using inline string) 311 * 312 * Maximum length of msisdn number is 21 bytes. 313 */ 314 #define WBXML_TOK_NAME_CSD_DIALSTRING 0x21 315 316 /* 317 * The PARM element with the NAME=CSD_CALLTYPE attribute indicates the type 318 * of circuit switched call to be used for connection. VALUE can be assigned 319 * following: 320 * 321 * VALUE -> [*ANALOGUE*|ISDN] 322 * 323 * (In general the call type should be set to ANALOGUE since ISDN is not 324 * generaly available on all networks.) 325 */ 326 #define WBXML_TOK_NAME_CSD_CALLTYPE 0x28 327 328 #define WBXML_TOK_VALUE_CONN_ANALOGUE 0x72 329 #define WBXML_TOK_VALUE_CONN_ISDN 0x73 330 331 /* 332 * The PARM element with the NAME=CSD_CALLSPEED attribute indicates the 333 * desired call speed to be used for the connection. VALUE can be assgined 334 * following: 335 * 336 * VALUE -> [*AUTO*|*9600*|14400|19200|28800|38400|43200|57600] 337 * 338 * Default value is AUTO when CSD_CALLTYPE is ANALOGUE and 9600 when 339 * CSD_CALLTYPE is ISDN. 340 */ 341 #define WBXML_TOK_NAME_CSD_CALLSPEED 0x29 342 343 #define WBXML_TOK_VALUE_SPEED_AUTO 0x6A 344 #define WBXML_TOK_VALUE_SPEED_9600 0x6B 345 #define WBXML_TOK_VALUE_SPEED_14400 0x6C 346 #define WBXML_TOK_VALUE_SPEED_19200 0x6D 347 #define WBXML_TOK_VALUE_SPEED_28800 0x6E 348 #define WBXML_TOK_VALUE_SPEED_38400 0x6F 349 #define WBXML_TOK_VALUE_SPEED_43200 0x74 350 #define WBXML_TOK_VALUE_SPEED_57600 0x75 351 352 /* 353 * The PARM element with the NAME=ISP_NAME attribute indicates the name of the 354 * Internet Service Provider. Support of this PARM element is manufacturer 355 * specific. VALUE can be assigned following: 356 * 357 * VALUE -> isp name(using inline string) 358 * 359 * Maximum length of isp name is 20 bytes. 360 */ 361 #define WBXML_TOK_NAME_ISP_NAME 0x7E 362 363 /* 364 * The PARM element with the NAME=SMS_SMSC_ADDRESS attribute indicates the 365 * MSISDN number of the SMS Service Center (SMSC). VALUE can be assigned 366 * following: 367 * 368 * VALUE -> sms smsc address(using inline string) 369 * 370 * Maximum length of sms smsc address is 21 bytes. 371 */ 372 #define WBXML_TOK_NAME_SMS_SMSC_ADDRESS 0x1A 373 374 /* 375 * The PARM element with the name NAME=USSD_SERVICE_CODE attribute indicates 376 * the USSD service code. VALUE can be assigned following: 377 * 378 * VALUE -> ussd service code(using inline string) 379 * 380 * Maximum length of ussd service code is 10 bytes. 381 */ 382 #define WBXML_TOK_NAME_USSD_SERVICE_CODE 0x1B 383 384 /* 385 * The PARM element with the NAME=GPRS_ACCESSPOINTNAME attribute indicates 386 * the access point name on Gateway GRPS Support Nodes (GGSN). Allowed 387 * characters are: ['a'-'z','A'-'Z','0'-'9','.','-','*'] 388 * 389 * VALUE -> acess point name(using inline string) 390 * 391 * Maximum length of access point name is 100 bytes. 392 */ 393 #define WBXML_TOK_NAME_GPRS_ACCESSPOINTNAME 0x1C 394 395 396 /******************************************************************** 397 * CHARACTERISTIC elements with TYPE=URL 398 * 399 * The CHARACTERISTIC element with the TYPE=URL attribute has only one 400 * attribute which indicates the URL of the home page. VALUES can be assigned 401 * following: 402 * 403 * VALUE -> url(using inline string) 404 * 405 * Maximum length of URL is 100 bytes. 406 * 407 * Example: 408 * 409 * <CHARACTERISTIC TYPE="URL" VALUE="http://wap.company.com"/> 410 */ 411 412 #define WBXML_TOK_TYPE_URL 0x07 413 414 415 /******************************************************************** 416 * CHARACTERISTIC elements with TYPE=MMSURL 417 * 418 * The CHARACTERISTIC element with the TYPE=MMSURL attribute has only one 419 * attribute which indicates the URL of the MMSC. VALUES can be assigned 420 * following: 421 * 422 * VALUE -> url(using inline string) 423 * 424 * Maximum length of URL is 100 bytes. 425 * 426 * Example: 427 * 428 * <CHARACTERISTIC TYPE="MMSURL" VALUE="http://wap.company.com/mmsc"/> 429 */ 430 431 #define WBXML_TOK_TYPE_MMSURL 0x7C 432 433 434 /******************************************************************** 435 * CHARACTERISTIC elements with TYPE=NAME 436 * 437 * This element type must contain exactly one PARM element with NAME=NAME, 438 * which states the user-recognisable name to apply for the settings. The 439 * VALUE of the PARM element can be assigned following: 440 * 441 * VALUE -> name(using inline string) 442 * 443 * Maximum length of name is 20 bytes. 444 * 445 * Example: 446 * 447 * <CHARACTERISTIC TYPE="NAME"> 448 * <PARM NAME="NAME" VALUE="Our company's WAP settings"/> 449 * </CHARACTERISTIC> 450 */ 451 452 #define WBXML_TOK_TYPE_NAME 0x08 453 454 455 /******************************************************************** 456 * CHARACTERISTIC elements with TYPE=BOOKMARK 457 * 458 * This element must contain exactly two PARM elements, which define the 459 * name and URL for a homepage or for bookmarks. 460 * 461 * When this element is used with the MIME-type *.browser-settings the first 462 * element indicates the homepage to be used together with the corresponding 463 * settings. Note that the URL included in this element and the CHARACTERISTIC 464 * element TYPE=URL are both required to define a homepage and their content 465 * must be equal. A homepage and several bookmarks can be provided in one 466 * document of the MIME-type referred to above. However, the maximum number of 467 * bookmarks accepted is manufacturer specific. 468 * 469 * When this element is used with the MIME-type *.browser-bookmarks the 470 * element indicates bookmarks only 471 * 472 * Example: 473 * 474 * <CHARACTERISTIC TYPE="BOOKMARK"> 475 * <PARM NAME="NAME" VALUE="Our company's WAP site"/> 476 * <PARM NAME="URL" VALUE="http://wap.company.com"/> 477 * </CHARACTERISTIC> 478 */ 479 480 #define WBXML_TOK_TYPE_BOOKMARK 0x7F 481 482 /* 483 * The PARM element with the NAME=NAME attribute indicates the name of the 484 * bookmark or homepage. VALUE can be assigned following: 485 * 486 * VALUE -> bookmark name(using inline string) 487 * 488 * Maximum length of bookmark name is 50 bytes. 489 */ 490 #define WBXML_TOK_NAME_NAME 0x15 491 492 /* 493 * The PARM element with the NAME=URL attribute indicates the URL of the 494 * bookmark or homepage. VALUE can be assigned following: 495 * 496 * VALUE -> bookmark url(using inline string) 497 * 498 * Maximum length of bookmark url is 255 bytes. 499 */ 500 #define WBXML_TOK_NAME_URL 0x17 501 502 503 /******************************************************************** 504 * CHARACTERISTIC elements with TYPE=ID 505 * 506 * This element type must contain exactly one PARM element, which defines an 507 * ID to be used to provide some security to the provisioning application. 508 * The ID should be known by the subscriber through the subscription or 509 * through other communication with the operator. When provisioning data 510 * containing the ID is received the user is able to verify the received ID 511 * with the ID previously received by other means from the operator. Support 512 * of this CHARACTERISTIC element is manufacturer specific. 513 * 514 * Example: 515 * 516 * <CHARACTERISTIC TYPE="ID"> 517 * <PARM NAME="NAME" VALUE="12345678"/> 518 * </CHARACTERISTIC> 519 */ 520 521 #define WBXML_TOK_TYPE_ID 0x7D 522 523 /* 524 * The PARM elment with the NAME=NAME attribute indicates the ID. VALUE can be 525 * assigned following: 526 * 527 * VALUE -> id(using inline string) 528 * 529 * Maximum length of id is 8 bytes. 530 */ 531 532 /* end of ota_prov_attr.h */ 533