aastra-xml-php/XML-API.txt
2018-02-15 23:22:08 +01:00

25681 lines
489 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

XML API for Mitel SIP Phones
Firmware 5.0.0
JULY 2017
58015045-00
DEVELOPMENT GUIDE
The information conveyed in this document is confidential and proprietary to Mitel ® and is intended solely for Mitel employees
and members of Mitels reseller channel who specifically have a need to know this information. If you are not a Mitel employee
or a Mitel authorizedPARTNER, you are not the intended recipient of this information. Please delete or return any related
material. Mitel will enforce its right to protect its confidential and proprietary informationand failure to comply with the foregoing
may result in legal action against you or your company.
DEVELOPMENT GUIDE 58015045-00 | ii
TABLE OF CONTENTS
1
Introduction ...................................................................................................................................... 15
1.1
MITEL XML API .................................................................................................................................. 15
1.2
Revision History ................................................................................................................................. 15
1.2.1
Version 5.0.0 (6863i / 6865i / 6867i / 6869i / 6873i / 6920 / 6930 / 6940) ................................. 15
1.2.2
Version 4.3.0-SP1 (6863i / 6865i / 6867i / 6869i / 6873i) .......................................................... 16
1.2.3
Version 4.3.0 (6863i / 6865i / 6867i / 6869i / 6873i) .................................................................. 16
1.2.4
Version 4.2.0-SP1 (6863i / 6865i / 6867i / 6869i/ 6873i) ........................................................... 17
1.2.5
Version 4.2.0 (6863i / 6865i / 6867i / 6869i/ 6873i) ................................................................... 17
1.2.6
Version 4.1.0 (6863i / 6865i / 6867i / 6869i) ............................................................................. 17
1.2.7
Version 4.0.0 SP2 (6863i / 6865i / 6867i / 6869i) ...................................................................... 17
1.2.8
Version 4.0.0 SP1 (6863i / 6865i / 6867i / 6869i) ...................................................................... 17
1.2.9
Version 4.0.0 (6863i / 6865i / 6867i / 6869i) ............................................................................. 18
1.2.10
Version 3.3.1 SP4 (9143i / 9480i / 9480iCT / 6730i / 6731i / 6739i / 53i / 55i / 57i / 57iCT /
6863i / 6865i / 6867i) ................................................................................................................ 18
1.2.11
Version 3.3.1 SP3 (9143i / 9480i / 9480iCT / 6730i / 6731i / 6739i / 53i / 55i / 57i / 57iCT /
6863i / 6865i / 6867i) ................................................................................................................ 18
1.2.12
Version 3.3.1 SP 2(9143i/9480i/9480iCT/6730i/6731i/6739i/53i/55i/57i/57iCT) ........................ 18
1.2.13
Version 3.3.1 (9143i/9480i/9480iCT/6730i/6731i/6739i/53i/55i/57i/57iCT) ............................... 18
1.2.14
Version 3.3.0 (9143i/9480i/9480iCT/6730i/6731i/6739i/53i/55i/57i/57iCT) ............................... 18
1.2.15
Version 3.2.2 (9143i/9480i/9480iCT/6730i/6731i/6735i/6737i/6739i/53i/55i/57i/57iCT) ............ 19
1.2.16
Version 3.2.2 (9143i/9480i/9480iCT/6730i/6731i/6739i/53i/55i/57i/57iCT) ............................... 19
1.2.17
Version 3.2.1 (9143i/9480i/9480iCT/6730i/6731i/6739i/53i/55i/57i/57iCT) ............................... 19
1.2.18
Version 3.2.0 (9143i/9480i/9480iCT/6730i/6731i/6739i/53i/55i/57i/57iCT) ............................... 19
1.2.19
Version 3.0.1 (6739i)................................................................................................................. 20
1.2.20
Version 3.0.0 (6739i)................................................................................................................. 20
1.2.21
Version 2.6.0 (9143i/9480i/9480iCT/6730i/6731i/51i/53i/55i/57i/57i CT) .................................. 20
1.2.22
Version 2.5.3 (9143i/9480i/9480iCT/6730i/6731i/51i/53i/55i/57i/57iCT) ................................... 20
1.2.23
Version 2.5.2 (9143i/9480i/9480iCT/6730i/6731i/51i/53i/55i/57i/57i CT) .................................. 21
1.2.24
Version 2.4.1 (9143i/9480i/9480iCT/6730i/6731i/51i/53i/55i/57i/57i CT) .................................. 21
1.2.25
Version 2.4.0 (9143i/9480i/9480iCT/51i/53i/55i/57i/57i CT) ...................................................... 21
1.2.26
Version 2.3.1 (9143i/9480i/9480iCT/51i/53i/55i/57i/57i CT) ...................................................... 21
1.2.27
Version 2.3.0 (9143i/9480i/9480iCT/51i/53i/55i/57i/57i CT) ...................................................... 21
1.2.28
Version 2.2.1 (9143i/9480i/9480iCT/51i/53i/55i/57i/57i CT) ...................................................... 22
1.2.29
Version 2.2.0 (51i/53i/55i/57i/57i CT) ........................................................................................ 22
1.2.30
Version 2.1.1 (51i/53i/55i/57i/57i CT) ........................................................................................ 23
1.2.31
Version 2.1.0 (53i/55i/57i/57i CT) ............................................................................................. 23
1.2.32
Version 2.0.2 (53i/55i/57i/57i CT) ............................................................................................. 23
1.2.33
Version 2.0.1 (53i/55i/57i/57i CT) ............................................................................................. 23
iii | DEVELOPMENT GUIDE 58015045-00
1.2.34
Version 1.4.2 (9112i/9133i/480i/480i CT) ................................................................................. 24
1.2.35
Version 1.4.1 (9112i/9133i/480i/480i CT) ................................................................................. 24
1.2.36
Version 1.3.1 (9112i/9133i/480i/480i CT) ................................................................................. 25
1.2.37
Version 1.3.0 (9112i/9133i/480i/480i CT) ................................................................................. 25
2
XML and the Mitel SIP Phones ........................................................................................................ 26
2.1
What is XML? .................................................................................................................................... 26
2.2
Functionality....................................................................................................................................... 26
2.3
How does it work? ............................................................................................................................. 27
2.3.1
Phone initiated application ....................................................................................................... 27
2.3.2
Server initiated application ....................................................................................................... 27
2.4
System Architecture ........................................................................................................................... 28
2.4.1
Corporate applications ............................................................................................................. 28
2.4.2
Telephony applications ............................................................................................................. 29
2.5
Development environment ................................................................................................................. 29
2.5.1
Typical software architecture .................................................................................................... 29
2.5.2
Web server ............................................................................................................................... 30
2.5.3
Scripts/Languages.................................................................................................................... 30
2.5.4
XML Validation tools................................................................................................................. 30
2.6
XML format ........................................................................................................................................ 30
2.7
HTTP format ...................................................................................................................................... 31
2.8
XML display control and keys ............................................................................................................ 31
2.8.1
Mitel 6863i ................................................................................................................................ 32
2.8.2
Mitel 6865i ................................................................................................................................ 33
2.8.3
Mitel 6867i / Mitel 6920 ............................................................................................................ 34
2.8.4
Mitel 6869i / Mitel 6930 ............................................................................................................ 35
2.8.5
Mitel 6873i / Mitel 6940 ............................................................................................................ 35
3
Mitel IP Phone XML Objects ............................................................................................................ 37
3.1
TextMenu Object (All models)............................................................................................................ 38
3.1.1
Implementation (softkey and non softkey phones) ................................................................... 38
3.1.2
Implementation (6873i/6940) .................................................................................................... 39
3.1.3
XML Description ....................................................................................................................... 41
3.1.4
Examples ................................................................................................................................. 47
3.2
IconMenu Object (6867i/6869i and 6873i) ......................................................................................... 52
3.2.1
Implementation (6867i)............................................................................................................. 53
3.2.2
Implementation (6869i)............................................................................................................. 54
3.2.3
Implementation (6873i)............................................................................................................. 55
3.2.4
XML Description ....................................................................................................................... 56
3.2.5
Examples ................................................................................................................................. 61
3.3
ImageMenu Object (6867i/6869i/6873i/6920/6930/6940) .................................................................. 65
DEVELOPMENT GUIDE 58015045-00 | iv
3.3.1
Implementation (6867i/6920) .................................................................................................... 65
3.3.2
Implementation (6869i/6930) .................................................................................................... 66
3.3.3
Implementation (6873i/6940) .................................................................................................... 67
3.3.4
XML Description........................................................................................................................ 68
3.3.5
Examples .................................................................................................................................. 71
3.4
TextScreen Object (all models) .......................................................................................................... 72
3.4.1
Implementation (6863i/6865i) ................................................................................................... 72
3.4.2
Implementation (6867i/6869i) ................................................................................................... 72
3.4.3
Implementation (6873i/6940) .................................................................................................... 73
3.4.4
XML Description........................................................................................................................ 74
3.4.5
Examples .................................................................................................................................. 78
3.5
FormattedTextScreen Object (all models) .......................................................................................... 80
3.5.1
Implementation (6863i/6865i) ................................................................................................... 80
3.5.2
Implementation (6867i/6869i/6920/6930).................................................................................. 81
3.5.3
Implementation (6873i/6940) .................................................................................................... 82
3.5.4
XML Description........................................................................................................................ 84
3.5.5
Examples .................................................................................................................................. 90
3.6
ImageScreen Object (6867i/6869i/6873i/6920/6930/6940) ................................................................ 93
3.6.1
Implementation (6867i/6869i/6920/6930).................................................................................. 93
3.6.2
Implementation (6873i/6940) .................................................................................................... 94
3.6.3
XML Description........................................................................................................................ 95
3.6.4
Examples .................................................................................................................................. 99
3.7
InputScreen Object Single Input field (all models) ........................................................................... 99
3.7.1
Implementation (6863i/6865i) ................................................................................................. 100
3.7.2
Implementation (6867i/6869i/6920/6930)................................................................................ 100
3.7.3
Implementation (6873i/6940) .................................................................................................. 101
3.7.4
XML Description...................................................................................................................... 102
3.7.5
Input Type: IP ......................................................................................................................... 106
3.7.6
Input Type: Number ................................................................................................................ 107
3.7.7
Input Type: String or StringN .................................................................................................. 109
3.7.8
Input Type: timeUS ................................................................................................................. 112
3.7.9
Input Type: timeInt .................................................................................................................. 114
3.7.10
Input Type: dateUS ................................................................................................................. 116
3.7.11
Input Type: dateInt .................................................................................................................. 118
3.8
InputScreen Object Multiple Input fields (6867i / 6869i / 6873i / 6920 / 6930 / 6940) .................... 121
3.8.1
Implementation (6867i/6869i/6920/6930)................................................................................ 121
3.8.2
Implementation (6873i/6940) .................................................................................................. 122
3.8.3
XML Description...................................................................................................................... 123
3.8.4
Examples ................................................................................................................................ 129
3.9
PhoneStatus Object ......................................................................................................................... 133
v | DEVELOPMENT GUIDE 58015045-00
3.9.1
Implementation (6863i/6865i) ................................................................................................. 133
3.9.2
Implementation (6867i/6869i/6873i/6920/6930/6940) ............................................................ 133
3.9.3
XML Description ..................................................................................................................... 134
3.9.4
Examples ............................................................................................................................... 137
3.10 PhoneExecute Object (all models) ................................................................................................... 140
3.10.1
Implementation ....................................................................................................................... 140
3.10.2
XML Description ..................................................................................................................... 141
3.10.3
Examples ............................................................................................................................... 141
3.11 PhoneConfiguration Object (all models) .......................................................................................... 143
3.11.1
Implementation ....................................................................................................................... 143
3.11.2
XML Description ..................................................................................................................... 144
3.11.3
Examples ............................................................................................................................... 145
3.12 PhoneSoftkey Object (6867i/6869i/6873i/6920/6930/6940) ............................................................. 147
3.12.1
Implementation ....................................................................................................................... 147
3.12.2
XML Description ..................................................................................................................... 151
3.12.3
Examples ............................................................................................................................... 151
4
XML extensions ............................................................................................................................. 155
4.1
Customizable Softkeys ((6867i/6869i/6873i/6920/6930/6940))........................................................ 155
4.2
Graphics (6867i/6869i/6873i/6920/6930/6940) ................................................................................ 158
4.2.1
Images ................................................................................................................................... 158
4.2.2
Icons....................................................................................................................................... 159
4.2.3
Colors ..................................................................................................................................... 164
4.3
LED control ...................................................................................................................................... 165
4.3.1
Implementation (6867i/6869i/6920/6930) ............................................................................... 166
4.3.2
Implementation (6873i/6940) .................................................................................................. 168
4.3.3
XML Examples ....................................................................................................................... 170
4.4
RTP streaming ................................................................................................................................. 171
4.4.1
RTPRx .................................................................................................................................... 172
4.4.2
RTPTx .................................................................................................................................... 173
4.4.3
RTPMRx ................................................................................................................................. 175
4.4.4
RTPMTx ................................................................................................................................. 176
4.4.5
Interaction with action uris ...................................................................................................... 177
4.5
Keypress emulation ......................................................................................................................... 178
4.6
Wav file streaming ........................................................................................................................... 180
4.6.1
XML Commands..................................................................................................................... 180
4.6.2
File format .............................................................................................................................. 181
4.6.3
Interaction with action uris ...................................................................................................... 181
4.7
Wav file loop playback (melody) ...................................................................................................... 183
4.7.1
XML Commands..................................................................................................................... 183
DEVELOPMENT GUIDE 58015045-00 | vi
4.7.2
File format ............................................................................................................................... 184
4.8
Dial and DialLine URIs ..................................................................................................................... 184
4.9
Crash and configuration files retrieval .............................................................................................. 184
4.10 Special attributes .............................................................................................................................. 185
4.10.1
Beep ....................................................................................................................................... 185
4.10.2
Timeout ................................................................................................................................... 185
4.10.3
LockIn ..................................................................................................................................... 185
4.10.4
CallProtection ......................................................................................................................... 186
4.10.5
triggerDestroyOnExit............................................................................................................... 186
4.11 TextMenu or IconMenu user selection (6867i, 6869i, 6873i, 6920, 6930, 6940) .............................. 186
4.12 “Select” and “Dial” in the same TextMenu or IconMenu object ......................................................... 187
4.13 “Select”, “Dial” and “Dial2” behavior in a TextMenu or IconMenu object .......................................... 187
4.14 Refresh of an XML page................................................................................................................... 188
4.15 HTTP headers format for a phone HTTP GET ................................................................................. 188
4.15.1
User-Agent .............................................................................................................................. 188
4.15.2
X-Aaastra-ExpModi ................................................................................................................. 189
4.15.3
Accept-Language .................................................................................................................... 190
4.16 Some development guidelines ......................................................................................................... 190
5
URL Format and Variables............................................................................................................. 191
5.1
URL format ....................................................................................................................................... 191
5.2
URL Variables .................................................................................................................................. 191
5.2.1
Variables related to the active line .......................................................................................... 192
5.2.2
Variables related to the current call......................................................................................... 193
5.2.3
Usage with action uris ............................................................................................................. 193
5.2.4
Phone State ............................................................................................................................ 194
5.3
HTTPS.............................................................................................................................................. 195
5.3.1
User Certificates ..................................................................................................................... 196
5.3.2
Configuration .......................................................................................................................... 197
5.4
6
XML Objects Pushed to the Phone .................................................................................................. 198
Action URIs ..................................................................................................................................... 201
6.1
Configuration .................................................................................................................................... 201
6.2
Action uri detailed behavior .............................................................................................................. 202
6.2.1
Action uri offhook .................................................................................................................... 202
6.2.2
Action uri onhook .................................................................................................................... 202
6.2.3
Action uri incoming.................................................................................................................. 202
6.2.4
Action uri outgoing .................................................................................................................. 202
6.2.5
Action uri connected ............................................................................................................... 203
6.2.6
Action uri disconnected ........................................................................................................... 203
6.2.7
Action uri startup ..................................................................................................................... 203
vii | DEVELOPMENT GUIDE 58015045-00
6.2.8
Action uri registered ............................................................................................................... 203
6.2.9
Action uri registration event .................................................................................................... 204
6.2.10
Action uri poll .......................................................................................................................... 204
6.2.11
Action uri blf ........................................................................................................................... 204
6.2.12
Action uri xml sip notify ........................................................................................................... 205
6.3
“Answer” and “Ignore” keys for action uri incoming .......................................................................... 206
6.4
“Drop”, “Xfer” and “Conf” keys for XML apps in connected state ..................................................... 206
6.5
Applications ..................................................................................................................................... 207
7
XML Configuration ......................................................................................................................... 208
7.1
Configuring a Soft or Programmable Key using the phone Web UI ................................................. 208
7.2
Configuring the XML Push Server List using the phone Web UI ...................................................... 208
7.3
Configuring the Action URIs using the phone Web UI ..................................................................... 209
7.4
Configuring the XML Beep Support using the phone Web UI .......................................................... 209
7.5
Configuring the Status Scroll Delay using the phone Web UI .......................................................... 210
7.6
Configuring the XML SIP Notify using the phone Web UI ................................................................ 211
7.7
XML Configuration using the Configuration Files ............................................................................. 211
7.7.1
General XML parameters ....................................................................................................... 211
7.7.2
Action uri parameters ............................................................................................................. 218
7.7.3
Programmable and Soft keys ................................................................................................. 223
7.7.4
Examples ............................................................................................................................... 223
8
Troubleshooting XML Applications.............................................................................................. 224
8.1
Introduction ...................................................................................................................................... 224
8.2
Troubleshooting tools....................................................................................................................... 225
8.3
Configuring the Syslog Server using the WebUI .............................................................................. 225
8.4
Configuring the Syslog server using the configuration files.............................................................. 226
8.5
Parsing error debug example ........................................................................................................... 226
9
Why XML Applications for an IP Phone? ..................................................................................... 228
9.1
Telephony applications .................................................................................................................... 228
9.1.1
Directory ................................................................................................................................. 228
9.1.2
Call Processing ...................................................................................................................... 228
9.1.3
Voice-Mail .............................................................................................................................. 228
9.1.4
Conference Bridge ................................................................................................................. 228
9.1.5
Contact Center ....................................................................................................................... 228
9.2
Media and information ..................................................................................................................... 228
9.3
Vertical applications ......................................................................................................................... 229
9.3.1
Human Resources.................................................................................................................. 229
9.3.2
Travel/Hotel ............................................................................................................................ 229
9.3.3
Health Care ............................................................................................................................ 230
DEVELOPMENT GUIDE 58015045-00 | viii
10
9.3.4
Education ................................................................................................................................ 230
9.3.5
Law Enforcement .................................................................................................................... 230
Phone Self-Configuration using XML ........................................................................................... 231
10.1 Introduction....................................................................................................................................... 231
10.2 Message flow ................................................................................................................................... 231
10.3 Auto-configuration policy .................................................................................................................. 232
10.4 Architecture ...................................................................................................................................... 233
11
Sample XML applications .............................................................................................................. 234
11.1 Access from the Internet................................................................................................................... 234
11.2 Local server using XAMPP ............................................................................................................... 234
11.2.1
XAMPP installation ................................................................................................................. 235
11.2.2
XML scripts installation ........................................................................................................... 235
11.2.3
XAMPP start and stop............................................................................................................. 235
11.2.4
Test your installation ............................................................................................................... 237
11.2.5
Troubleshooting Apache ......................................................................................................... 237
11.3 Applications ...................................................................................................................................... 237
11.3.1
Area code lookup (US)............................................................................................................ 237
11.3.2
Biorhythms .............................................................................................................................. 238
11.3.3
CNN News .............................................................................................................................. 239
11.3.4
Currency Converter................................................................................................................. 239
11.3.5
ESPN News ............................................................................................................................ 240
11.3.6
FOX News .............................................................................................................................. 241
11.3.7
Horoscope .............................................................................................................................. 241
11.3.8
IP Geolocation ........................................................................................................................ 242
11.3.9
Movies .................................................................................................................................... 242
11.3.10
Netflix ...................................................................................................................................... 243
11.3.11
Stock Quotes .......................................................................................................................... 243
11.3.12
Today… .................................................................................................................................. 244
11.3.13
Local Weather ......................................................................................................................... 244
11.3.14
Yahtzee ................................................................................................................................... 245
11.3.15
Global menu ........................................................................................................................... 245
12
Appendix A: XSL Model ................................................................................................................. 247
13
Appendix B: Object Oriented PHP Classes .................................................................................. 248
13.1 AastraIPPhoneCallLog() ................................................................................................................... 248
13.2 AastraIPPhoneConfiguration().......................................................................................................... 250
13.3 AastraIPPhoneExecute() .................................................................................................................. 251
13.4 AastraIPPhoneFormattedTextScreen() ............................................................................................ 251
13.5 AastraIPPhoneIconMenu() ............................................................................................................... 253
ix | DEVELOPMENT GUIDE 58015045-00
13.6 AastraIPPhoneImageMenu() ........................................................................................................... 255
13.7 AastraIPPhoneImageScreen() ......................................................................................................... 258
13.8 AastraIPPhoneInputScreen() Single Input field............................................................................. 261
13.9 AastraIPPhoneInputScreen() Multiple Input fields ........................................................................ 263
13.10 AastraIPPhoneSoftkey() .................................................................................................................. 266
13.11 AastraIPPhoneStatus() .................................................................................................................... 266
13.12 AastraIPPhoneTextMenu() .............................................................................................................. 267
13.13 AastraIPPhoneTextScreen() ............................................................................................................ 270
13.14 AastraIPPhoneScrollableTextMenu() ............................................................................................... 272
13.15 AastraIPPhoneScrollableDirectory() ................................................................................................ 273
13.16 Examples provided with the PHP API .............................................................................................. 275
14
Appendix C: Dynamic Parameters ............................................................................................... 277
15
Appendix D: Localized input character set ................................................................................. 282
15.1 English ............................................................................................................................................. 282
15.2 French/Français ............................................................................................................................... 282
15.3 Spanish/Español .............................................................................................................................. 282
15.4 German/Deutsch .............................................................................................................................. 283
15.5 Italian/Italiano................................................................................................................................... 283
15.6 Portuguese/Portugês ....................................................................................................................... 284
16
Appendix E: XML Self-Configuration ........................................................................................... 285
17
Appendix F: CSV based Directory ................................................................................................ 298
17.1 Introduction ...................................................................................................................................... 298
17.2 Phone compatibility .......................................................................................................................... 298
17.3 Installation........................................................................................................................................ 298
17.4 XML key configuration ..................................................................................................................... 298
17.5 CSV file format ................................................................................................................................. 299
17.6 Configuration files ............................................................................................................................ 299
17.6.1
server.conf ............................................................................................................................. 299
17.6.2
directory.conf .......................................................................................................................... 299
17.7 Application Files ............................................................................................................................... 300
18
Appendix G: LDAP Directory ........................................................................................................ 302
18.1 Introduction ...................................................................................................................................... 302
18.2 Installation........................................................................................................................................ 302
18.3 Network Requirements .................................................................................................................... 303
18.3.1
Phone -> XML Proxy Server................................................................................................... 303
18.3.2
XML Proxy Server -> LDAP-Server ........................................................................................ 303
18.4 Active Directory / LDAP-Server Requirements ................................................................................ 303
18.5 Configuration files ............................................................................................................................ 303
DEVELOPMENT GUIDE 58015045-00 | x
19
18.5.1
server.conf .............................................................................................................................. 303
18.5.2
ldap_directory.conf.................................................................................................................. 304
Appendix H: PictureCallerID (6867i, 6869i, 6873i, 6920, 6930 and 6940) ................................... 307
19.1 Introduction....................................................................................................................................... 307
19.2 Application implementation............................................................................................................... 307
19.3 Requirements/Compatibility.............................................................................................................. 308
19.3.1
HTTP Server ........................................................................................................................... 308
19.3.2
Compatibility ........................................................................................................................... 308
19.4 Installation ........................................................................................................................................ 308
19.4.1
Introduction ............................................................................................................................. 308
19.4.2
HTTP Server ........................................................................................................................... 308
19.4.3
Package installation ................................................................................................................ 308
19.4.4
Test your installation ............................................................................................................... 309
19.4.5
Troubleshooting ...................................................................................................................... 309
19.4.6
Windows PC using XAMPP Lite ............................................................................................. 309
19.5 Configuration .................................................................................................................................... 309
19.5.1
Phone Configuration ............................................................................................................... 309
19.5.2
Application configuration ......................................................................................................... 310
19.5.3
Number matching examples ................................................................................................... 313
19.5.4
Pattern matching examples .................................................................................................... 313
19.6 Files .................................................................................................................................................. 315
20
LAST PAGE OF THE DOCUMENT ................................................................................................. 317
xi | DEVELOPMENT GUIDE 58015045-00
TABLE OF FIGURES
Figure 1: Basic XML document ........................................................................................................................ 26
Figure 2: Mitel IP Phone acting as a client ....................................................................................................... 27
Figure 3: Mitel IP Phone acting as a server ..................................................................................................... 28
Figure 4: Access to an internal application ....................................................................................................... 28
Figure 5: Access to an Internet application ...................................................................................................... 29
Figure 6: Access to a telephony application ..................................................................................................... 29
Figure 7: Typical software architecture of an XML application ......................................................................... 30
Figure 8: XML conversion table........................................................................................................................ 31
Figure 9: Mitel 6863i XML display and keys ..................................................................................................... 32
Figure 10: Mitel 6865i XML display and keys ................................................................................................... 33
Figure 11: Mitel 6867i XML display and keys ................................................................................................... 34
Figure 12: Mitel 6869i XML display and keys ................................................................................................... 35
Figure 13: Mitel 6873i/6940 XML display ......................................................................................................... 36
Figure 14: TextMenu Implementation on 6873i/6940 ....................................................................................... 39
Figure 15: TextMenu touchLaunch tag usage .................................................................................................. 40
Figure 16: fontMono tag usage ........................................................................................................................ 40
Figure 17: icon positions in MenuItem .............................................................................................................. 41
Figure 18: TextMenu Example 1 (6863i/6865i) ................................................................................................ 47
Figure 19: TextMenu Example 1 (6869i/6930) ................................................................................................. 48
Figure 20: TextMenu Example 1 (6873i/6940) ................................................................................................. 48
Figure 21: TextMenu Example 2 (6869i/6930) ................................................................................................. 49
Figure 22: TextMenu Example 3 (6873i/6940) ................................................................................................. 51
Figure 23: IconMenu cell layout ....................................................................................................................... 52
Figure 24: IconMenu cell rendering in portrait mode ........................................................................................ 52
Figure 25: IconMenu cell rendering in landscape mode ................................................................................... 53
Figure 26: IconMenu screen modes “regular” and “extended” ......................................................................... 53
Figure 27: 6867i - Layout 1 and 2 mode “regular” ............................................................................................ 54
Figure 28: 6869i - Layout 1 and 2 in “regular” mode ........................................................................................ 55
Figure 29: 6873i - Layout 1 and 2 in “regular” mode ........................................................................................ 56
Figure 30: IconMenu Example 1 (6869i) .......................................................................................................... 61
Figure 31: IconMenu Example 2 (6869i) .......................................................................................................... 63
Figure 32: IconMenu Example 2 (6873i) .......................................................................................................... 64
Figure 33: ImageMenu 6867i/6920 implementation (mode regular/extended and full screen) ......................... 66
Figure 34: ImageMenu 6869i/6930 implementation (mode regular/extended and full screen) ......................... 67
Figure 35: ImageMenu 6873i/6940 implementation (mode regular/extended and full screen) ......................... 68
Figure 36: ImageMenu Example (6869i/6930i) ................................................................................................ 71
Figure 37: TextScreen implementation on 6867i/6920 ..................................................................................... 73
DEVELOPMENT GUIDE 58015045-00 | xii
Figure 38: TextScreen implementation on 6873i/6940 ..................................................................................... 74
Figure 39: TextScreen Example (6863i/6865i) ................................................................................................. 78
Figure 40: TextScreen Example (6869i/6930) .................................................................................................. 78
Figure 41: TextScreen Example (6869i/6930) .................................................................................................. 79
Figure 42: FormattedTextScreen layout ........................................................................................................... 80
Figure 43: FormattedTextScreen layout ........................................................................................................... 81
Figure 44: FormattedTextScreen implementation on 6867i/6920 ..................................................................... 82
Figure 45: FormattedTextScreen layout on 6873i/6940 .................................................................................... 83
Figure 46: FormattedTextScreen implementation on 6873i/6940 ..................................................................... 83
Figure 47: FormattedTextScreen Example 1 (6863i/6865i) .............................................................................. 90
Figure 48: FormattedTextScreen Example 2 (6869i/6930) ............................................................................... 91
Figure 49: FormattedTextScreen Example 3 (6869i/6930) ............................................................................... 92
Figure 50: ImageScreen 6867i/6920 implementation (mode regular/extended and full screen) ....................... 94
Figure 51: ImageScreen 6873i/6940 implementation (mode regular/extended and full screen) ....................... 95
Figure 52: ImageScreen Example (6739i) ........................................................................................................ 99
Figure 53: InputScreen implementation on 6869i/6930 .................................................................................. 101
Figure 54: InputScreen implementation on 6873i/6940 .................................................................................. 101
Figure 55: InputScreen “IP” Example (6863i/6865i) ........................................................................................ 106
Figure 56: InputScreen “IP” Example (6869i/6930)......................................................................................... 107
Figure 57: InputScreen “IP” Example (6873i/6940)......................................................................................... 107
Figure 58: InputScreen “Number” Example (6863i/6865i) .............................................................................. 108
Figure 59: InputScreen “Number” Example (6869i/6930) ............................................................................... 108
Figure 60: InputScreen “Number” Example (6873i/6940) ............................................................................... 109
Figure 61: InputScreen “String” Example (6863i/6865i) .................................................................................. 110
Figure 62: InputScreen “String” Example (6869i/6930)................................................................................... 111
Figure 63: InputScreen “String” Example (6873i/6940)................................................................................... 111
Figure 64: InputScreen “TimeUS” Example (6863i/6865i) .............................................................................. 112
Figure 65: InputScreen “TimeUS” Example (6869i/6930) ............................................................................... 113
Figure 66: InputScreen “TimeUS” Example (6873i/6940) ............................................................................... 113
Figure 67: InputScreen “TimeInt” Example (6863i/6865i) ............................................................................... 114
Figure 68: InputScreen “TimeInt” Example (6869i/6930) ................................................................................ 115
Figure 69: InputScreen “TimeInt” Example (6873i/6940) ................................................................................ 115
Figure 70: InputScreen “DateUS” Example (6863i/6865i) ............................................................................... 116
Figure 71: InputScreen “DateUS” Example (6869i/6930) ............................................................................... 117
Figure 72: InputScreen “DateUS” Example (6873i/6940) ............................................................................... 117
Figure 73: InputScreen “DateInt” Example (non softkey phone) ..................................................................... 118
Figure 74: InputScreen “DateInt” Example (6869i/6930) ................................................................................ 119
Figure 75: InputScreen “DateInt” Example (6873i/6940) ................................................................................ 119
Figure 76: InputScreen implementation on 6869i/6930 “normal” mode .......................................................... 121
Figure 77: InputScreen implementation on 6869i/6930 “condensed” mode .................................................... 122
xiii | DEVELOPMENT GUIDE 58015045-00
Figure 78: InputScreen implementation on 6873i/6940 “normal” mode .......................................................... 123
Figure 79: InputScreen implementation on 6873i/6940 “condensed” mode ................................................... 123
Figure 80: InputScreen multiple inputs “condensed” (6869i/6930) ................................................................. 130
Figure 81: InputScreen multiple inputs “condensed” (6873i/6940) ................................................................. 130
Figure 82: InputScreen multiple inputs “normal” (6869i/6930) ....................................................................... 131
Figure 83: InputScreen multiple inputs “normal” (6873i/6940) ....................................................................... 132
Figure 84: PhoneStatus Example (6863i/6865i) ............................................................................................. 137
Figure 85: PhoneStatus Example (6869i/6930) ............................................................................................. 137
Figure 86: PhoneStatus icons example .......................................................................................................... 138
Figure 87: PhoneStatus icons example .......................................................................................................... 138
Figure 88: PhoneStatus icons example .......................................................................................................... 139
Figure 89: PhoneStatus toaster example ....................................................................................................... 139
Figure 90: “xmladvanced” key attributes ........................................................................................................ 147
Figure 91: XML colors (6867i/6869i/6873i/6920/6930/6940) .......................................................................... 165
Figure 92: HTTP flow for XML applications .................................................................................................... 224
Figure 93: Auto-configuration message flow .................................................................................................. 232
Figure 94: Self-configuration implementation architecture ............................................................................. 233
Figure 95: LDAP directory message flow ....................................................................................................... 302
DEVELOPMENT GUIDE 58015045-00 | xiv
1
INTRODUCTION
1.1
MITEL XML API
Mitel SIP phones support an XML API since firmware release 1.3.0. This XML API allows external applications to
control the display of the phone as well as its configuration.
The list of potential XML applications is endless, see chapter 9 for some examples of potential XML applications.
This document details the XML objects supported by the Mitel SIP phones using firmware version 5.0.0 and how to
implement them.
1.2
REVISION HISTORY
1.2.1
VERSION 5.0.0 (6863I / 6865I / 6867I / 6869I / 6873I / 6920 / 6930 / 6940)
Support for Mitel 6920/6930/6940 SIP Phones (warning HTTP User Agent is Mitel69xx for these phones)
New background color tag (“bgColor”) for all UI XML objects (not available for 6863i and 6865i)
New notification type for PhoneStatus object to allow access to the “toaster” notification mechanism (not
available for 6863i and 6865i)
On the 6873i/6940 the pseudo-LED now supports slow and fast blinking
New key for keypress emulation to simulate the Page keys on the M685i and M695 expansion modules
New “CallProtection” tag for all UI XML objects to avoid the XML screen to be destroyed on an incoming
call.
PhoneSoftkey icons can now be pictures or avatars downloaded from the image server.
PhoneSoftkey now supports a “status left” and “status right” attributes to display a status icon over the icon.
LED control for softkeys now supports “active/inactive” colors to match new softkey UI not available for
6863i and 6865i)
New XML command "Command ClearMobile" is added to clear the Mobile directory and Mobile device.
New predefined icons (not available for 6863i and 6865i)
o
"Icon:CallFwdActive"
o
"Icon:CallFwdInactive"
o
"Icon:DndActive"
o
“Icon:DndInactive"
o
"Icon:MakeBusyActive"
o
"Icon:MakeBusyInactive"
o
"Icon:NightServiceActive"
o
"Icon:NightServiceInactive"
o
"Icon:PhoneLockActive"
o
"Icon:PhoneLockInactive"
o
“Icon:RecordingOn”
o
“Icon:RecordingOff”
o
"Icon:StateActive"
o
"Icon:StateActive2"
o
"Icon:StateInactive"
15 | DEVELOPMENT GUIDE 58015045-00
1.2.2
1.2.3
VERSION 4.3.0-SP1 (6863I / 6865I / 6867I / 6869I / 6873I)
New AastraIPPhoneExecute key press “key:NavEnter” to emulate the cluster center key.
VERSION 4.3.0 (6863I / 6865I / 6867I / 6869I / 6873I)
New predefined icons for 6867i, 6869i and 6873i
o
“Icon:Alarm”,
o
“Icon:AlarmFilled”,
o
“Icon:Reset”,
o
“Icon:CallTransfer”,
o
“Icon:Park”,
o
“Icon:PhoneConnected”,
o
“Icon:PhoneDiverted”,
o
“Icon:PhoneDivertedA”,
o
“Icon:PhoneDivertedB”,
o
“Icon:PhoneRecall”,
o
“Icon:PhoneRingingA”,
o
“Icon:PhoneRingingB”
o
“Icon:GroupRoomOccupied”
o
“Icon:GroupRoomVacant”
o
“Icon:RoomOccupied”
o
“Icon:RoomVacant”
o
“Icon:RoomNotInspected”
o
“Icon:RoomInspected”
o
“Icon:RoomNotClean”
o
“Icon:WakeUpExpired”
o
“Icon:WakeUpPending”
New icon positions (up to 4) for AastraIPPhoneTextMenu object (6867i, 6869i and 6873i)
New XML object “AastraIPPhoneSoftkey” to control the layout and behavior of top softkeys when they are
typed as “xmladvanced” (6867i, 6869i and 6873i)
New LED state “active” for AastraIPPhoneExecute command to match BLF state via XML (6867i, 6869i
and 6873i)
New XML variables to be used in URIs
o
$$LINEINDEX$$ for the line Index of focused line (SIP registration line number of the focused
line)
o
$$REMOTEURI$$ for the Remote party SIP URI (incoming or outgoing)
o
$$DIVERSIONURI$$ for the full URI of the Diversion information
o
$$DIVERSIONREASON$$ for the Diversion Reason information
Updated XML colors to be more consistent with phone UI (6867i, 6869i and 6873i)
New “wrap” tag for individual lines in AastraIPPhoneFormattedTextScreen to allow text wrapping for
individual lines (6867i, 6869i and 6873i).
DEVELOPMENT GUIDE 58015045-00 | 16
New “blink” tag for individual lines in AastraIPPhoneFormattedTextScreen to allow slow or fast blinking of
the line (6867i, 6869i and 6873i).
New XML object “AastraIPPhoneIconMenu” which is a graphical equivalent of AastraIPPhoneTextMenu
(6867i, 6869i and 6873i).
Modification of the RTPRx and RTPMRx commands available via AastraIPPhoneExecute which now
reconnects to an existing audio stream after user dropped the paging call if same port/address is used. A
new command “RTPRx:Resume” and “RTPMRx:Resume” performs the same reconnection using the
configuration of the last connected stream.
1.2.4
1.2.5
VERSION 4.2.0-SP1 (6863I / 6865I / 6867I / 6869I/ 6873I)
New AastraIPPhoneExecute commands to allow the XML launch of the internal applications:
o
LaunchDirectory
o
LaunchCallersList
o
LaunchRedialList
o
LaunchServices
New action blf uri to override the BLF and BLF/Xfer key regular behavior.
VERSION 4.2.0 (6863I / 6865I / 6867I / 6869I/ 6873I)
Support for 6873i touchscreen phone
New user interface for 6867i and 6869i
New “touchLaunch” root tag for the AastraIPPhoneTextMenu object (6873i only) to allow user to select and
launch an item in the menu.
New “fontMono” root tag for the AastraIPPhoneTextMenu and AastraIPPhoneFormattedTextScreen objects
(6867i, 6869i and 6873i only) to allow user to indicate if a monotype or proportional font is displayed.
New “title” tag in ExecuteItem for AastraIPPhoneExecute object to be used as a title on the Wav.Play
screen (6867i, 6869i and 6873i only).
Support for dynamic icons to complement native icons (6867i, 6869i and 6873i only).
1.2.6
1.2.7
1.2.8
VERSION 4.1.0 (6863I / 6865I / 6867I / 6869I)
Bug fixes
VERSION 4.0.0 SP2 (6863I / 6865I / 6867I / 6869I)
Bug fixes
VERSION 4.0.0 SP1 (6863I / 6865I / 6867I / 6869I)
New
Dial
tag
added
to
XML
objects
AastraIPPhoneTextScreen
and
for
AastraIPPhoneFormattedTextScreen to allow dialing from these object going off-hook or via the custom
softkey Softkey::Dial2.
LED control of the XML hardkeys via AastraIPPhoneExecute.
Alert status without timeout can now be removed sending an empty alarm using AastraIPPhoneStatus
New input type for AastraIPPhoneInputScreen, “stringN” which behaves like a regular “string” input but the
inputstarts with a number instead of a letter (toggle key starts with “123>” instead of “ABC>” on 67i/69i,
pressing “2” on the keypad browses “2ABCabc” instead of “ABC2abc” on 63i/65i)
6867i/6869i only
o
Simulated LED control of the softkeys via AastraIPPhoneExecute.
17 | DEVELOPMENT GUIDE 58015045-00
1.2.9
1.2.10
1.2.11
o
AastraIPPhoneInputScreen, exiting the object with parameter values is no longer limited to the
Softkey::Submit custom softkey. The parameter values and selection are now added to any URI
custom softkey.
o
AastraIPPhoneStatus now supports custom icons to be displayed on the idle screen status bar,
similar to 6739i
VERSION 4.0.0 (6863I / 6865I / 6867I / 6869I)
Support for 6869i
VERSION 3.3.1 SP4 (9143I / 9480I / 9480ICT / 6730I / 6731I / 6739I / 53I / 55I / 57I / 57ICT / 6863I / 6865I
/ 6867I)
6867i only
o
Icon support in TopTitle tag for UI XML objects
o
Color tag for AastraIPPhoneStatus
VERSION 3.3.1 SP3 (9143I / 9480I / 9480ICT / 6730I / 6731I / 6739I / 53I / 55I / 57I / 57ICT / 6863I / 6865I
/ 6867I)
Firmware not available for 6735i/6737i
Added support for 6863i, 6865i and 6867i
1.2.12
VERSION 3.3.1 SP 2(9143I/9480I/9480ICT/6730I/6731I/6739I/53I/55I/57I/57ICT)
Firmware not available for 6735i/6737i
Wav.Repeat command removed.
New Melody.Play and Melody.Stop commands to repeatedly play a wav file.
1.2.13
VERSION 3.3.1 (9143I/9480I/9480ICT/6730I/6731I/6739I/53I/55I/57I/57ICT)
Firmware not available for 6735i/6737i
AastraIPPhoneConfiguration now allows locking/unlocking softkeys and programmable hardkeys using the
“softkeyN locked: 0/1” parameter.
New wave file streaming command Wav.Repeat to repeat the wave streaming until it is stopped by a
Wav.Stop command.
Volume control tag added to the wave streaming commands Wav.Play and Wav.Repeat.
1.2.14
VERSION 3.3.0 (9143I/9480I/9480ICT/6730I/6731I/6739I/53I/55I/57I/57ICT)
Firmware not available for 6735i/6737i
AastraIPPhoneConfiguration now supports range settings in order for instance to reset a list of softkeys in
a single command.
New XML command to control all the softkey attached LEDs in a single command.
New GoodbyeLockinURI parameter attaching an action to the Goodbye key when displayed XML UI object
is in LockedIn mode.
New phone variable $$ACTIVEPROXY$$ reflecting current active proxy and providing XML server
redundancy information.
Mitel 6739i only
o
AastraIPPhoneStatus can be used to display icons on the top line
o
Custom icons can now be downloaded from the server as a png file
o
Label color in every UI object can now be configured
DEVELOPMENT GUIDE 58015045-00 | 18
1.2.15
1.2.16
o
New Call log XML object to provide call logs or redial applications equivalent to the native 6739i
UI.
o
New line wrapping control mechanism in AastraIPPhoneTextMenu items using the split tag
o
Top line title and icon can now be customized by the XML UI objects using TopTitle tag
o
AastraIPPhoneInputScreen now supports immediate edition mode using the defaultFocus tag
VERSION 3.2.2 (9143I/9480I/9480ICT/6730I/6731I/6735I/6737I/6739I/53I/55I/57I/57ICT)
Support for Mitel 6735i and Mitel 6737i SIP phones
VERSION 3.2.2 (9143I/9480I/9480ICT/6730I/6731I/6739I/53I/55I/57I/57ICT)
Some bug fixes, see firmware release notes for more details
Mitel 6739i only
1.2.17
1.2.18
o
Default softkey “Done” for all UI objects
o
Idle screen now supports a background picture.
VERSION 3.2.1 (9143I/9480I/9480ICT/6730I/6731I/6739I/53I/55I/57I/57ICT)
Mitel 6739i only
o
AastraIPPhoneImageScreen and AastraIPPhoneImageMenu now support jpeg images on top of
png images
o
AastraIPPhoneImageScreen and AastraIPPhoneImageMenu now support 3 image size
380x340 pixels
640x340 pixels
640x480 pixels
o
AastraIPPhoneTextMenu now supports a new tag “unitScroll” to change the behavior of the
scrolling and mimic the behavior of a 57i (the arrow keys move the selected item one by one)
o
AastraIPPhoneStatus now supports custom icons to be displayed along with the alert/message
text and also an URI to be triggered when the user actually presses the message.
o
AastraIPPhoneInputScreen now supports the inputLanguage tag
o
Wave file streaming commands now supported
All phones
o
AastraIPPhoneTextMenu now supports new tags “scrollUp” and “scrollDown” which are triggered
when the scrolling reaches the top or the bottom of the menu items
o
Feedback on XML errors as well as ongoing operations is now provided to the user.
VERSION 3.2.0 (9143I/9480I/9480ICT/6730I/6731I/6739I/53I/55I/57I/57ICT)
Mitel 6739i now supports
o
AastraIPPhoneImageScreen loading a remote png file
o
AastraIPPhoneImageMenu loading a remote png file
o
Custom XML menu under the “Services” key
o
Beep in the root tag
o
Icons for Textmenu items and custom softkeys
o
RTP streaming
o
Lock/Unlock and ClearCallersList commands
LED control on expansion modules
19 | DEVELOPMENT GUIDE 58015045-00
XML object AastraIPPhoneDirectory no longer supported
Mitel 6751i no longer supported
Play Wav command command is supported on all phones but the 6739i.
1.2.19
VERSION 3.0.1 (6739I)
Support for Keypress emulation but limited to hard keys.
AastraIPPhoneInputScreen now supports multiple input fields.
AastraIPPhoneFormattedTextScreen is now supported with 1 enhanced tag and 1 new tag to leverage the
Mitel 6739i color display
Size now supports “small” and “large” on top of “double”
A Color tag is now supported
AastraIPPhoneStatus is now supported.
Also the capability to override a telephony key by an XML script is now supported using the following
configuration parameters:
1.2.20
1.2.21
o
services script
o
callers list script
o
directory script
o
redial script
o
xfer script
o
conf script
o
icom script
o
voicemail script
o
options script
UTF-8 encoding is now supported and is the default mode.
VERSION 3.0.0 (6739I)
First version of the XML API SDK dedicated to the 6739i running firmware 3.0.0
VERSION 2.6.0 (9143I/9480I/9480ICT/6730I/6731I/51I/53I/55I/57I/57I CT)
AastraIPPhoneInputScreen now supports up to 10 fields in normal mode.
New action uri connected which is triggered when the phone enters in the “connected” state.
New line parameter for the Dial tag in AastraIPPhoneTextMenu to indicate which SIP line to use when the
dial command is performed
New DialLine URI equivalent to the Dial command but adds the SIP line to use.
New AastraIPPhoneExecute command “UploadSystemInfo” for crash file and configuration files retrieval
1.2.22
VERSION 2.5.3 (9143I/9480I/9480ICT/6730I/6731I/51I/53I/55I/57I/57ICT)
New scrollConstrain tag for AastraIPPhoneTextMenu to control the wrap-around in the list. When enabled,
scrolling down on the last entry of the list does not wrap to the first item.
New numberLaunch tag for AastraIPPhoneTextMenu to allow a user to launch the following menu by
typing its number on the keypad, of course it is limited to menu 1-9.
New scrollUp, scrollDown, scrollLeft and scrollRight tags for
o
AastraIPPhoneTextScreen,
DEVELOPMENT GUIDE 58015045-00 | 20
o
AastraIPPhoneFormattedTextScreen
o
AastraIPPhoneImageScreen
which allows an override of the navigation keys default behaviour.
“Please Wait...” is now displayed instead of “Loading Page...” when the phone is waiting for an answer of
the XML server.
AastraIPPhoneExecute, when using a regular URI the command now supports phone variables.
Localized input mapping has been modified to allow the input of the + character by pressing 0 twice.
XML objects now properly support UTF-8 for the encoding and the charset.
1.2.23
VERSION 2.5.2 (9143I/9480I/9480ICT/6730I/6731I/51I/53I/55I/57I/57I CT)
Documentation fixes.
Object oriented php classes updates.
Updated sample csv directory application allowing search by company.
Updated media applications.
1.2.24
1.2.25
VERSION 2.4.1 (9143I/9480I/9480ICT/6730I/6731I/51I/53I/55I/57I/57I CT)
Support for the new Mitel 6730i and 6731i SIP phones.
VERSION 2.4.0 (9143I/9480I/9480ICT/51I/53I/55I/57I/57I CT)
New action uri onRegistrationEvent which is triggered each time the registration status of the phone
changes.
New setType tag for AastraIPPhoneConfiguration which allows to set configuration parameter at a different
precedence than just the server provided configuration.
New contextual softkeys Drop, Conf and Xfer available in the connected state, these new softkeys are
similar to the Answer and Ignore softkeys for incoming call state. For tnhe non softkey phones, new
allowDrop, allowXfer and allowConf have been added.
action uri disconnected now triggered at the end of a wav file stream.
1.2.26
1.2.27
VERSION 2.3.1 (9143I/9480I/9480ICT/51I/53I/55I/57I/57I CT)
New configuration parameter webapps uri to
o
Remove the WebApps option from the 51i, 53i, and 9143i Service Menus, and disable the
WebApps key for all other phone models.
o
Specify a customized URI for the WebApps key instead of using the default URI of
http://xml.myaastra.com/?localip=$$LOCALIP$$
VERSION 2.3.0 (9143I/9480I/9480ICT/51I/53I/55I/57I/57I CT)
New XML configuration
The following telephony keys can now be assigned to call an XML script instead of the regular telephony
feature:
o
Redial
o
Transfer
o
Conference
o
Intercom
o
VoiceMail
Phone Options Key can now be redirected to an XML script.
21 | DEVELOPMENT GUIDE 58015045-00
On a normal key press of the options key the XML application set in the URI is displayed
On a long key press the normal/local options menu is displayed
New configuration auto offhook to prevent the phone from going into the offhook/dialing state when the
handset is off hook and the call ends. This parameter is very useful for XML applications such as Visual
Voicemail to stay in the application at the end of the message.
New PhoneExecute commands
o
Play/stop a wav file hosted on a HTTP or TFTP server.
o
Simulate keypress on the phone
o
Reset local Callers list
o
Reset local Directory
o
Reset local Redial list
o
Delete the local configuration and reboot
New attributes
o
New root tag attribute allowDTMF in some interactive UI objects to allow DTMF passthrough when
the phone is in the connected mode.
o
AastraIPPhoneTextScreen,
o
AastraIPPhoneFormattedTextScreen,
o
AastraIPPhoneImageScreen
New action uri(s)
o
1.2.28
1.2.29
action uri disconnected is triggered when the phone transitions from any active (non idle) call state
to idle.
New URL variables
o
$$LOCALIP$$
Local IP address of the phone
o
$$CALLDURATION$$
Current/last Call duration
o
$$CALLDIRECTION$$
Current/last call direction
o
$$LINESTATE$$
Line state when the disconnect event happens.
Others
o
Custom SSL certificates for HTTPS can now be loaded on the phones.
o
Pre-programmed XML Service Key called WebApps pointing to an Mitel hosted service located at
http://xml.myaastra.com/?localip=$$LOCALIP$$ that you can also access from your Web browser
at www.myaastra.com
o
Enhancements/fixes
o
XML calls are now non-blocking for action uri and pushed XML objects
o
Action uri GET calls no longer display an error message if failure to load the page.
o
Unicast and Multicast mixed RTP streaming, the phone can now send ear+mouth and not just
mouth or receive an RTP stream over an existing one.
o
HTTPS URI now supported in the AastraIPPhoneExecute object.
VERSION 2.2.1 (9143I/9480I/9480ICT/51I/53I/55I/57I/57I CT)
Support of the 9143i, 9480i and 9480iCT SIP Phones
VERSION 2.2.0 (51I/53I/55I/57I/57I CT)
New wrapList root tag for the AastraIPPhoneTextMenu object to display menu items on 2 lines.
DEVELOPMENT GUIDE 58015045-00 | 22
Number of items extended to 30 (instead of 15) for the AastraIPPhoneTextMenu object.
Action uri polling with a customizable interval to have the phone call an XML URI on a regular basis
SIP notify to trigger a XML GET, to have the phone making a XML call when an authorized SIP Notify is
sent via the SIP proxy server.
The XML browser is now available when the phone Web UI is disabled.
Support of Unicast and Multicast RTP streaming triggered by an XML call.
Improved error handling, the phone now displays the HTTP error message when available instead of
“Cannot display”.
XML GET are now non blocking, the phone keeps processing events when waiting for an answer to an
HTTP GET.
1.2.30
VERSION 2.1.1 (51I/53I/55I/57I/57I CT)
Support for the new 51i SIP Phone
Lock and Unlock command for the AastraIPPhoneExecute object to lock or unlock the phone.
inputLanguage root tag for the AastraIPPhoneInputScreen XML object. This tag allows access to language
localized input characters.
New configuration parameter xml lock override added in order to allow a XML Push when the phone is
locked.
1.2.31
VERSION 2.1.0 (53I/55I/57I/57I CT)
doneAction
root
tag
for
the
AastraIPPhoneTextScreen
and
AastraIPPhoneFormattedTextScreen XML objects. This tag allows redirecting the user to a specified
URI after a “Done” key press; this can be very useful for non softkey phones such as the Mitel 53i.
New custom softkeys “Ignore” and “Answer” and “allowAnswer” tag to answer a call when an XML page is
called upon the incoming call.
New custom softkey (List) for the AastraIPPhoneInputScreen to enter a list of configured symbols. This
new softkey allows for instance an easy email address input using the “@.” List of symbols.
New configuration parameter xml get timeout added in order to control the server answer delay.
New configuration parameters services script, directory script and callers list script to override internal
applications and link the features to an XML script.
1.2.32
VERSION 2.0.2 (53I/55I/57I/57I CT)
New command “FastReboot” for the PhoneExecute object to trigger a fast reboot of the phone (no firmware
check and limited language package check).
New universal URI type “Led:” support to control the LED state of the phone keys when they are typed as
XML.
Extension of the AastraIPPhoneInputScreen XML object to support multiple input fields (55i/57i and 57i CT
only)
1.2.33
VERSION 2.0.1 (53I/55I/57I/57I CT)
New XML objects
o
AastraIPPhoneConfiguration
o
AastraIPPhoneImageScreen (55i/57i/57i CT)
o
AastraIPPhoneImageMenu (55i/57i/57i CT)
o
AastraIPPhoneFormattedScreen
Other
23 | DEVELOPMENT GUIDE 58015045-00
1.2.34
o
HTTPS support for XML calls.
o
Custom port support for http(s) XML calls
o
“Dial:XXXX” universal URI support
o
New “style” root tag for AastraIPPhoneTextMenu
o
Optional “Title” tag for all UI objects
o
“Title” wrapped on 2 lines (“wrap” tag).
o
Cancel remap for all UI XML objects
o
Timeout attribute common to all UI XML objects
o
LockIn attribute common to all UI XML objects
o
triggerDestroyOnExit root tag for non UI objects
o
Icons in AastraIPPhoneTextMenu (55i/57i/57i CT)
o
Icons in customizable softkeys (55i/57i/57i CT)
o
New HTTP header to indicate the presence of expansion modules
o
New input types for AastraIPPhoneInputScreen
timeUS, timeInt
dateUS, dateInt
VERSION 1.4.2 (9112I/9133I/480I/480I CT)
New attributes
New “style” tag for AastraIPPhoneTextMenu
1.2.35
VERSION 1.4.1 (9112I/9133I/480I/480I CT)
New XML objects
o
AastraIPPhoneStatus
o
AastraIPPhoneExecute
Action URIs
o
End of the boot sequence action uri startup
o
Successful registration
o
On-hook
action uri onhook
o
Off-hook
action uri offhook
o
Incoming call
action uri incoming
o
Outgoing call
action uri outgoing
action uri registered
URI System variables
o
$$SIPUSERNAME$$
line user name
o
$$DISPLAYNAME$$
the display name of the focused line
o
$$SIPAUTHNAME$$
the SIP auth name of the focused line
o
$$PROXYURL$$
the SIP proxy of the focused line
o
$$INCOMINGNAME$$
returns the Caller-ID of the incoming call
o
$$REMOTENUMBER$$
returns the number of the remote
Other
o
No more need of URL encoding for pushed pages
DEVELOPMENT GUIDE 58015045-00 | 24
o
1.2.36
1.2.37
Beep attribute common to all XML objects
VERSION 1.3.1 (9112I/9133I/480I/480I CT)
Customizable softkeys (480i/480i CT)
o
Select
o
Exit
o
Dial
o
Submit
o
BackSpace
o
NextSpace
o
Dot
o
ChangeMode
Other
o
XML softkeys (480i/480i CT)
o
XML programmable keys (9112i/9133i)
o
destroyOnExit attribute common to all XML objects
VERSION 1.3.0 (9112I/9133I/480I/480I CT)
Fist revision of this document
New XML objects
o
AastraIPPhoneTextScreen
o
AastraIPPhoneTextMenu
o
AastraIPPhoneInputScreen
o
AastraIPPhoneDirectory (480i/480i CT)
25 | DEVELOPMENT GUIDE 58015045-00
2
XML AND THE MITEL SIP PHONES
2.1
WHAT IS XML?
XML stands for eXtensible Markup Language. It is a markup language much like HTML. HTML was designed to
display data and to focus on how data looks. XML was designed to describe data and to focus on what data is.
The following are characteristics of XML:
o
XML tags are not predefined. You must define your own tags
o
XML uses a Document Type Definition (DTD) or an XML Schema to describe the data
o
XML with a DTD or XML Schema is designed to be self-descriptive
o
XML is a W3C Standard Recommendation
<?xml version="1.0"?>
<note>
<to>Bill</to>
<from>John</from>
<heading>Reminder</heading>
<body>You owe me a beer!</body>
</note>
XML declaration
Root element
Child elements of the root
Figure 1: Basic XML document
More information available at http://www.xml.com
2.2
FUNCTIONALITY
The XML browser in Mitel IP phones allows developers to create custom services that they can use via the phones
keypad and display. These services include things like weather and traffic reports, contact information, company
info, stock quotes, or custom call scripts.
With firmware release 5.0.0, the Mitel 6739i XML API supports 5 proprietary objects that allow the creation of
powerful XML applications.
There are 2 types of XML objects:
UI objects, XML objects which will use the display of the phone when they are received.
Non UI objects, XML objects which have no direct impact on the current display.
The supported objects are:
TextMenu object (UI)
IconMenu (UI)
TextScreen object (UI)
FormattedTextScreen (UI)
InputScreen object (UI)
ImageScreen (UI)
ImageMenu (UI)
Execute object
Configuration object
DEVELOPMENT GUIDE 58015045-00 | 26
Status object
PhoneSoftkey
Some of these objects also support customizable softkeys that are declared as an independent object.
The following sections describe the process of creating XML objects for the Mitel SIP phones.
2.3
HOW DOES IT WORK?
Leveraging on the IP infrastructure, Mitel has decided to develop the browser capability on the phone using the
HTTP transport protocol but as a direct support of HTML would not be suitable for the phone horsepower and limited
display, the choice has been made to support only XML objects in the browser.
The Mitel SIP phones support two types of applications:
Phone-initiated
Server-initiated
2.3.1
PHONE INITIATED APPLICATION
The phone issues an HTTP (or HTTPS) GET command to the Web server, waits for the answer, decodes and
displays this answer as any Web browser such as Microsoft Internet Explorer or Firefox would do as a Web client.
This can be done through a phone custom softkey and from the list of custom features (see chapter 7 for more
details).
HTTP(s) GET
Empty Body
200 OK
XML Document in Body
SIP Phone Client
TCP Port 80 (default)
HTTP
Servers
Figure 2: Mitel IP Phone acting as a client
When the phone performs an HTTP GET, it is a non blocking operation (phone will keep processing other events)
as long as the GET is not requested by an action uri.
2.3.2
SERVER INITIATED APPLICATION
The other type of application would be more used for alerting as an application is pushing an XML object to the
phone. The phone is now acting as a limited Web Server.
27 | DEVELOPMENT GUIDE 58015045-00
HTTP(s) POST
XML Document in Body
200 OK
Confirmation HTML in Body
SIP Phone Server
listening on TCP port 80
HTTP
Servers
Figure 3: Mitel IP Phone acting as a server
2.4
SYSTEM ARCHITECTURE
The XML applications are hosted by one or multiple Web servers which will serve as a proxy to either other
applications or to Internet Web servers.
2.4.1
CORPORATE APPLICATIONS
The following figure details the architecture to allow Mitel IP Phones to access an internal application. The
application hosted by the Web server translates the phone requests to a protocol specific to the target application
and formats the answer as an XML object to be displayed on the phone.
SIP Phone
Corporate LAN
HTTP
Any
protocol
Call Processing
Web Server
Application
Figure 4: Access to an internal application
The following figure details the architecture of an XML application that would retrieve data from the internet such as
a real-time stock-quote service.
Note: for certain Web applications that are not real time, the Internet content can be cached on the
XML web server for a faster access.
DEVELOPMENT GUIDE 58015045-00 | 28
SIP Phone
LAN
Internet
HTTP
HTTP
Call Processing
Public Web
Server
Web Server
Figure 5: Access to an Internet application
2.4.2
TELEPHONY APPLICATIONS
The following figure details the architecture of an XML application that would provide more telephony features at the
phone level.
The application could for instance
show the list of the parked calls and perform a pick-up,
activate the Call forward or the DND on the server side
control a conference from the phone
login/logout from a call center, access to the voice mail messages
HTTP(s)
LDAP
ODBC
SIP Phone
SIP Softswitch
Any
protocol
Voice Mail
LAN
HTTP(s)
Conference Bridge
Web Server
Call Center
Figure 6: Access to a telephony application
2.5
2.5.1
DEVELOPMENT ENVIRONMENT
TYPICAL SOFTWARE ARCHITECTURE
The following diagram details the typical architecture of an XML application.
29 | DEVELOPMENT GUIDE 58015045-00
SIP Phone
XML Proxy Server
Application
HTTP GET
Request
XML Document
Answer
Application
HTTP Server
HTTP GET
XML Application
XML Document
Request
Answer
Figure 7: Typical software architecture of an XML application
The XML application is in fact translating requests from the phone to the protocol used by the external application
and formats the answer into an XML document that the Mitel SIP phone can interpret.
2.5.2
WEB SERVER
There is no constraint in the choice of the Web Server software to be used for Mitel XML applications; the choice is
more based on the tools needed for the development such as the script language, the corporate policy or even the
cost of the platform.
The most common Web server applications supported are:
Apache (http://www.apache.org) for Microsoft and Linux Operating systems
Microsoft IIS for Microsoft Operating systems
2.5.3
SCRIPTS/LANGUAGES
As for the Web Server, there is no specific constraint on the tools to develop the applications. All the languages
supported to develop a Web application are supported to develop XML applications. The most common are:
Compiled languages: C, C++, C#...
Scripting languages: VBscript, Perl, Python, PHP, asp…
2.5.4
XML VALIDATION TOOLS
A large number of tools are available to validate the XML document you will be sending to the phone, these tools
use the XSD schema (provided at chapter 11) to check the syntax of the generated XML document.
Example of a Web based tool
2.6
http://tools.decisionsoft.com/schemaValidate/
XML FORMAT
The text in the Mitel XML objects must be compliant with XML recommendations and special characters must be
escape encoded:
Character
&
Name
Escape Sequence
Ampersand
&amp;
DEVELOPMENT GUIDE 58015045-00 | 30
Character
Name
Escape Sequence
Quote
&quot;
Apostrophe
&apos;
<
Left angle bracket
&lt;
>
Right angle bracket
&gt;
Figure 8: XML conversion table
To respect XML recommendations, the following header can be set at the beginning of the XML document,
<?xml version="1.0" encoding="ISO-8859-1"?>
Or
<?xml version="1.0" encoding="UTF-8"?>
By default UTF-8 is used by the phone.
2.7
HTTP FORMAT
The HTTP message sent to the Mitel SIP Phone must respect HTTP/1.1 and must include the following parameters
in the header:
o
Content-Length
o
Content-Type
The other parameters of the HTTP header are optional such as charset.
Example
2.8
HTTP/1.1 200 OK
Date: Tue, 15 May 2007 14:24:33 GMT
Server: Apache/2.0.52 (CentOS)
X-Powered-By: PHP/4.3.11
Content-Length: 564
Connection: close
Content-type: text/xml; charset=ISO-8859-1
HTTP Header
<?xml version="1.0" encoding="ISO-8859-1"?>
<AastraIPPhoneInputScreen type="string">
<Title>Title</Title>
<Prompt>Enter value</Prompt>
<URL>http://myserver.com/script.php</URL>
<Parameter>value</Parameter>
<Default></Default>
</AastraIPPhoneInputScreen>
HTTP body
XML DISPLAY CONTROL AND KEYS
This chapter describes the available part of the display for each Mitel SIP phones as well as the keys that are
controlled by the XML objects.
31 | DEVELOPMENT GUIDE 58015045-00
2.8.1
MITEL 6863I
The display and keys available for XML applications on a Mitel 6863i are:
3 lines of 16 characters for the display
the left and right arrow navigation keys
the up and down arrow navigation keys
3rd
The
line of the display is a command line and will be used to display the labels of the available actions. See
chapter 3 for more details on how each XML object will use this line of command.
Depending on the XML object displayed on the phone,
the left arrow navigation key can also be interpreted as a “cancel” key,
the right arrow navigation key can also be interpreted as a “next” key,
the “Delete” key is used as a “Backspace” for the AastraIPPhoneInputScreen object.
See chapter 3 for more detailed information on each object.
3 lines of
16
characters
Navigation keys
Figure 9: Mitel 6863i XML display and keys
DEVELOPMENT GUIDE 58015045-00 | 32
2.8.2
MITEL 6865I
The display and keys available for XML applications on a Mitel 6865i are:
lines of 16 characters for the display
the left and right arrow navigation keys
the up and down arrow navigation keys
3rd
The
line of the display is a command line and will be used to display the labels of the available actions. See
chapter 3 for more details on how each XML object will use this line of command.
Depending on the XML object displayed on the phone,
the left arrow navigation key can also be interpreted as a “cancel” key,
the right arrow navigation key can also be interpreted as a “next” key,
the “Delete” key is used as a “Backspace” for the AastraIPPhoneInputScreen object.
See chapter 3 for more detailed information on each object.
3 lines of
16
characters
Navigation keys
Figure 10: Mitel 6865i XML display and keys
33 | DEVELOPMENT GUIDE 58015045-00
2.8.3
MITEL 6867I / MITEL 6920
The display and keys available for XML applications on a Mitel 6867i or a Mitel 6920 are:
4 softkeys (6 logical softkeys for XML applications)
A graphical zone for the XML objects
Left/Right arrow navigation keys
Up/Down arrow navigation keys
Select key
See chapter 3 for more detailed information on each XML object.
Scroll Up
Graphical display
For
XML objects
Scroll Left/Right
Select
Softkey 2/5
Softkey 3/6
Scroll Down
Figure 11: Mitel 6867i XML display and keys
DEVELOPMENT GUIDE 58015045-00 | 34
2.8.4
MITEL 6869I / MITEL 6930
The display and keys available for XML applications on a Mitel 6869i or Mitel 6930 are:
5 softkeys (8 logical softkeys for XML applications)
A graphical zone for the XML objects
Left/Right arrow navigation keys
Up/Down arrow navigation keys
Select key
See chapter 3 for more detailed information on each XML object.
Graphical display
For
XML objects
Scroll Up
Scroll Left/Right
Select
Scroll Down
Figure 12: Mitel 6869i XML display and keys
2.8.5
MITEL 6873I / MITEL 6940
The display and keys available for XML applications on a Mitel 6873i or Mitel 6940are:
6 softkeys (10 logical softkeys for XML applications)
A graphical zone for the XML objects
No navigation key as the 6873i and 6940 are touch screen phones
See chapter 3 for more detailed information on each XML object.
35 | DEVELOPMENT GUIDE 58015045-00
Figure 13: Mitel 6873i/6940 XML display
DEVELOPMENT GUIDE 58015045-00 | 36
3
MITEL IP PHONE XML OBJECTS
This chapter details all the XML objects supported by the Mitel SIP phones
In this chapter:
Non softkey phones are Mitel phones without softkey:
Mitel 6863i/6865i
Softkey phones are Mitel phones with softkeys:
Mitel 6867i/6869i (graphical screen)
Mitel 6920/6930 (graphical screen)
Touchscreen phones are Mitel phone(s) with a color graphical touch screen
.
Mitel 6873i
Mitel 6940
Notes:
the size of an XML object can not exceed 10000 bytes (10 kb).
per XML specifications, only one XML object is supported in the XML document sent to the
phone.
37 | DEVELOPMENT GUIDE 58015045-00
3.1
TEXTMENU OBJECT (ALL MODELS)
The TextMenu object allows developers to create a list of menu items on the IP phones. Go-to line support, arrow
indicator, and scroll key support are built into these objects, along with the “Select” and “Done” softkeys for the
phones supporting softkeys. The TextMenu object allows users to navigate the application, by linking HTTP
requests to menu items.
For more details on the TextMenu behavior using the Selection tag or the Dial tag, please refer to section 4.12
and 4.13.
3.1.1
IMPLEMENTATION (SOFTKEY AND NON SOFTKEY PHONES)
Object native interaction
Select
Executes the content of the URI field assigned to the selected MenuItem
Exit
Redisplays the previous XML object present in the phone browser.
Non softkey phone keys
The object is displayed on one line or one item at a time. The Up and Down arrow keys allow the user to browse the
list up and down.
Line Selected
Label
Keys
Use ^v to view
Up and Down Arrow
Browse up or down
Left Arrow
Exit
vNext
Up and Down Arrow
Browse up or down
>Enter
Right Arrow
Select
Left Arrow
Exit
Title
Item
Softkey phone keys
The object is displayed on up to 6 lines, the title stays on the top of the display. The Up and Down arrow keys allow
the user to browse the list up and down.
Line selected
Item
Keys
Up and Down Arrow
Browse up or down
Right Arrow
Select
Left Arrow
Exit
Notes:
the Left Arrow key interaction is disabled if the LockIn tag is set to “yes”.
the Left Arrow key interaction can be modified using the cancelAction tag.
If the LockIn tag is set to “yes” and the cancelAction tag is configured, pressing the Left
Arrow key triggers the configured cancelAction.
Object default Softkeys (softkey phones)
Position
Label
Interaction
URIs
1
Select
Select: Executes the content of the URI field
assigned to the selected MenuItem;
SoftKey:Select
6
Done
Exit: Redisplays the previous XML object present
SoftKey:Exit
DEVELOPMENT GUIDE 58015045-00 | 38
Position
Label
Interaction
URIs
in the phone browser.
3.1.2
IMPLEMENTATION (6873I/6940)
The title is displayed at the top of the XML area and uses up to 2 lines. The menu items are displayed after the title
area and up to 6 items (7 if no title) can be displayed at a time.
The item prompts are automatically wrapped on 2 lines if needed.
The scrolling is done by swiping the finger on the elements, pressing the left button of an item selects it.
The teal background on the button indicates that the item is selected.
The
icon located on the right side of each item is the “Select” button and triggers the default URI of the object.
Object default Softkeys
Ten customizable softkeys are available for this object.
Position
Label
Interaction
URIs
1
Select
Select: Executes the content of the URI field
assigned to the selected MenuItem;
SoftKey:Select
6
Done
Exit: Redisplays the previous XML object present
in the phone browser.
SoftKey:Exit
The following figure details how the AastraIPPhoneTextMenu is implemented on the Mitel 6873i.
Figure 14: TextMenu Implementation on 6873i/6940
39 | DEVELOPMENT GUIDE 58015045-00
touchLaunch tag usage
The “touchLaunch” tag specific to the 6873i and 6940 changes the overall behavior of the AastraIPPhoneTextMenu
object, when set to “yes”:
The
User can select and launch the uri configured in the item by just pressing anywhere on the item
Selection background is no longer displayed
The default “Select” softkey is no longer displayed as well as custom softkeys using “Softkey:Select”,
“Softkey:Dial” and “Softkey:Dial2”.
button is no longer available
This allows the creation of quick touch menus.
versus
Figure 15: TextMenu touchLaunch tag usage
fontMono tag usage
The “fontMono” tag specific to the 6867i, 6869i and 6873i changes the rendering of the TextMenu object, by
allowing the usage of a proportional font instead of the default monotype font.
versus
Figure 16: fontMono tag usage
DEVELOPMENT GUIDE 58015045-00 | 40
icon tag usage
The “icon” tag allows to display an icon to the left of the MenuItem Label
The “iconr1” to “iconr4” tags specific to the 6867i, 6869i, 6873i, 6920, 6930 and 6940 allow to display up to 4 icons
to the right side of the MenuItem. If one or more right icons are configured in one item of the list, the phone clips the
label for all the MenuItems in the list to the the size of the MenuItem with the higher right icon.
icon
icon
r4
Label
icon
r3
icon
r2
icon
r1
Figure 17: icon positions in MenuItem
3.1.3
XML DESCRIPTION
“Red” tags indicate that the tag does not apply to all phones, when not supported the tags are just ignored.
<AastraIPPhoneTextMenu
defaultIndex = “some integer”
destroyOnExit = “yes/no”
style = “numbered/none/radio”
Beep = “yes/no”
Timeout = “some integer”
bgColor = white/black…”
LockIn = “yes/no”
CallProtection = “yes/no/notif”
GoodbyeLockInURI = “some URI”
allowAnswer = “yes/no”
allowDrop = “yes/no”
allowXfer = “yes/no”
allowConf = “yes/no”
cancelAction = “some URI”
wrapList = “yes/no”
scrollConstrain = “yes/no”
scrollUp = “Some URI”
scrollDown = “Some URI”
numberLaunch = “yes/no”
touchLaunch = “yes/no”
fontMono = “yes/no”
>
<Title
wrap=”yes/no”
Color=”white/black…”
>Menu Title</Title>
<TopTitle
icon=”icon index”
Color=”white/black…”
>Top Title</TopTitle>
<MenuItem base = ”http://base/”
icon = “icon index”
iconr1 = “icon index”
iconr2 = “icon index”
iconr3 = “icon index”
iconr4 = “icon index”
>
<Prompt Color=”white/black…”
split=”integer”
>First Choice</Prompt>
<URI>http://somepage.xml</URI>
<Dial line=”SIP line”>Number to dial</Dial>
<Selection>Selection</Selection>
41 | DEVELOPMENT GUIDE 58015045-00
</MenuItem>
<!—Additional Menu Items may be added (up to 30)-->
<IconList>
<Icon index = “int”>Icon:Iconname or HEX string</Icon>
<!—As many as different icons used in the object -->
<!—Up to 22 icons, index can be 1 to 21 -->
</IconList>
<!—Additional Softkey Items may be added (softkey phones)-->
</AastraIPPhoneTextMenu>
Notes:
The number of items in a TextMenu object is limited to 30.
You must declare at least one item in a TextMenu or the phone will generate a parsing error.
Non softkey phones (6863i/6865i) support only “numbered” style.
On graphic phones, picture ID icons (“Picture:XXXX” and “Picture:XXXX:YY”) are supported
see chapter 4.2.2 for more details
XML Document Objects
Document Object
Position
Type
Comments
AastraIPPhoneTextMenu
Root tag
Mandatory
Root object
defaultIndex
Root tag
Optional
Position of the cursor when the XML
object is open. If not specified, the
selection indicator is positioned on the
first menu item.
“numbered/none/radio” indicates the
style of the TextMenu. Default is
“numbered”.
style
Root tag
Optional
Ignored on 6863i and 6865i, style is
always “numbered”
Ignored on 6867i, 6869i, 6873i, 6920,
6930 and 6940, style is always “none”
destroyOnExit
Root tag
Optional
“yes/no” indicates if the object is kept or
not in the phone browser after exit. If
not specified, the object is kept in the
browser.
cancelAction
Root tag
Optional
Defines the URI to be called when the
user cancels the XML object.
wrapList
Root tag
Optional
Beep
Root tag
Optional
“yes” or “no” to indicate if the items will
be text wrapped on 2 lines, default is
“no”.
Ignored on 6867i, 6869i, 6873i, 6920,
6930 and 6940, lines are automatically
wrapped.
“yes” or “no” to indicate if a notification
beep must be generated by the phone.
DEVELOPMENT GUIDE 58015045-00 | 42
Document Object
Timeout
Position
Root tag
Type
Optional
Comments
Overrides the default 45 seconds
timeout of the UI XML object. A
Timeout set to “0” will disable the
timeout feature. See section 4.10.2 for
more details
Set the background color of the object.
the possible values are detailed in
chapter 4.2.3.
bgColor
Root tag
Optional
If not specified, the default value is
“white”.
6867i, 6869i, 6873i, 6920, 6930 and
6940 only.
LockIn
CallProtection
Root tag
Root tag
Optional
Optional
If set to “yes”, the phone ignores all
events that would cause the screen to
exit without using the keys defined by
the object. Default value is “no”. See
section 4.10.3 for more details.
If set to “yes”, the phone will not
destroy the XML object being displayed
on an incoming call. If set to “notif”, the
behavior is the same as “yes” but a
notification is displayed on the screen
providing the caller ID details.
“notif” is equivalent to “yes” on 6863i
and 6865i as screen notification are not
supported.
GoodbyeLockInURI
allowAnswer
Root tag
Root tag
Optional
Optional
Valid only if LockIn=”yes”, this tag
defines a URI to be called when the
“Goodbye” key is pressed during a
locked XML session. This URI
overrides the native behavior of the
“Goodbye” key which is to destroy the
current XML object displayed.
This tag applies only to the non-softkey
phones. If set to “yes”, the phone will
display “Ignore” and “Answer” if the
XML object is displayed when the
phone is in the ringing state. Default
value is “no”. See section 6.3 for more
details.
Only for 6863i and 6865i.
allowDrop
Root tag
Optional
This tag applies only to the non-softkey
phones. If set to “yes”, the phone will
display “Drop” if the XML object is
displayed when the phone is in the
connected state. Default value is “no”.
See section 6.4 for more details.
Only for 6863i and 6865i.
43 | DEVELOPMENT GUIDE 58015045-00
Document Object
allowXfer
Position
Root tag
Type
Optional
Comments
This tag applies only to the non-softkey
phones. If set to “yes”, the phone will
display “Xfer” if the XML object is
displayed when the phone is in the
connected state. Default value is “no”.
See section 6.4 for more details.
Only for 6863i and 6865i.
allowConf
Root tag
Optional
This tag applies only to the non-softkey
phones. If set to “yes”, the phone will
display “Conf” if the XML object is
displayed when the phone is in the
connected state. Default value is “no”.
See section 6.4 for more details.
Only for 6863i and 6865i.
scrollConstrain
Root tag
Optional
If set to “yes”, the phone will not “wrap”
the list: scrolling down the last item
does not move the cursor to the first
item. Default value is “no”.
Not supported on 6873i and 6940
numberLaunch
touchLaunch
Root tag
Root tag
Optional
Optional
If set to “yes”, the phone will allow the
user to “launch” an item URI using the
keypad (items 1-9 only). Default value
is “no”.
If set to “yes”, selection is no longer
needed user can press anywhere on
the item to launch the uri. Default value
is “no”.
6873i and 6940 only
fontMono
Root tag
Optional
If set to “no”, a proportional font will be
used to display the object instead of a
monotype font. Default value is “yes”.
6867i, 6869i, 6873i, 6920, 6930 and
6940 only
scrollUp
Root tag
Optional
This tag allows overriding the default
behavior of the Up arrow key once the
scrolling reaches an end.
scrollDown
Root tag
Optional
This tag allows overriding the default
behavior of the Down arrow key once
the scrolling reaches an end.
Body
Optional
Text to be used as title for the object
Title tag
Optional
Title
Wrap
If set to “yes” the title of the object will
be wrapped on 2 lines.
Ignored on 6867i, 6869i, 6873i, 6920,
6930 and 6940, lines are automatically
DEVELOPMENT GUIDE 58015045-00 | 44
Document Object
Position
Type
Comments
wrapped.
Label color, the possible values are
detailed in chapter 4.2.3.
Color
Title tag
Optional
If not specified, the default value is
“white”.
6867i, 6869i, 6873i, 6920, 6930 and
6940 only
TopTitle
Body
Icon
TopTitle tag
Optional
Optional
Text to be used as top title for the
object
6867i, 6869i, 6873i, 6920, 6930 and
6940 only.
Index of the icon to be used for the top
title
6867i, 6869i, 6873i, 6920, 6930 and
6940 only.
Label color, the possible values are
detailed in chapter 4.2.3.
Color
TopTitle tag
Optional
If not specified, the default value is
“white”.
6867i, 6869i, 6873i, 6920, 6930 and
6940 only.
Body
Mandatory
Choice Item (up to 30 instances,
minimum is 1 instance)
MenuItem tag
Optional
The value of this attribute is prepended to the value in the URI tags.
MenuItem
Base
icon
iconr1
iconr2
iconr3
MenuItem tag
MenuItem tag
MenuItem tag
MenuItem tag
45 | DEVELOPMENT GUIDE 58015045-00
Optional
Optional
Optional
Optional
Index of the icon to be used for this
menu entry
6867i, 6869i, 6873i, 6920, 6930 and
6940 only.
Index of the icon to be used for the first
right icon
6867i, 6869i, 6873i, 6920, 6930 and
6940 only.
Index of the icon to be used for the
second right icon
6867i, 6869i, 6873i, 6920, 6930 and
6940 only.
Index of the icon to be used for the
third right icon
6867i, 6869i, 6873i, 6920, 6930 and
6940 only.
Document Object
iconr4
Prompt
Position
Type
Comments
Index of the icon to be used for the
fourth right icon
MenuItem tag
Optional
MenuItem body
Mandatory
6867i, 6869i, 6873i, 6920, 6930 and
6940 only.
Label of the item
Label color, the possible values are
detailed in chapter 4.2.3.
Color
Prompt tag
If not specified, the default value is
“white”.
Optional
6867i, 6869i, 6873i, 6920, 6930 and
6940 only.
split
Prompt tag
This attribute tells where to split the
prompt on 2 lines giving the position of
the first character of the second line.
Optional
6867i, 6869i, 6873i, 6920, 6930 and
6940 only.
URI
Mandatory
URI to be used if the user press
“Select” with the cursor on this item
Optional
Defines what number will be dialed
when an offhook action is performed on
the phone or if the “Dial2” custom
softkey is pressed
Dial tag
Optional
Defines which SIP line to use when the
Dial command is executed. If omitted,
the Dial command is performed using
the first available SIP line.
MenuItem body
Optional
This tag must be used in conjunction
with custom softkeys. See Section 4.11
for details
MenuItem body
Dial
MenuItem body
line
Selection
List of icon definitions
IconList
Body
Icon
IconList body
Optional
Optional
6867i, 6869i, 6873i, 6920, 6930 and
6940 only.
Icon value, it can be “Icon:Iconname”,
or the URL to a png file . See section
4.2.2 for more details.
6867i, 6869i, 6873i, 6920, 6930 and
6940 only.
Index
Icon tag
Optional
Index of the icon must be consistent
with the Icon used in the MenuItems.
Possible values are 1 to 21.
6867i, 6869i, 6873i, 6920, 6930 and
6940 only.
DEVELOPMENT GUIDE 58015045-00 | 46
Document Object
Position
Type
Body
Optional
SoftKey
Comments
See section 4.1 for details
Note: the numberLaunch tag works for all TextMenu styles.
Limitations on non softkey phones
Custom Softkeys are not supported
Icons are not supported
Only “numbered” is supported for the Style tag.
3.1.4
EXAMPLES
XML Example 1
<AastraIPPhoneTextMenu>
<Title>Phone Services</Title>
<MenuItem base = “http://10.50.10.53/”>
<Prompt>Traffic Reports</Prompt>
<URI> rss_to_xml.pl</URI>
</MenuItem>
<MenuItem>
<Prompt>Employee List</Prompt>
<URI>employees.xml</URI>
</MenuItem>
<MenuItem base =””>
<Prompt>Weather</Prompt>
<URI>http://10.50.10.52/weather.pl</URI>
</MenuItem>
</AastraIPPhoneTextMenu>
Resulting Screens (6863i/6865i)
Figure 18: TextMenu Example 1 (6863i/6865i)
47 | DEVELOPMENT GUIDE 58015045-00
Resulting Screen (6869i/6930)
Figure 19: TextMenu Example 1 (6869i/6930)
Resulting Screen (6873i/6940)
Figure 20: TextMenu Example 1 (6873i/6940)
DEVELOPMENT GUIDE 58015045-00 | 48
XML Example 2 (softkey phones)
<AastraIPPhoneTextMenu>
<Title>Phone Services</Title>
<MenuItem base = “http://10.50.10.53/” icon=”1”>
<Prompt>Traffic Reports</Prompt>
<URI> rss_to_xml.pl</URI>
</MenuItem>
<MenuItem icon=“2”>
<Prompt>Employee List</Prompt>
<URI>employees.xml</URI>
</MenuItem>
<MenuItem base =”” icon=“3”>
<Prompt>Weather</Prompt>
<URI>http://10.50.10.52/weather.pl</URI>
</MenuItem>
<IconList>
<Icon index="1">Icon:PresenceMeeting</Icon>
<Icon index="2">Icon:Book</Icon>
<Icon index="3">Icon:World</Icon>
</IconList>
</AastraIPPhoneTextMenu>
Resulting Screen
Figure 21: TextMenu Example 2 (6869i/6930)
49 | DEVELOPMENT GUIDE 58015045-00
XML Example 3 (touchscreen phone)
<AastraIPPhoneTextMenu fontMono="no">
<TopTitle icon="1">John Doe</TopTitle>
<MenuItem icon="3">
<Prompt>Work Number</Prompt>
<URI>http://myserver/myscript.php?a=zoom%26n=1234</URI>
<Dial>1234</Dial>
<Selection>1234</Selection>
</MenuItem>
<MenuItem icon="4">
<Prompt>Cell Number</Prompt>
<URI>http://myserver/myscript.php?a=zoom%26n=2345</URI>
<Dial>2345</Dial>
<Selection>2345</Selection>
</MenuItem>
<MenuItem icon="2">
<Prompt>Home Number</Prompt>
<URI>http://myserver/myscript.php?a=zoom%26n=3456</URI>
<Dial>3456</Dial>
<Selection>3456</Selection>
</MenuItem>
<IconList>
<Icon index="1">Picture:1234</Icon>
<Icon index="2">Icon:Home</Icon>
<Icon index="3">Icon:Office</Icon>
<Icon index="4">Icon:CellPhone</Icon>
</IconList>
<SoftKey index = "1">
<Label>Dial</Label>
<URI>SoftKey:Dial2</URI>
</SoftKey>
<SoftKey index = "2">
<Label>Delete</Label>
<URI>http://myserver/myscript.php?a=delete</URI>
</SoftKey>
<SoftKey index = "3">
<Label>Edit</Label>
<URI>http://myserver/myscript.php?a=edit</URI>
</SoftKey>
<SoftKey index = "6">
<Label>Done</Label>
<URI>SoftKey:Exit</URI>
</SoftKey>
</AastraIPPhoneTextMenu>
In this example, with item 1 selected:
Pressing the
Pressing the “Delete” softkey, will call
icon on the item, will call http://myserver/myscript.php?a=zoom&n=1234
http://myserver/myscript.php?a=delete&selection=1234
Pressing the “Edit” softkey, will call
http://myserver/myscript.php?a=edit&selection=1234
Going off will dial “1234”
DEVELOPMENT GUIDE 58015045-00 | 50
Resulting Screen
Figure 22: TextMenu Example 3 (6873i/6940)
51 | DEVELOPMENT GUIDE 58015045-00
3.2
ICONMENU OBJECT (6867I/6869I AND 6873I)
The IconMenu object allows developers to create a list of menu items on the IP phones just like TextMenu but in
this case menus are represented by an icon or a sequence of text lines.
The IconMenu object allows users to navigate the application, by linking HTTP requests to menu items.
For more details on the IconMenu behavior using the Selection tag or the Dial tag, please refer to section 4.12
and 4.13.
This object allows to configure up to 24 menu items which are represented as cells on the screen, the user can
navigate to select the cell and then launch the attached URI or action.
The number, format and size of the visible cells depends on the selected layout and screen mode. If the total
number of menu items is less than the number of cells per row, the cells are centered on the screen.
Icons can be scaled to fit the placeholder size, which allows a picture to be displayed in a cell.
Layouts
Two layouts are available for this object
Layout “1” screen is split in 2 rows with either 4 (6867i - grid of 8 portrait cells) or 6 (6869i/6873i - grid of 12
portrait cells) colums respectively.
Layout “2” screen is split in 2 rows with 2 columns, forming a grid of 4 landscape cells.
Each cell can be composed of an icon and/or lines of text.
Cell 1
Cell 2
Cell 3
Cell 4
Cell 5
Cell 6
Cell 1
Cell 2
Cell 7
Cell 8
Cell 9
Cell 10
Cell 11
Cell 12
Cell 3
Cell 4
Figure 23: IconMenu cell layout
Portrait mode (layout=1)
If an icon is configured it is positioned at the top of the cell and any respective cell text is then positioned below it.
However, if there is no icon configured, any respective cell text will be positioned at the top of the cell in its
Icon
Line 1
Line 2
place.
Line1
Line XX
Figure 24: IconMenu cell rendering in portrait mode
Landscape mode (layout=2)
If an icon is configured it is positioned on the left hand side of the cell and any respective cell text is then positioned
to the right of the icon. However, if there is no icon configured, any respective cell text will be positioned on the left
hand side of the cell in its place.
DEVELOPMENT GUIDE 58015045-00 | 52
Icon
Line 1
Line 2
Line XX
Line 1
Line 2
Line XX
Figure 25: IconMenu cell rendering in landscape mode
Screen modes
Two screen modes are available for this object:
Regular Mode: Full screen, where both the top bar and bottom softkeys are displayed.
Extended Mode: Same as regular mode but without the top bar displayed.
The screen mode does not affect the number of cells in the grid just their size.
Cell area
Cell area
Figure 26: IconMenu screen modes “regular” and “extended”
Object native interaction
Select
Executes the content of the URI field assigned to the selected MenuItem
Exit
Redisplays the previous XML object present in the phone browser.
3.2.1
IMPLEMENTATION (6867I)
The 6867i supports the 2 grid layouts.
Layout 1 screen has2 rows of 4 cells
Layout 2 screen has 2 rows of 2 cells
Up to 24 cells can be created and a maximum of 8 cells per screen can be displayed at once. Any additional cells
are placed underneath on the next virtual screen. The up and down scroll keys can be used to highlight/select and
navigate up/down over the current screen icons or to navigate further to the next screen(s). Likewise, the left and
right arrow keys can also be used to highlight/select and navigate left/right over the current screen icons.
Selected cell is highlighted.
53 | DEVELOPMENT GUIDE 58015045-00
Cell 1
Cell 2
Cell 3
Cell 4
Cell 1
Cell 2
Cell 5
Cell 6
Cell 7
Cell 8
Cell 3
Cell 4
Figure 27: 6867i - Layout 1 and 2 mode “regular”
Navigation
Up moves a row up and selects cell
Down moves a row down and selects cell, if no cell configured below the cell selection moves to the last
cell of the row
Left moves a cell to the left and selects cell
Right moves a cell to the right and selects cell
OK is equivalent to select softkey
Component size
Layout
Mode
Icon size
Number of text lines
1
regular
60x60
1
1
extended
60x60
1
2
regular
66x66
3
2
extended
81x81
4
Object default Softkeys
Six customizable softkeys are available for this object.
Position
3.2.2
Label
Interaction
URIs
1
Select
Select: Executes the content of the URI field
assigned to the selected MenuItem;
SoftKey:Select
4
Done
Exit: Redisplays the previous XML object present
in the phone browser.
SoftKey:Exit
IMPLEMENTATION (6869I)
The 6869i supports the 2 grid layouts.
Layout 1 screen has 2 rows of 6 cells
Layout 2 screen has 2 rows of 2 cells
DEVELOPMENT GUIDE 58015045-00 | 54
Up to 24 cells can be created and a maximum of 12 cells per screen can be displayed at once. Any additional cells
are placed underneath on the next virtual screen. The up and down scroll keys can be used to highlight/select and
navigate up/down over the current screen icons or to navigate further to the next screen(s). Likewise, the left and
right arrow keys can also be used to highlight/select and navigate left/right over the current screen icons.
Selected cell is highlighted.
Cell 1
Cell 2
Cell 3
Cell 4
Cell 5
Cell 6
Cell 1
Cell 2
Cell 7
Cell 8
Cell 9
Cell 10
Cell 11
Cell 12
Cell 3
Cell 4
Figure 28: 6869i - Layout 1 and 2 in “regular” mode
Navigation
Up moves a row up and selects cell
Down moves a row down and selects cell, if no cell configured below the cell selection moves to the last
cell of the row
Left moves a cell to the left and selects cell
Right moves a cell to the right and selects cell
OK is equivalent to select softkey
Component size
Layout
Mode
Icon size
Number of text lines
1
regular
61x61
1
1
extended
61x61
2
2
regular
78x78
4
2
extended
95x95
5
Object default Softkeys
Eight customizable softkeys are available for this object.
Position
3.2.3
Label
Interaction
URIs
1
Select
Select: Executes the content of the URI field
assigned to the selected MenuItem;
SoftKey:Select
5
Done
Exit: Redisplays the previous XML object present
in the phone browser.
SoftKey:Exit
IMPLEMENTATION (6873I)
The 6873i supports the 2 grid layouts.
Layout 1 screen has 2 rows of 6 cells
55 | DEVELOPMENT GUIDE 58015045-00
Layout 2 has 2 rows of 2 cells
Up to 24 cells can be created and a maximum of 12 cells per screen can be displayed at once. Any additional cells
are placed on the next virtual screen. Swipe left or right to access the next screen.
Cell 1
Cell 2
Cell 3
Cell 4
Cell 5
Cell 6
Cell 1
Cell 2
Cell 7
Cell 8
Cell 9
Cell 10
Cell 11
Cell 12
Cell 3
Cell 4
Figure 29: 6873i - Layout 1 and 2 in “regular” mode
Navigation
Touch screen, clicking on a cell selects it and launches the associated URI
Swipe changes page.
User cannot select and then launch the URI on the 73i, it is all in one operation, if user clicks on a cell, the URI
attached to it is launched.
Custom softkeys using “Softkey:Select” or “Softkey:Dial” or “Softkey:Dial2” are not displayed on the 73i as as user
cannot select a cell, it is comparable to the TextMenu with touchLaunch tag enabled.
Component size
Layout
Mode
Icon size
Number of text lines
1
regular
114x114
1
1
extended
114x114
2
2
regular
147x147
6
2
extended
171x171
7
Object default Softkeys
Ten customizable softkeys are available for this object.
Position
6
3.2.4
Label
Interaction
URIs
Done
Exit: Redisplays the previous XML object present
in the phone browser.
SoftKey:Exit
XML DESCRIPTION
“Red” tags indicate that the tag does not apply to all phones, when not supported the tags are just ignored.
<AastraIPPhoneIconMenu
defaultIndex = “some integer”
destroyOnExit = “yes/no”
DEVELOPMENT GUIDE 58015045-00 | 56
Beep = “yes/no”
Timeout = “some integer”
bgColor=”white/black…”
LockIn = “yes/no”
CallProtection = “yes/no/notif”
GoodbyeLockInURI = “some URI”
fontMono = “yes/no”
layout = “integer 1 or 2”
mode = “regular/extended”
>
<TopTitle
icon=”icon index”
Color=”white/black…”
>Top Title</TopTitle>
<MenuItem fontMono = “yes/no”>
<iconName scaled=”yes/no”>IconName or location</iconName>
<URI>http://somepage.xml</URI>
<Dial line=”SIP line”>Number to dial</Dial>
<Selection>Selection</Selection>
<Line Align=”left/center/right” Color=”white/black…”
>A line of static text</Line>
<!—Additional Lines may be added -->
</MenuItem>
<!—Additional Menu Items may be added (up to 24)-->
<IconList>
<Icon index = “int”>Icon:Iconname or icon location</Icon>
<!—As many as different icons used in the object -->
<!—Up to 22 icons, index can be 1 to 21 -->
</IconList>
<!—Additional Softkey Items may be added -->
<AastraIPPhoneIconMenu>
Notes:
The number of items in a IconMenu object is limited to 24.
You must declare at least one item in a IconMenu or the phone will generate a parsing error.
“cancelAction” tag is not supported by this object as the left navigation key is used for screen
navigation.
It is not recommended to scale an icon up.
XML Document Objects
Document Object
Position
Type
Comments
AastraIPPhoneIconMenu
Root tag
Mandatory
Root object
defaultIndex
Root tag
Optional
Position of the selected item when the
XML object is open. If not specified, the
arrow is positioned on the first menu
item.
On the 6873i the object will open at the
page containing the selected item.
destroyOnExit
Root tag
Optional
“yes/no” indicates if the object is kept or
not in the phone browser after exit. If
57 | DEVELOPMENT GUIDE 58015045-00
Document Object
Position
Type
Comments
not specified, the object is kept in the
browser.
Beep
Timeout
bgColor
Root tag
Root tag
Root tag
Optional
“yes” or “no” to indicate if a notification
beep must be generated by the phone.
Optional
Overrides the default 45 seconds
timeout of the UI XML object. A
Timeout set to “0” will disable the
timeout feature. See section 4.10.2 for
more details
Optional
Set the background color of the object.
the possible values are detailed in
chapter 4.2.3.
If not specified, the default value is
“white”.
LockIn
CallProtection
Root tag
Root tag
Optional
Optional
If set to “yes”, the phone ignores all
events that would cause the screen to
exit without using the keys defined by
the object. Default value is “no”. See
section 4.10.3 for more details.
If set to “yes”, the phone will not
destroy the XML object being displayed
on an incoming call. If set to “notif”, the
behavior is the same as “yes” but a
notification is displayed on the screen
providing the caller ID details.
“notif” is equivalent to “yes” on 6863i
and 6865i as screen notification are not
supported.
TopTitle
GoodbyeLockInURI
Root tag
Optional
Valid only if LockIn=”yes”, this tag
defines a URI to be called when the
“Goodbye” key is pressed during a
locked XML session. This URI
overrides the native behavior of the
“Goodbye” key which is to destroy the
current XML object displayed.
fontMono
Root tag
Optional
If set to “no”, a proportional font will be
used to display the object instead of a
monotype font. Default value is “no”.
layout
Root tag
Optional
Object layout, “1” or “2”. Default value
is “1”.
mode
Root tag
Optional
Object mode “regular” or “extended”.
Default value is “regular”.
Body
Optional
Text to be used as top title for the
object.
DEVELOPMENT GUIDE 58015045-00 | 58
Document Object
Icon
Color
Position
Type
TopTitle tag
Optional
Comments
Index of the icon to be used for the top
title.
Label color, the possible values are
detailed in chapter 4.2.3.
TopTitle tag
Optional
Body
Mandatory
Choice Item (up to 24 instances,
minimum is 1 instance)
MenuItem
If not specified, the default value is
“white”.
fontMono
MenuItem tag
Optional
Indicates if a monotype font must be
used in this menu item. If set, it
overrides the value defined in the root
tag.
iconName
MenuItem body
Optional
Name or location of the icon to be used
for this menu entry
scaled
iconName tag
Optional
Indicates if the icon needs to be scaled
to the size of the placeholder or not.
Values can be “yes” or “no”.
If not specified, the icon is not scaled.
URI
MenuItem body
Dial
MenuItem body
Mandatory
Optional
URI to be used if the user press
“Select” with the cursor on this item
Defines what number will be dialed
when an offhook action is performed on
the phone or if the “Dial2” custom
softkey is pressed.
Ignored on 6873i as custom softkeys
based on item selection are not
supported.
line
Dial tag
Optional
Defines which SIP line to use when the
Dial command is executed. If omitted,
the Dial command is performed using
the first available SIP line.
Ignored on 6873i as custom softkeys
based on item selection are not
supported.
Line
MenuItem body
Optional
Align
Line tag
Optional
Color
Line tag
Optional
Defines the text to display
Text alignment, the possible values are
“left”, “right” and “center”.
If not specified, the default value is
“center”.
Text color, the possible values are
detailed in chapter 4.2.3.
If not specified, the default value is
59 | DEVELOPMENT GUIDE 58015045-00
Document Object
Position
Type
Comments
“white”.
Selection
MenuItem body
Optional
This tag must be used in conjunction
with custom softkeys. See Section 4.11
for details
Ignored on 6873i as custom softkeys
based on selection not supported.
IconList
Body
Optional
List of icon definitions
Icon
IconList body
Optional
Icon value, it can be “Icon:Iconname” or
or the URL to a png file. See section
4.2.2 for more details.
Index
Icon tag
Optional
Index of the icon must be consistent
with the Icon used in the TopTitle
Possible values are 1 to 21.
See section 4.1 for details
SoftKey
Body
Optional
Softkeys using “Softkey:Select” or
“Softkey:Dial” or “Softkey:Dial2” are
ignored on the 6873i
DEVELOPMENT GUIDE 58015045-00 | 60
3.2.5
EXAMPLES
XML Example 1
<AastraIPPhoneIconMenu
destroyOnExit="yes"
defaultIndex = "2"
layout = "1"
mode="regular"
>
<TopTitle>IconMenu</TopTitle>
<MenuItem>
<Line>Menu 1</Line>
<iconName>http://192.168.0.135/6869i-icon1-1.png</iconName>
<URI>http://myserver/myscript.php?menu=1</URI>
</MenuItem>
<MenuItem>
<Line>Menu 2</Line>
<iconName>http://192.168.0.135/6869i-icon2-1.png</iconName>
<URI>http://myserver/myscript.php?menu=2</URI>
</MenuItem>
<MenuItem>
<Line>Menu 3</Line>
<iconName>http://192.168.0.135/6869i-icon3-1.png</iconName>
<URI>http://myserver/myscript.php?menu=3</URI>
</MenuItem>
</AastraIPPhoneIconMenu>
Resulting Screen (6869i)
Figure 30: IconMenu Example 1 (6869i)
61 | DEVELOPMENT GUIDE 58015045-00
XML Example 2
<AastraIPPhoneIconMenu
destroyOnExit="yes"
defaultIndex = "1"
layout = "2"
mode="extended"
>
<TopTitle>IconMenu</TopTitle>
<MenuItem>
<Line Align="left">Menu 1</Line>
<Line Align="right">Line of text 1</Line>
<Line Align="right" Color="red">Line of text 2</Line>
<Line Align="right">Line of text 3</Line>
<Line Align="right" Color="green">Line of text 4</Line>
<Line Align="right">Line of text 5</Line>
<Line Align="right">Line of text 6</Line>
<Line Align="right">Line of text 7</Line>
<iconName>http://192.168.0.135/6869i-icon1-2.png</iconName>
<URI>http://myserver/myscript.php?menu=1</URI>
</MenuItem>
<MenuItem>
<Line Align="left">Menu 2</Line>
<Line Align="right">Line of text 1</Line>
<Line Align="right" Color="red">Line of text 2</Line>
<Line Align="right">Line of text 3</Line>
<Line Align="right" Color="green">Line of text 4</Line>
<Line Align="right">Line of text 5</Line>
<Line Align="right">Line of text 6</Line>
<Line Align="right">Line of text 7</Line>
<iconName>http://192.168.0.135/6869i-icon2-2.png</iconName>
<URI>http://myserver/myscript.php?menu=2</URI>
</MenuItem>
<MenuItem>
<Line Align="left">Menu 3</Line>
<Line Align="right">Line of text 1</Line>
<Line Align="right" Color="red">Line of text 2</Line>
<Line Align="right">Line of text 3</Line>
<Line Align="right" Color="green">Line of text 4</Line>
<Line Align="right">Line of text 5</Line>
<Line Align="right">Line of text 6</Line>
<Line Align="right">Line of text 7</Line>
<iconName>http://192.168.0.135/6869i-icon3-2.png</iconName>
<URI>http://myserver/myscript.php?menu=3</URI>
</MenuItem>
<MenuItem>
<Line Align="left">Menu 4</Line>
<Line Align="right">Line of text 1</Line>
<Line Align="right" Color="red">Line of text 2</Line>
<Line Align="right">Line of text 3</Line>
<Line Align="right" Color="green">Line of text 4</Line>
<Line Align="right">Line of text 5</Line>
<Line Align="right">Line of text 6</Line>
<Line Align="right">Line of text 7</Line>
<iconName>http://192.168.0.135/6869i-icon4-2.png</iconName>
<URI>http://myserver/myscript.php?menu=4</URI>
</MenuItem>
<MenuItem>
<Line Align="left">Menu 5</Line>
<Line Align="right">Line of text 1</Line>
<Line Align="right" Color="red">Line of text 2</Line>
<Line Align="right">Line of text 3</Line>
<Line Align="right" Color="green">Line of text 4</Line>
DEVELOPMENT GUIDE 58015045-00 | 62
<Line Align="right">Line of text 5</Line>
<Line Align="right">Line of text 6</Line>
<Line Align="right">Line of text 7</Line>
<iconName>http://192.168.0.135/6869i-icon5-2.png</iconName>
<URI>http://myserver/myscript.php?menu=5</URI>
</MenuItem>
<MenuItem>
<Line Align="left">Menu 6</Line>
<Line Align="right">Line of text 1</Line>
<Line Align="right" Color="red">Line of text 2</Line>
<Line Align="right">Line of text 3</Line>
<Line Align="right" Color="green">Line of text 4</Line>
<Line Align="right">Line of text 5</Line>
<Line Align="right">Line of text 6</Line>
<Line Align="right">Line of text 7</Line>
<iconName>http://192.168.0.135/6869i-icon6-2.png</iconName>
<URI>http://myserver/myscript.php?menu=6</URI>
</MenuItem>
</AastraIPPhoneIconMenu>
Resulting Screens (6869i)
Scroll down twice to display the rest of the items
Figure 31: IconMenu Example 2 (6869i)
63 | DEVELOPMENT GUIDE 58015045-00
Resulting Screens (6873i)
Swipe to the left to reach the second page
Figure 32: IconMenu Example 2 (6873i)
DEVELOPMENT GUIDE 58015045-00 | 64
3.3
IMAGEMENU OBJECT (6867I/6869I/6873I/6920/6930/6940)
The ImageMenu object allows using a bitmap image to serve as a menu. This is desirable when a user wants to
display menu choices in some non-ASCII character set or with pictures only. Each menu selection is linked to a
keypad key (0-9, *, #).allows developers to create a numerical list of choices.
3.3.1
IMPLEMENTATION (6867I/6920)
For the 6867i, the image is either a 24/32 bit depth “png” or a “jpeg” file located on a server and which can be
downloaded by the phone using TFTP, FTP, HTTP or HTTPS. See chapter 4.2.1.1 for more details.
Two image sizes are supported:
Up to 320x180 pixels (mode=regular or extended).
Up to 320x240 pixels (mode=fullscreen). In that case, the softkeys are not displayed.
If the image is bigger than the size supported by the requested mode, the image is clipped based on the requested
alignment.
If the image is smaller than the size supported by the requested mode, the image is displayed based on the
requested alignment
The Left key is mapped to the cancelAction tag, if not specified the XML object is destroyed.
Note:
the Left Arrow key default interaction is disabled if the LockIn tag is set to “yes”.
If the LockIn tag is set to “yes” and the cancelAction tag is configured, pressing the Left
Arrow key triggers the configured cancelAction.
The up, down, left and right arrow key default interactions can be overridden using the
scrollUp, scrollDown, scrollLeft and scrollRight tags.
Object default Softkeys
Six (four physical) customizable softkeys are available for this object.
Position
Label
Interaction
URIs
4
Done
Exit: Redisplays the previous XML object present
in the phone browser.
SoftKey:Exit
The following figure details how the AastraIPPhoneImageMenu is implemented on the Mitel 6867i.
Image area
320x180 pixels
65 | DEVELOPMENT GUIDE 58015045-00
Image area
320x240 pixels
Figure 33: ImageMenu 6867i/6920 implementation (mode regular/extended and full screen)
Also a URI can be programmed to be called when the user presses the Select key (imageAction root tag). If this tag
is empty, phone will use the URI configured by the doneAction tag (SoftKey:Exit by default).
So by default pressing the Select key destroys the current XML object unless an imageAction or a doneAction is
configured.
Native Interaction
3.3.2
“SoftKey:Exit”
IMPLEMENTATION (6869I/6930)
For the 6869i, the image is either a 24/32 bit depth “png” or a “jpeg” file located on a server and which can be
downloaded by the phone using TFTP, FTP, HTTP or HTTPS. See chapter 4.2.1.1 for more details.
Two image sizes are supported:
Up to 480x204 pixels (mode=regular or extended).
Up to 480x272 pixels (mode=fullscreen). In that case, the softkeys are not displayed.
If the image is bigger than the size supported by the requested mode, the image is clipped based on the requested
alignment.
If the image is smaller than the size supported by the requested mode, the image is displayed based on the
requested alignment
The Left key is mapped to the cancelAction tag, if not specified the XML object is destroyed.
Note:
the Left Arrow key default interaction is disabled if the LockIn tag is set to “yes”.
If the LockIn tag is set to “yes” and the cancelAction tag is configured, pressing the Left
Arrow key triggers the configured cancelAction.
The up, down, left and right arrow key default interactions can be overridden using the
scrollUp, scrollDown, scrollLeft and scrollRight tags.
Object default Softkeys
Eight (five physical) customizable softkeys are available for this object.
Position
5
Label
Interaction
URIs
Done
Exit: Redisplays the previous XML object present
in the phone browser.
SoftKey:Exit
The following figure details how the AastraIPPhoneImageMenu is implemented on the Mitel 6869i.
Image area
480x204 pixels
Image area
480x272 pixels
DEVELOPMENT GUIDE 58015045-00 | 66
Figure 34: ImageMenu 6869i/6930 implementation (mode regular/extended and full screen)
Also a URI can be programmed to be called when the user presses the Select key (imageAction root tag). If this tag
is empty, phone will use the URI configured by the doneAction tag (SoftKey:Exit by default).
So by default pressing the Select key destroys the current XML object unless an imageAction or a doneAction is
configured.
Native Interaction
3.3.3
“SoftKey:Exit”
IMPLEMENTATION (6873I/6940)
For the 6873i, the image is either a 24/32 bit depth “png” or a “jpeg” file located on a server and which can be
downloaded by the phone using TFTP, FTP, HTTP or HTTPS. See chapter 4.2.1.1 for more details.
Two image sizes are supported:
Up to 800x372 pixels (mode=regular or extended).
Up to 800x480 pixels (mode=fullscreen). In that case, the softkeys are not displayed.
If the image is bigger than the size supported by the requested mode, the image is clipped following the requested
alignment.
If the image is smaller than the size supported by the requested mode, the image is displayed following the
requested alignment
Note: as the 6873i and 6940 do not have navigation keys, the scroll actions are mapped to screen
swipes
scrollUp, by swiping from top to bottom
scrollDown, by swiping from bottom to top
scrollLeft, by swiping from left to right
scrollRight, by swiping from right to left
Object default Softkeys
Ten (six physical) customizable softkeys are available for this object.
Position
6
Label
Interaction
URIs
Done
Exit: Redisplays the previous XML object present
in the phone browser.
SoftKey:Exit
The following figure details how the AastraIPPhoneImageMenu is implemented on the Mitel 6873i.
Image area
800x372 pixels
67 | DEVELOPMENT GUIDE 58015045-00
Image area
800x480 pixels
Figure 35: ImageMenu 6873i/6940 implementation (mode regular/extended and full screen)
Also a URI can be programmed to be called when the user presses on the displayed image (imageAction root tag).
If this tag is empty, phone will use the URI configured by the doneAction tag (SoftKey:Exit by default).
So, by default, pressing on the image destroys the current XML object unless an imageAction or a doneAction is
configured.
Native Interaction
3.3.4
“SoftKey:Exit”
XML DESCRIPTION
<AastraIPPhoneImageMenu
destroyOnExit = “yes/no”
cancelAction = “some URI”
doneAction = “some URI”
imageAction = “some URI”
Beep = “yes/no”
Timeout = “some integer”
bgColor=”white/black…”
LockIn = “yes/no”
CallProtection = “yes/no/notif”
GoodbyeLockInURI = “some URI”
allowDTMF = “yes/no”
scrollUp = “some URI”
scrollDown = “some URI”
scrollLeft = “some URI”
scrollRight = “some URI”
mode = “regular/extended/fullscreen”
>
<TopTitle
icon=”icon index”
Color=”white/black…”
>Top Title</TopTitle>
<Image
verticalAlign = “top,middle,bottom”
horizontalAlign = “left,middle,right”
height = “height in pixels”
width = “width in pixels”
>Image as hexadecimal characters or URL</Image>
<!—Base attribute is optional-->
<URIList base = "http://someserver/">
<URI key = "0">link1.php</URI>
<URI key = "#">link3.php</URI>
<!—Additional URI entries may be added (0-9,* and #)-->
</URIList>
<!—Additional Softkey Items may be added -->
</AastraIPPhoneImageMenu>
XML Document Objects
Document Object
Position
Type
AastraIPPhoneImageMen
u
Root tag
Mandatory
Comments
Root object
destroyOnExit
Root tag
Optional
“yes/no” indicates if the object is kept
or not in the phone browser after exit.
If not specified, the object is kept in
the browser.
cancelAction
Root tag
Optional
Defines the URI to be called when
the user cancels the XML object.
DEVELOPMENT GUIDE 58015045-00 | 68
Document Object
Position
Type
Comments
doneAction
Root tag
Optional
Defines the URI to be called when
the user selects the “Done” softkey
or SoftKey:Exit.
imageAction
Root tag
Optional
Defines the URI to be called when
the user presses on the image.
6867i, 6869i, 6873i, 6920, 6930 and
6940 only.
Beep
Root tag
Optional
“yes” or “no” to indicate if a
notification beep must be generated
by the phone.
Optional
Overrides the default 45 seconds
timeout of the UI XML object. A
Timeout set to “0” will disable the
timeout feature. See section 4.10.1
for more details
Timeout
bgColor
Root tag
Root tag
Optional
Set the background color of the
object. the possible values are
detailed in chapter 4.2.3.
If not specified, the default value is
“white”.
LockIn
CallProtection
Root tag
Root tag
Optional
Optional
If set to “yes”, the phone ignores all
events that would cause the screen
to exit without using the keys defined
by the object. Default value is “no”.
See section 4.10.3 for more details.
If set to “yes”, the phone will not
destroy the XML object being
displayed on an incoming call. If set
to “notif”, the behavior is the same as
“yes” but a notification is displayed
on the screen providing the caller ID
details.
“notif” is equivalent to “yes” on 6863i
and 6865i as screen notification are
not supported.
GoodbyeLockInURI
Root tag
Optional
Valid only if LockIn=”yes”, this tag
defines a URI to be called when the
“Goodbye” key is pressed during a
locked XML session. This URI
overrides the native behavior of the
“Goodbye” key which is to destroy
the current XML object displayed.
allowDTMF
Root tag
Optional
This tag allows letting keypad strokes
as DTMF when the phone is in the
connected status.
scrollUp
Root tag
Optional
This tag allows overriding the default
behavior of the Up arrow key.
scrollDown
Root tag
Optional
This tag allows overriding the default
behavior of the Down arrow key.
scrollLeft
Root tag
Optional
This tag allows overriding the default
69 | DEVELOPMENT GUIDE 58015045-00
Document Object
Position
Type
Comments
behavior of the Left arrow key.
scrollRight
Root tag
Optional
This tag allows overriding the default
behavior of the Right arrow key.
Ignored on 6739i
mode
Root tag
Optional
Configures the display mode,
“regular”, “extended” or “fullscreen”
6867i, 6869i, 6873i and 6739i only
TopTitle
Body
Optional
Text to be used as top title for the
object
6867i, 6869i, 6873i and 6739i only.
TopTitle tag
Optional
Index of the icon to be used for the
top title
6867i, 6869i, 6873i and 6739i only.
Optional
Label color, the possible values are
detailed in chapter 4.2.3.
If not specified, the default value is
“white”.
6867i, 6869i, 6873i and 6739i only
Mandatory
Image to be displayed as a series of
hexadecimal characters or a URL.
See section 4.2.1 for more details.
Optional
Vertical position of the image (“top”,
“middle” or “bottom”). If the tag is not
specified, the object will use “middle”
as a default value.
Optional
Horizontal position of the image
(“left”, “middle” or “right”). If the tag is
not specified, the object will use
“middle” as a default value.
Mandatory
Height in pixels. Must match the
image height.
Optional and Ignored on 6867i, 6869i
and 6873i
Icon
Color
Image
verticalAlign
horizontalAlign
height
TopTitle tag
Body
Image tag
Image tag
Image tag
width
Image tag
Mandatory
Width in pixels. Must match the
image width.
Optional and Ignored on 6867i, 6869i
and 6873i
URIList
Body
Mandatory
Master tag of the URI list linked to a
keypad key (0-9, * and #)
URIList tag
URI
URIList body
Mandatory
URI to be used if the user presses
the key defined in the “key” tag.
key
URI tag
Mandatory
This tag defines the key that will
trigger the selection (0-9,* and #).
SoftKey
Body
Optional
The value of this attribute is prepended to the value in the URI tags.
Base
Optional
See section 4.1 for details
DEVELOPMENT GUIDE 58015045-00 | 70
3.3.5
EXAMPLES
XML Example (6869i/6930)
<AastraIPPhoneImageMenu destroyOnExit="yes">
<Image>tftp://server.com/menu.png</Image>
<URIList>
<URI key="1">http://myserver.com?choice=1</URI>
<URI key="2">http://myserver.com?Choice=2</URI>
</URIList>
<SoftKey index="1">
<Label>Label</Label>
<URI>http://myserver.com/script.php?action=1</URI>
</SoftKey>
<SoftKey index="5">
<Label>Exit</Label>
<URI>SoftKey:Exit</URI>
</SoftKey>
</AastraIPPhoneImageMenu>
Resulting Screen
Figure 36: ImageMenu Example (6869i/6930i)
71 | DEVELOPMENT GUIDE 58015045-00
3.4
TEXTSCREEN OBJECT (ALL MODELS)
The TextScreen object can be used to display some text. The screen word-wraps appropriately and user can
scroll to display a message longer then the physical display.
3.4.1
IMPLEMENTATION (6863I/6865I)
The object is displayed on 2 lines. The Up and Down arrow keys allow the user to browse the rest of the text.
Line selected
Title/Text
Label
Keys
vNext
Up and Down Arrow
Browse up or down
>Done
Right Arrow
Done
Left Arrow
Exit
.
Note:
the Left Arrow key default interaction is disabled if the LockIn tag is set to “yes”.
the Left Arrow key default interaction can be modified using the cancelAction tag on a nonsoftkey phone.
If the LockIn tag is set to “yes” and the cancelAction tag is configured, pressing the Left
Arrow key triggers the configured cancelAction.
the Right arrow key default interaction can be modified using the doneAction tag on a nonsoftkey phone.
The up, down, left and right arrow key default interactions can be overridden using the
scrollUp, scrollDown, scrollLeft and scrollRight tags.
Object native interaction
3.4.2
Done
Redisplays the previous XML object present in the phone browser.
IMPLEMENTATION (6867I/6869I)
The title is displayed at the top of the XML area and uses up to 2 lines. The text is displayed after the title area and
up to 7 lines can be displayed (9 lines if no title).
Note: The Text and Title area use the same font (size and type) but the Title is displayed in bold.
The Left key is mapped to the cancelAction tag, if not specified the XML object is destroyed.
The Up/Down keys allow up and down scrolling in order to display the complete text.
The Right and Select keys are mapped to the doneAction tag, if not specified the previous XML object in the stack
is displayed.
Six (eight) customizable softkeys are available for this object. If more than 4 (5) softkeys are configured the softkeys
are displayed on 2 pages.
Note: the Left key interaction is disabled if the LockIn tag is set to “yes”.
DEVELOPMENT GUIDE 58015045-00 | 72
Object default Softkeys (6867i/6920)
Six customizable softkeys are available for this object.
Position
4
Label
Interaction
URIs
Done
Exit: Redisplays the previous XML object present
in the phone browser.
SoftKey:Exit
Object default Softkeys (6869i/6930)
Eight customizable softkeys are available for this object.
Position
5
Label
Interaction
URIs
Done
Exit: Redisplays the previous XML object present
in the phone browser.
SoftKey:Exit
The following figures detail how the AastraIPPhoneTextScreen is implemented on the Mitel 6867i. The size of
the text zone depends on the presence of the optional title.
Title Zone Line 1
Title Zone Line 2
Text Zone
8 Lines
Text Zone
9 Lines
Figure 37: TextScreen implementation on 6867i/6920
Native Interaction
3.4.3
“SoftKey:Exit”
IMPLEMENTATION (6873I/6940)
The title is displayed at the top of the XML area and uses up to 2 lines. The text is displayed after the title area and
up to 13 lines can be displayed (15 lines if no title).
Note: The Text and Title area use the same font (size and type) but the Title is displayed in bold.
As the 6873i and the 6940 have no navigation keys, scrolling the text is done by swiping the screen up and down.
Ten customizable softkeys are available for this object. If more than 6 softkeys are configured the softkeys are
displayed on 2 pages.
Object default Softkeys
Ten customizable softkeys are available for this object.
73 | DEVELOPMENT GUIDE 58015045-00
Position
6
Label
Interaction
URIs
Done
Exit: Redisplays the previous XML object present
in the phone browser.
SoftKey:Exit
The following figures detail how the AastraIPPhoneTextScreen is implemented on the Mitel 6873i and Mitel
6940. The size of the text zone depends on the presence of the optional title.
Title Zone Line 1
Title Zone Line 2
Text Zone
13 Lines
Text Zone
15 Lines
Figure 38: TextScreen implementation on 6873i/6940
Native Interaction
3.4.4
“SoftKey:Exit”
XML DESCRIPTION
“Red” tags indicate that the tag does not apply to all phones, when not supported the tags are just ignored.
<AastraIPPhoneTextScreen
destroyOnExit = “yes/no”
cancelAction = “some URI”
doneAction = “some URI”
Beep = “yes/no”
Timeout = “some integer”
bgColor=”white/black…”
allowAnswer = “yes/no”
allowDrop = “yes/no”
allowXfer = “yes/no”
allowConf = “yes/no”
LockIn = “yes/no”
CallProtection = “yes/no/notif”
GoodbyeLockInURI = “some URI”
allowDTMF = “yes/no”
scrollUp = “some URI”
scrollDown = “some URI”
scrollLeft = “some URI”
scrollRight = “some URI”
>
<Title
wrap=”yes/no”
Color=”white/black…”
>Screen Title</Title>
<TopTitle
icon=”icon index”
Color=”white/black…”
>Top Title</TopTitle>
<Text
Color=”white/black…”
>The screen text goes here</Text>
<Dial
line=”SIP line”
>Number to dial</Dial>
DEVELOPMENT GUIDE 58015045-00 | 74
<!—Additional Softkey Items may be added-->
</AastraIPPhoneTextScreen>
XML Document Objects
Document Object
Position
Type
Comments
AastraIPPhoneTextScreen
Root tag
Mandatory
Root object
destroyOnExit
Root tag
Optional
“yes/no” indicates if the object is kept
or not in the phone browser after exit. If
not specified, the object is kept in the
browser.
cancelAction
Root tag
Optional
Defines the URI to be called when the
user cancels the XML object.
doneAction
Root tag
Optional
Defines the URI to be called when the
user selects the “Done” softkey or
SoftKey:Exit.
Beep
Root tag
Optional
“yes” or “no” to indicate if a notification
beep must be generated by the phone.
Optional
Overrides the default 45 seconds
timeout of the UI XML object. A
Timeout set to “0” will disable the
timeout feature. See section 4.10.2 for
more details
Timeout
Root tag
Set the background color of the object.
the possible values are detailed in
chapter 4.2.3.
bgColor
Root tag
Optional
If not specified, the default value is
“white”.
6867i, 6869i, 6873i, 6920, 6930 and
6940 only
LockIn
CallProtection
Root tag
Root tag
Optional
Optional
If set to “yes”, the phone ignores all
events that would cause the screen to
exit without using the keys defined by
the object. Default value is “no”. See
section 4.10.3 for more details.
If set to “yes”, the phone will not
destroy the XML object being displayed
on an incoming call. If set to “notif”, the
behavior is the same as “yes” but a
notification is displayed on the screen
providing the caller ID details.
“notif” is equivalent to “yes” on 6863i
and 6865i as screen notification are not
supported.
GoodbyeLockInURI
Root tag
Optional
Valid only if LockIn=”yes”, this tag
defines a URI to be called when the
“Goodbye” key is pressed during a
locked XML session. This URI
overrides the native behavior of the
“Goodbye” key which is to destroy the
current XML object displayed.
allowAnswer
Root tag
Optional
This tag applies only to the non-softkey
75 | DEVELOPMENT GUIDE 58015045-00
Document Object
Position
Type
Comments
phones. If set to “yes”, the phone will
display “Ignore” and “Answer” if the
XML object is displayed when the
phone is in the ringing state. Default
value is “no”. See section 6.3 for more
details.
Only for 6863i and 6865i
allowDrop
allowXfer
Root tag
Root tag
Optional
This tag applies only to the non-softkey
phones. If set to “yes”, the phone will
display “Drop” if the XML object is
displayed when the phone is in the
connected state. Default value is “no”.
See section 6.4 for more details.
Only for 6863i and 6865i
Optional
This tag applies only to the non-softkey
phones. If set to “yes”, the phone will
display “Xfer” if the XML object is
displayed when the phone is in the
connected state. Default value is “no”.
See section 6.4 for more details.
Only for 6863i and 6865i
allowConf
Root tag
Optional
This tag applies only to the non-softkey
phones. If set to “yes”, the phone will
display “Conf” if the XML object is
displayed when the phone is in the
connected state. Default value is “no”.
See section 6.4 for more details.
Only for 6863i and 6865i
allowDTMF
Root tag
Optional
This tag allows letting keypad strokes
as DTMF when the phone is in the
connected status.
Optional
This tag allows overriding the default
behavior of the Up arrow key once the
scrolling reaches an end.
Not available on 6873i and 6940.
Optional
This tag allows overriding the default
behavior of the Down arrow key once
the scrolling reaches an end.
Not available on 6873i and 6940.
Optional
This tag allows overriding the default
behavior of the Left arrow key once the
scrolling reaches an end.
Not available on 6873i and 6940.
scrollUp
scrollDown
scrollLeft
Root tag
Root tag
Root tag
scrollRight
Root tag
Optional
This tag allows overriding the default
behavior of the Right arrow key once
the scrolling reaches an end.
Not available on 6873i and 6940.
Title
Body
Optional
Label to be used as title for the object
Title tag
Optional
If set to “yes” the title of the object will
be wrapped on 2 lines.
Only for 6863i and 6865i, lines are
Wrap
DEVELOPMENT GUIDE 58015045-00 | 76
Document Object
Position
Type
Comments
automatically wrapped on other phone
models.
Color
Optional
Label color, the possible values are
detailed in chapter 4.2.3.
If not specified, the default value is
“white”.
6867i, 6869i, 6873i, 6920, 6930 and
6940 only
Optional
Text to be used as top title for the
object
6867i, 6869i, 6873i, 6920, 6930 and
6940i only.
Optional
Index of the icon to be used for the top
title
6867i, 6869i, 6873i, 6920, 6930 and
6940 only.
TopTitle tag
Optional
Label color, the possible values are
detailed in chapter 4.2.3.
If not specified, the default value is
“white”.
6867i, 6869i, 6873i, 6920, 6930 and
6940 only
Body
Mandatory
Text to be displayed.
Optional
Text color, the possible values are
detailed in chapter 4.2.3.
If not specified, the default value is
“darkgray”.
6867i, 6869i, 6873i, 6920, 6930 and
6940 only
Optional
Defines what number will be dialed
when an offhook action is performed
on the phone or if the “Dial2” custom
softkey is pressed
Optional
Defines which SIP line to use when the
Dial command is executed. If omitted,
the Dial command is performed using
the first available SIP line.
Title tag
TopTitle
Body
Icon
TopTitle tag
Color
Text
Color
Text tag
Dial
Body
line
Dial tag
Note: the URI configured via the scrollUp and scrollDown tags is triggered only when the scrolling
reaches an end. If no scrolling is needed, the URI are immediately triggered otherwise, they are
triggered after the scroll reaches its beginning or its end.
77 | DEVELOPMENT GUIDE 58015045-00
3.4.5
EXAMPLES
XML Example 1
<AastraIPPhoneTextScreen>
<Title>Screen Object</Title>
<Text>The screen object can be implemented similar to the firmware info
screen. Note that white space is preserved in XML so the display should wordwrap appropriately. Only three lines can display at a time.</Text>
</AastraIPPhoneTextScreen>
Resulting Screens (6863i/6865i)
Figure 39: TextScreen Example (6863i/6865i)
Resulting Screen (6869i/6930)
Figure 40: TextScreen Example (6869i/6930)
DEVELOPMENT GUIDE 58015045-00 | 78
XML Example 2
<AastraIPPhoneTextScreen>
<Title>This is a very long title which should be on two lines</Title>
<Text>Lorem Ipsum is simply dummy text of the printing and typesetting
industry. Lorem Ipsum has been the industry's standard dummy text ever since
the 1500s, when an unknown printer took a galley of type and scrambled it to
make a type specimen book. It has survived not only five centuries, but also
the leap into electronic typesetting, remaining essentially unchanged. It was
popularised in the 1960s with the release of Letraset sheets containing Lorem
Ipsum passages, and more recently with desktop publishing software like Aldus
PageMaker including versions of Lorem Ipsum.</Text>
</AastraIPPhoneTextScreen>
Resulting Screen (6869i/6930)
Figure 41: TextScreen Example (6869i/6930)
79 | DEVELOPMENT GUIDE 58015045-00
3.5
FORMATTEDTEXTSCREEN OBJECT (ALL MODELS)
The FormattedTextScreen object allows the XML designer to display formatted (alignment, size, color and
scrolling) text.
3.5.1
IMPLEMENTATION (6863I/6865I)
This text is divided into 3 distinct blocks, any of which can be empty.
The first block is displayed at the top of the display and contains static text. This block takes up as many lines as
the XML object specifies and can range from 0 up to the size of the physical screen.
The next block, displayed below the first block, displays scrolling text and takes up as many lines as the designer
specifies up to the size of the screen.
The final block of contains static text and will take up whatever lines are left on the screen.
Physical display
Header Zone
Scroll Zone
Footer Zone
Figure 42: FormattedTextScreen layout
Object native interaction
Done
Redisplays the previous XML object present in the phone browser.
Non softkey phone keys
The object is displayed on 2 lines. The Up and Down arrow keys allow the user to browse the rest of the text.
Line selected
Label
>Done
Text
Keys
Up and Down Arrow
Browse up or down (if scrollable)
Right Arrow
Done
Left Arrow
Exit
Note:
the Left Arrow key default interaction is disabled if the LockIn tag is set to “yes”.
the Left Arrow key default interaction can be modified using the cancelAction tag.
DEVELOPMENT GUIDE 58015045-00 | 80
3.5.2
the Right arrow key default interaction can be modified using the doneAction tag.
The up, down, left and right arrow key default interactions can be overridden using the
scrollUp, scrollDown, scrollLeft and scrollRight tags.
IMPLEMENTATION (6867I/6869I/6920/6930)
The text zone is divided into 3 distinct blocks, any of which can be empty.
The first block (header zone) is displayed at the top of the display and contains static text. This block takes up as
many lines as the XML object specifies and can range from 0 up to the size of the physical screen.
The next block (scrolling zone), displayed below the first block, displays scrolling text and takes up as many lines as
available, the size of the scrolling zone is automatically determined by using whats left of the display between the
header zone and the footer zone.
The final block (footer zone) contains static text and will take up whatever lines are left on the screen starting from
the bottom.
Physical display
Header Zone
Scroll Zone
Footer Zone
Figure 43: FormattedTextScreen layout
The Left key is mapped to the cancelAction tag, if not specified the XML object is destroyed.
The Up/Down keys allow up and down scrolling in order to display the complete text if needed.
Note: the Left key interaction is disabled if the LockIn tag is set to “yes”.
Object default Softkeys (6867i)
Six customizable softkeys are available for this object.
Position
4
Label
Interaction
URIs
Done
Exit: Redisplays the previous XML object present
in the phone browser.
SoftKey:Exit
81 | DEVELOPMENT GUIDE 58015045-00
Object default Softkeys (6869i)
Eight customizable softkeys are available for this object.
Position
5
Label
Interaction
URIs
Done
Exit: Redisplays the previous XML object present
in the phone browser.
SoftKey:Exit
The following figure details how the AastraIPPhoneFormattedTextScreen is implemented on the Mitel 6867i
and Mitel 6920.
Text Zone
9 Lines (regular charset)
Figure 44: FormattedTextScreen implementation on 6867i/6920
Native Interaction
3.5.3
“SoftKey:Exit”
IMPLEMENTATION (6873I/6940)
The text zone is divided into 3 distinct blocks, any of which can be empty.
The first block (header zone) is displayed at the top of the display and contains static text. This block takes up as
many lines as the XML object specifies and can range from 0 up to the size of the physical screen.
The next block (scrolling zone), displayed below the first block, displays scrolling text and takes up as many lines as
available, the size of the scrolling zone is automatically determined by using whats left of the display between the
header zone and the footer zone.
The final block (footer zone) contains static text and will take up whatever lines are left on the screen starting from
the bottom.
DEVELOPMENT GUIDE 58015045-00 | 82
Physical display
Header Zone
Scroll Zone
Footer Zone
Figure 45: FormattedTextScreen layout on 6873i/6940
As the 6873i does not have navigation keys, the scrolling is performed by swiping the scrollable zone up and down.
Object default Softkeys
Ten customizable softkeys are available for this object.
Position
6
Label
Interaction
URIs
Done
Exit: Redisplays the previous XML object present
in the phone browser.
SoftKey:Exit
The following figure details how the AastraIPPhoneFormattedTextScreen is implemented on the Mitel 6873i
and Mitel 6940.
Text Zone
15 Lines (regular charset)
Figure 46: FormattedTextScreen implementation on 6873i/6940
Native Interaction
“SoftKey:Exit”
83 | DEVELOPMENT GUIDE 58015045-00
3.5.4
XML DESCRIPTION
“Red” tags indicate that the tag does not apply to all phones, when not supported the tags are just ignored.
<AastraIPPhoneFormattedTextScreen
destroyOnExit = “yes/no”
cancelAction = “some URI”
doneAction = “some URI”
Beep = “yes/no”
Timeout = “some integer”
bgColor=”white/black…”
allowAnswer = “yes/no”
allowDrop = “yes/no”
allowXfer = “yes/no”
allowConf = “yes/no”
LockIn = “yes/no”
CallProtection = “yes/no/notif”
GoodbyeLockInURI = “some URI”
allowDTMF = “yes/no”
scrollUp = “some URI”
scrollDown = “some URI”
scrollLeft = “some URI”
scrollRight = “some URI”
fontMono = “yes/no”
>
<TopTitle
icon=”icon index”
Color=”white/black…”
>Top Title</TopTitle>
<Line
wrap=”yes/no”
blink=”no/slow/fast”
Size=”small/normal/double/large”
Align=”left/center/right”
Color=”white/black…”
>A line of static text</Line>
<!—Additional Lines may be added -->
<Scroll Height=”integer”>
<Line wrap=”yes/no”
blink=”no/slow/fast”
Size=”small/normal/double/large”
Align=”left/center/right”
Color=”white/black…”
>Scrolling text</Line>
<!—Additional Lines may be added -->
</Scroll>
<Line
wrap=”yes/no”
blink=”no/slow/fast”
Size=”small/normal/double/large”
Align=”left/center/right”
Color=”white/black…”
>Some static footer text</Line>
<!—Additional Lines may be added -->
<Dial
line=”SIP line”>Number to dial</Dial>
<IconList>
<Icon index = “int”>Icon:Iconname or HEX string</Icon>
<!—As many as different icons used in the object -->
<!—Up to 22 icons, index can be 1 to 21 -->
</IconList>
<!—Additional Softkey Items may be added -->
</AastraIPPhoneFormattedTextScreen>
DEVELOPMENT GUIDE 58015045-00 | 84
Notes:
Any lines that would display past the bottom of the screen will be ignored.
Text will not display with the top or bottom cut off.
Text that extends past the edge of the screen will be cropped to the last fully displayed word.
XML Document Objects
Document Object
Position
Type
Comments
AastraIPPhoneFormattedTextScreen
Root tag
Mandatory
Root object
destroyOnExit
Root tag
Optional
“yes/no” indicates if the object
is kept or not in the phone
browser after exit. If not
specified, the object is kept in
the browser.
cancelAction
Root tag
Optional
Defines the URI to be called
when the user cancels the
XML object.
doneAction
Root tag
Optional
Defines the URI to be called
when the user selects the
“Done” softkey or
SoftKey:Exit.
Beep
Root tag
Optional
“yes” or “no” to indicate if a
notification beep must be
generated by the phone.
Optional
Overrides the default 45
seconds timeout of the UI XML
object. A Timeout set to “0” will
disable the timeout feature.
See section 4.10.2 for more
details
Timeout
Root tag
Set the background color of
the object. the possible values
are detailed in chapter 4.2.3.
bgColor
Root tag
Optional
If not specified, the default
value is “white”.
6867i, 6869i, 6873i, 6920,
6930 and 6940 only
LockIn
CallProtection
85 | DEVELOPMENT GUIDE 58015045-00
Root tag
Root tag
Optional
If set to “yes”, the phone
ignores all events that would
cause the screen to exit
without using the keys defined
by the object. Default value is
“no”. See section 4.10.3 for
more details.
Optional
If set to “yes”, the phone will
not destroy the XML object
being
displayed
on
an
incoming call. If set to “notif”,
the behavior is the same as
“yes” but a notification is
displayed on the screen
Document Object
Position
Type
Comments
providing the caller ID details.
“notif” is equivalent to “yes” on
6863i and 6865i as screen
notification are not supported.
GoodbyeLockInURI
allowAnswer
allowDrop
allowXfer
allowConf
allowDTMF
Root tag
Root tag
Root tag
Root tag
Root tag
Root tag
Optional
Valid only if LockIn=”yes”, this
tag defines a URI to be called
when the “Goodbye” key is
pressed during a locked XML
session. This URI overrides
the native behavior of the
“Goodbye” key which is to
destroy the current XML object
displayed.
Optional
This tag applies only to the
non-softkey phones. If set to
“yes”, the phone will display
“Ignore” and “Answer” if the
XML object is displayed when
the phone is in the ringing
state. Default value is “no”.
See section 6.3 for more
details.
Only for 6863i and 6865i
Optional
This tag applies only to the
non-softkey phones. If set to
“yes”, the phone will display
“Drop” if the XML object is
displayed when the phone is in
the connected state. Default
value is “no”. See section 6.4
for more details.
Only for 6863i and 6865i
Optional
This tag applies only to the
non-softkey phones. If set to
“yes”, the phone will display
“Xfer” if the XML object is
displayed when the phone is in
the connected state. Default
value is “no”. See section 6.4
for more details.
Only for 6863i and 6865i
Optional
This tag applies only to the
non-softkey phones. If set to
“yes”, the phone will display
“Conf” if the XML object is
displayed when the phone is in
the connected state. Default
value is “no”. See section 6.4
for more details.
Only for 6863i and 6865i
Optional
This tag allows letting keypad
strokes as DTMF when the
phone is in the connected
status.
DEVELOPMENT GUIDE 58015045-00 | 86
Document Object
scrollUp
scrollDown
scrollLeft
scrollRight
fontMono
TopTitle
Icon
Color
Position
Root tag
Root tag
Root tag
Root tag
Root
tag
Body
TopTitle
tag
TopTitle
tag
Type
Comments
Optional
This tag allows overriding the
default behavior of the Up
arrow key once the scrolling
reaches an end.
Not available on 6873i and
6940
Optional
This tag allows overriding the
default behavior of the Down
arrow key once the scrolling
reaches an end.
Not available on 6873i and
6940
Optional
This tag allows overriding the
default behavior of the Left
arrow key once the scrolling
reaches an end.
Not available on 6873i and
6940
Optional
This tag allows overriding the
default behavior of the Right
arrow key once the scrolling
reaches an end.
Not available on 6873i and
6940
Optional
If set to “no”, a proportional
font will be used to display the
object instead of a monotype
font. Default value is “yes”.
6867i, 6869i, 6873i, 6920,
6930 and 6940 only
Optional
Text to be used as top title for
the object
6867i, 6869i, 6873i, 6920,
6930 and 6940 only
Optional
Index of the icon to be used
for the top title
6867i, 6869i, 6873i, 6920,
6930 and 6940 only
Optional
Label color, the possible
values are detailed in chapter
4.2.3.
If not specified, the default
value is “white”.
6867i, 6869i, 6873i, 6920,
6930 and 6940 only
Line
Body
Optional
Text to be displayed on the
line. If the text is larger than
the display, line is cropped to
the last word.
wrap
Line tag
Optional
Indicates if the text for the line
is wrapped on multiple lines or
limited to a single line
87 | DEVELOPMENT GUIDE 58015045-00
Document Object
Position
Type
Comments
(default).
6867i, 6869i, 6873i, 6920,
6930 and 6940 only
blink
Size
Align
Line tag
Line tag
Line tag
Optional
Indicates if the blink mode of
the line “slow”, “fast” or “no”
(no by default).
6867i, 6869i, 6873i, 6920,
6930 and 6940 only
Optional
Size of the font for the line:
“small” for the small font
“normal” for the regular font,
“double” for the larger font.
“large” for the largest font.
“normal” is the default value if
not specified.
Optional
Alignment of the line, “left”,
“right” or “center”. If not
specified, the default value is
“left”.
Color
Line tag
Optional
Color of the line, the possible
values are detailed in chapter
4.2.3.
If not specified, the default
value is “white”.
6867i, 6869i, 6873i, 6920,
6930 and 6940 only
Scroll
Body
Optional
Defines the scrolling section of
the display.
Optional
Specifies the height of the
scroll zone. If not specified,
the phone uses the remaining
lines of the physical screen
and does not allow footer
lines.
Optional
Text to be displayed on the
line in the scrolled zone. If the
text is larger than the display,
line is cropped to the last
word.
Optional
Indicates if the text for the line
is wrapped on multiple lines or
limited to a single line
(default).
6867i, 6869i, 6873i, 6920,
6930 and 6940 only
Optional
Indicates if the blink mode of
the line “slow”, “fast” or “no”
(no by default).
6867i, 6869i, 6873i, 6920,
6930 and 6940 only
Height
Scroll tag
Line
Scroll
Body
wrap
blink
Line tag
Line tag
DEVELOPMENT GUIDE 58015045-00 | 88
Document Object
Size
Position
Type
Comments
Optional
Size of the font for the line:
“small” for the small font
“normal” for the regular font,
“double” for the larger font.
“large” for the largest font.
“normal” is the default value if
not specified.
Optional
Alignment of the scrolled line,
“left”, “right” or “center”. If not
specified the default value is
“left”.
Optional
Color of the line, the possible
values are detailed in chapter
4.2.3.
If not specified, the default
value is “white”.
6867i, 6869i, 6873i, 6920,
6930 and 6940 only
Optional
Defines what number will be
dialed when an offhook action
is performed on the phone or if
the “Dial2” custom softkey is
pressed
Dial tag
Optional
Defines which SIP line to use
when the Dial command is
executed. If omitted, the Dial
command is performed using
the first available SIP line.
Body
Optional
Line tag
Align
Line tag
Color
Dial
Line tag
Body
line
List of icon definitions
IconList
Icon
IconList
body
Optional
6867i, 6869i, 6873i,
6930 and 6940 only.
Icon value, it can be
“Icon:Iconname”, or the URL
to a png file . See section
4.2.2 for more details.
6867i, 6869i, 6873i,
6930 and 6940 only.
Index
Icon tag
Optional
89 | DEVELOPMENT GUIDE 58015045-00
Body
Optional
6920,
Index of the icon must be
consistent with the Icon used
in the MenuItems. Possible
values are 1 to 21.
6867i, 6869i, 6873i,
6930 and 6940 only.
SoftKey
6920,
6920,
See section 4.1 for details
Not available on non softkey
phones
Limitations on the non softkey phones
Custom Softkeys are not supported
Only 2 lines are available to display the object.
A double size line on line 1 does not allow any scrolling
The scroll height can not be more than 2.
3.5.5
EXAMPLES
XML Example 1 (6863i/6865i)
<AastraIPPhoneFormattedTextScreen destroyOnExit = “yes”>
<Scroll Height=”2”>
<Line>Line 1</Line>
<Line>Line 2</Line>
<Line Size=”double”>Line 3</Line>
<Line>Line 4</Line>
<Line>Line 5</Line>
</Scroll>
<Line Align=”center”>Footer</Line>
</AastraIPPhoneFormattedTextScreen>
Resulting Screen
Figure 47: FormattedTextScreen Example 1 (6863i/6865i)
XML Example 2
In this example, there is no need for scrolling.
DEVELOPMENT GUIDE 58015045-00 | 90
<AastraIPPhoneFormattedTextScreen destroyOnExit=“yes”>
<Line Size="large" Align="center" Color="red">Header Line</Line>
<Scroll>
<Line>Scrolled Line 1</Line>
<Line>Scrolled Line 2</Line>
<Line>Scrolled Line 3</Line>
<Line>Scrolled Line 4</Line>
<Line>Scrolled Line 5</Line>
</Scroll>
<Line Size="double" Align="center" Color="blue">Footer Line</Line>
</AastraIPPhoneFormattedTextScreen>
Resulting Screen
Figure 48: FormattedTextScreen Example 2 (6869i/6930)
XML Example 3
In this example, scrolling is needed.
91 | DEVELOPMENT GUIDE 58015045-00
<AastraIPPhoneFormattedTextScreen destroyOnExit="yes" fontMono="no">
<TopTitle Color="yellow">FormattedTextScreen</TopTitle>
<Line Size="double" Align="center" Color="red">Header Line</Line>
<Scroll>
<Line wrap="yes">Scrolled Line 1 - This is an example where the
line can be wrapped like a paragraph.</Line>
<Line>Scrolled Line 2 - This is an example where the line is not
wrapped like a paragraph.</Line>
<Line>Scrolled Line 3</Line>
<Line>Scrolled Line 4</Line>
<Line>Scrolled Line 5</Line>
<Line>Scrolled Line 6</Line>
<Line>Scrolled Line 7</Line>
<Line>Scrolled Line 8</Line>
<Line>Scrolled Line 9</Line>
<Line>Scrolled Line 10</Line>
</Scroll>
<Line Size="double" Align="center" Color="blue">Footer Line</Line>
</AastraIPPhoneFormattedTextScreen>
Resulting Screen
Figure 49: FormattedTextScreen Example 3 (6869i/6930)
DEVELOPMENT GUIDE 58015045-00 | 92
3.6
IMAGESCREEN OBJECT (6867I/6869I/6873I/6920/6930/6940)
The ImageScreen object can be used to display single image (bitmap for the 55i/57i/57iCT/6735i/6737i, jpeg or
png file for 6867i, 6869i, 6873i and 6739i).
The user can specify where the image should be placed by setting horizontal and vertical alignment of the upper left
hand corner, along with the height and width of the image.
3.6.1
IMPLEMENTATION (6867I/6869I/6920/6930)
For the 6867i/6920 and 6869i/6930, the image is either a 24/32 bit depth “png” or a “jpeg” file located on a server
and which can be downloaded by the phone using TFTP, FTP, HTTP or HTTPS. See chapter 4.2.1.1 for more
details.
Two image sizes are supported:
6867i/6920
Up to 320x180 pixels (mode=regular or extended).
Up to 320x240 pixels (mode=fullscreen). In that case, the softkeys are not displayed.
6869i/6930
Up to 480x204 pixels (mode=regular or extended).
Up to 480x272 pixels (mode=fullscreen). In that case, the softkeys are not displayed
If the image is bigger than the size supported by the requested mode, the image is clipped based on the requested
alignment.
If the image is smaller than the size supported by the requested mode, the image is displayed based on the
requested alignment
The Left key is mapped to the cancelAction tag, if not specified the XML object is destroyed.
Note:
the Left Arrow key default interaction is disabled if the LockIn tag is set to “yes”.
If the LockIn tag is set to “yes” and the cancelAction tag is configured, pressing the Left
Arrow key triggers the configured cancelAction.
The up, down, left and right arrow key default interactions can be overridden using the
scrollUp, scrollDown, scrollLeft and scrollRight tags.
Object default Softkeys (6867i/6920)
Six (four physical) customizable softkeys are available for this object.
Position
4
Label
Interaction
URIs
Done
Exit: Redisplays the previous XML object present
in the phone browser.
SoftKey:Exit
Object default Softkeys (6869i/6930)
Eight (five physical) customizable softkeys are available for this object.
93 | DEVELOPMENT GUIDE 58015045-00
Position
5
Label
Interaction
URIs
Done
Exit: Redisplays the previous XML object present
in the phone browser.
SoftKey:Exit
The following figure details how the AastraIPPhoneImageScreen is implemented on the Mitel 6867i and 6920.
Image area
320x180 pixels
Image area
320x240 pixels
Figure 50: ImageScreen 6867i/6920 implementation (mode regular/extended and full screen)
Also a URI can be programmed to be called when the user presses the Select key (imageAction root tag). If this tag
is empty, phone will use the URI configured by the doneAction tag (SoftKey:Exit by default).
So by default pressing the Select key destroys the current XML object unless an imageAction or a doneAction is
configured.
Native Interaction
3.6.2
“SoftKey:Exit”
IMPLEMENTATION (6873I/6940)
For the 6873i/6940, the image is either a 24/32 bit depth “png” or a “jpeg” file located on a server and which can be
downloaded by the phone using TFTP, FTP, HTTP or HTTPS. See chapter 4.2.1.1 for more details.
Two image sizes are supported:
Up to 800x372 pixels (mode=regular or extended).
Up to 800x480 pixels (mode=fullscreen). In that case, the softkeys are not displayed.
If the image is bigger than the size supported by the requested mode, the image is clipped following the requested
alignment.
If the image is smaller than the size supported by the requested mode, the image is displayed following the
requested alignment
Note: as the 6873i and 6940 do not have navigation keys, the scroll actions are mapped to screen
swipes
scrollUp, by swiping from top to bottom
scrollDown, by swiping from bottom to top
scrollLeft, by swiping from left to right
DEVELOPMENT GUIDE 58015045-00 | 94
scrollRight, by swiping from right to left
Object default Softkeys
Ten (six physical) customizable softkeys are available for this object.
Position
6
Label
Interaction
URIs
Done
Exit: Redisplays the previous XML object present
in the phone browser.
SoftKey:Exit
The following figure details how the AastraIPPhoneImageScreen is implemented on the Mitel 6873i and Mitel
6940.
Image area
800x372 pixels
Image area
800x480 pixels
Figure 51: ImageScreen 6873i/6940 implementation (mode regular/extended and full screen)
Also a URI can be programmed to be called when the user presses on the displayed image (imageAction root tag).
If this tag is empty, phone will use the URI configured by the doneAction tag (SoftKey:Exit by default).
So, by default, pressing on the image destroys the current XML object unless an imageAction or a doneAction is
configured.
Native Interaction
3.6.3
“SoftKey:Exit”
XML DESCRIPTION
“Red” tags indicate that the tag does not apply to all phones, when not supported the tags are just ignored.
<AastraIPPhoneImageScreen
destroyOnExit = “yes/no”
cancelAction = “some URI”
doneAction = “some URI”
imageAction = “some URI”
Beep = “yes/no”
Timeout = “some integer”
bgColor = “white,black…”
LockIn = “yes/no”
GoodbyeLockInURI = “some URI”
CallProtection = “yes/no/notif”
allowDTMF = “yes/no”
scrollUp = “some URI”
scrollDown = “some URI”
scrollLeft = “some URI”
scrollRight = “some URI”
95 | DEVELOPMENT GUIDE 58015045-00
mode = “regular/extended/fullscreen”
>
<TopTitle
icon=”icon index”
Color=”white/black…”
>Top Title</TopTitle>
<Image
verticalAlign = “top,middle,bottom”
horizontalAlign = “left,middle,right”
height = “height in pixels”
width = “width in pixels”
>Image as hexadecimal characters or URL</Image>
<!—Additional Softkey Items may be added -->
</AastraIPPhoneImageScreen>
XML Document Objects
Document Object
Position
Type
AastraIPPhoneImageSc
reen
Root tag
Mandatory
Comments
Root object
destroyOnExit
Root tag
Optional
“yes/no” indicates if the
object is kept or not in
the phone browser after
exit. If not specified, the
object is kept in the
browser.
cancelAction
Root tag
Optional
Defines the URI to be
called when the user
cancels the XML object.
Optional
Defines the URI to be
called when the user
selects the “Done”
softkey or SoftKey:Exit.
Optional
Defines the URI to be
called when the user
presses on the image
(6873i, 6940) or presses
Select on 6867i, 6869i,
6920 and 6930.
Optional
“yes” or “no” to indicate
if a notification beep
must be generated by
the phone.
Optional
Overrides the default 45
seconds timeout of the
UI XML object. A
Timeout set to “0” will
disable the timeout
feature. See section
4.10.2 for more details
doneAction
imageAction
Beep
Timeout
bgColor
Root tag
Root tag
Root tag
Root tag
Root tag
Optional
Set the background
color of the object. the
possible values are
detailed
in
chapter
4.2.3.
If
not
specified,
the
DEVELOPMENT GUIDE 58015045-00 | 96
Document Object
Position
Type
Comments
default value is “white”.
LockIn
CallProtection
Root tag
Root tag
Optional
Optional
If set to “yes”, the phone
ignores all events that
would cause the screen
to exit without using the
keys defined by the
object. Default value is
“no”. See section 4.10.3
for more details.
If set to “yes”, the phone
will not destroy the XML
object being displayed
on an incoming call. If
set
to
“notif”,
the
behavior is the same as
“yes” but a notification is
displayed on the screen
providing the caller ID
details.
“notif” is equivalent to
“yes” on 6863i and
6865i as screen
notification are not
supported.
GoodbyeLockInURI
allowDTMF
scrollUp
scrollDown
Root tag
Root tag
Root tag
Root tag
Optional
Valid only if
LockIn=”yes”, this tag
defines a URI to be
called when the
“Goodbye” key is
pressed during a locked
XML session. This URI
overrides the native
behavior of the
“Goodbye” key which is
to destroy the current
XML object displayed.
Optional
This tag allows letting
keypad strokes as
DTMF when the phone
is in the connected
status.
Optional
This tag allows
overriding the default
behavior of the Up
arrow key.
Optional
This tag allows
overriding the default
behavior of the Down
arrow key.
scrollLeft
Root tag
Optional
This tag allows
overriding the default
behavior of the Left
arrow key.
scrollRight
Root tag
Optional
This tag allows
97 | DEVELOPMENT GUIDE 58015045-00
Document Object
Position
Type
Comments
overriding the default
behavior of the Right
arrow key.
mode
Root tag
Optional
Configures the display
mode, “regular”,
“extended” or
“fullscreen”. “extended”
mode is equivalent to
“regular” and kept for
compatibility reasons.
TopTitle
Body
Optional
Text to be used as top
title for the object
TopTitle tag
Optional
Index of the icon to be
used for the top title
Optional
Label color, the possible
values are detailed in
chapter 4.2.3.
If not specified, the
default value is “white”.
Mandatory
Image to be displayed
as a predefined icon
name or URL to get the
png file. See section
4.2.1 for more details.
Optional
Vertical position of the
image (“top”, “middle” or
“bottom”). If the tag is
not specified, the object
will use “middle” as a
default value.
Optional
Horizontal position of
the image (“left”,
“middle” or “right”). If the
tag is not specified, the
object will use “middle”
as a default value.
Mandatory
Height in pixels. Must
match the image height.
(not on 6867i, 6869i)
Optional and Ignored on
6867i, 6869i and 6873i
Icon
Color
Image
verticalAlign
horizontalAlign
Height
TopTitle tag
Body
Image tag
Image tag
Image tag
Width
Image tag
Mandatory
Width in pixels. Must
match the image width.
(not on 6867i, 6869i)
Optional and Ignored on
6867i, 6869i and 6873i
SoftKey
Body
Optional
See section 4.1 for
details
DEVELOPMENT GUIDE 58015045-00 | 98
3.6.4
EXAMPLES
XML Example (6739i)
<AastraIPPhoneImageScreen destroyOnExit="yes">
<Image height="64" width="380">http://myserver.com/images/mitel.png</Image>
<SoftKey index="1" icon="1">
<Label>Mail</Label>
<URI>http://myserver.com/script.php?action=1</URI>
</SoftKey>
<SoftKey index="10">
<Label>Exit</Label>
<URI>SoftKey:Exit</URI>
</SoftKey>
<IconList>
<Icon index="1">Icon:Envelope</Icon>
</IconList>
</AastraIPPhoneImageScreen>
Resulting Screen
Wed
Fr i Nov
Apr 614
9:30am
L1 John
XML Doe
Mail
00:05
9725551234
Hold
Mu t e
Tran sfer
Con f
Ex it
Figure 52: ImageScreen Example (6739i)
INPUTSCREEN OBJECT SINGLE INPUT FIELD (ALL MODELS)
3.7
The InputScreen object allows developers to create a screen capable of gathering user input. The Mitel IP phones
support seven input types:
IP Addresses,
Numbers (integers plus * and #),
Strings,
Dates (US and international format)
Time (US and international format)
Each parameter has a URL tag that is used to send information back to the HTTP server. The label in the parameter
tag is appended to the address in the URL tag and sent via HTTP GET.
99 | DEVELOPMENT GUIDE 58015045-00
3.7.1
IMPLEMENTATION (6863I/6865I)
Object native interactions
Done/Submit
Completes the user input by submitting the programmed URI and value
Cancel
Redisplays the previous XML object present in the phone browser.
Non softkey phone keys
The object is displayed on two lines, one line for the prompt message and one line for the input field, the title is not
displayed.
Line selected
Label
Keys
^Cancel
Up Arrow
Exit
vDone
Down Arrow
Done
Right Arrow
Next Character
Left Arrow
Previous Character
prgkey2 (Delete)
Backspace
Input field
Note:
3.7.2
the Up Arrow key interaction is disabled if the LockIn tag is set to “yes”.
the Up Arrow key interaction can be modified using the cancelAction tag.
IMPLEMENTATION (6867I/6869I/6920/6930)
On the 6867i/6869i, the input is very similar to the softkey phones.
The Left/Right keys are used to navigate between characters in the input field.
The Up/Down keys allow up and down scrolling in order to display the previous/next input field.
The Select key is mapped to the doneAction tag (Submit by default).
Object native interaction
Submit (SoftKey:Submit) Completes the user input by submitting the programmed URI and value.
“SoftKey:Exit”
Common default Softkeys (6867i/6920)
Position
Label
Description
URIs
3
Done
Completes the user input by submitting the
programmed URI and value.
SoftKey:Submit
4
Cancel
Redisplays the previous XML object present in
the phone browser. Not available if LockIn set
to “yes”.
SoftKey:Exit
Common default Softkeys (6869i/6930)
Position
4
Label
Description
URIs
Done
Completes the user input by submitting the
SoftKey:Submit
DEVELOPMENT GUIDE 58015045-00 | 100
Position
Label
Description
URIs
programmed URI and value.
5
Cancel
Redisplays the previous XML object present in
the phone browser. Not available if LockIn set
to “yes”.
SoftKey:Exit
Figure 53: InputScreen implementation on 6869i/6930
On the 6867i/6869i, like “Softkey::Submit” the URI custom softkeys are also appended with the parameter values as
well as the selection, this allows to exit the InputScreen object without the validity check.
3.7.3
IMPLEMENTATION (6873I/6940)
On the 6873i and 6940, the input for a field is done via a virtual keyboard which is displayed when the user touches
the input zone.
The
The
key on the virtual keyboard triggers the submission of the entered value.
key on the virtual keyboard removes the keyboard from the display.
Figure 54: InputScreen implementation on 6873i/6940
101 | DEVELOPMENT GUIDE 58015045-00
Object native interaction
Submit (SoftKey:Submit) Completes the user input by submitting the programmed URI and value.
“SoftKey:Exit”
Object default Softkeys
Ten customizable softkeys are available for this object.
Position
3.7.4
Label
Interaction
URIs
5
Done
Completes the user input by submitting the
programmed URI and value.
SoftKey:Submit
6
Cancel
Exit: Redisplays the previous XML object present
in the phone browser.
SoftKey:Exit
XML DESCRIPTION
“Red” tags indicate that the tag does not apply to all phones, when not supported the tags are just ignored.
<AastraIPPhoneInputScreen
type = ”IP/string/stringN/number/timeUS/timeInt/dateUS/dateInt”
password = ”yes/no”
editable = “yes/no”
destroyOnExit = “yes/no”
cancelAction = “some URI”
Beep = “yes/no”
Timeout = “some integer”
bgColor=”white/black…”
allowAnswer = “yes/no”
allowDrop = “yes/no”
allowXfer = “yes/no”
allowConf = “yes/no”
defaultFocus = “yes/no”
LockIn = “yes/no”
CallProtection = “yes/no/notif”
GoodbyeLockInURI = “some URI”
inputLanguage = “English / French / German / Italian /
Portuguese/ Russian / Nordic"
>
<Title
wrap=”yes/no”
Color=”white/black…”
>Title string</Title>
<TopTitle
icon=”icon index”
Color=”white/black…”
>Top Title</TopTitle>
<Prompt
Color=”white/black…”
>Guidance for the input</Prompt>
<URL>Target receiving the input</URL>
<Parameter
Color=”white/black…”
>name of the parameter added to URL</Parameter>
<Default>Default Value</Default>
<!—Additional Softkey Items may be added -->
<!—Additional Icon Items may be added -->
</AastraIPPhoneInputScreen>
Spanish
/
XML Document Objects
Document Object
Position
Type
Comments
AastraIPPhoneInputScreen
Root tag
Mandatory
Root object
DEVELOPMENT GUIDE 58015045-00 | 102
Document Object
Position
Type
Comments
type
Root tag
Optional
Specifies the type of input,
possible values are “IP”,
“string”, “stringN”,“number”,
“timeUS”, “timeInt”, “dateUS”,
“dateInt”. Default value is
“string”
password
Root tag
Optional
Specifies if the input is masked
by “*” characters. Default value
is “no”
editable
Root tag
Optional
Specifies if the user is allowed
to modify the input. Default
value is “yes”
destroyOnExit
Root tag
Optional
“yes/no” indicates if the object
is kept or not in the phone
browser after exit. If not
specified, the object is kept in
the browser.
cancelAction
Root tag
Optional
Defines the URI to be called
when the user cancels the XML
object.
Beep
Root tag
Optional
“yes” or “no” to indicate if a
notification beep must be
generated by the phone.
Optional
Overrides the default 45
seconds timeout of the UI XML
object. A Timeout set to “0” will
disable the timeout feature. See
section 4.10.2 for more details
Timeout
Root tag
Set the background color of the
object. the possible values are
detailed in chapter 4.2.3.
bgColor
Root tag
Optional
If not specified, the default
value is “white”.
6867i, 6869i, 6873i, 6920, 6930
and 6940 only
LockIn
CallProtection
Root tag
Root tag
Optional
Optional
If set to “yes”, the phone
ignores all events that would
cause the screen to exit without
using the keys defined by the
object. Default value is “no”.
See section 4.10.3 for more
details.
If set to “yes”, the phone will not
destroy the XML object being
displayed on an incoming call.
If set to “notif”, the behavior is
the same as “yes” but a
notification is displayed on the
screen providing the caller ID
details.
“notif” is equivalent to “yes” on
6863i and 6865i as screen
103 | DEVELOPMENT GUIDE 58015045-00
Document Object
Position
Type
Comments
notification are not supported.
GoodbyeLockInURI
defaultFocus
inputLanguage
allowAnswer
allowDrop
allowXfer
allowConf
Root tag
Root tag
Root tag
Root tag
Root tag
Root tag
Root tag
Optional
Valid only if LockIn=”yes”, this
tag defines a URI to be called
when the “Goodbye” key is
pressed during a locked XML
session. This URI overrides the
native behavior of the
“Goodbye” key which is to
destroy the current XML object
displayed.
Optional
If set to “yes”, the input field
automatically goes to edit mode
(keyboard displayed). Default
value is “no”.
6873i and 6940 only
Optional
Defines the language character
set used for the input. English
by default. See section 15 for
the localized key mapping.
Optional
This tag applies only to the
non-softkey phones. If set to
“yes”, the phone will display
“Ignore” and “Answer” if the
XML object is displayed when
the phone is in the ringing
state. Default value is “no”. See
section 6.3 for more details.
Only for 6863i and 6865i.
Optional
This tag applies only to the
non-softkey phones. If set to
“yes”, the phone will display
“Drop” if the XML object is
displayed when the phone is in
the connected state. Default
value is “no”. See section 6.4
for more details.
Only for 6863i and 6865i.
Optional
This tag applies only to the
non-softkey phones. If set to
“yes”, the phone will display
“Xfer” if the XML object is
displayed when the phone is in
the connected state. Default
value is “no”. See section 6.4
for more details.
Only for 6863i and 6865i.
Optional
This tag applies only to the
non-softkey phones. If set to
“yes”, the phone will display
“Conf” if the XML object is
displayed when the phone is in
the connected state. Default
value is “no”. See section 6.4
for more details.
DEVELOPMENT GUIDE 58015045-00 | 104
Document Object
Position
Type
Comments
Only for 6863i and 6865i.
Optional
Text to be used as title for the
object
Optional
If set to “yes” the title of the
object will be wrapped on 2
lines.
Only for 6863i and 6865i.
Optional
Label color, the possible values
are detailed in chapter 4.2.3.
If not specified, the default
value is “white”.
6867i, 6869i, 6873i, 6920, 6930
and 6940 only
Optional
Text to be used as top title for
the object
6867i, 6869i, 6873i, 6920, 6930
and 6940 only
Optional
Index of the icon to be used for
the top title
6867i, 6869i, 6873i, 6920, 6930
and 6940 only only.
TopTitle tag
Optional
Label color, the possible values
are detailed in chapter 4.2.3.
If not specified, the default
value is “white”.
6867i, 6869i, 6873i, 6920, 6930
and 6940 only
Body
Mandatory
Text to be displayed as
guidance for the user input.
Prompt tag
Optional
Label color, the possible values
are detailed in chapter 4.2.3.
If not specified, the default
value is “yellow”.
6867i, 6869i, 6873i, 6920, 6930
and 6940 only
URL
Body
Mandatory
URI called when user
completes his input.
Parameter
Body
Mandatory
Name of the parameter to be
added to the URL after input is
complete.
Parameter tag
Optional
Label color, the possible values
are detailed in chapter 4.2.3.
If not specified, the default
value is “white”.
6867i, 6869i, 6873i, 6920, 6930
and 6940 only
Body
Mandatory
Default value to be displayed in
the input field.
Title
Body
Wrap
Title tag
Color
Title tag
TopTitle
Body
Icon
Color
Prompt
Color
Color
Default
TopTitle tag
105 | DEVELOPMENT GUIDE 58015045-00
3.7.5
Document Object
Position
Type
Comments
SoftKey
Body
Optional
See section 4.1 for more details
6867i, 6869i, 6873i, 6920, 6930
and 6940 only
INPUT TYPE: IP
When the type is set to IP, the user input is restricted to integers only. The phone will validate the user input; if an
invalid IP address is entered, nothing will be sent to the server and the user will receive an error message.
Object default Softkeys (6867i/6869i/6873i/6920/6930/6940)
Position
Label
Description
URIs
1
Backspace
Deletes the character before the cursor in the
input field.
SoftKey:BackSpace
2
Dot “.”
Inserts a “.” in the user input at the cursor
position
SoftKey:Dot
One before
last
Done
Completes the user input by submitting the
programmed URI and value.
SoftKey:Submit
Cancel
Redisplays the previous XML object present in
the phone browser. Does not appear if LockIn
set to “yes”.
SoftKey:Exit
Last
XML Example
<AastraIPPhoneInputScreen type = ”IP”>
<Title>Proxy Server</Title>
<Prompt>Server IP:</Prompt>
<URL>http://10.50.10.53/script.pl</URL>
<Parameter>proxy</Parameter>
<Default></Default>
</AastraIPPhoneInputScreen>
Note: In this example, when the user press “Done” or “Submit” or “Enter” on the phone after entering
“192.168.0.100”, the phone will call the following URL
“http://10.50.10.53/script.pl?proxy=192.168.0.100”.
Resulting Screen (6863i/6865i)
Figure 55: InputScreen “IP” Example (6863i/6865i)
DEVELOPMENT GUIDE 58015045-00 | 106
Resulting Screen (6869i/6930)
Figure 56: InputScreen “IP” Example (6869i/6930)
Resulting Screen (6873i/6940)
Figure 57: InputScreen “IP” Example (6873i/6940)
3.7.6
INPUT TYPE: NUMBER
Like an IP screen, a number input screen restricts the user to numbers only. Field validation is performed on the
user input.
107 | DEVELOPMENT GUIDE 58015045-00
Object default Softkeys (6867i/6869i/6873i/6920/6930/6940)
Position
1
One before
last
Last
Label
Description
URIs
Backspace
Deletes the character before the cursor in the
input field.
SoftKey:BackSpace
Done
Completes the user input by submitting the
programmed URI and value.
SoftKey:Submit
Cancel
Redisplays the previous XML object present in
the phone browser. Does not appear if
LockIn set to “yes”.
SoftKey:Exit
XML Example
<AastraIPPhoneInputScreen type=”number”>
<Title>Proxy Port</Title>
<Prompt>Port:</Prompt>
<URL>http://10.50.10.53/script.pl</URL>
<Parameter>port</Parameter>
<Default>5060</Default>
</AastraIPPhoneInputScreen>
Resulting Screen (6863i/6865i)
Figure 58: InputScreen “Number” Example (6863i/6865i)
Resulting Screen (6869i/6930)
Figure 59: InputScreen “Number” Example (6869i/6930)
DEVELOPMENT GUIDE 58015045-00 | 108
Resulting Screen (6873i/6940)
Figure 60: InputScreen “Number” Example (6873i/6940)
Note: In this example, when the user presses “Done” or “Submit” or “Enter” on the phone after entering
“5060”, the phone will call the following URL “http://10.50.10.53/script.pl?port=5060”.
3.7.7
INPUT TYPE: STRING OR STRINGN
When the input type is set to string, the user can enter uppercase letters, lowercase letters, symbols, and numbers.
6863i/6865i input
The user can scroll through some available input symbols
. : ; , = _ , - & ( ) ” $ ! by pressing the 1 key repeatedly.
# / \ @ by pressing the # key repeatedly.
Space by pressing the * key repeatedly
Keys 2-9 scroll through the keypad letters in upper case and lower case (e.g. pressing repeatedly 2 will scroll
through ABC2abc or abc2ABC if type is string and 2ABCabc or 2abcABC if type is stringN)
6867i/6869i/6873i/6920/6930/6940 input
The input mode can be switched via the Mode Key (Upper Case, Lower Case and Digits).
The user can scroll through some available input symbols
. : ; , = _ , - & ( ) ” $ ! by pressing the 1 key repeatedly.
# / \ @ by pressing the # key repeatedly.
Space by pressing the * key repeatedly
In Upper Case or Lower Case mode, keys 2-9 scroll through the keypad letters (e.g. pressing repeatedly 2 in Upper
case mode will scroll through ABC2)
109 | DEVELOPMENT GUIDE 58015045-00
Object default Softkeys (6867i/6869i/6873i/6920/6930/6940)
Position
Label
Description
URIs
1
Backspace
Deletes the character before the cursor in the
input field.
SoftKey:BackSpace
2
Dot “.”
Inserts a “.” in the user input at the cursor
position
SoftKey:Dot
3
ABC>
Toggle between input modes, “ABC”, “123”,
“abc”. Type is “string”
SoftKey:ChangeMode
3
123>
Toggle between input modes, “123”, “ABC”,
“abc”. Type is “stringN”
SoftKey:ChangeMode
4
NextSpace
Inserts a space in the user input at the cursor
position
SoftKey:NextSpace
Done
Completes the user input by submitting the
programmed URI and value.
SoftKey:Submit
Cancel
Redisplays the previous XML object present
in the phone browser. Does not appear if
LockIn set to “yes”.
SoftKey:Exit
One before
last
Last
XML Example
<AastraIPPhoneInputScreen
type = ”string”
password = “yes”>
<Title>SIP Settings</Title>
<Prompt>Enter something</Prompt>
<URL>http://10.50.10.53/script.pl</URL>
<Parameter>passwd</Parameter>
<Default></Default>
</AastraIPPhoneInputScreen>
Resulting Screen (6863i/6865i)
Figure 61: InputScreen “String” Example (6863i/6865i)
DEVELOPMENT GUIDE 58015045-00 | 110
Resulting Screen (6869i/6930)
Figure 62: InputScreen “String” Example (6869i/6930)
Resulting Screen (6873i/6940)
Figure 63: InputScreen “String” Example (6873i/6940)
Note: In this example, when the user press “Done” or “Submit” or “Enter” on the phone after entering
“12345”, the phone will call the following URL “http://10.50.10.53/script.pl?passwd=12345”.
111 | DEVELOPMENT GUIDE 58015045-00
3.7.8
INPUT TYPE: TIMEUS
When the input type is set to “timeUS”, the user can enter a time using the US format with 12 hours cycle
(HH:MM:SS AM/PM with HH from 00 to 12).
The user navigates between the various fields using the left and right navigation arrow keys, the toggle between AM
and PM is done using the right navigation arrow key with the cursor positioned right before the AM/PM field.
Notes:
the “password” attribute has no effect on this input type.
the format of the “Default” attribute must be HH:MM:SSXX
where XX is AM or PM, HH between 00 and 12 and MM/SS between 00 and 59.
If the “Default” tag is empty, the phone displays “12:00:00 AM”.
On the softkey phones, an extra softkey “AM/PM” is also available.
Object default Softkeys (6867i/6869i/6873i/6920/6930/6940)
Position
One before
last
Last
Label
Description
URIs
Done
Completes the user input by submitting the
programmed URI and value.
SoftKey:Submit
Cancel
Redisplays the previous XML object present
in the phone browser. Does not appear if
LockIn set to “yes”.
SoftKey:Exit
XML Example
<AastraIPPhoneInputScreen type = ”timeUS”>
<Title>Time US</Title>
<Prompt>Enter time:</Prompt>
<URL>http://10.50.10.53/script.pl</URL>
<Parameter>time</Parameter>
<Default></Default>
</AastraIPPhoneInputScreen>
Resulting Screen (6863i/6865i)
Figure 64: InputScreen “TimeUS” Example (6863i/6865i)
DEVELOPMENT GUIDE 58015045-00 | 112
Resulting Screen (6869i/6930)
Figure 65: InputScreen “TimeUS” Example (6869i/6930)
Resulting Screen (6873i/6940)
Figure 66: InputScreen “TimeUS” Example (6873i/6940)
Note: In this example, when the user press “Done” or “Submit” or “Enter” on the phone after entering
“10:20:00 AM”, the phone will call the following URL “http://10.50.10.53/script.pl?time=10:20:00AM”
(actually the phone URL encodes the URL so the “:” character is replaced by %3A but transparent to the
receiving code)
113 | DEVELOPMENT GUIDE 58015045-00
3.7.9
INPUT TYPE: TIMEINT
When the input type is set to “timeInt”, the user can enter a time using the international format with a 24 hours
cycle (HH:MM:SS with HH from 00 to 23).
The user navigates between the various fields using the left and right navigation arrow keys.
Notes:
the “password” attribute has no effect on this input type.
the format of the “Default” attribute must be HH:MM:SS with HH from 00 to 23. If the
“Default” tag is empty, the phone displays “00:00:00”.
Object default Softkeys (6867i/6869i/6873i/6920/6930/6940)
Position
One before
last
Last
Label
Description
URIs
Done
Completes the user input by submitting the
programmed URI and value.
SoftKey:Submit
Cancel
Redisplays the previous XML object present
in the phone browser. Does not appear if
LockIn set to “yes”.
SoftKey:Exit
XML Example
<AastraIPPhoneInputScreen type = ”timeInt”>
<Title>Time International</Title>
<Prompt>Enter time:</Prompt>
<URL>http://10.50.10.53/script.pl</URL>
<Parameter>time</Parameter>
<Default></Default>
</AastraIPPhoneInputScreen>
Resulting Screen (6863i/6865i)
Figure 67: InputScreen “TimeInt” Example (6863i/6865i)
DEVELOPMENT GUIDE 58015045-00 | 114
Resulting Screen (6869i/6930)
Figure 68: InputScreen “TimeInt” Example (6869i/6930)
Resulting Screen (6873i/6940)
Figure 69: InputScreen “TimeInt” Example (6873i/6940)
Note: In this example, when the user press “Done” or “Submit” or “Enter” on the phone after entering
“14:20:00”, the phone will call the following URL http://10.50.10.53/script.pl?time=14:20:00 (actually the
phone URL encodes the URL so the “:” character is replaced by %3A but transparent to the receiving
code)
115 | DEVELOPMENT GUIDE 58015045-00
3.7.10
INPUT TYPE: DATEUS
When the input type is set to “dateUS”, the user can enter a date using the US format (MM/DD/YYYY).
The user navigates between the various editable fields using the left and right navigation arrow keys.
Notes:
the “password” attribute has no effect on this input type.
the format of the “Default” attribute must be MM/DD/YYYY. If “Default” tag is empty,
todays date is displayed.
Object default Softkeys (6867i/6869i/6873i/6920/6930/6940)
Position
One before
last
Last
Label
Description
URIs
Done
Completes the user input by submitting the
programmed URI and value.
SoftKey:Submit
Cancel
Redisplays the previous XML object present
in the phone browser. Does not appear if
LockIn set to “yes”.
SoftKey:Exit
XML Example
<AastraIPPhoneInputScreen type = ”dateUS”>
<Title>Date US</Title>
<Prompt>Enter date</Prompt>
<URL>http://10.50.10.53/script.pl</URL>
<Parameter>date</Parameter>
<Default></Default>
</AastraIPPhoneInputScreen>
Resulting Screen (6863i/6865i)
Figure 70: InputScreen “DateUS” Example (6863i/6865i)
DEVELOPMENT GUIDE 58015045-00 | 116
Resulting Screen (6869i/6930)
Figure 71: InputScreen “DateUS” Example (6869i/6930)
Resulting Screen (6873i/6940)
Figure 72: InputScreen “DateUS” Example (6873i/6940)
Notes:
In this example, when the user press “Done” or “Submit” or “Enter” on the phone after entering
“06/14/2009”, the phone will call the following URL
“http://10.50.10.53/script.pl?date=06/14/2009”.
the InputScreen object does not perform any control on the validity of the date entered by
117 | DEVELOPMENT GUIDE 58015045-00
the user.
3.7.11
INPUT TYPE: DATEINT
When the input type is set to “dateInt”, the user can enter a date using the international format (DD/MM/YYYY).
The user navigates between the various editable fields using the left and right navigation arrow keys.
Notes:
the “password” attribute has no effect on this input type.
the format of the “Default” attribute must be DD/MM/YYYY. If “Default” tag is empty,
todays date is displayed.
Object default Softkeys (6867i/6869i/6873i/6920/6930/6940)
Position
One before
last
Last
Label
Description
URIs
Done
Completes the user input by submitting the
programmed URI and value.
SoftKey:Submit
Cancel
Redisplays the previous XML object present
in the phone browser. Does not appear if
LockIn set to “yes”.
SoftKey:Exit
XML Example
<AastraIPPhoneInputScreen type = ”dateInt”>
<Title>Date International</Title>
<Prompt>Enter date</Prompt>
<URL>http://10.50.10.53/script.pl</URL>
<Parameter>date</Parameter>
<Default></Default>
</AastraIPPhoneInputScreen>
Resulting Screen (non softkey phone)
Figure 73: InputScreen “DateInt” Example (non softkey phone)
DEVELOPMENT GUIDE 58015045-00 | 118
Resulting Screen (6869i/6930)
Figure 74: InputScreen “DateInt” Example (6869i/6930)
Resulting Screen (6973i/6940)
Figure 75: InputScreen “DateInt” Example (6873i/6940)
Notes:
In this example, when the user press “Done” or “Submit” or “Enter” on the phone after entering
“14/06/2009”, the phone will call the following URL
“http://10.50.10.53/script.pl?date=14/06/2009”.
119 | DEVELOPMENT GUIDE 58015045-00
Note: the InputScreen object does not perform any control on the validity of the date entered
by the user.
DEVELOPMENT GUIDE 58015045-00 | 120
INPUTSCREEN OBJECT MULTIPLE INPUT FIELDS (6867I / 6869I / 6873I / 6920 / 6930 / 6940)
3.8
The InputScreen object can support up to 10 input fields, each of them potentially having different individual
attributes.
The supported input types for each field are the same than the ones supported for the single input object plus an
empty type.
For each input field, the following attributes can be defined overriding the ones declared in the main object:
Type
Editable
Password
Prompt
Default
Parameter
Of course, only one URL can be defined to be called when the user has completed his inputs; the label in the
parameter tags is appended to the address in the URL tag and sent via HTTP GET. If the Selection tag is used the
value of the tag is also appended to the URL tag.
Two display modes are available for the Multiple Input AastraIPPhoneInputScreen:
Normal: similar aspect to the single input field with a prompt and the input field on 2 separate lines, three
(6867i/6869i/6920/6930) or seven (6873i/6940) input fields will be displayed per screen and the user will be
able to scroll through them.
Condensed: the prompt and the input field are on the same line, the prompts being right aligned on the
longest prompt. Up to 7 fields are displayed on the same screen depending on the phone model.
3.8.1
IMPLEMENTATION (6867I/6869I/6920/6930)
The Left/Right keys are used to navigate between characters in the input field.
The Up/Down keys allow up and down scrolling in order to display the previous/next input field.
When multiple fields are displayed, the Select key is mapped to go to the next field (like the arrow down key) until
the last field is reached where it is then mapped to the doneAction tag (Submit by default).
Figure 76: InputScreen implementation on 6869i/6930 “normal” mode
121 | DEVELOPMENT GUIDE 58015045-00
Figure 77: InputScreen implementation on 6869i/6930 “condensed” mode
The number of fields displayed on a single screen depends on the presence of the optional title.
Object native interaction
Done/Submit
Completes the user input by submitting the programmed URI and value.
Cancel
Redisplays the previous XML object present in the phone browser
Object default Softkeys (6867i/6920)
Six customizable softkeys are available for this object. If more than 4 softkeys are configured or needed the softkeys
are displayed on 2 pages.
Position
Label
Interaction
URIs
3
Done
Completes the user input by submitting the
programmed URI and value.
SoftKey:Submit
4
Cancel
Redisplays the previous XML object present in the
phone browser. Not available if LockIn set to
“yes”.
SoftKey:Exit
Object default Softkeys (6869i/6930)
Eight customizable softkeys are available for this object. If more than 5 softkeys are configured or needed the
softkeys are displayed on 2 pages.
Position
Label
Interaction
URIs
4
Done
Completes the user input by submitting the
programmed URI and value.
SoftKey:Submit
5
Cancel
Redisplays the previous XML object present in the
phone browser. Not available if LockIn set to
“yes”.
SoftKey:Exit
On the 6867i/6869i, like “Softkey::Submit” the URI custom softkeys are also appended with the parameter values as
well as the selection, this allows to exit the InputScreen object without the validity check. This allows for instance to
create an input screen with a field which could be a selection amongst a list of values and come back to the screen
without losing the user inputs.
3.8.2
IMPLEMENTATION (6873I/6940)
The Left/Right keys on the virtual keyboard are used to navigate between characters in the input field.
Scrolling between the fields is done swiping the finger on the screen up and down. Scrolling is also available when
the virtual keyboard is displayed.
DEVELOPMENT GUIDE 58015045-00 | 122
Figure 78: InputScreen implementation on 6873i/6940 “normal” mode
Figure 79: InputScreen implementation on 6873i/6940 “condensed” mode
The number of fields displayed on a single screen depends on the presence of the optional title.
Object native interaction
Done/Submit
Completes the user input by submitting the programmed URI and value.
Cancel
Redisplays the previous XML object present in the phone browser
Object default Softkeys
Eight customizable softkeys are available for this object. If more than 5 softkeys are configured or needed the
softkeys are displayed on 2 pages.
Position
Label
Interaction
URIs
5
Done
Completes the user input by submitting the
programmed URI and value.
SoftKey:Submit
6
Cancel
Redisplays the previous XML object present in the
phone browser. Not available if LockIn set to
“yes”.
SoftKey:Exit
On the 6873i/6940, like “Softkey::Submit” the URI custom softkeys are also appended with the parameter values as
well as the selection, this allows to exit the InputScreen object without the validity check. This allows for instance to
create an input screen with a field which could be a selection amongst a list of values and come back to the screen
without losing the user inputs.
3.8.3
XML DESCRIPTION
“Red” tags indicate that the tag does not apply to all phones, when not supported the tags are just ignored.
<AastraIPPhoneInputScreen
type = “IP/string/stringN/number/timeUS/timeInt/dateUS/dateInt”
123 | DEVELOPMENT GUIDE 58015045-00
password = “yes/no”
editable = “yes/no”
destroyOnExit = “yes/no”
cancelAction = “some URI”
Timeout = “some integer”
bgColor=”white/black…”
LockIn = “yes/no”
CallProtection = “yes/no/notif”
GoodbyeLockInURI = “some URI”
allowAnswer = “yes/no”
allowDrop = “yes/no”
allowXfer = “yes/no”
allowConf = “yes/no”
defaultIndex = “some integer (1 to 10)”
defaultFocus = “yes/no”
displayMode = “normal/condensed”
>
<Title
wrap=”yes/no”
Color=”white/black…”
>Title string</Title>
<TopTitle
icon=”icon index”
Color=”white/black…”
>Top Title</TopTitle>
<Prompt
Color=”white/black…”
>Guidance for the input</Prompt>
<URL>Target receiving the input</URL>
<Parameter
Color=”white/black…”
>name of the parameter added to URL</Parameter>
<Default>Default Value</Default>
<InputField
type = “IP/string/stringN/number
timeUS/timeInt/dateUS/dateInt”
password = “yes/no”
editable = “yes/no”
>
<Prompt Color=”white/black…”
>Guidance for the input</Prompt>
<Parameter
Color=”white/black…”
>parameter name added to URL</Parameter>
<Default>Default Value</Default>
<Selection>Selection</Selection>
<!—Additional Softkey Items may be added -->
</InputField>
<!—Additional Input fields Items may be added -->
<!—Additional Softkey Items may be added -->
<!—Additional Icon Items may be added -->
</AastraIPPhoneInputScreen>
XML Document Objects
Document Object
Position
Type
Comments
AastraIPPhoneInputScreen
Root tag
Mandatory
Root object
Type
Root tag
Optional
Specifies the type of input,
possible values are “IP”,
“string”,”stringN”, “number”,
“timeUS”, “timeInt”, “dateUS”,
“dateInt”. Default value is
“string”.
Password
Root tag
Optional
Specifies if the input is masked
by “*” characters. Default value
DEVELOPMENT GUIDE 58015045-00 | 124
Document Object
Position
Type
Comments
is “no”
Editable
Root tag
Optional
Specifies if the user is allowed
to modify the input. Default
value is “yes”
destroyOnExit
Root tag
Optional
“yes/no” indicates if the object
is kept or not in the phone
browser after exit. If not
specified, the object is kept in
the browser.
cancelAction
Root tag
Optional
Defines the URI to be called
when the user cancels the XML
object.
Optional
Overrides the default 45
seconds timeout of the UI XML
object. A Timeout set to “0” will
disable the timeout feature.
See section 4.10.2 for more
details
Timeout
Root tag
Set the background color of the
object. the possible values are
detailed in chapter 4.2.3.
bgColor
Root tag
Optional
If not specified, the default
value is “white”.
6867i, 6869i, 6873i, 6920, 6930
and 6940 only
LockIn
CallProtection
Root tag
Root tag
Optional
Optional
If set to “yes”, the phone
ignores all events that would
cause the screen to exit without
using the keys defined by the
object. Default value is “no”.
See section 4.10.3 for more
details.
If set to “yes”, the phone will
not destroy the XML object
being displayed on an incoming
call. If set to “notif”, the
behavior is the same as “yes”
but a notification is displayed
on the screen providing the
caller ID details.
“notif” is equivalent to “yes” on
6863i and 6865i as screen
notification are not supported.
GoodbyeLockInURI
Root tag
125 | DEVELOPMENT GUIDE 58015045-00
Optional
Valid only if LockIn=”yes”, this
tag defines a URI to be called
when the “Goodbye” key is
pressed during a locked XML
session. This URI overrides the
native behavior of the
“Goodbye” key which is to
destroy the current XML object
displayed.
Document Object
allowAnswer
allowDrop
allowXfer
allowConf
defaultFocus
Position
Root tag
Root tag
Root tag
Root tag
Root tag
Type
Comments
Optional
This tag applies only to the
non-softkey phones. If set to
“yes”, the phone will display
“Ignore” and “Answer” if the
XML object is displayed when
the phone is in the ringing
state. Default value is “no”. See
section 6.4 for more details.
Only for 6863i, 6865i
Optional
This tag applies only to the
non-softkey phones. If set to
“yes”, the phone will display
“Drop” if the XML object is
displayed when the phone is in
the connected state. Default
value is “no”. See section 6.4
for more details.
Only for 6863i, 6865i
Optional
This tag applies only to the
non-softkey phones. If set to
“yes”, the phone will display
“Xfer” if the XML object is
displayed when the phone is in
the connected state. Default
value is “no”. See section 6.4
for more details.
Only for 6863i, 6865i
Optional
This tag applies only to the
non-softkey phones. If set to
“yes”, the phone will display
“Conf” if the XML object is
displayed when the phone is in
the connected state. Default
value is “no”. See section 6.4
for more details.
Only for 6863i, 6865i
Optional
If set to “yes”, the first input
field defined by defaultIndex
automatically goes to edit mode
(keyboard displayed). Default
value is “no”.
6739i only
displayMode
Root tag
Optional
If set to “normal” the input fields
will be displayed with the
prompt and the input field on 2
lines. If set to “condensed” both
the prompt and the input field
are on the same line. Default
value is “normal”
defaultIndex
Root tag
Optional
Defines the field where the user
will start his input amongst the
multiple field inputs. Default 1.
Title
Body
Optional
Text to be used as title for the
object
DEVELOPMENT GUIDE 58015045-00 | 126
Document Object
Wrap
Type
Comments
Optional
If set to “yes” the title of the
object will be wrapped on 2
lines.
Ignored on 6867i, 6869i, 6873i
and 6739i
Optional
Label color, the possible values
are detailed in chapter 4.2.3.
If not specified, the default
value is “white”.
6867i, 6869i and 6739i only
Optional
Text to be used as top title for
the object
6867i, 6869i, 6873i and 6739i
only.
Optional
Index of the icon to be used for
the top title
6867i, 6869i, 6873i and 6739i
only.
Optional
Label color, the possible values
are detailed in chapter 4.2.3.
If not specified, the default
value is “white”.
6867i, 6869i, 6873i and 6739i
only
Optional
Text to be displayed as
guidance for the user input. Is
used as the default value for
each input field.
Prompt tag
Optional
Label color, the possible values
are detailed in chapter 4.2.3.
If not specified, the default
value is “yellow”.
6867i, 6869i, 6873i and 6739i
only
Body
Mandatory
URI called when user
completes his input.
Optional
Name of the parameter to be
added to the URL after input is
complete. Is used as the
default value for each input
field.
Parameter tag
Optional
Label color, the possible values
are detailed in chapter 4.2.3
If not specified, the default
value is “white”.
6867i, 6869i, 6873i and 6739i
only
Body
Optional
Default value to be displayed in
the input field. Is used as the
default value for each input
Title tag
Color
TopTitle tag
TopTitle
Body
Icon
Color
Prompt
Color
URL
Parameter
Color
Default
Position
TopTitle tag
TopTitle tag
Body
Body
127 | DEVELOPMENT GUIDE 58015045-00
Document Object
Position
Type
Comments
field.
InputField
Type
Password
Editable
Prompt
Color
Parameter
Color
Body
InputField tag
InputField tag
InputField tag
InputField Body
Prompt tag
InputField Body
Parameter tag
Optional
Optional
Specifies the type of input for
the field, possible values are
“IP”, “string”, “number”,
“timeUS”, “timeInt”, “dateUS”,
“dateInt” or “empty”. Overrides
the value set in the root tag for
the field. An “empty” value will
create one blank line in
condensed mode and 2 blank
lines in normal mode.
Optional
Specifies if the input is masked
by “*” characters. Default value
is “no”. Overrides the value set
in the root tag for the field.
Optional
Specifies if the user is allowed
to modify the input. Default
value is “yes”. Overrides the
value set in the root tag for the
field
Optional
Text to be displayed as
guidance for the user input.
Overrides the value set in the
object for the field.
Optional
Label color, the possible values
are detailed in chapter 4.2.3.
If not specified, the default
value is “yellow” for 6867i,
6869i and “white” for 6739i.
6867i, 6869i, 6873i and 6739i
only
Optional
Name of the parameter to be
added to the URL after input is
complete. Overrides the value
set in the object for the field.
Optional
Label color, the possible values
are detailed in chapter 4.2.3.
If not specified the default value
is “white” for 6867i, 6869i and
“black” for 6739i
6867i, 6869i, 6873i and 6739i
only
Default
InputField Body
Optional
Default value to be displayed in
the input field. Overrides the
value set in the object for the
field.
Selection
InputField Body
Optional
The content of this tag will be
added when the “Submit” key is
pressed while editing this field.
Body
Optional
See section 4.1 for details.
SoftKey
DEVELOPMENT GUIDE 58015045-00 | 128
Document Object
Position
Type
Comments
Only on 6867i, 6869i, 6873i,
6739i, 6755i, 6757i, 6757iCT,
6735i and 6737i.
Note: when the InputField type is set to empty, a non editable blank line replaced the input field
on the display when the XML object is in condensed mode, 2 blank lines for the normal mode. Also an
empty field is a proper field; the defaultIndex value must consider the empty field as a plain field.
3.8.4
EXAMPLES
XML Example 1
<AastraIPPhoneInputScreen
type="string"
destroyOnExit="yes"
displayMode="condensed"
>
<Title>Restricted application</Title>
<URL>http://myserver.com/script.php</URL>
<Default/>
<InputField type="empty">
</InputField>
<InputField type="string">
<Prompt>Username:</Prompt>
<Parameter>user</Parameter>
<Selection>1</Selection>
</InputField>
<InputField type="number" password="yes">
<Prompt>Password:</Prompt>
<Parameter>passwd</Parameter>
<Selection>2</Selection>
</InputField>
</AastraIPPhoneInputScreen>
Note: In this example, when the user press “Submit” on the phone after entering “admin” for the
username and “22222” for the password, the phone will call the following URLs:
http://myserver.com/script.php?user=admin&passwd=22222&selection=1, if the “Submit” or
“Enter” key is pressed while editing the “User name” field,
http://myserver.com/script.php?user=admin&passwd=22222&selection=2, if the “Submit” key or
“Enter” is pressed while editing the “Password” field.
129 | DEVELOPMENT GUIDE 58015045-00
Resulting Screen (6869i/6930)
Figure 80: InputScreen multiple inputs “condensed” (6869i/6930)
Resulting Screen (6873i/6940)
Figure 81: InputScreen multiple inputs “condensed” (6873i/6940)
DEVELOPMENT GUIDE 58015045-00 | 130
XML Example 2
<AastraIPPhoneInputScreen
type="string"
destroyOnExit="yes"
>
<Title>Date and Time</Title>
<URL>http://myserver.com/script.php</URL>
<Default/>
<InputField type="dateUS">
<Prompt>Enter Date</Prompt>
<Parameter>date</Parameter>
</InputField>
<InputField type="timeUS">
<Prompt>Enter Time</Prompt>
<Parameter>time</Parameter>
</InputField>
</AastraIPPhoneInputScreen>
Note: In this example, when the user press “Done” on the phone after entering “2/21/2010” for the date
and
“12:00:00
AM”
for
the
time,
the
phone
will
call
the
following
URL
“http://myserver.com/script.php?date=02/21/2010&time=12:00:00AM”.
Resulting Screen (6869i/6930)
Figure 82: InputScreen multiple inputs “normal” (6869i/6930)
131 | DEVELOPMENT GUIDE 58015045-00
Resulting Screen (6873i/6940)
Figure 83: InputScreen multiple inputs “normal” (6873i/6940)
DEVELOPMENT GUIDE 58015045-00 | 132
3.9
PHONESTATUS OBJECT
The AastraIPPhoneStatus object provides the ability to display a status message or icon on the phones idle
screen when XML information is pushed from the servers.
If the phone receives multiple messages, the first message received displays first and the remaining messages
scroll consecutively one at a time.
The AastraIPPhoneStatus object supports 3 modes for the information to be displayed on the idle screen:
Normal mode: messages remain displayed until they are removed (by the server) or after a phone reboot.
Alert mode: one message is displayed on top of the existing messages only for a limited time (3 seconds
by default) or permanently until removed or replaced by another one.
Icon mode (6867i/6869i/6873i/6920/6930 and 6940 only): up to 4 icons are displayed on the top line of the
display and remain there until they are removed/replaced (by the server) or after a phone reboot.
Toaster mode (6867i/6869i/6873i/6920/6930 and 6940 only): the message is displayed in the “toaster”
notification which scrolls under the status bar.
Note: You can set the amount of time, in seconds, that a message displays to the phone before scrolling
to the next message (See Scroll delay below).
3.9.1
IMPLEMENTATION (6863I/6865I)
The phones display normal and alert messages on the second line. Long messages that are wider then the phone
screen get truncated.
3.9.2
IMPLEMENTATION (6867I/6869I/6873I/6920/6930/6940)
The phones display the messages on the second line in the phone idle screen (where “No Service” would be
displayed if there was no service. If there is no service on the phone, the “No Service” message overrides the XML
object message).
The following graphic shows how the different types of message are displayed.
“icon”
“toaster”
“normal”
“alert”
On the 6873i and 6940 the user can also press the “toaster” notification to execute the URI attached to the message
if any.
133 | DEVELOPMENT GUIDE 58015045-00
Note: On the 6867i/6869i/6873i/6920/6930 and 6940 alert messages are displayed in red by default
3.9.3
XML DESCRIPTION
“Red” tags indicate that the tag does not apply to all phones, when not supported the tags are just ignored.
<AastraIPPhoneStatus
Beep = “yes/no”
triggerDestroyOnExit = “yes/no”
>
<Session>Session ID</Session>
<Message
Index = “index”
Color=”white/black…”
Type = “normal/alert/icon/toaster”
Timeout = “timeout”
URI = “some URI”
icon = “icon index”
>Message</Message>
<!—Additional Message Items may be added -->
<!—Additional Icon Items may be added -->
</AastraIPPhoneStatus>
Notes:
The Session ID must be unique to the application sending the XML object to the phone. It is up
to the application to generate that session ID, which does not have to be limited to just
numbers. It could be a combination of letters and numbers. There could only be one Session
tag per PhoneStatusMsg object. If the Session tag is not provided, the phone assumes a
default value (0) for it; this can be used if you dont have multiple applications displaying
messages on the idle screen.
The type=”alert” tag indicates the alert mode. In this mode a timeout of “0” indicates that
the alert message is displayed until a new alert is posted or until the phone is rebooted or a
new empty alert is posted. In this mode as only one alert is displayed, the session and index
values are ignored.
The type=”icon” indicates the icon mode. The four icons are referenced by the index value
(0 to 3), the session value is ignored. Dynamic icons are supported.
The type=”toaster” indicates the toaster mode. The message is displayed in an animated
bar under the phone status bar, the session value is ignored. Dynamic icons are not supported.
DEVELOPMENT GUIDE 58015045-00 | 134
The following table details which tags are relevant for each message type.
Session
normal
Index
Color
alert
Timeout
URI
icon
icon
(6873i/6940)
toaster
Scroll Delay
The Scroll delay can be configured via the configuration files and the Mitel Web UI using the following parameters:
xml status scroll delay (via configuration files)
Status Scroll Delay (in seconds) (via the Mitel Web UI see chapter 7.5)
XML Document Objects
Document Object
Position
Type
Comments
AastraIPPhoneStatus
Root tag
Mandatory
Root object
Optional
“yes” or “no” to indicate if
a notification beep must
be generated by the
phone.
Optional
If the XML object is sent
as an answer to a UI
object, setting this
parameter to “yes” will
trigger the exit of the
calling object as if it was a
UI object. See section
4.10.4 for more details.
Optional
Session ID used to
identify the application
displaying message. It
allows message change
and message reset.
Ignored if type is “alert” or
“icon”
Body
Mandatory
Message to be displayed
or empty to reset the
message.
In “icon” mode this is the
value of the counter to be
displayed on the icon if
value is superior to zero.
Message tag
Mandatory
Index of the message for
the session, the index
starts at 0. Ignored if type
Beep
triggerDestroyOnExit
Session
Message
index
Root tag
Root tag
Body
135 | DEVELOPMENT GUIDE 58015045-00
Document Object
Position
Type
Comments
is “alert” or “toaster”. If
type is “icon” the index
must be from 0 to 3 (4
icons).
Color
type
Timeout
URI
icon
IconList
Optional
Label color, the possible
values are detailed in
chapter 4.2.3.
If not specified, the
default value is “darkgray”
for standard messages
and “red” for alert
messages.
6867i, 6869i, 6873i, 6920,
6930 and 6940 only
Optional
Type of message,
“alert” to indicate that the
message is displayed for
a limited time.
“icon” to indicate an
update of the status bar
icons.
“toaster” to indicate that
the message is displayed
in the animated
notification under the
status bar.
If not specified, the
message stays on the
screen until it is reset by
an empty message or
after a phone reboot.
“icon” and “toaster”
values are for 6867i,
6869i, 6873i, 6920, 6930
and 6940 only
Optional
Timeout of the “alert”
message, overrides the
3s default value. If set to
“0” the message is
displayed indefinitely.
Optional
URI to be called when the
user presses the
notification message
button
6873i and 6940 only
Message tag
Optional
Index of the icon to be
used for this
message/alert.
6867i, 6869i, 6873i, 6920,
6930 and 6940 only
Body
Optional
List of icons used in the
object
6867i, 6869i, 6873i, 6920,
Prompt tag
Message tag
Message tag
Message tag
DEVELOPMENT GUIDE 58015045-00 | 136
Document Object
Position
Type
Comments
6930 and 6940 only
3.9.4
EXAMPLES
XML Example 1
<AastraIPPhoneStatus Beep=”yes”>
<Session>abc12345</Session>
<Message index=”0”>Message 1 displayed</Message>
<Message index=”1” type=”alert” Timeout=”5”>Alert displayed</Message>
</AastraIPPhoneStatus>
Resulting Screen (6863i/6865i)
Figure 84: PhoneStatus Example (6863i/6865i)
Resulting Screen (6869i/6930)
Figure 85: PhoneStatus Example (6869i/6930)
Note: The PhoneStatus object can also be used to remove status messages from the display using
the same SessionID and the same index. This can be accomplished by setting an empty tag for the
Message tag. For example, here is the XML object to remove the previous messages (as the second
message was in alert mode it does not remain on the display so no need to remove it).
137 | DEVELOPMENT GUIDE 58015045-00
<AastraIPPhoneStatus>
<Session>abc12345</Session>
<Message index="0"/>
<Message index="1"/>
<AastraIPPhoneStatus/>
XML Example 2
This XML example displays in the status bar
the “DND” icon (index 0)
the “Call Forward” icon (index 1)
the “Message” icon (index 2) with a counter of 2.
It is critical that the mapping between feature and index remains constant if the XML application is dealing with
multiple features.
<AastraIPPhoneStatus>
<Session/>
<Message index="0" type="icon" icon="1"/>
<Message index="1" type="icon" icon="2"/>
<Message index="2" type="icon" icon="3">2</Message>
<IconList>
<Icon index="1">Icon:DND</Icon>
<Icon index="2">Icon:CallFwd</Icon>
<Icon index="3">Icon:Envelope</Icon>
</IconList>
</AastraIPPhoneStatus>
Figure 86: PhoneStatus icons example
Note (6867i, 6869i, 6873i, 6920, 6930 and 6940): The PhoneStatus object can also be used to
remove icons from the display using the same index but setting the icon to “Icon:None”.
To just remove the DND icon, the following content must be sent
<AastraIPPhoneStatus>
<Message index="0" type="icon" icon="1"></Message>
<IconList>
<Icon index=“1”>Icon:None</Icon>
</IconList>
</AastraIPPhoneStatus>
Or
<AastraIPPhoneStatus>
<Message index="0" type="icon"></Message>
</AastraIPPhoneStatus>
Figure 87: PhoneStatus icons example
DEVELOPMENT GUIDE 58015045-00 | 138
And to just change the number of counter for “Message” (index 2) to the value of 5, the following content must be
sent
<AastraIPPhoneStatus>
<Session/>
<Message index="2" type="icon" icon="1">5</Message>
<IconList>
<Icon index="1">Icon:Envelope</Icon>
</IconList>
</AastraIPPhoneStatus>
Figure 88: PhoneStatus icons example
XML Example 3
This XML example displays a “toaster” notification using the standard icon and another one with a custom icon.
<AastraIPPhoneStatus>
<Session/>
<Message type="toaster">External notification standard icon</Message>
<Message type="toaster" icon="1">External notification custom icon</Message>
<IconList>
<Icon index="1">Icon:Home</Icon>
</IconList>
</AastraIPPhoneStatus>
Resulting screen
Followed by
Figure 89: PhoneStatus toaster example
139 | DEVELOPMENT GUIDE 58015045-00
3.10
PHONEEXECUTE OBJECT (ALL MODELS)
The PhoneExecute object allows an external application to ask the phone to execute a sequence of local actions
using a URI.
3.10.1
IMPLEMENTATION
The actions can be:
Any supported uri
http(s)://myserver.com/myscript.pl, you can now use variables in the URI, variables are parsed by the
phone.
Dial:XXXXX
DialLine:X:YYYYY (X is the SIP line number, YYYYY is the number or URI to dial) see chapter 4.7 for more
details on this feature.
Led: XXXXXX=on/off/slowflash/fastflash:red/yellow/green/active/inactive/1..10 see chapter 4.34.2.3 for
more details on the LED control.
Led: all=on/off/slowflash/fastflash:red/yellow/green/active/inactive/1..10 to control all the phone XML keys
see chapter 4.3 for more details on the LED control.
Key: XXXXX see chapter 4.5 for more details on the simulated keypress feature.
RTPRx:i:p:v:[mix]:[disableIcon] or RTPRx:Stop to control the reception of a Unicast RTP stream, see
chapter 0 for more details.
RTPTx:i:p or RTPTx:Stop to control the transmission of a Unicast RTP stream, see chapter 0 for more
details.
RTPMRx:i:p:v:[mix]:[disableIcon] to control the reception of a Multicast RTP stream, see chapter 0 for more
details.
RTPMTx:i:p:[mix]:[disableIcon] to control the transmission of a Multicast RTP stream, see chapter 0 for
more details.
Stream a wav file, see chapter 4.6 for more details.
Download and play a wav file, see chapter 4.7 for more details.
Phone Reboot (URI=“Command: Reset”), the phone will restart (if the phone is idle) and process the
complete boot sequence (configuration, language packs, firmware…)
Phone Fast Reboot (URI=“Command: FastReboot”), the phone will restart (if the phone is idle) but will
reduce the boot sequence as it will not check for new firmware and will only download language packs if
there is a change in supported languages
Phone Lock (URI=“Command: Lock”), this command will lock the phone and will allow only emergency
calls.
Phone Unlock (URI=“Command: Unlock”), this command will unlock the phone.
Clear local configuration and reboot (URI=”Command: ClearLocal”)
Clear the callers list and missed calls indicator (URI=”Command: ClearCallersList”)
Clear the local directory (URI=”Command:ClearDirectory”)
Clear the redial list (URI=”Command:ClearRedialList”)
Retrieve crash and configuration file (URI=”Command:UploadSystemInfo”) , see chapter 4.9 for more
details.
Launch the directory application (URI=”Command: LaunchDirectory”)
Launch the callers list application (URI=”Command: LaunchCallersList”)
Launch the redial list application (URI=”Command: LaunchRedialList”)
Launch the services application (URI=”Command: LaunchServices”), 6863i and 6865i only.
Clear the Mobile directory and Mobile device (URI=”Command: ClearMobile”)
Do nothing (URI=“”)
More actions will be implemented in future firmware versions.
DEVELOPMENT GUIDE 58015045-00 | 140
In order to prevent a pushed dial uri from putting an active call on hold the PhoneExecute object supports an
optional tag ”interruptCall”. By default, the attribute will allow the current call to be interrupted. To prevent
this, set the attribute to “no”.
3.10.2
XML DESCRIPTION
<AastraIPPhoneExecute
Beep
=
“yes/no”
triggerDestroyOnExit=“yes/no”
>
<ExecuteItem URI=”URI” interruptCall=”yes/no” title=”any string”/>
<!—Additional ExecuteItems may be added -->
</AastraIPPhoneExecute>
XML Document Objects
Document Object
Position
Type
Comments
AastraIPPhoneExecute
Root tag
Mandatory
Root object
Beep
Root tag
Optional
“yes” or “no” to indicate if a notification
beep must be generated by the phone.
triggerDestroyOnExit
Root tag
Optional
If the XML object is sent as an answer to
a UI object, setting this parameter to
“yes” will trigger the exit of the calling
object as if it was a UI object. See section
4.10.4 for more details.
ExecuteItem
Body
Optional
Tag for the action to be executed
URI
ExecuteItem tag
Optional
URI describing the action to be executed.
interruptCall
ExecuteItem tag
Optional
When the URI is a dial command, if this
tags is set to no an existing call will not
be put on hold.
Optional
WavPlay command the content of this tag
is used on the Wav screen instead of the
truncated name of the file being played.
6867i, 6869i, 6873i, 6920, 6930 and 6940
only
title
3.10.3
ExecuteItem tag
EXAMPLES
<AastraIPPhoneExecute>
<ExecuteItem URI=http://myserver.com/myscript.php/>
<ExecuteItem URI=”Dial:12345” interruptCall=”no”/>
<ExecuteItem URI=”Command: ClearCallersList”/>
<ExecuteItem URI=”Command: ClearDirectory”/>
<ExecuteItem URI=”Command: ClearRedialList”/>
<ExecuteItem URI=”Command: Reset”/>
</AastraIPPhoneExecute>
This example will make the phone execute 6 actions:
Do an HTTP GET to myserver.com/myscript.php
Dial 12345 without putting any current call on hold
Clear the Callers List
Clear the local directory
Clear the Redial List
Reset the phone
141 | DEVELOPMENT GUIDE 58015045-00
Notes:
the “do nothing” can be used when an application needs to display nothing as an answer to a
HTTP GET.
you must be careful when you use the “Dial:” URI as the state of phone is unknown at the time
of the XML GET.
the FastReboot command will speed up the boot process of the phone which may be useful in
the self-configuration application.
DEVELOPMENT GUIDE 58015045-00 | 142
3.11
PHONECONFIGURATION OBJECT (ALL MODELS)
The PhoneConfiguration object allows an external application to modify the phone configuration dynamically.
The configuration parameters are the ones that are used in the configuration files (aastra.cfg and <MAC>.cfg) and
detailed in the administrator guide.
3.11.1
IMPLEMENTATION
The phone parameters have 2 levels of precedence: server where the parameters are coming from the
configuration files and local where the parameters are locally set via the TUI or WebUI. The local parameters
override the server parameters.
The AastraIPPhoneConfiguration object supports a parameter called setType which allows defining at which level
the parameter change will apply.
remote - parameter will be saved with the same precedence as the server settings. This set will not persist
through a reboot.
local - parameter will be saved with the same precedence as TUI or WebUI settings. This set will persist
through reboots of the phone. The only way to unset this type is via the TUI, WebUI, or another local type
set.
oneBoot - parameter will be saved with a precedence above server settings and below local settings.
This parameter will persist through a single reboot and be lost after that. Using this value for setType
anywhere in the object will cause the phone to reboot when the AastraIPPhoneConfiguration object
is done parsing
override - parameter will be saved with the same precedence as server settings. This is different from
remote because it will also override a conflicting local value. This override will persist through a reboot but
the new value will be lost.
Note: Default value is remote as it was the object behavior prior to firmware release 2.4.0.
If setType is set in the AastraIPPhoneConfiguration root tag, it affects all of the ConfigurationItem sub-elements but
when set in the ConfigurationItem tag it will affect that set only (override the global setting for the object).
The number of parameters to be sent in a single Phoneconfiguration object is only limited by the overall size of
the XML object (10000 bytes). Practically 30 parameters can be sent in a single object.
Note: Not all the configuration parameters are dynamic; specifically, the network parameters are static
and need a reboot.
The list of the dynamic configuration parameters is detailed in section 14.
143 | DEVELOPMENT GUIDE 58015045-00
3.11.2
XML DESCRIPTION
<AastraIPPhoneConfiguration
Beep = “yes/no”
triggerDestroyOnExit = “yes/no”
setType = “remote/local/oneBoot/override”
>
<ConfigurationItem setType = “remote/local/oneBoot/override”>
<Parameter
firstItem=”first instance”
lastItem=”last instance”
>parameter#</Parameter>
Or
<Parameter>parameter</Parameter>
<Value>value</Value>
</ConfigurationItem>
<!—Additional ConfigurationItems may be added -->
</AastraIPPhoneConfiguration>
XML Document Objects
Document Object
Position
Type
Comments
AastraIPPhoneConfiguration
Root tag
Mandatory
Root object
Beep
Root tag
Optional
“yes” or “no” to indicate if a
notification beep must be
generated by the phone.
triggerDestroyOnExit
Root tag
Optional
In case the XML object is sent
as an answer to a UI object,
setting this parameter to “yes”
will trigger the exit of the calling
object as if it was a UI object.
See section 4.10.4 for more
details.
setType
Root tag
Optional
Tag to define the type of
configuration change. It applies
to all sub-items.
ConfigurationItem
Body
Optional
Tag for the configuration
change
Tag to define the type of
configuration change. It applies
only to this item and overrides
global policy.
setType
ConfigurationItem
tag
Parameter
ConfigurationItem
tag
Mandatory
firstItem
Parameter tag
Optional
lastItem
Parameter tag
Optional
ConfigurationItem
tag
Mandatory
Value
Configuration parameter to be
changed
These parameters define the
range of the parameter values.
The parameter must include the
character # in the name.
New value of the configuration
parameter.
DEVELOPMENT GUIDE 58015045-00 | 144
3.11.3
EXAMPLES
XML Example 1: remote
<AastraIPPhoneConfiguration>
<ConfigurationItem>
<Parameter>softkey1 label</Parameter>
<Value>Test</Value>
</ConfigurationItem>
</AastraIPPhoneConfigutation>
or
<AastraIPPhoneConfiguration setType="remote">
<ConfigurationItem>
<Parameter>softkey1 label</Parameter>
<Value>Test</Value>
</ConfigurationItem>
</AastraIPPhoneConfigutation>
If softkey1 label parameter is unset, set via the configuration files, or set via another setType="remote" it
will be assigned the value "Test". This value will be lost when the phone reboots. If "softkey1 label" has been set
locally, this object will not change it.
XML Example 2: local
<AastraIPPhoneConfiguration setType="local">
<ConfigurationItem>
<Parameter>softkey1 label</Parameter>
<Value>Test</Value>
</ConfigurationItem>
</AastraIPPhoneConfiguration>
The softkey1 label parameter will be given the value "Test" whichever way this parameter was set beforeand
this value will persist through reboots.
XML Example 3: override
<AastraIPPhoneConfiguration setType="override">
<ConfigurationItem>
<Parameter>softkey1 label</Parameter>
<Value>Test</Value>
</ConfigurationItem>
</AastraIPPhoneConfiguration>
The softkey1 label parameter will be set to the value "Test". When the phone reboots, softkey1 label will
revert to the server configured value or its default of now server configured value is present.
XML Example 4: oneBoot
<AastraIPPhoneConfiguration setType="oneBoot">
<ConfigurationItem>
<Parameter>tftp server</Parameter>
<Value>10.50.103.12</Value>
</ConfigurationItem>
</AastraIPPhoneConfiguration>
If the tftp server parameter is unset, set via the configuration files, or another setType="remote" it will be
assigned the value "10.50.103.12". When this object is done parsing the phone will reboot. Upon booting tftp
server will still have the value "10.50.103.12". This value will be lost after configuration files have been
downloaded from the server.
145 | DEVELOPMENT GUIDE 58015045-00
XML Example 5: Mixed types
<AastraIPPhoneConfiguration setType="local">
<ConfigurationItem setType="oneBoot">
<Parameter>softkey1 label</Parameter>
<Value>Test</Value>
</ConfigurationItem>
<ConfigurationItem>
<Parameter>softkey2 label</Parameter>
<Value>Test</Value>
</ConfigurationItem>
<ConfigurationItem setType="override">
<Parameter>softkey3 label</Parameter>
<Value>Test</Value>
</ConfigurationItem>
</AastraIPPhoneConfigutation>
Parameter softkey1 label will be set using the oneBoot rules (the phone will not reboot yet).
Parameter softkey2 label will be set using the local rules.
Parameter softkey3 label will be set using the override rules.
When all three items are done being set, the phone reboots as at least one configuration parameter was using the
oneBoot policy.
XML Example 6: Parameter range
<AastraIPPhoneConfiguration>
<ConfigurationItem>
<Parameter firstItem=”1” lastItem=”20”>
softkey# type</Parameter>
<Value></Value>
</ConfigurationItem>
</AastraIPPhoneConfiguration>
This exemple sets the parameters “softkey1 type” to “softkey20 type” to a blank value. This feature is very useful to
limit the number of configuration parameters to be sent.
DEVELOPMENT GUIDE 58015045-00 | 146
3.12
PHONESOFTKEY OBJECT (6867I/6869I/6873I/6920/6930/6940)
The PhoneSoftkey object allows an external application to modify the configuration of an “xmladvanced” top
softkey dynamically. This includes changing icons, label, background color…
3.12.1
IMPLEMENTATION
“xmladvanced” key layout
The following diagram shows the visual elements of the layout for the “xmladvanced” softkey
label
icon left
badge
left
icon
icon right
Text
icon
badge
right
status
right
status
left
background
separator
Figure 90: “xmladvanced” key attributes
Dynamic attributes
The attributes are indexed by the top softkey index the same way it is done in the phone configuration file. So the
attributes are defined like regular top softkey attributes “topsoftkeyXX attribute” for instance “topsoftkey1 separator”.
Attribute
Description
Default value
label
text or sequences of text to be displayed on
the key
Comes from the static
configuration
URI to be called when the key is pressed
Comes from the static
configuration
a Boolean (“0” or ”1”) and indicates if the
softkey separator is displayed or not
“1”
value
separator
Other values are rejected
background color
represents the color of the softkey
background, possible values are detailed in
chapter 4.2.3.
an empty value indicates the
background (semi-transparent grey)
label color
empty
default
represents the color of the label displayed in
the softkey, possible values are detailed in
chapter 4.2.3
empty
an empty value indicates the default label
color (dark blue)
label alignment
allows to set the label alignment, possible
values are
147 | DEVELOPMENT GUIDE 58015045-00
left
“left”
Attribute
Description
right
center
Default value
Other values are rejected
allows to set the icon displayed on the left of
the softkey, possible values are
“Icon:NoIcon” to reserve the space
for an icon, unlike an empty value
the label is not extended
“Icon:XXXXXX” to display a canned
icon
“Icon:XXXXXX:r” to display a canned
icon in reverse mode (dark
background)
“Icon location” to display a dynamic
icon located on a server
“Picture:XXXX:YY” to display the
avatar matching number XXXX from
the image server (XXXX.png) or
optional initials (YY) picture not
available.
An empty value indicates no icon
and the label is now extended to the
left
icon left
allows to set the icon displayed on the right of
the softkey, possible values are
“Icon:NoIcon” to reserve the space
for an icon, unlike an empty value
the label is not extended
“Icon:XXXXXX” to display a canned
icon
“Icon:XXXXXX:r” to display a canned
icon in reverse mode (dark
background)
“Icon location” to display a dynamic
icon located on a server
“Picture:XXXX:YY” to display the
avatar matching number XXXX from
the image server (XXXX.png) or
optional initials (YY) picture not
available.
An empty value indicates no icon
and the label is now extended to the
right
icon right
badge left
Allows to display or hide a notification badge
on the top right corner of the left icon (if icon
displayed). Values are integers,
Icon:NoIcon
empty
0
DEVELOPMENT GUIDE 58015045-00 | 148
Attribute
Description
Default value
a value strictly superior to 0 displays
the value (if value superior to 9 a “!”
is displayed)
a value equals to 0 or empty hides
the notification badge
Allows to display or hide a notification badge
at the top left corner of the right icon (if icon
displayed). Values are integers,
badge right
a value strictly superior to 0 displays
the value (if value superior to 9 a “!”
is displayed)
a value equals to 0 or empty hides
the notification badge
Allows to display or hide a status icon at the
bottom right corner of the left icon (if icon
displayed). Values are labels matching colors:
status left
black,
green,
grey,
orange,
unknown,
red,
yellow,
black,
green,
grey,
orange,
unknown,
red,
yellow,
149 | DEVELOPMENT GUIDE 58015045-00
none
None
“button” repositions the touch button on the
softkey, possible values are
button
none
None
Allows to display or hide a status icon at the
bottom left corner of the right icon (if icon
displayed). Values are labels matching colors:
status right
0
“left” can press on the left icon
“key” standard mode user can press
anywhere on the softkey
“key”
Attribute
Description
Default value
“right” user can press on the right
icon
Other values are rejected.
6873i and 6940 only
Notes:
Dynamic attribute configurations are lost when phone reboots or when the key has a
configuration change via WebUI or via an AastraIPPhoneConfiguration command.
For the “button” attribute, the left and right buttons are only displayed if there is a matching
left/right icon defined or a placeholder for it.
Default layout
When a key with type “xmladvanced” is created, this is the default layout
Icon place holder on the left
No icon placeholder on the right
Label left justified and default color
No background color
Separator displayed
No left or right notification badge
No left or right status
For 6873i and 6940 the active touch zone is the whole key
icon
Text
“xmladvanced” key uri
The “xmladvanced” key like the “xml” key has a label field and an assigned uri as a value which is called when the
button configured for the respective topsoftkey is pressed.
Furthermore, it also supports “Local::ToggleLabel”, a special uri value which triggers a local action on the label field
display. When configured, pressing the key will sequentially toggle the label display between all configured labels
separated by the "|" sign.
In the following example, pressing the label key will sequentially toggle the label display from “Message 1”,
“Message 2”, “Message 3” and then back to “Message 1”
topsoftkey1 type: xmladvanced
topsoftkey1 label: Message 1|Message 2|Message 3
topsoftkey1 value: Local::ToggleLabel
.
Notes:
The label attribute is a dynamic parameter that lists the label messages that can also be
DEVELOPMENT GUIDE 58015045-00 | 150
updated via the AastraIPPhoneSoftkey object.
3.12.2
It is not recommended to use AastraIPPhoneConfiguration to change the label and value of an
“xmladvanced” typed key as doing this with reinitialize the key to its default layout, all dynamic
attributes are lost.
XML DESCRIPTION
<AastraIPPhoneSoftkey
Beep = “yes/no”
triggerDestroyOnExit = “yes/no”
>
<SoftkeyItem>
<Parameter>parameter#</Parameter>
<Value>value</Value>
</SoftkeyItem>
<!—Additional SoftkeyItems may be added -->
</AastraIPPhoneConfiguration>
The number of parameters to be sent in a single PhoneSoftkey object is only limited by the overall size of the XML
object (10000 bytes). Practically 30 parameters can be sent in a single object.
XML Document Objects
Document Object
Position
Type
Comments
AastraIPPhoneSoftkey
Root tag
Mandatory
Root object
Beep
Root tag
Optional
“yes” or “no” to indicate if a
notification beep must be
generated by the phone.
triggerDestroyOnExit
Root tag
Optional
In case the XML object is sent
as an answer to a UI object,
setting this parameter to “yes”
will trigger the exit of the calling
object as if it was a UI object.
See section 4.10.4 for more
details.
SoftkeyItem
Body
Optional
Tag for the configuration
change
Parameter
SoftkeyItem tag
Mandatory
Key attribute to be changed
Value
SoftkeyItem tag
Mandatory
New value of the key attribute.
3.12.3
EXAMPLES
Example 1
Configuration
topsoftkey1 type: xmladvanced
topsoftkey1 label:
topsoftkey1 value:
151 | DEVELOPMENT GUIDE 58015045-00
XML script
<AastraIPPhoneSoftkey>
<SoftkeyItem>
<Parameter>topsoftkey1 label color</Parameter>
<Value>white</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey1 label alignment</Parameter>
<Value>center</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey1 label</Parameter>
<Value>Center</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey1 background color</Parameter>
<Value>blue</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey1 icon left</Parameter>
<Value>Icon:CircleYellow</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey1 icon right</Parameter>
<Value>Icon:Park:r</Value>
</SoftkeyItem>
<SoftkeyItem>
</AastraIPPhoneSoftkey>
Resulting screen (6873i/6940)
Example 2
Configuration
topsoftkey1 type: xmladvanced
topsoftkey1 label:
topsoftkey1 value:
XML script
<AastraIPPhoneSoftkey>
<SoftkeyItem>
<Parameter>topsoftkey4 icon left</Parameter>
<Value>Picture:1234</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey4 icon right</Parameter>
<Value>Picture:5678</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey4 label</Parameter>
<Value>Nikola||Available</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey4 label alignment</Parameter>
<Value>left</Value>
</SoftkeyItem>
DEVELOPMENT GUIDE 58015045-00 | 152
<SoftkeyItem>
<Parameter>topsoftkey4
<Value>black</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey4
<Value>1</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey4
<Value>red</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey4
<Value>green</Value>
</SoftkeyItem>
</AastraIPPhoneSoftkey>
label color</Parameter>
separator</Parameter>
status right</Parameter>
status left</Parameter>
Resulting screen (6873i/6940)
In this script the left icon is a picture associated to 1234 available on image server, and the right icon is a picture
associated to 5678 not available on the server, therefore replaced by a colored avatar. Both icons have a status
indication.
Example 3
Configuration
topsoftkey1
topsoftkey1
topsoftkey1
topsoftkey2
topsoftkey2
topsoftkey2
type: xmladvanced
label:
value:
type: xmladvanced
label:
value: Local::ToggleLabel
XML script
<AastraIPPhoneSoftkey>
<SoftkeyItem>
<Parameter>topsoftkey1 label color</Parameter>
<Value>black</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey1 label alignment</Parameter>
<Value>left</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey1 label</Parameter>
<Value>Label</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey1 background color</Parameter>
<Value>cyan</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey1 icon left</Parameter>
<Value>Icon:PhoneConnected</Value>
</SoftkeyItem>
<SoftkeyItem>
153 | DEVELOPMENT GUIDE 58015045-00
<Parameter>topsoftkey1 separator</Parameter>
<Value>0</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey1 icon right</Parameter>
<Value></Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey2 label color</Parameter>
<Value>black</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey2 label alignment</Parameter>
<Value>left</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey2 label</Parameter>
<Value>Label 1|Label 2|Label 3</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey2 background color</Parameter>
<Value>cyan</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey2 icon left</Parameter>
<Value></Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey2 icon right</Parameter>
<Value>Icon:ArrowRight</Value>
</SoftkeyItem>
<SoftkeyItem>
<Parameter>topsoftkey2 button</Parameter>
<Value>right</Value>
</SoftkeyItem>
</AastraIPPhoneSoftkey>
Resulting screen (6873i/6940)
In this example the two keys appear to be merged (no separator) and pressing on the second key will toggle
between the labels.
DEVELOPMENT GUIDE 58015045-00 | 154
4
XML EXTENSIONS
4.1
CUSTOMIZABLE SOFTKEYS ((6867I/6869I/6873I/6920/6930/6940))
The Softkey object can be used to override the default softkeys in each of the XML objects. It allows developers to
link arbitrary URIs to keys in the XML screens and invoke softkey behavior native to each XML screen type.
XML Description
6 softkeys are available (8 for the 6869i/6930, 10 for the 6873i/6940)
<SoftKey index = “1-10” >
<Label>Text</Label>
<URI>
http(s)://someserver/somepage
OR SoftKey:XXXXXX
OR Dial:somenumber
</URI>
</SoftKey>
<!—As many as used in the softkey definition -->
Notes:
Custom softkeys are only available for the UI XML objects.
If you use custom softkeys, the default softkeys of the XML object are no longer displayed. This
means they have to be recreated as custom softkeys.
XML Document Objects
Document Object
Position
Type
Comments
SoftKey
Body
Mandatory
Softkey Root object (up to 6 or 10 for 6739i)
Index
SoftKey Root tag
Mandatory
Indicates the softkey number
Label
SoftKey Body
Mandatory
Label of the softkey
URI
SoftKey Body
Mandatory
URI called if the softkey is pressed
Available object commands
The following softkey functionality is available to the developer for the purpose of reordering or preserving the
default functionality of the XML screens.
“SoftKey:Select” is available for AastraIPPhoneTextMenu only and calls the URI tag of the selected
MenuItem.
“SoftKey:Exit” is available for all UI XML objects and redisplays the previous XML object present in the
phone browser.
“SoftKey:Dial” is available to screens that allow input. The dial string for the “Dial” function is taken from
the menu items URI on the Menu Screen, and from the editor field input on the Input Screen.
“SoftKey:Dial2” is available only for the AastraIPPhoneTextMenu, AastraIPPhoneTextScreen and
AastraIPPhoneFormattedTextScreen objects and will dial the number set by the “Dial” tag.
“SoftKey:Submit” is available only for the AastraIPPhoneInputScreen object, it completes the user input
by submitting the programmed URI (URL tag) and value (Parameter tag).
“SoftKey:BackSpace” is available only for the AastraIPPhoneInputScreen object, it deletes the character
placed before the cursor.
155 | DEVELOPMENT GUIDE 58015045-00
“SoftKey:NextSpace” is available only for the AastraIPPhoneInputScreen object, it inserts a “space”
character at the cursor position.
“SoftKey:Dot” is available only for the AastraIPPhoneInputScreen object, it inserts a “.” character at the
cursor position.
“SoftKey:ChangeMode” is available only for the AastraIPPhoneInputScreen object, it allows a toggle
between lower case, upper case and digit inputs.
“SoftKey:Answer” is available for all UI XML objects and allows the user to answer an incoming call.
This softkey will only be displayed if it is created while the phone is in an incoming state and diseappears
when the call is answered or ignored.
“SoftKey:Ignore” is available for all UI XML objects and allows the user to ignore an incoming call. This
softkey will only be displayed if it is created while the phone is in an incoming state and diseappears when
the call is answered or ignored.
“Softkey: Drop” is available for all UI XML objects and allows the user to drop the current call. This
softkey will only be displayed if it is created while the phone is in connected state and diseappears when
the call is dropped.
Note: Dropping the call using the drop softkey will maintain the current XML display.
“Softkey:Conf” is available for all UI XML objects and allows the user to start a 3-way conference. This softkey
will only be displayed if it is created while the phone is in connected state and diseappears when the call is dropped
or the conference started.
Note: Using this softkey will destroy the current XML display.
“Softkey:Xfer” is available for all UI XML objects and allows the user to transfer the current call. This softkey will
only be displayed if it is created while the phone is in connected state and diseappears when the call is transferred
or dropped.
Note: Using this softkey will destroy the current XML display.
“SoftKey:SymbolList=”XYZ”” is available only for the AastraIPPhoneInputScreen object, it allows an input of a
custom list of characters at the cursor position.
The format is:
<SoftKey index="1">
<Label>Symbols</Label>
<URI>SoftKey:SymbolList="@."</URI>
</SoftKey>
The content of the Symbol List must be encapsulated with quotes.
Note: SymbolList supports only standard ASCII characters.
Note that there can be multiple SymbolList softkeys with different list of symbols. There are some special characters
that need to be encoded due to XML limitations (see chapter 2.6 for the encoded value).
Available object commands
“SoftKey:Exit” is available for all UI XML objects and redisplays the previous XML object present in the phone
browser.
DEVELOPMENT GUIDE 58015045-00 | 156
“SoftKey:Submit” is available for AastraIPPhoneInputScreen.
Softkey availability per object
SoftKey
TextScreen
Select
Exit
X
Dial
Dial2
X
TextMenu
IconMenu
InputScreen
X
X
X
X
X
X
X
X
X
X
Submit
X
BackSpace
X
NextSpace
X
Dot
X
ChangeMode
X
Answer1
X
X
X
X
Ignore1
X
X
X
X
Drop2
X
X
X
X
Xfer2
X
X
X
X
Conf2
X
X
X
X
SymbolList
SoftKey
X
Formatted
TextScreen
ImageScreen
ImageMenu
X
X
X
Select
Exit
Dial
Dial2
X
Submit
1
This softkey will only be displayed if it is created while the phone is in an incoming state.
2
This softkey will only be displayed if it is created while the phone is in a connected state.
157 | DEVELOPMENT GUIDE 58015045-00
Formatted
TextScreen
ImageScreen
ImageMenu
Answer1
X
X
X
Ignore1
X
X
X
Drop2
X
X
X
Xfer2
X
X
X
Conf2
X
X
X
SoftKey
BackSpace
NextSpace
Dot
ChangeMode
SoftKey List
You can define up to six, eight or ten softkeys depending on the phone model before the closing tag of any object.
4.2
GRAPHICS (6867I/6869I/6873I/6920/6930/6940)
4.2.1
IMAGES
4.2.1.1 Implementation on the 6867i/6920
The image tag is used by the ImageScreen and ImageMenu XML objects.
Format
The 6867i and 6920 support 24/32 bits depth png or jpeg files, the image tag must include the URL to retrieve the
png or jpeg file. The supported protocols are:
TFTP
FTP
HTTP
HTTPS
The area available to display the picture is 320x240 pixels, the phone uses the provided width and height tags as
the display zone, if the image sent is bigger than the display zone, the picture is clipped using the top left corner as
the origin of the clipping area.
Same thing if the width or height is larger than the supported resolution, the phone will use the minimum value and
will clip if needed.
If the phone cannot retrieve the picture using the provided URL, the “unknown” image is displayed.
4.2.1.2 Implementation on the 6869i/6930
The image tag is used by the ImageScreen and ImageMenu XML objects.
DEVELOPMENT GUIDE 58015045-00 | 158
Format
The 6869i and 6930 support 24/32 bits depth png or jpeg files, the image tag must include the URL to retrieve the
png or jpeg file. The supported protocols are:
TFTP
FTP
HTTP
HTTPS
The area available to display the picture is 480x272 pixels, the phone uses the provided width and height tags as
the display zone, if the image sent is bigger than the display zone, the picture is clipped using the top left corner as
the origin of the clipping area.
Same thing if the width or height is larger than the supported resolution, the phone will use the minimum value and
will clip if needed.
If the phone cannot retrieve the picture using the provided URL, the “unknown” image is displayed.
4.2.1.3 Implementation on the 6873i/6940
The image tag is used by the ImageScreen and ImageMenu XML objects.
Format
The 6869i and 6940 support 24/32 bits depth png or jpeg files, the image tag must include the URL to retrieve the
png or jpeg file. The supported protocols are:
TFTP
FTP
HTTP
HTTPS
The area available to display the picture is 800x480 pixels, the phone uses the provided width and height tags as
the display zone, if the image sent is bigger than the display zone, the picture is clipped using the top left corner as
the origin of the clipping area.
Same thing if the width or height is larger than the supported resolution, the phone will use the minimum value and
will clip if needed.
If the phone cannot retrieve the picture using the provided URL, the “unknown” image is displayed.
4.2.2
ICONS
The 6867i/6869i/6873i/6920/6930/6940 also support icons in some XML objects:
AastraIPPhoneTextMenu in the menuItem tags
AastraIPPhoneStatus in the icon tags when type is set to “icon”
AastraIPPhoneSoftkey for the left and right icons
All UI objects in TopTitle tag
But not in the Custom softkeys for the UI XML objects.
Three types of icons are supported:
Predefined icons residing in the phone identified by a unique name
Dynamic icons identified by a URI, the icon files are downloaded by the phone every time they are needed
159 | DEVELOPMENT GUIDE 58015045-00
Icons as pictures using Picture:XXXX or Picture:XXXX:YY where XXXX is a picture identification like an
extension or a phone number, image will be automatically retrieved from the image server (if “image server
uri” configured). YY being the optional initials to be displayed if picture not available, a sngle letter for
initials is accepted. YY must be composed with letters [A-Z] or initials are not displayed.
Predefined icons
The predefined icons shown below are directly available from the phone. To use the predefined icons you must set
the Icon tag to Icon:IconName where IconName is the name of the predefined icon.
Each XML icon has 2 variants:
One for the regular UI XML application designed for a white background
One for the status bar designed for a dark background
The phone automatically selects the appropriate icon except for AatraIPPhoneSoftkey object where the XML app
can decide which type of icon to use ie. regular “Icon::XXXXX” or reverse “Icon::XXXXX:r”..
Name
Icon
(XML app)
Icon
(status bar)
Icon
(XML app)
Name
Icon:Add
Icon:OutgoingMissed
Icon:Alarm
Icon:Park
Icon:AlarmFilled
Icon:PhoneConnected
Icon:ArrowDown
Icon:PhoneDial
Icon:ArrowLeft
Icon:PhoneDiverted
Icon:ArrowRight
Icon:PhoneDivertedA
Icon:ArrowUp
Icon:PhoneDivertedB
Icon:ArrowUpAndDown
Icon:PhoneLockActive
Icon:BLF_Busy
Icon:PhoneLockInactive
Icon:BLF_Hold
Icon:PhoneOffHook
Icon:BLF_Ringing
Icon:PhoneOnHold
Icon:BLF_Unknown
Icon:PhoneOnHook
Icon
(status bar)
DEVELOPMENT GUIDE 58015045-00 | 160
Name
Icon
(XML app)
Icon
(status bar)
Name
Icon:Book
Icon:PhoneRecall
Icon:Calendar
Icon:PhoneRinging
Icon:CallFailed
Icon:PhoneRingingA
Icon:CallFwd
Icon:PhoneRingingB
Icon:CallFwdActive
Icon:PresenceAbsent
Icon:CallFwdInactive
Icon:PresenceAvailable
Icon:CallTransfer
Icon:PresenceBusy
Icon:CellPhone
Icon:PresenceMeeting
Icon:CheckBoxCheck
Icon:PresenceNotAvailable
Icon:CheckBoxUnCheck
Icon:PresenceSignedOut
Icon:CircleBlue
Icon:PresenceUnknown
Icon:CircleGreen
Icon:Prohibit
Icon:CircleRed
Icon:RecordingOn
Icon:CircleYellow
Icon:RecordingOff
Icon:Delete
Icon:Reset
Icon:DND
Icon:RingTone
Icon:DndActive
Icon:RoomInspected
Icon:DndInactive
Icon:RoomNotClean
161 | DEVELOPMENT GUIDE 58015045-00
Icon
(XML app)
Icon
(status bar)
Name
Icon
(XML app)
Icon
(status bar)
Icon
(XML app)
Name
Icon:Edit
Icon:RoomNotInspected
Icon:Envelope
Icon:RoomOccupied
Icon:EnvelopeOpen
Icon:RoomVacant
Icon:GroupRoomOccupied
Icon:Save
Icon:GroupRoomVacant
Icon:Search
Icon:Home
Icon:Settings
Icon:Incoming
Icon:Speaker
Icon:IncomingMissed
Icon:StarBlue
Icon:Information
Icon:StarYellow
Icon:Key
Icon:StateActive
Icon:Lock
Icon:StateActive2
Icon:MakeBusyActive
Icon:StateInactive
Icon:MakeBusyInactive
Icon:TailArrowDown
Icon:MissedCall
Icon:TailArrowUp
Icon:Mute
Icon:UnLock
Icon:NightServiceActive
Icon:WakeUpExpired
Icon:NightServiceInactive
Icon:WakeUpPending
Icon
(status bar)
DEVELOPMENT GUIDE 58015045-00 | 162
Icon
(XML app)
Name
Icon
(status bar)
Name
Icon:Office
Icon:Warning
Icon:Outgoing
Icon:World
Icon
(XML app)
Icon
(status bar)
Icons declaration
Icons are identified by an index in the XML objects; this index refers to the IconList tag which must be present
each an icon is used. For AastraIPPhoneSoftkey the icon name is directly used.
<IconList>
<Icon index
<Icon index
<!—As many as used
<!-Up to 22 icons,
</IconList>
= “iconindex”>Icon:Iconname or file location</Icon>
= “iconindex”>Icon:Iconname or file location</Icon>
in the object definition -->
index can be 1 to 21 -->
Dynamic icons
Dynamic icons are identified by an URI which is the location of the graphical file on a server.
Icon files must be:
png files
resolution 28x28 pixels (6867i/6869i) and 40x40 pixels (6873i), if a larger icon is used, the icon is clipped
by the phone to the expected size
24 bits or 32 bits depth
Less than 150 kB
Supported protocols are:
TFTP
FTP
HTTP
HTTPS
Example
<IconList>
<Icon index=“1”>http://myserver/icons/icon.png</Icon>
</IconList>
Picture icons
Picture icons are identified by an URI defined as “Picture:XXXX” or “Picture:XXXX:YY”. Which translates into the
phone downloading
[image server uri]/XXXX.png
If YY is set, phone displays YY as initials when picture is not available.
Picture icons are available for
All UI objects for TopTitle icon
163 | DEVELOPMENT GUIDE 58015045-00
AastraIPPhoneTextMenu all icons
AastraIPPhoneSoftkey for “icon left” and “icon right”
Example
image server uri: http://myserver.com/images
<IconList>
<Icon index=“1”>Picture :1234</Icon>
</IconList>
Downloads
http://myserver.com/images/1234.png
4.2.3
COLORS
The phones support 28 colors which can be used in the XML applications for labels and backgrounds.
The following table provides the XML color map.
Color name
HTML Value
RGB value
white
#FFFFFF
255,255,255
black
#000000
0,0,0
darkred
#C51D23
197,29,35
red
#ED1C24
237,28,36
lightred
#F26065
242,96,101
darkgreen
#399041
57,144,65
green
#3FAC49
63,172,73
lightgreen
#78C57F
120,197,127
darkblue
#15325F
21,50,95
blue
#0081B3
0,129,179
lightblue
#4CBDEF
76,189,239
darkyellow
#CDA806
205,168,6
yellow
#F8CA00
248,202,0
lightyellow
#FADA4C
250,218,76
darkgray
#404141
64,65,65
gray
#BFBFC0
191,191,192
lightgray
#EDEEEF
237,238,239
darkbrown
#2B1D0E
43,29,14
Display
DEVELOPMENT GUIDE 58015045-00 | 164
Color name
HTML Value
RGB value
brown
#52361B
40,26,13
lightbrown
#9F6934
159,105,52
darkmagenta
#8B008B
139,0,139
magenta
#FF00FF
255,0,255
lightmagenta
#FF46FF
255,70,255
darkcyan
#008B8B
0,139,139
cyan
#00FFFF
0,255,255
lightcyan
#E0FFFF
224,255,255
Display
Figure 91: XML colors (6867i/6869i/6873i/6920/6930/6940)
4.3
LED CONTROL
You can control the status of the LED associated to a phone key as long as the key is configured as an XML
typed “xml” or “xmladvanced” key.
For the graphical phones (6867i, 6869i and 6873i) the same command gives access to the pseudo-led which is an
icon on the key. Even if the 6739i or the 6873i do not have LED attached to the softkeys on its main display, an
equivalent feature has been developed to mimic the LED behavior still available on the expansion modules.
“Led: XXXXX=on/off/fastflash/slowflash[:green/yellow/red/active/inactive/integer]”
Where XXXXX represents the key you want to modify the LED or “all” for all the keys.
The first part of the command controls the state of the physical LED attached to a softkey and, if the second part of
the command is omitted, a matching color for the pseudo-LED.
The second part of the command supported only on 6867i/6920, 6869i/6930 and 6873i/6940 controls the state of
the pseudo-LED by allowing a color (red, green, yellow, active or inactive) or an integer to represent a counter
indicator.
Note: the LED state is lost after a phone reboot.
The supported LED states are:
on, the LED is steady on
off, the LED is steady off
slowflash, the LED blinks at a slow pace
fastflash, the LED blinks at a fast pace
Keys supported on an expansion module (6865i/6867i/6869i/6920/6930/6940)
M680i expmodX key1 to expmodX key16
M685i expmodX key1 to expmodX key74
Where X is the expansion module number (1 to 3)
165 | DEVELOPMENT GUIDE 58015045-00
Keys supported on a 6865i
prgkey1 to prgkey8
Keys supported on a 6867i/6920
topsoftkey1 to topsoftkey20
softkey1 to softkey18
hardkey1 (L1)
hardkey2 (L2)
hardkey3 (Redial)
hardkey4 (Callers)
Keys supported on a 6869i/6930
topsoftkey1 to topsoftkey44
softkey1 to softkey24
hardkey1 (L1)
hardkey2 (L2)
hardkey3 (Redial)
hardkey4 (Callers)
Keys supported on a 6873i/6940
topsoftkey1 to topsoftkey48
softkey1 to softkey30
hardkey1 (L1)
hardkey2 (L2)
hardkey3 (Redial)
hardkey4 (Callers)
4.3.1
IMPLEMENTATION (6867I/6869I/6920/6930)
Though the 6867i/6869i/6920/6930 has physical LEDs for the topsoftkeys, the LED status is also indicated on the
screen via the pseudo-LED. The pseudo-LED also supports a counter notification, a value between 1 and 9 is
displayed as is any value over 9 is displayed as “!”.
Notes:
The pseudo-LED feature is also supported on the M685i
The counter notification is not supported on the bottom softkeys and on the M680i.
The counter notification is displayed on top of the LED state
The following table shows the mapping between the LED state providing in the command with the physical LED and
the pseudo-LED when the pseudo-LED state is not provided.
DEVELOPMENT GUIDE 58015045-00 | 166
LED state
LED
Pseudo-LED
state
“off”
On
“default”
“on”
Off
“red”
“slowflash”
Slow flashing
“yellow”
“fastflash”
Fast Flashing
“yellow”
Pseudo-LED
(top)
Pseudo-LED
(bottom)
The following table shows the pseudo-LED based on its state, when specified the pseudo-LED state overrides the
state mapping coming from the LED state except for the counter notification which is displayed on top on the LED
state.
Pseudo-LED
state
Pseudo-LED
(top)
Pseudo-LED
(bottom)
“default”
“red”
“green”
“yellow”
“active”
“inactive”
“on:1” to “on:9”
167 | DEVELOPMENT GUIDE 58015045-00
N/A
Pseudo-LED
state
Pseudo-LED
(top)
Pseudo-LED
(bottom)
“on:10+”
N/A
“slowflash:1” to
“slowflash:9”
N/A
“slowflash:10+”
N/A
“fastflash:1” to
“fastflash:9”
N/A
“fastflash:10+”
4.3.2
N/A
IMPLEMENTATION (6873I/6940)
As the 6873i and the 6940 have no physical LED attached to the softkeys, the LED status is indicated on the screen
via the pseudo-LED which blinks at the requested rate instead of showing a different color. The pseudo-LED also
supports a counter notification, a value between 1 and 9 is displayed as is any value over 9 is displayed as “!”.
Notes:
The pseudo-LED feature is also supported on the M685i
The counter notification is not supported on the bottom softkeys and on the M680i.
The counter notification is displayed on top of the LED state
The following table shows the mapping between the LED state providing in the command with the physical LED and
the pseudo-LED when the pseudo-LED state is not provided.
LED state
Pseudo-LED
state
Icon/Border
“off”
“default”
On
Pseudo-LED
(top)
Pseudo-LED
(bottom)
DEVELOPMENT GUIDE 58015045-00 | 168
LED state
Pseudo-LED
state
Icon/Border
“on”
“red”
Steady
“slowflash”
“red”
Slow blink
“fastflash”
“red”
Fast blink
Pseudo-LED
(top)
Pseudo-LED
(bottom)
The following table shows the pseudo-LED based on its state, when specified the pseudo-LED state overrides the
state mapping coming from the LED state.
Pseudo-LED
state
Pseudo-LED
(top)
Pseudo-LED
(bottom)
“default”
“red”
“green”
“yellow”
“active”
“inactive”
“on:1” to “on:9”
N/A
169 | DEVELOPMENT GUIDE 58015045-00
Pseudo-LED
state
Pseudo-LED
(top)
“on:10+”
“slowflash:1” to
“slowflash:9”
N/A
“slowflash:10+”
“fastflash:1” to
“fastflash:9”
N/A
N/A
“fastflash:10+”
4.3.3
Pseudo-LED
(bottom)
N/A
N/A
XML EXAMPLES
<AastraIPPhoneExecute>
<ExecuteItem URI="Led:
<ExecuteItem URI="Led:
<ExecuteItem URI="Led:
<ExecuteItem URI="Led:
<ExecuteItem URI="Led:
</AastraIPPhoneExecute>
softkey1=on"/>
softkey1=off"/>
prgkey2=fastflash"/>
expmod2 key20=slowflash"/>
all=off"/>
On the 6867i/6869i/6873i/6920/6930/6940 pseudo-LED can also be controlled.
<AastraIPPhoneExecute>
<ExecuteItem URI="Led: softkey1=on:green"/>
<ExecuteItem URI="Led: topsoftkey1=off:1"/>
<ExecuteItem URI="Led: all=on:99"/>
</AastraIPPhoneExecute>
The following example shows the difference in pseudo-LED behavior between a 6867i/6869i/6920/6930 and a
6873i/6940
<AastraIPPhoneExecute>
<ExecuteItem URI="Led: softkey1=slowflash"/>
<ExecuteItem URI="Led: topsoftkey1=fastflash"/>
</AastraIPPhoneExecute>
DEVELOPMENT GUIDE 58015045-00 | 170
Results on screen
Phone
Key
LED
Icon
6867i
topsoftkey1
Fast flashing
Steady
softkey1
N/A
Steady
topsoftkey1
N/A
Fast blink
softkey1
N/A
Slow blink
Key
6869i
6920
6930
6873i
6940
4.4
RTP STREAMING
The Mitel SIP Phones have XML commands to use with the AastraIPPhoneExecute object, these commands
allow the phone to send/receive an RTP stream to/from any given multicast/unicast addresses (without involving any
SIP signaling).
The XML commands to use with the AastraIPPhoneExecute object in an XML application are:
RTPRx Receive (Rx) a Unicast RTP stream or stop receiving a Unicast/Multicast RTP streams
RTPTx Transmit (Tx) a Unicast RTP stream or stop transmitting a Unicast/Multicast RTP streams
RTPMRx Receive (Rx) a Multicast RTP stream
RTPMTx Transmit (Tx) a Multicast RTP stream
Note: Though the RTP commands could be considered as URIs they can not be used directly as a URI,
they must be launch using a AastraIPPhoneExecute command.
The phones support only the following RTP stream format:
G.711 µ-law Codec
20 ms packet size
Note: If one of the previous commands is sent to phone which is already in a communication, current
call is placed on hold and the RTP streaming commands are performed using a new audio path.
Each RTP streaming command supports 2 modes:
With audio path mixing
Without audio path mixing
When the RTP streaming command is sent to the phone with an existing audio path (the phone is in the “connected”
state), depending on the mixing parameter, the phone will behave differently.
With the audio mixing set to on, the command will apply on the existing audio path, for instance, sending a RTPTx
will “add” the RTP streaming to the audio path. The typical use is for “agent whisper” in a contact center
environment, “page whisper”, call recording…
With the audio mixing set to off, the command will create a new audio path putting the initial call on hold, for
instance sending a RTPTx will create a new audio path. The typical use is for paging.
171 | DEVELOPMENT GUIDE 58015045-00
Notes: Mixing is not supported:
when both the cordless handset (57iCT/9480iCT) and the base are connected. 57i/9480iCT.
when the phone is already in a 3-way conference.
4.4.1
RTPRX
The RTPRx URI instructs the phone to receive a Unicast RTP stream or stop receiving Unicast or Multicast RTP
streams. The RTPRx formats to use with the AastraIPPhoneExecute XML object in the URI are:
RTPRx:i:p:[v]:[mix]:[disableIcon]
RTPRx:Stop
RTPRx:Resume
Where:
i specifies the IP Address from which the stream is coming.
p specifies the UDP port on which to receive the RTP stream. You must ensure that this is a number
greater than 3100 to make sure not to use a port already bound to the phone.
v (optional) indicates the optional volume setting that controls the volume of the stream playout. The
supplied value is an offset to the current volume setting. After the initial volume level gets set and the
stream starts, you can manually change the volume level as required using this “v” option. If you do not
specify the optional volume parameter, the phone uses the current volume setting on the phone as the
default.
mix (optional) specifies that the incoming RTP stream will be added to the existing audio stream if it exists.
disableIcon (optional) specifies that the “mix” icon is not displayed (if “mix” is configured in the command).
“Stop” specifies to stop any active custom RTP stream from being received.
“Resume” requests the phone to resume the last RTPRx stream after user dropped it.
Scenarios for “mix” RTP
Phone State
Action
Phone is in “idle” state
Phone initiates a new RTP session on the paging line
and the paging line is displayed.
Phone is in “connected” state
Phone starts playing the incoming RTP stream on top
of the existing call. Paging line is not displayed.
Phone is in a 3-way conference.
Request for receving RTP is declined.
57iCT/9480iCT, base
“connected” state.
and
handsets
are
in
a
Request for receving RTP is declined.
57iCT/9480iCT, handset is in “connected” state.
Phone starts playing the incoming RTP stream on top
of the existing call. Paging line is not displayed.
The active voice call is dropped (RTP stream was
being played on top of this voice call).
RTP stream is dropped as well.
A new call comes in while the active voice call (RTP
stream was being played on top of this voice call) is
put on hold.
RTP mixed stream is played on top of the currently
active call.
DEVELOPMENT GUIDE 58015045-00 | 172
Example1:
This example orders the phone to receive a unicast RTP stream from 10.30.100.20 at UDP port 21000 with the
voice settings at 3 levels more than the current offset.
<AastraIPPhoneExecute>
<ExecuteItem URI = ”RTPRx:10.30.100.20:21000:3”/>
</AastraIPPhoneExecute>
Example 2:
This example orders the phone to receive a unicast RTP stream from 10.30.100.20 at UDP port 21000 using the
current voice settings.
<AastraIPPhoneExecute>
<ExecuteItem URI = ”RTPRx:10.30.100.20:21000”/>
</AastraIPPhoneExecute>
Example 3:
This example orders the phone to receive a unicast RTP stream from 10.30.100.20 at UDP port 21000 using the
current voice settings and audio mixing.
<AastraIPPhoneExecute>
<ExecuteItem URI = ”RTPRx:10.30.100.20:21000:mix”/>
</AastraIPPhoneExecute>
Example 4:
This example orders the phone to receive a unicast RTP stream from 10.30.100.20 at UDP port 21000 with the
voice settings at 3 levels more than the current offset, audio mixing and disabling the mixing icon.
<AastraIPPhoneExecute>
<ExecuteItem URI = ”RTPRx:10.30.100.20:21000:3:mix:disableIcon”/>
</AastraIPPhoneExecute>
Example 5:
This example orders the phone to stop an incoming active multicast/unicast RTP stream.
<AastraIPPhoneExecute>
<ExecuteItem URI=”RTPRx:Stop”/>
</AastraIPPhoneExecute>
Note: Once the RTPRx command in the URI is sent to the phone, it stops the phone from listening to
any previous RTPRx or RTPMRx commands. The phone starts listening based on the most recent
RTPRx command received. This behavior also applies to the RTPRx:Stop and RTPMRx:Stop
commands as well but does not enable any further listening.
4.4.2
RTPTX
The RTPTx URI instructs the phone to transmit a Unicast RTP stream or to stop transmitting Unicast or Multicast
RTP streams. The RTPTx formats to use with the AastraIPPhoneExecute object in the URI are:
RTPTx:i:p:[mix]:[disableIcon]
RTPTx:Stop
Where
i specifies the IP Address to which an RTP stream is transmit ed.
p specifies the UDP port on which to transmit the RTP stream. You must ensure that this is a number
greater than 3100 to make sure not to use a port already bound to the phone.
173 | DEVELOPMENT GUIDE 58015045-00
mix (optional) specifies that the RTP stream sent will be the existing audio stream if it exists.
disableIcon (optional) specifies that the “mix” icon is not displayed (if “mix” is configured in the command).
Stop specifies to stop any active custom RTP stream from being received.
Scenarios for “mix” RTP
Phone State
Action
Phone is in “idle” state
Phone initiates a new RTP session on the paging line
and the paging line is displayed.
Phone is in “connected” state
Phone starts sending the mixed RTP stream. Paging
line is not displayed.
Phone is in a 3-way conference.
Request for sending RTP is declined.
57iCT/9480iCT, base
“connected” state.
and
handsets
are
in
a
Request for sending RTP is declined.
57iCT/9480iCT, handset is in “connected” state.
Paging call is initiated using the voice stream with the
mixed audio from the conference stream, paging line
is not displayed.
The active voice call is dropped (RTP stream was
being played on top of this voice call).
RTP stream is dropped as well.
A new call comes in while the active voice call (RTP
stream was being played on top of this voice call) is
put on hold.
RTP mixed stream is sent for the current active call.
Example 1:
This example orders the phone to send a unicast RTP stream to 10.30.100.20 on UDP port 21000.
<AastraIPPhoneExecute>
<ExecuteItem URI = ”RTPTx:10.30.100.20:21000”/>
</AastraIPPhoneExecute>
Example 2:
This example orders the phone to send a unicast RTP stream to 10.30.100.20 on UDP port 21000 with audio
mixing.
<AastraIPPhoneExecute>
<ExecuteItem URI = ”RTPTx:10.30.100.20:21000:mix”/>
</AastraIPPhoneExecute>
Example 3:
This example orders the phone to send a unicast RTP stream to 10.30.100.20 on UDP port 21000 with audio mixing
and “mix” icon disabled.
<AastraIPPhoneExecute>
<ExecuteItem URI = ”RTPTx:10.30.100.20:21000:mix:disableIcon”/>
</AastraIPPhoneExecute>
Example 4:
This example orders the phone to stop an outgoing active multicast/unicast RTP stream.
DEVELOPMENT GUIDE 58015045-00 | 174
<AastraIPPhoneExecute>
<ExecuteItem URI=”RTPTx:Stop”/>
</AastraIPPhoneExecute>
4.4.3
RTPMRX
The RTPMRx URI instructs the phone to receive a Multicast RTP stream. The RTPMRx format to use with the
AastraIPPhoneExecute object in the URI is:
RTPMRx:i:p:[v]:[mix]:[disableIcon]
RTPMRx:Stop
RTPMRx:Resume
Where
i specifies the multicast IP Address from which to receive an RTP stream.
p specifies the UDP port on which to receive the RTP stream. You must ensure that this is a number
greater than 3100 to make sure not to use a port already bound to the phone.
v (optional) indicates the optional volume setting that controls the volume of the stream playout. The
supplied value is an offset to the current volume setting. After the initial volume level gets set and the
stream starts, you can manually change the volume level as required using this “v” option. If you do not
specify the optional volume parameter, the phone uses the current volume setting on the phone as the
default.
mix (optional) specifies that the incoming RTP stream will be added to the existing audio stream if it exists.
disableIcon (optional) specifies that the “mix” icon is not displayed (if “mix” is configured in the command).
“Stop” specifies to stop any active custom RTP stream from being received.
“Resume” requests the phone to resume the last RTPRx or RTPMRx stream after user dropped it.
Scenarios for “mix” RTP
Phone State
Action
Phone is in “idle” state
Phone initiates a new RTP session on the paging line
and the paging line is displayed.
Phone is in “connected” state
Phone starts playing the incoming RTP stream on top
of the existing call. Paging line is not displayed.
Phone is in a 3-way conference.
Request for receving RTP is declined.
57iCT/9480iCT, base
“connected” state.
and
handsets
are
in
a
Request for receving RTP is declined.
57iCT/9480iCT, handset is in “connected” state.
Phone starts playing the incoming RTP stream on top
of the existing call. Paging line is not displayed.
The active voice call is dropped (RTP stream was
being played on top of this voice call).
RTP stream is dropped as well.
A new call comes in while the active voice call (RTP
stream was being played on top of this voice call) is
put on hold.
RTP mixed stream is played on top of the currently
active call.
Example 1:
This example orders the phonr to receive a multicast RTP stream from 239.0.1.20 on UDP port 21000 with the voice
settings at -3 levels less than the current offset.
175 | DEVELOPMENT GUIDE 58015045-00
<AastraIPPhoneExecute>
<ExecuteItem URI = ”RTPMRx:239.0.1.20:21000:-3”/>
</AastraIPPhoneExecute>
Example 2:
This example orders the phone to receive a multicast RTP stream from 239.0.1.20 at UDP port 21000 with the
current voice settings.
<AastraIPPhoneExecute>
<ExecuteItem URI = ”RTPMRx:239.0.1.20:21000”/>
</AastraIPPhoneExecute>
Example 3:
This example orders the phone to receive a multicast RTP stream from 239.0.1.20 at UDP port 21000 with the
current voice settings and audio mixing.
<AastraIPPhoneExecute>
<ExecuteItem URI = ”RTPMRx:239.0.1.20:21000:mix”/>
</AastraIPPhoneExecute>
Example 4:
This example orders the phone to receive a multicast RTP stream from 239.0.1.20 at UDP port 21000 with the
current voice settings and audio mixing with the “mix” icon disabled.
<AastraIPPhoneExecute>
<ExecuteItem URI = ”RTPMRx:239.0.1.20:21000:mix:disableIcon”/>
</AastraIPPhoneExecute>
Note: Once the RTPMRx command in the URI is sent to the phone, it stops the phone from listening to
any previous RTPRx or RTPMRx commands. The phone starts listening based on the most recent
RTPMRx command received. This behavior also applies to the RTPRx:Stop and RTPMRx:Stop
commands as well, but tbe “Stop” command does not enable any further listening.
4.4.4
RTPMTX
The RTPMTx URI instructs the phone to transmit a Multicast RTP stream. The RTPMTx format to use with the
AastraIPPhoneExecute object in the URI is:
RTPMTx:i:p:[mix]:[disableIcon]
Where
i specifies the Multicast IP Address to which an RTP stream is transmitted.
p specifies the UDP port on which to transmit the RTP stream. You must ensure that this is a number
greater than 3100 to make sure not to use a port already bound to the phone.
mix (optional) specifies that the RTP stream sent will be the existing audio stream if it exists.
disableIcon (optional) specifies that the “mix” icon is not displayed (if “mix” is configured in the command).
Scenarios for “mix” RTP
Phone State
Action
Phone is in “idle” state
Phone initiates a new RTP session on the paging line
and the paging line is displayed.
Phone is in “connected” state
Phone starts sending the mixed RTP stream. Paging
line is not displayed.
DEVELOPMENT GUIDE 58015045-00 | 176
Phone State
Action
Phone is in a 3-way conference.
Request for sending RTP is declined.
57iCT/9480iCT, base
“connected” state.
and
handsets
are
in
a
Request for sending RTP is declined.
57iCT/9480iCT, handset is in “connected” state.
Paging call is initiated using the voice stream with the
mixed audio from the conference stream, paging line
is not displayed.
The active voice call is dropped (RTP stream was
being played on top of this voice call).
RTP stream is dropped as well.
A new call comes in while the active voice call (RTP
stream was being played on top of this voice call) is
put on hold.
RTP mixed stream is sent for the current active call.
Example 1:
This example orders the phone to send a multicast RTP stream to 239.0.1.20 from UDP port 21000.
<AastraIPPhoneExecute>
<ExecuteItem URI = ”RTPMTx:239.0.1.20:21000”/>
</AastraIPPhoneExecute>
Example 2:
This example orders the phone to send a multicast RTP stream to 239.0.1.20 from UDP port 21000 with audio
mixing.
<AastraIPPhoneExecute>
<ExecuteItem URI = ”RTPMTx:239.0.1.20:21000:mix”/>
</AastraIPPhoneExecute>
Example 3:
This example orders the phone to send a multicast RTP stream to 239.0.1.20 from UDP port 21000 with audio
mixing and “mix” icon disabled.
<AastraIPPhoneExecute>
<ExecuteItem URI = ”RTPMTx:239.0.1.20:21000:mix:disableIcon”/>
</AastraIPPhoneExecute>
4.4.5
INTERACTION WITH ACTION URIS
action uri incoming
The action uri incoming is not triggered when the phone starts streaming RTP. This is a known issue which
will be fixed in a future firmware release.
action uri connected
The action uri connected is not triggered when the phone starts streaming RTP. This is a known issue
which will be fixed in a future firmware release.
action uri onhook
The action uri onhook is triggered at the end of the RTP streaming but the URL variables are not bound.
This is a known issue which will be fixed in a future firmware release.
action uri disconnected
177 | DEVELOPMENT GUIDE 58015045-00
The action uri disconnected is not triggered at the end of theRTP streaming. This is a known issue which will
be fixed in a future firmware release.
4.5
KEYPRESS EMULATION
The Mitel SIP Phones support a “Key” URI to allow the XML application to send an event that a key has been
pressed on the phone. The system initiates the event as if the button was physically pressed.
The phone maps key events to the phone physical keys and not to their mapped logical keys.
The exceptions to this rule are
Xfer,
Icom,
Conf
as they can be dynamically mapped on the phone.
Notes:
If the key is a valid key, the phone executes the key regardless of the current phone status.
Phone does not send a response detailing the success or failure of a simulated key.
Lines
Key:Line1 to Key:Line4
Line 1 to 4
Note: Since no Mitel phone has Line 5 to 9 physical keys, Line5 to Line9 are not supported.
Keypad
Key:KeyPad0 to Key:KeyPad9
Numeric Keypad buttons 0-9
Key:KeyPadStar
*Star button
Key:KeyPadPound
# Hash button
Programmable keys (depending on model)
Key:SoftKey1 to Key:SoftKey55
soft keys 1-55
Key:PrgKey1 to Key:PrgKey11
programmable keys 1-11
Key:TopSoftKey1 to Key:TopSoftKey10
top softkeys 1-10
Key:ExpMod1SoftKey1 to Key:ExpMod1SoftKey60
exp. module 1 keys 1 to 60
Key:ExpMod2SoftKey1 to Key:ExpMod2SoftKey60
exp. module 2 keys 1 to 60
Key:ExpMod3SoftKey1 to Key:ExpMod3SoftKey60
exp. module 3 keys 1 to 60
Expansion modules pages (M685i and M695)
Key:ExpMod1Page1 to ExpMod1Page3
exp module 1 page 1 to 3
Key:ExpMod2Page1 to ExpMod2Page3
exp module 2 page 1 to 3
Key:ExpMod3Page1 to ExpMod3Page3
exp module 3 page 1 to 3
Note: The phone ignores expansion module keys that are not present on the expansion module.
DEVELOPMENT GUIDE 58015045-00 | 178
Volume and Voice path control
Key:VolDwn
Decrease button
Key:VolUp
Increase button
Key:Headset
Headset
Key:Speaker
Speaker
Key:Mute
Mute
Note: for both keys (headset and speaker) the behaviour is as if the "speaker/headset" button is
pressed, and it does not switch to headset for “Headset” key event or to speaker for “Speaker” key
event.
Telephony
Key:Xfer
Transfer
Key:Conf
Conference
Key:Hold
Hold
Key:Redial
Redial
Key:Callers
Callers List
Key:Services
Services
Key:Intercom
Intercom
Key:Directory
Directory
Key:Options
Options
Key:Save
Save
Key:Delete
Delete
Key:Goodbye
GoodBye
Key:Voicemail
Voicemail
Note: Since the phones do not have physical keys for Pickup and Park, those features will be only
available if they are mapped to a programmable or soft key
Navigation (not available on 6873i and 6940)
Key:NavUp
Navigation up key
Key:NavDwn
Navigation down key
Key:NavEnter
Navigation center key (Enter)
Key:NavLeft
Navigation left key
Key:NavRight
Navigation right key
Example:
This example asks the phone to display the phone directory.
179 | DEVELOPMENT GUIDE 58015045-00
<AastraIPPhoneExecute>
<ExecuteItem URI = ”Key:Directory”/>
</AastraIPPhoneExecute>
4.6
WAV FILE STREAMING
The phone has the capability to stream a wav file from a TFTP or a HTTP server. In order to limit bandwidth
fluctuations, the phone buffers 4 seconds of audio data (or the complete file) before playing the audio.
The Wav command follows the configured phone behavior for the audio path (speaker, headset and handset) and
supports volume adjustments.
Note: The wav file is played only if the phone is idle.
The user can abort the streaming with:
Goodbye key
Soft 'Drop' key
On hook (when handset active)
Selecting a line
The beginning and the end of the streaming trigger the following action uris:
action uri incoming/connected at the beginning of the streaming
action uri onhook/disconnected at the end of the streaming (end of the file or aborted by the user)
As the phone displays a “Wav streaming” screen, the beginning of the streaming destroys the current XML display
so diverting the action uri incoming and onhook is the only way to regain control for the XML application.
The typical use for this feature is a voicemail application or podcasts.
Note: Paging will not interrupt the streaming unless barge-in is set.
4.6.1
XML COMMANDS
The phone supports 2 AastraIPPhoneExecute commands. 'Wav.Play' and 'Wav.Stop'.
XML Command: Wav.Play
This command initiates the streaming of a WAV file to the phone.
Syntax:
Wav.Play:[v]:[tftp://|http://[username[:password]@]<host>[:port][/<path>]/file
Where v is the volume level of the audio path from 0 (lowest level) to 9 (highest level), this volume level overrides
the current configured volume level of the phone.
Notes:
The default mode is HTTP and the default port for HTTP is 80
HTTPS is not supported.
Examples:
DEVELOPMENT GUIDE 58015045-00 | 180
<ExecuteItem
<ExecuteItem
<ExecuteItem
<ExecuteItem
<ExecuteItem
URI="Wav.Play:tftp://10.30.101.26/example.wav"/>
URI="Wav.Play:5:http://10.30.101.26/example.wav"/>
URI="Wav.Play:http://10.30.101.26:8080/example.wav"/>
URI="Wav.Play:2:http://user:password@10.30.101.26/sample.wav"/>
URI="Wav.Play:7:10.30.101.26/example.wav"/>
The last example is equivalent to
<ExecuteItem URI="Wav.Play:7:http://10.30.101.26/example.wav"/>
As HTTP is the default protocol.
Note:
On the 6867i, 6869i and 6873i an extra tag “title” can be used to become the title to be displayed on the
Wav.Play screen.
XML Command: Wav.Stop
This command will abort WAV streaming.
Syntax:
Wav.Stop:
Example:
<ExecuteItem URI="Wav.Stop:"/>
4.6.2
FILE FORMAT
The phones support only the following file format:
Wav file
G.711 µ-law and a-law Codec
20 ms packet size
Mono 8KHz
If the format is not supported by the phone, the request is declined.
4.6.3
INTERACTION WITH ACTION URIS
action uri incoming/connected
When the phone starts streaming the wav file, the action uri incoming as well as action uri connected are
triggered and the XML variables get the following values.
Variable Name
Value
$$SIPUSERNAME$$
“Streaming”
$$DISPLAYNAME$$
“Streaming”
$$SIPAUTHNAME$$
“Streaming”
$$PROXYURL$$
“Streaming”
$$ACTIVEPROXY$$
“Streaming”
$$INCOMINGNAME$$
Name of the wav file
181 | DEVELOPMENT GUIDE 58015045-00
Variable Name
Value
$$REMOTENUMBER$$
“”
$$LOCALIP$$
Local IP address of the phone
$$CALLDURATION$$
0
$$CALLDIRECTION$$
Empty
$$LINEINDEX$$
0
$$REMOTEURI$$
Empty
$$DIVERSIONURI$$
Empty
$$DIVERSIONREASON$$
Empty
action uri onhook/disconnected
At the end of the streaming (end of file or aborted by user), the action uri onhook is triggered as well as the
action uri disconnected and the XML variables get the following values.
Variable Name
Value
$$SIPUSERNAME$$
“Streaming”
$$DISPLAYNAME$$
“Streaming”
$$SIPAUTHNAME$$
“Streaming”
$$PROXYURL$$
“Streaming”
$$ACTIVEPROXY$$
“Streaming”
$$INCOMINGNAME$$
Name of the wav file
$$REMOTENUMBER$$
“”
$$LOCALIP$$
Local IP address of the phone
$$CALLDURATION$$
Duration of streaming
$$CALLDIRECTION$$
Empty
$$LINEINDEX$$
0
$$REMOTEURI$$
Empty
$$DIVERSIONURI$$
Empty
$$DIVERSIONREASON$$
Empty
DEVELOPMENT GUIDE 58015045-00 | 182
4.7
WAV FILE LOOP PLAYBACK (MELODY)
The phone also has the capability to download a wav file from a TFTP / FTP / HTTP server and play it continuously
until it is stopped by a stop command or a user intervention.
Unlike the “Wav” streaming commands the file is first downloaded from the server and them played in loop locally on
the phone.
For performance reasons, up to 8 wav files can be cached on the phone to allow a faster playback for following
commands. The cache is limited to 400k and lost at reboot.
This command follows the configured phone behavior for the audio path (speaker, headset and handset) and
supports volume adjustments.
Notes:
The wav file is locally played only if the phone is idle.
The wav file size is limited to 200K
The user can abort the playback with:
Goodbye key
Soft 'Drop' key
On hook (when handset active)
Selecting a line
Unlike the streaming capability, the beginning and the end of a playback does not trigger any following action uri and
the phone display is not changed.
Note: Paging will not interrupt the streaming unless barge-in is set.
4.7.1
XML COMMANDS
The phone supports 2 AastraIPPhoneExecute commands. 'Melody.Play' and 'Melody.Stop'.
XML Command: Melody.Play
This command initiates the download then playback of a WAV file to the phone.
Syntax:
melody.Play:[tftp://|ftp://|http://[username[:password]@]<host>[:port][/<path>]
/file:[v]
Where v is the volume level of the audio path from 0 (lowest level) to 9 (highest level), this volume level overrides
the current configured volume level of the phone.
Examples:
<ExecuteItem
<ExecuteItem
<ExecuteItem
<ExecuteItem
URI="Melody.Play:tftp://10.30.101.26/example.wav"/>
URI="Melody.Play:ftp://user:password@10.30.101.26/example.wav:5"/>
URI="Melody.Play:http://10.30.101.26:8080/example.wav"/>
URI="Melody.Play:http://user:password@10.30.101.26/sample.wav:2"/>
XML Command: Melody.Stop
This command will abort the wav file playback.
183 | DEVELOPMENT GUIDE 58015045-00
Syntax:
Melody.Stop:
Example:
<ExecuteItem URI="Melody.Stop:"/>
4.7.2
FILE FORMAT
The phones support only the following file format:
Wav file
G.711 µ-law and a-law Codec
20 ms packet size
Mono 8KHz
200 kb
If the format is not supported by the phone, the request is declined.
4.8
DIAL AND DIALLINE URIS
The phone supports 2 URI commands to launch an outgoing call from XML.
Dial:XXXXX
DialLine:Y:XXXXX
Where XXXXX is the number/URI to dial and Y is the SIP line number.
Note: The AastraIPPhoneDirectory object does not support the “Dial” and “DialLine” commands.
The difference between Dial and DialLine is that with the DialLine command you can specify which SIP line to use,
Dial will use the first available SIP line on the phone.
Dial and DialLine are generic URI and can be used anywhere a URI is requested by an XML object, this can be a
custom softkey, an item in a TextMenu.
Although the line range is defined as 1 to 9, you must have a SIP account configured on the line to use the dial tag.
For example, if you configure lines 1 to 4 on a phone using a line value of 5 results in undefined behavior. The range
of lines you can use for values is limited to the number of lines that the phone supports.
The following table identifies the number of lines supported on each phone type.
Phone model
Max Line
6863i
2
6865i/6867i/6869i/6873i/6920/6930/6940
24
4.9
CRASH AND CONFIGURATION FILES RETRIEVAL
The phone has the capability to upload the last crash file as well as the configuration files to a pre-configured
location. This operation can be triggered manually via the Web UI or via the phone (if configured) but also via an
XML command.
Example
In the configuration file (aastra.cfg or MAC.cfg)
DEVELOPMENT GUIDE 58015045-00 | 184
upload system info server: tftp://myserver/path
Command
<AastraIPPhoneExecute>
<ExecuteItem URI="Command: UploadSystemInfo"/>
</AastraIPPhoneExecute>
Sending this command to the phone make the phone uploads the last crash file as well as the configuration files
(server.cfg and local.cfg) to the configured server (using TFTP in this example). Uploaded files are indexed by the
MAC address, date and time.
TFTP, FTP, HTTP and HTTPS are supported for the upload protocol.
4.10
4.10.1
SPECIAL ATTRIBUTES
BEEP
You can enable or disable a Beep option in all the Mitel XML objects via the Beep attribute in the root tag. When the
phone receives an XML object, the Beep notifies the user that an object is being displayed.
This attribute is optional. If the Beep attribute is set to "yes" (i.e. Beep="yes") then it is an indication to the phone
to sound a beep when it receives the object. If the Beep attribute is set to "no" (i.e. Beep="no") or not present, then
the default behavior is no beep is heard when the object arrives to the phone.
The Beep option can also be enabled or disabled via the configuration files and the Mitel Web UI using the following
parameters:
xml beep notification (via configuration files)
XML Beep Support (via the Mitel Web UI see chapter 7.4)
The value set in the configuration files and Mitel Web UI override the attribute you specify in the XML object.
For example, if an AastraIPPhoneStatus object has the attribute of Beep=”yes”, and you uncheck (disable) the
“XML Beep Support” in the Mitel Web UI, the phone does not beep when it receives an AastraIPPhoneStatus
object.
4.10.2
TIMEOUT
The Timeout attribute is an optional root tag attribute for all of the current UI XML objects. When the phone
receives an XML object with this attribute set it will override the default 45 seconds timeout specified for custom
applications.
Setting Timeout to “0” will disable the timeout feature.
This timeout is reset by button presses.
4.10.3
LOCKIN
The LockIn attribute is an optional root tag attribute for all of the current UI XML objects. This attribute allows the
XML application designer to specify that a screen can not be cancelled.
When a phone receives an UI XML object with the attribute set to “yes” it ignores all events that would cause the
screen to exit without using the keys defined by the object.
Note: An incoming call still cancels the “locked” screen as telephony events have priority over XML
applications.
Setting LockIn will disable the default timeout feature (45 seconds) unless the Timeout attribute is also set in the
root tag.
185 | DEVELOPMENT GUIDE 58015045-00
4.10.4
CALLPROTECTION
The CallProtection attribute is an optional root tag for all the current UI XML objects. This attribute allows the
XML application designer to controil the effect of an incoming call on the XML screen. It complements the LockIn
attribute but is completely independent of it.
The possible values are:
“no”, an incoming call will cancel the current screen (even if LockedIn is enabled), this is the default
behavior.
“yes”, an incoming call will not cancel the current screen
“notif”, an incoming call will not cancel the current screen and a toaster notification is displayed providing
the caller ID (name/number). Not supported on 6863i and 6865i.
When set to “yes” or “notif”, the capability for the user to answer the call (off-hook, Line key, hands-free, …) will
depend on the LockedIn attribute.
4.10.5
TRIGGERDESTROYONEXIT
The triggerDestroyOnExit attribute is an optional root tag attribute for all of the current non-UI XML objects
(PhoneStatus, PhoneExecute and PhoneConfiguration). Its default value is “no”.
By default, if a UI XML object gets a non-UI XML object as an answer to an exit URI (“Select” on a TextMenu or
“Done” on a InputScreen…) the UI XML object is not destroyed and stays on the phone display even if its
destroyOnExit tag is set to “yes”.
By setting triggerDestroyOnExit to “yes”, the previous UI XML object is destroyed if its destroyOnExit tag
is set to “yes”.
4.11
TEXTMENU OR ICONMENU USER SELECTION (6867I, 6869I, 6873I, 6920, 6930, 6940)
It is also possible to send information related to a users choice in a Text Menu.
“Select” and “Dial” system keys use the URI passed in the MenuItem attribute, a custom key might need to know
the user selection in the TextMenu, and this is the purpose of the Selection attribute.
When a user accesses an arbitrary URI via a custom softkey, the Text Menu will send along a bit of information
regarding the users currently selected option using an optional XML attribute Selection.
XML Example
<AastraIPPhoneTextMenu destroyOnExit = ”yes”>
<Title>Parameter Tester</Title>
<MenuItem>
<Prompt>First Selection</Prompt>
<URI>http://someserver/somepage.xml</URI>
<Selection>dataToAppend</Selection>
</MenuItem>
<SoftKey index = “1”>
<Label>Custom Key</Label>
<URI>http://someotherserver/someotherpage.xml</URI>
</SoftKey>
</AastraIPPhoneTextMenu>
When
the
user
selects
item
1
and
presses
softkey
http://someotherserver/someotherpage.xml?selection=dataToAppend
1,
the
URI
requested
is
Notes:
If a “?” already exists in the URI, then a “&” is used to separate the parameters. Note the
parameter name “selection” is automatic. If the Selection attribute is omitted, then nothing
extra is appended to the URI.
DEVELOPMENT GUIDE 58015045-00 | 186
4.12
the Selection attribute can be more than one parameter, for instance, the following
Selection attribute is valid <Selection>200&action=set</Selection> (dont forget to
escape encode the attribute for the “&”).
“SELECT” AND “DIAL” IN THE SAME TEXTMENU OR ICONMENU OBJECT
The only way to have a “Select” and “Dial” keys in the same text menu, the only option is to use “Dial” as a system
command and mimic “Select” with a custom key.
<AastraIPPhoneTextMenu destroyOnExit = ”yes”>
<Title>Dial and Select</Title>
<MenuItem>
<Prompt>First Selection</Prompt>
<URI>200</URI>
<Selection>200</Selection>
</MenuItem>
<MenuItem>
<Prompt>Second Selection</Prompt>
<URI>201</URI>
<Selection>201</Selection>
</MenuItem>
<SoftKey index = “1”>
<Label>Dial</Label>
<URI>SoftKey:Dial</URI>
</SoftKey>
<SoftKey index = “2”>
<Label>Select</Label>
<URI>http://myserver.com/script.php</URI>
</SoftKey>
</AastraIPPhoneTextMenu>
When the user selects item 1 and presses
Softkey 1, the phone dials 200
Softkey 2, the requested URI requested is http://myserver.com/script.php?selection=200
4.13
“SELECT”, “DIAL” AND “DIAL2” BEHAVIOR IN A TEXTMENU OR ICONMENU OBJECT
The following table describes what actions will be performed for each possible combination of items and actions in a
<MenuItem>.
MenuItem Content
Select Softkey
Offhook
Dial2 Softkey
Dial Softkey
<URI>http://XYZ.</URI>
GET(http://XYZ)
-
-
Dial(http://XYZ)
<Dial>123</Dial>
-
Dial(123)
Dial(123)
-
GET(http://XYZ)
Dial(123)
Dial(123)
Dial(http://XYZ)
Dial(456)
Dial(123)
Dial(123)
Dial(Dial:456)
<URI>http://XYZ</URI>
<Dial>123</Dial>
<URI>Dial:456</URI>
<Dial>123</Dial>
Note: the main purpose of the “Dial” tag in the TextMenu is to allow the Mitel SIP phones which do not
support custom softkeys to dial a number going off-hook.
187 | DEVELOPMENT GUIDE 58015045-00
4.14
REFRESH OF AN XML PAGE
All XML UI objects have the ability to be refreshed. This is accomplished by adding a Refresh setting to the HTTP
header. This setting comprises two parameters:
a time in seconds
a URL.
The Refresh setting is set by the XML application and it is up to the application to decide which objects they want to
refresh. So, it is an optional setting.
If the setting appears, then both parameters must be set for the Refresh to work.
The format of the HTTP header is:
Refresh: timeout; url=page to load
Example
Refresh: 3; url=http://10.50.10.140/update.xml
All of the parameters are mandatory.
With php you will have to use the header command in your script.
header("Refresh: 1; url= http://10.50.10.140/update.xml”);
4.15
HTTP HEADERS FORMAT FOR A PHONE HTTP GET
When the Mitel SIP performs a GET to an HTTP server, it sets multiple variables in the HTTP header:
User-Agent providing information on the characteristics of the phone (type, MAC address, firmware),
X-Aastra-ExpMod1 providing information on the expansion module 1 if present,
X-Aastra-ExpMod2 providing information on the expansion module 2 if present,
X-Aastra-ExpMod3 providing information on the expansion module 3 if present,
Accept-Language providing information on the language used on the phone.
Example:
User-Agent: Aastra6867i MAC:00-08-5D-19-94-B7 V:2.3.1.26-SIP
Accept-Language: en
X-Aastra-ExpMod1: 560M
X-Aastra-ExpMod2: 536M
4.15.1
USER-AGENT
The User-Agent header includes:
The type of phone
The MAC address of the phone
The firmware version of the phone
Usually, the HTTP server is able to retrieve the User Agent parameters. The Mitel SIP phones send the following
string for the User-Agent.
Phone_Model[space]MAC:-XX-XX-XX-XX-XX-XX[space]V:Version
This allows the application to adapt to the type of phone it is dealing with but also allows to design a single
application to provide XML (for the phones) and HTML (for a web browser).
DEVELOPMENT GUIDE 58015045-00 | 188
The following source code is a php example that can be used to decode the User-Agent header sent by a Mitel SIP
phone.
function Decode_HTTP_header()
{
$user_agent=$_SERVER["HTTP_USER_AGENT"];
if(stristr($user_agent,"Aastra"))
{
$value=preg_split("/ MAC:/",$user_agent);
$end=preg_split("/ /",$value[1]);
$value[1]=preg_replace("/\-/","",$end[0]);
$value[2]=preg_replace("/V:/","",$end[1]);
}
else
{
$value[0]="Unknown";
$value[1]="NA";
$value[2]="NA";
}
$header[model]=$value[0];
$header[mac]=$value[1];
$header[firmware]=$value[2];
return($header);
}
This function returns an array with
Array[model] is the phone model
“Aastra6863i”
“Aastra6865i”
“Aastra6867i”
“Aastra6869i”
“Aastra6873i”
“Mitel6920”
“Mitel6930”
“Mitel6940”
Array[mac] is the MAC address
Array[firmware] is the firmware version
Example of execution
Array[model]
=>
Aastra6869i
Array[mac]
=>
00085D031C81
Array[firmware]
=>
4.0.0.66
4.15.2
X-AAASTRA-EXPMODI
If the phone has expansion modules (all models but 6863i) connected, the phone sends this information in
proprietary http headers:
X-Aastra-ExpMod1
X-Aastra-ExpMod2
X-Aastra-ExpMod3
The header is sent only if an expansion module is present at the given position, the possible values are:
189 | DEVELOPMENT GUIDE 58015045-00
M680i for the 16 keys paper labeled expansion module (6865i/6867i/6869i/6873i/6920/6930/6940)
M685i for the 3x28 keys self labeled expansion module (6865i/6867i/6869i/6873i/6920/6930/6940)
The following source code is a php example that can be used to decode the X-Aastra_ExpMod header sent by a
Mitel SIP phone.
function Decode_HTTP_X_Aastra()
{
$header[module1]=$_SERVER["HTTP_X_AASTRA_EXPMOD1"];
$header[module2]=$_SERVER["HTTP_X_AASTRA_EXPMOD2"];
$header[module3]=$_SERVER["HTTP_X_AASTRA_EXPMOD3"];
return($header);
}
Example of execution
A Mitel 6869i with one M680 in position 1 and a M685 in position 2.
Array[module1] =>
M680
Array[module2] =>
M685
Array[module3] =>
Empty string
4.15.3
ACCEPT-LANGUAGE
The phone also sends the standard Accept-Language in the headers request which describes the language of the
phone using 2 characters.
To access it using php the syntax is $_SERVER["HTTP_ACCEPT_LANGUAGE"])
Example
echo $_SERVER["HTTP_ACCEPT_LANGUAGE"]
returns “en”
4.16
SOME DEVELOPMENT GUIDELINES
There are some simple rules that you should follow when you develop XML applications for the Mitel SIP phones.
Dont forget the “Exit” key when you use custom softkeys
Place custom softkeys as they are for the standard objects, also it is better to use the same labels. The Exit key
should preferably be placed in position 6.
Setting destroyOnExit attribute to “yes” is always preferable when you write complex applications as it is the only
way to properly control the pages that are stacked in the phone.
Avoid using the Directory Object; TextMenu object with custom keys is much more flexible.
If you want to access data from the internet, it is preferable to use a RSS feed or a SOAP interface than Web
scraping as Web sites frequently change their layout interface.
For XML applications using data from the Internet, it they are not real time you might consider to “cache” the data on
the server and update them on a regular basis (a weekly update is necessary for Movie schedules but a 10 minutes
update might be necessary for a weather application for severe conditions).
As the XML objects are limited to 10000 bytes, you might sometime hit this limit for a complex TextMenu with a lot
of custom keys and custom icons. Dont forget to use the base attribute in the MenuItem object as it is a good way
to reduce the size of the object.
DEVELOPMENT GUIDE 58015045-00 | 190
5
URL FORMAT AND VARIABLES
5.1
URL FORMAT
To access to an XML application the phone performs a HTTP (or HTTPS) GET on a URL. The supported syntax is:
http://host[:port]/dir/file
or
https://host[:port]/dir/file
where:
host is the hostname or IP address of the Web server supporting the XML application
port is the port number the phones is using for the HTTP request.
Note: If the port is not specified, the phone uses port 80.
The phone also supports the following URLs:
5.2
Dial: XXXXX to have the phone dial XXXXX
DialLine:X:YYYYY to have the phone dial YYYYY (phone number or URI) using SIP line X see chapter
4.7 for more details on this feature..
Led:XXXXX=on/off/slowflash/fastflash to change the status the LED associated to the XXXXX
key if the key is configured as an XML key. See chapter 4.2 for more details on the LED control.
Key:XXXXX to simulate a keypress on the phone. See chapter 4.5 for more details on keypress emulation.
URL VARIABLES
The phones support system variables in the HTTP URL to pass dynamic data to the XML applications.
The variables are in the form $$VARIABLENAME$$ and the following variables are supported:
Variable Name
Value
SIPUSERNAME
Active line user name
DISPLAYNAME
Active line display name
SIPAUTHNAME
Active line SIP authentication name
PROXYURL
Active line SIP proxy
ACTIVEPROXY
Active line active SIP proxy
INCOMINGNAME
Caller-ID name of the current incoming call
REMOTENUMBER
Remote party phone number (incoming or outgoing)
LOCALIP
Phone local IP address
CALLDURATION
Duration of the current call in seconds
CALLDIRECTION
Direction of the current call (“Incoming” or “Outgoing”)
REGISTRATIONCODE
3 digits registration code for the registration coming from the SIP Proxy server.
191 | DEVELOPMENT GUIDE 58015045-00
Variable Name
Value
REGISTRATIONSTATE
Registration state available from the Registration event, values are:
“REGISTERED",
"UNREGISTERED",
"EXPIRED",
"REFUSED",
"TIMEOUT".
LINESTATE
Information on Disconnect event, values are
“IDLE”
“DIALING”
“CALLING”
“OUTGOING”
“INCOMING”
“CONNECTED”
“CLEARING”
LINEINDEX
Line Index of focused line (SIP registration line number of the focused line)
REMOTEURI
The Remote party SIP URI (incoming or outgoing) (sip:user@server:port)
DIVERSIONURI
The full URI of the Diversion information (sip:user@server)
DIVERSIONREASON
The Diversion Reason information
At the time of the HTTP call, the variables are replaced with the value of the appropriate variable.
The variables are available in all the HTTP URL for programmable/soft keys as well as for the action URI. They can
also be used in the XML objects themselves (TextMenu, InputScreen…) but not in a PhoneExecute command.
Example
For example, if the administrator specifies an XML softkey with the value:
http://10.50.10.140/script.pl?name=$$SIPUSERNAME$$
This softkey executes a GET on:
http://10.50.10.140/script.pl?name=42512
Assuming that the SIP username of the specific line is 42512.
The variables can be used, for instance, in a context where the phone has multiple SIP registrations and the XML
application need to know which SIP registration the phone is currently using.
Note: the value of a variable depends on the status of the phone, if the variable has no meaning in the
current status; the phone sends an empty string. For example, if the URL is
“http://myserver.com/script.pl?number=$$REMOTENUMBER$$&key=5”,
the
phone
will
call
“http://myserver.com/script.pl?number=”&key=5” if the phone is idle.
5.2.1
VARIABLES RELATED TO THE ACTIVE LINE
The following variables are related to the active line
$$SIPUSERNAME$$
Active line user name
DEVELOPMENT GUIDE 58015045-00 | 192
$$DISPLAYNAME$$
Active line display name
$$SIPAUTHNAME$$
Active line SIP authentication name
$$PROXYURL$$
Active line SIP proxy
$$ACTIVEPROXY$$
Active line active SIP proxy
$$LINEINDEX$$
Active line index
They can be used anywhere where the active line is meaningful for your XML application but they should not be
used with outside event action uris such as action uri poll or action uri xml sip notify as the active line can be
anything when the event is processed.
5.2.2
VARIABLES RELATED TO THE CURRENT CALL
The following variables are related to the current call.
$$INCOMINGNAME$$
Caller-ID name of the current incoming call
$$REMOTENUMBER$$
Remote party phone number (incoming or outgoing)
$$CALLDURATION$$
Duration of the current call in seconds
$$CALLDIRECTION$$
Direction of the current call (“Incoming” or “Outgoing”)
$$LINESTATE$$
Information on Disconnect event
$$REMOTEURI$$
Remote party SIP URI (incoming or outgoing)
$$DIVERSIONURI$$
Diversion URI
$$DIVERSIONREASON$$
Diversion reason code
List of values for the LINESTATE variable
LINESTATE VALUE
Meaning
Disconnected uri
IDLE
The phone is idle
N/A
DIALING
The phone is offhook and ready to dial
N/A
CALLING
A SIP INVITE has been sent but no response
has been received.
An error occured during the call.
OUTGOING
Remote party is ringing.
The call was canceled.
INCOMING
Local phone is ringing.
The call was missed or canceled.
CONNECTED
The parties are talking.
Call was successful
CLEARING
Call
has
been
acknowledged.
released
but
not
N/A
These variables are initialized at the beginning and at the end of the call which means for instance that the call
duration variable is reset to 0 after the phone goes on-hook, the last moment to retrieve the value is when you use
the action uri onhook or action uri disconnected.
5.2.3
USAGE WITH ACTION URIS
The following table details when the variables are meaningful with an action URI.
193 | DEVELOPMENT GUIDE 58015045-00
startup
registered
registration
onhook
offhook
incoming
outgoing
disc.
SIPUSERNAME
X
X
X
X
X
X
X
X
DISPLAYNAME
X
X
X
X
X
X
X
X
SIPAUTHNAME
X
X
X
X
X
X
X
X
PROXYURL
X
X
X
X
X
X
X
X
INCOMINGNAME
X1
X
REMOTENUMBER
X
X
LINESTATE
X
LOCALIP
X
X
X
X
X
X
X
CALLDURATION
X
X
CALLDIRECTION
X
X
X
X
X
X
X
poll
notify
X2
X2
X3
X3
X
X
X
X
X
X
X
X
REGISTRATION
STATE
X
X
X
REGISTRATION
CODE
X
X
X
X
X
LINEINDEX
X
X
REMOTEURI
X
X
DIVERSIONURI
X
X
DIVERSION
REASON
X
X
5.2.4
X
X
X
X
X
PHONE STATE
The following table details when the variables are meaningful for a programmable/soft key depending on the phone
state.
idle
connected
incoming
outgoing
SIPUSERNAME
X
X
X
X
DISPLAYNAME
X
X
X
X
SIPAUTHNAME
X
X
X
X
PROXYURL
X
X
X
X
1
only if the previous call was an incoming call
2
only if the phone is in the “connected” state answering an incoming call
3
only if the phone is in the “connected” state
DEVELOPMENT GUIDE 58015045-00 | 194
X
idle
connected
incoming
outgoing
X
X
X
X
INCOMINGNAME
X1
X
REMOTENUMBER
X
X
X
X
X
X
X
X
X
REMOTEURI
X
X
X
DIVERSIONURI
X
X
X
DIVERSIONREASON
X
X
X
ACTIVEPROXY
LINESTATE
X
LOCALIP
X
CALLDURATION
X
CALLDIRECTION
X
REGISTRATIONSTATE
REGISTRATIONCODE
LINEINDEX
5.3
X
HTTPS
If you want to secure the communication between the Mitel SIP Phone and your HTTP server hosting the XML
applications, you can use HTTPS instead of HTTP.
Note: HTTPS provides a reasonable level of security to your XML applications for man-in-the-middle
attacks but you must still make sure that the HTTP server itself is secure, only the data transport is
protected by HTTPS.
To allow HTTPS connections, the web server must have a root certificate; this certificate must be signed by a
certificate authority of one form or another, which certifies that the certificate holder is indeed the entity it claims to
be. The certificate can also be self-signed.
Mitel SIP phones come with the signing certificates of
Verisign
GeoTrust
Thwate
So, only certificates signed by these Certification Authorities can be verified by the phone. Certificates that are
signed by other providers will not verify on the phone but to overcome this problem, the phone can be loaded with
user certificates.
The following parameters allow HTTPS validation configuration.
1
only if the user has answered the current call.
195 | DEVELOPMENT GUIDE 58015045-00
https
https
https
https
validate certificates
validate expires
validate hostname
user certificates
Note: if you have http validate expires enabled, you must make sure that the phone clock is yet
prior to using HTTPS.
When a certificate is rejected the phone displays "Bad Certificate" on the fifth line of the display for large screen
phones and on the third line for small screen phones (6863i/6865i).
Note: For more information regarding HTTPS and associated certificates please refer to the x.509
standard at http://www.ietf.org/html.charters/pkix-charter.html .
5.3.1
USER CERTIFICATES
The user has the option to upload its own certificates onto the phone. These certificates must be uploaded in a
single file in the PEM format.
The user certificates are persistent between firmware upgrades but are deleted during a factory default.
User provided certificates are downloaded as part of the boot time configuration downloads and be based on a
filename specified in http user certificates. The certificate file must be located in the configuration server
directory.
Note: In order to install a root certificate using HTTPS, the user must first disable verification, since the
certificate will not be in the validation chain yet.
Example
Here is an example of a self-signed certificate; it is stored in a file called “mycertificate.pem” located in the
configuration server directory.
-----BEGIN CERTIFICATE----MIIDyjCCAzOgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBpTELMAkGA1UEBhMCLS0x
EjAQBgNVBAgTCVNvbWVTdGF0ZTERMA8GA1UEBxMIU29tZUNpdHkxGTAXBgNVBAoT
EFNvbWVPcmdhbml6YXRpb24xHzAdBgNVBAsTFlNvbWVPcmdhbml6YXRpb25hbFVu
aXQxEzARBgNVBAMUCm15X3RyaXhib3gxHjAcBgkqhkiG9w0BCQEWD3Jvb3RAbXlf
dHJpeGJveDAeFw0wODA2MTAxOTM4MzZaFw0wOTA2MTAxOTM4MzZaMIGlMQswCQYD
VQQGEwItLTESMBAGA1UECBMJU29tZVN0YXRlMREwDwYDVQQHEwhTb21lQ2l0eTEZ
MBcGA1UEChMQU29tZU9yZ2FuaXphdGlvbjEfMB0GA1UECxMWU29tZU9yZ2FuaXph
dGlvbmFsVW5pdDETMBEGA1UEAxQKbXlfdHJpeGJveDEeMBwGCSqGSIb3DQEJARYP
cm9vdEBteV90cml4Ym94MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDUZa1m
3ienPcP1zmgp2jT7oGnVoSfKmOs7n7kLpWTUyWpmEfrleetVoRoaGL5j+zTwaAjO
lp9apC17nwe0qRC2BuPDyzkVE4f30Vn2pm1u5yYDoi+yRE1NFyVLbQwLFTffUGwQ
kfC7YabPdbjQ87/XU6/AhuquET0n3nNE9NwQHwIDAQABo4IBBjCCAQIwHQYDVR0O
BBYEFE6XNlxAlZxfYbmucEN2VUyOTIfNMIHSBgNVHSMEgcowgceAFE6XNlxAlZxf
YbmucEN2VUyOTIfNoYGrpIGoMIGlMQswCQYDVQQGEwItLTESMBAGA1UECBMJU29t
ZVN0YXRlMREwDwYDVQQHEwhTb21lQ2l0eTEZMBcGA1UEChMQU29tZU9yZ2FuaXph
dGlvbjEfMB0GA1UECxMWU29tZU9yZ2FuaXphdGlvbmFsVW5pdDETMBEGA1UEAxQK
bXlfdHJpeGJveDEeMBwGCSqGSIb3DQEJARYPcm9vdEBteV90cml4Ym94ggEAMAwG
A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEANdtuygpPobd7ICWnlor+UEJ5
3Tei51HDN2oKp6SaF3uQCUJUMMJwB9/i/rVa/c801Oqf06/MMCU6/VWS9uZspBvm
IJWaFpU8+VcbGH63KA61FSqKHSN+8ZRl0E58FgmHzEXwJr4P4Hb59FrpqkUwjDRF
86UP/ZyBYhH7EWtIJhA=
-----END CERTIFICATE----The following lines must be added to the phone configuration files (aastra.cfg or MAC.cfg) in order to use HTTPS
for XML requests.
DEVELOPMENT GUIDE 58015045-00 | 196
https user certificates: mycertificate.pem
5.3.2
CONFIGURATION
Using configuration files
Parameter
https validate certificates
Configuration Files aastra.cfg, <mac>.cfg
Description
When this parameter is set to 1 the https client will perform
validation on SSL certificates before they are accepted.
Format
Boolean (0=disabled, 1=enabled)
Default Value
1 (enabled)
Range
0 or 1
Example
https validate certificates : 1
Parameter
https validate expires
Configuration Files aastra.cfg, <mac>.cfg
Description
When this parameter is set to 1 the https client will verify that a
certificate has not expired prior to accepting it.
Format
Boolean (0=disabled, 1=enabled)
Default Value
1 (enabled)
Range
0 or 1
Example
https validate expires : 1
Parameter
https validate hostname
Configuration Files aastra.cfg, <mac>.cfg
Description
When this parameter is set to 1 the https client will verify the
commonName of a certificate matches the server it is connecting
to prior to accepting the certificate
Format
Boolean (0=disabled, 1=enabled)
Default Value
1 (enabled)
Range
0 or 1
Example
https validate hostname : 1
197 | DEVELOPMENT GUIDE 58015045-00
Parameter
https user certificates
Configuration Files aastra.cfg, <mac>.cfg
Description
This parameter is a file name on the configuration server that
contains user provided certificates in PEM format. These
certificates will be used to validate peer certificates.
Format
String
Default Value
Empty
Range
N/A
Example
https user certificates : mycertificate.pem
Web UI configuration
The HTTPS paramerets can also be configured using the WebUI.
Select Network.
Enter the parameters.
Click
.
HTTPS Settings
Note: Depending on the changes performed, you might have to reboot the phone to apply them.
5.4
XML OBJECTS PUSHED TO THE PHONE
The phone can request an XML object via HTTP GET, or an object can be pushed to the phone via a POST. The
phone parses this object immediately upon receipt and displays the information to the screen.
The HTTP POST packet must contain an “xml=” line in the message body. The string to parse is located after the
equals sign in the message. HTML forms that post objects to the phone must use a field named “xml” to send their
data. Any applications that construct HTTP packets on the fly must also specify this line.
DEVELOPMENT GUIDE 58015045-00 | 198
Note: the content of the HTTP POST is not url-encoded.
Sample php source code
Below is a sample php source code that sends an XML object to a Mitel phone. In this example, the phone is
located at 192.168.0.150 and the server pushing the XML object at 192.168.0.112.
<?php
#
function push2phone($server,$phone,$data)
{
$xml = "xml=".$data;
$post
$post
$post
$post
$post
$post
= "POST / HTTP/1.1\r\n";
.= "Host: $phone\r\n";
.= "Referer: $server\r\n";
.= "Connection: Keep-Alive\r\n";
.= "Content-Type: text/xml\r\n";
.= "Content-Length: ".strlen($xml)."\r\n\r\n";
$fp = @fsockopen ( $phone, 80, $errno, $errstr, 5);
if($fp)
{
fputs($fp, $post.$xml);
flush();
fclose($fp);
}
}
##############################
$xml = "<AastraIPPhoneTextScreen>\n";
$xml .= "<Title>Push test</Title>\n";
$xml .= "<Text>This is a test for pushing a screen to a phone. It is a way to
demonstrate that we can push XML objects to an Mitel Phone.</Text>\n";
$xml .= "</AastraIPPhoneTextScreen>\n";
push2phone("192.168.0.112","192.168.0.150",$xml);
?>
Sample perl source code
Below is a sample perl source code that sends an XML object to an Mitel phone. In this example, the phone is
located at 192.168.0.150.
199 | DEVELOPMENT GUIDE 58015045-00
#!c:/perl/bin/Perl.exe
# Create a user agent object
use LWP::UserAgent;
use LWP::ConnCache;
use HTTP::Request::Common;
my $ua = LWP::UserAgent->new(agent
Windows 98)');
=>
'Mozilla/4.0
(compatible;
MSIE
5.5;
$ua->conn_cache(LWP::ConnCache->new());
$ua->request(
POST 'http://192.168.0.150'
,Content_Type => 'application/x-www-form-urlencoded'
,Content
=>
'xml=<AastraIPPhoneTextScreen><Title>Push
test</Title><Text>This is a test for pushing a screen to a phone. It is a way
to
demonstrate
that
we
can
push
XML
objects
to
an
Mitel
Phone.</Text></AastraIPPhoneTextScreen>');
Notes:
To accept a pushed page the “XML Push Server List” phone parameter must be configured
with the list of the HTTP servers allowed pushing a page.
When a page is pushed to the phone the MWI lamp blinks to indicate a new message to the
phone.
When a XML object is pushed to the phone, the phone acts like a Web server listening to TCP port 80, which means
that if the phone is behind a NAT and the server on the other side of the NAT, which is a typical configuration for a
remote user, the port 80 must be forwarded to the IP phone at the router level.
DEVELOPMENT GUIDE 58015045-00 | 200
6
ACTION URIS
Configuration parameters have been introduced to configure the phone to make an HTTP GET based on events,
these events are:
End of the boot sequence
action uri startup
Successful registration
action uri registered
On-hook
action uri onhook
Off-hook
action uri offhook
Incoming call
action uri incoming
Outgoing call
action uri outgoing
Time based
action uri poll
SIP Notify
action uri xml sip notify
Connect
action uri connected
Disconnect
action uri disconnected
Registration event
action uri registration event
6.1
CONFIGURATION
A URI can be configured for each type of events; the configuration can be made using:
The configuration files (aastra.cfg and/or MAC.cfg)
The Web UI.
See chapter 7.3 for more details on the Web UI Configuration.
Configuration description
These URIs will be configurable via the configuration files using the following parameters.
action uri startup: <URI to GET on startup>
action uri registered: <URI to GET on successful registration>
action uri incoming: <URI to GET on an incoming call>
action uri outgoing: <URI to GET on outgoing call>
action uri offhook: <URI to GET on an off-hook event>
action uri onhook: <URI to get on an on-hook event>
action uri connected: <URI to get on a connect event>
action uri disconnected: <URI to get on a disconnect event>
action uri poll: <URI to get when configured timer expires>
action uri poll interval: <polling interval in seconds for action uri poll>
action uri registration event: <URI to GET on any registration event>
action uri xml sip notify: <URI to get when a aastra-xml SIP notify without content is received by the
phone>
action uri blf <URI to get when a BLF or BLF/Xfer key is pressed>
sip xml notify event: <Enables or disables the phone to accept an Aastra-xml SIP Notify event>
As described in chapter 5.2 the action URI support variables in their configuration.
201 | DEVELOPMENT GUIDE 58015045-00
Example
action uri startup: http://myserver.com/startup.php
action uri incoming: http://myserver.com/incoming.php?number=$$REMOTENUMBER$$
sip xml notify event: 1
action uri xml sip notify: http://myserver.com/notify.php
6.2
ACTION URI DETAILED BEHAVIOR
Action uris are available on all the lines and line appearance of the phone so passing the system variables
$$SIPUSERNAME$$ or $$SIPAUTHNAME$$ and $$PROXYURL$$ or $$ACTIVEPROXY$$ will define which line
has triggered the action uri.
Notes:
The action uri GET requests are non blocking.
If the GET request triggered by an action uri fails, the phone does not display any error message.
6.2.1
ACTION URI OFFHOOK
The offhook uri is triggered only when the user performs one of the following actions:
Release the handset
Press a line key
Press the Speaker/Headset key
This means that the offhook uri is not triggered when the user presses a speeddial key even if the phone goes offhook and dials a number. Also if the user directly dials a number and press the “dial” key the action uri is not
triggered (but the outgoing uri is)
6.2.2
ACTION URI ONHOOK
The action uri onhook is triggered at the end of any active call:
The user presses the Goodbye key
The user hangs up the handset after a connected call
The user drops an established call pressing the “drop” softkey
After a completed transfer (blind or monitored)
The other party hangs up.
Note: The onhook event is a subset of the disconnect event, you should avoid to configure both action
uri as most of the time they will both be called at the same time.
6.2.3
ACTION URI INCOMING
The action uri incoming is triggered each time there is an incoming call presented to the phone and processed to
make the phone ring. If the incoming call includes an auto-answer info message (intercom mode), the action uri
incoming is triggered as well.
Note: the action uri incoming is not triggered if the phone is call forwarded or is in DND mode or if call
waiting is disabled (and the phone in a non idle mode).
6.2.4
ACTION URI OUTGOING
The action uri outgoing is triggered each time an outgoing call is performed by the phone (SIP INVITE message
sent).
DEVELOPMENT GUIDE 58015045-00 | 202
Note: the action uri outgoing is also triggered when the user makes a second call to perform a transfer
or a conference.
6.2.5
ACTION URI CONNECTED
The action uri connected is triggered each time the phone transitions to a connected state. This includes regular
phone calls but also Intercom, Paging, RTP streaming or Play Wav.
Notes:
The action uri connected is also triggered when the second leg of a 3-way conference is established.
During SLA calls, the phone uses the Action URI Connected parameter when the line is seized before
the caller dials out
SCA and BLA calls on hold trigger the action uri connected, since the retrieval is a second call
performed by the phone and the phone cannot link the retrieved call with the earlier held call.
6.2.6
ACTION URI DISCONNECTED
The action uri disconnected is triggered when the phone transitions from any active (non idle) call state to idle. This
includes regular calls but also Intercom, Paging, RTP streaming or Play Wav.
The difference between action uri disconnected and action uri onhook is that the disconnect event is generated even
when the call fails or if a call is not answered.
The action uri disconnect is triggered every time the phone comes back to the idle state where the action uri onhook
is triggered only when the phone was on an active call.
The $$LINESTATE$$ variable provides more information on the reason of the disconnect event.
LINESTATE VALUE
Meaning
Disconnected uri
IDLE
The phone is idle
N/A
DIALING
The phone is offhook and ready to dial
N/A
CALLING
A SIP INVITE has been sent but no response
has been received.
An error occured during the call.
OUTGOING
Remote party is ringing.
The call was canceled.
INCOMING
Local phone is ringing.
The call was missed or canceled.
CONNECTED
The parties are talking.
Call was successful
CLEARING
Call
has
been
acknowledged.
released
but
not
N/A
Note: the action uri disconnected is not triggered if the phone is call forwarded or is in DND mode or if
call waiting is disabled (and the phone in a non idle mode).
6.2.7
ACTION URI STARTUP
The action uri startup is triggered at the end of the phone boot sequence.
6.2.8
ACTION URI REGISTERED
The action uri registered is triggered the first time the phone registers successfully a line to its SIP proxy/registrar.
203 | DEVELOPMENT GUIDE 58015045-00
If the phone has multiple SIP registrations, the action uri registered is triggered for each line.
6.2.9
ACTION URI REGISTRATION EVENT
The action uri registration event is triggered every time there is a registration state change, the registration states
are:
Registered
Unregistered
Registration timed out
Registration refused
Registration expired
The action uri registration event is not triggered when the same event is repeated.
Two URI variables have also been added to complement this feature
$$REGISTRATIONSTATE$$
$$REGISTRATIONCODE$$
See chapter 5.2 for more details on these variables.
6.2.10
ACTION URI POLL
The action uri poll is called each time the configured timer (action uri poll interval parameter) expires.
The first timer starts at the end of the phone boot sequence.
6.2.11
ACTION URI BLF
The action uri blf is called each time a BLF or BLF/Xfer key is pressed, this happens only when
“blf key mode” parameter is set to the value 2
“action uri blf” parameter is not empty
This action uri has dedicated variables on top of the common variables:
$$BLFNO$$ indicates the monitored extension
$$BLFSTATE$$ indicates the monitored line state which can be
o
IDLE
o
BUSY
o
RINGING
o
ONHOLD
o
DND
o
UNKNOWN
$$BLFTRANSFER$$ indicates if a BLF/XFER or a BLF key was pressed
o
YES (BLF/XFER)
o
NO (BLF)
Example
action uri blf: http://myserver/blf.php?blf=$$BLFNO$$&state=$$BLFSTATE$$
DEVELOPMENT GUIDE 58015045-00 | 204
6.2.12
ACTION URI XML SIP NOTIFY
The action uri xml sip notify is triggered when the phone receives an authorized SIP Notify aastra-xml event with an
empty content. The XML call is triggered only if the sip xml notify event parameter is set to 1 (enabled). See chapter
6.2.12 for more details on the configuration.
If XML content is provided in the SIP NOTIFY, it is processed directly by the phone as it is done for a XML PUSH
If the content is empty in the SIP NOTIFY, the phone automatically triggers a new pre-configured action uri (action
uri xml sip notify).
Example of a SIP NOTIFY with XML content
NOTIFY sip:200@10.30.100.103:5060 SIP/2.0
Via: SIP/2.0/UDP 10.30.100.103:5060;branch=z9hG4bK7bbc1fac;rport
From: <sip:201@10.30.100.103:5060>;tag=81be2861f3
To: Jacky200 <sip:200@10.30.100.103:5060>
Contact: <sip:201@10.30.100.103>
Call-ID: 59638f5d95c9d301
CSeq: 4 NOTIFY
Max-Forwards: 70
Event: aastra-xml
Content-Type: application/xml
Content-Length: 115
<AastraIPPhoneExecute><ExecuteItem
URI="http://10.30.100.39/XMLtests/SampleTextScreen.xml"/></AastraIPPhoneExecute>
When the phone receives the SIP NOTIFY, the XML content is processed as any XML object; in this example, the
phone will call http://10.30.100.39/XMLtests/SampleTextScreen.xml after reception of the SIP NOTIFY.
Note: The phone supports all the current XML objects with all the existing limitations. For example if an
AastraIPPhoneExecute is used, the embedded uri(s) cannot be HTTPS based.
Example of a SIP NOTIFY without XML content
NOTIFY sip:200@10.30.100.103:5060 SIP/2.0
Via: SIP/2.0/UDP 10.30.100.103:5060;branch=z9hG4bK7bbc1fac;rport
From: <sip:201@10.30.100.103:5060>;tag=81be2861f3
To: Jacky200 <sip:200@10.30.100.103:5060>
Contact: <sip:201@10.30.100.103>
Call-ID: 59638f5d95c9d301
CSeq: 4 NOTIFY
Max-Forwards: 70
Event: aastra-xml
Content-Type: application/xml
Content-Length: 0
205 | DEVELOPMENT GUIDE 58015045-00
When the phone receives the SIP NOTIFY, it will trigger the action uri xml sip notify if it has been previously
configured using the configuration files or the phone Web UI. If the action uri xml sip notify is not enabled, the phone
does not do anything.
Note: To ensure that the SIP NOTIFY is coming from a trusted source, it is recommended that you
enable the Whitelist feature (Whitelist Proxy parameter) on the IP phone. If enabled, and the phone
receives a SIP NOTIFY from a server that is NOT on the whitelist, the phone will reject the message.
Asterisk implementation
Asterisk custom SIP Notify messages are configured in sip_notify.conf file in the asterisk root directory, usually
/etc/asterisk/.
Asterisk does not support custom SIP Notify with XML content. The only way to use the SIP Notify event with
Asterisk is to use the Aastra-xml event triggerint the action uri xml sip notify.
To do so, the following lines must be added in /etc/asterisk/sip_notify.conf
; Aastra XML event
[aastra-xml]
Event=>aastra-xml
Content-Length=>0
Then you must restart Asterisk to have the new SIP Notify parsed by Asterisk.
To use it, just send a SIP Notify aastra-xml event to a Mitel SIP phone registered to the platform using either the
asterisk CLI or the AGI.
sip notify aastra-xml 200 201….
Where 200, 201… are the SIP peers for the Mitel SIP phones.
This will trigger the action uri xml sip notify if it has been enabled and properly configured.
“ANSWER” AND “IGNORE” KEYS FOR ACTION URI INCOMING
6.3
When a UI XML object is displayed as an answer to an action uri incoming, the regular contextual keys (“Answer”
and “Ignore”) are not displayed as the display is managed by the XML object, the user can only take the call by
pressing the blinking line key or go off-hook.
To keep a consistent behavior of the phone after an action uri incoming, the “allowAnswer” tag allows the native
interactive keys “Answer” and “Ignore” to be displayed and allow the user to answer the call.
Once the call is answered or ignored, the 2 keys disappear automatically.
“DROP”, “XFER” AND “CONF” KEYS FOR XML APPS IN CONNECTED STATE
6.4
When a UI XML object is displayed as with the phone in a connected state, the regular contextual keys (“Drop”,
“Xfer” and “Conf”) are overridden by the XML object, the user cannot access anymore to these telephony features.
To keep a consistent behavior of the phone when the phone is connected, 3 tags have been introduced:
allowDrop
allowXfer
allowConf
When they are enabled the native interactive keys are displayed on top of the XML object.
Once the call is ended, the 3 keys disappear automatically.
DEVELOPMENT GUIDE 58015045-00 | 206
6.5
APPLICATIONS
Action URIs are very powerful as they allow an external application to take control of the display when an event
occurs.
Here are some examples of potential applications.
Self-configuration
Using the startup URI, it is possible to develop self-provisioning on the phone. If a new phone boots and gets its
configuration server IP address (through DHCP option 66 for example), it can download the aastra.cfg file with a
startup URI set to an XML application, as it is a new phone the <MAC>.cfg config files does not exist. At the end of
the boot, the phone will go to this XML application which can identify the phone and then generate the <MAC>.cfg
file “on the fly” and ask the phone to reboot using the PhoneExecute object.
Screen pop
Using the action uri incoming, it is possible to display extra information on the phone for an incoming call. For
instance, the XML application that is called when there is an incoming call can do a database lookup (Microsoft
Exchange or any database) and display information on the caller. Basically it is like having a screen pop application
directly on the phone.
Call Center
As for the Screen pop, the incoming URI can be used in a call center environment to display CRM or queue
information on the caller. The on-hook URI can also be used to collect the wrap-up code at the end of a call.
And many more…
207 | DEVELOPMENT GUIDE 58015045-00
7
XML CONFIGURATION
After creating an XML application to use on the IP phone, the application can be accessed as a Service or a Key.
7.1
CONFIGURING A SOFT OR PROGRAMMABLE KEY USING THE PHONE WEB UI
In addition to linking an XML application to a custom service, an application can be also be linked to a softkey and/or
a programmable key depending on the phone and on the phone configuration (expansion modules).
Select “Operation” => “Softkeys and XML” (6867i/6869i/6873i/6920/6930/6940
Or
Select “Operation” => “Programmable Keys” (6863i/6865i)
Or
Select “Operation” => “Expansion Module X” (6865i/6867i/6869i/6873i/6920/6930/6940 with expansion module(s))
Choose type “XML” for the desired key.
Enter the URI in the value field.
Click
.
Softkeys
Note: Reboot is not required.
7.2
CONFIGURING THE XML PUSH SERVER LIST USING THE PHONE WEB UI
The IP phone will only accept HTTP POSTs from the IP addresses set in the XML Push Server List.
Select Advanced Settings=>Configuration Server.
Enter a comma-separated list of IP addresses or domain names in the XML Push Server List field.
Click
and reboot the phone.
DEVELOPMENT GUIDE 58015045-00 | 208
XML Push
Server List
7.3
CONFIGURING THE ACTION URIS USING THE PHONE WEB UI
You can configure the URI to be called for each type of event supported by the phone from the Web UI...
Select Advanced Settings=>Action URI.
Enter the URI for each type of event.
Click
.
Action URIs
7.4
CONFIGURING THE XML BEEP SUPPORT USING THE PHONE WEB UI
You can configure the XML Beep Support (enabled or disabled) from the Web UI. It impacts the behavior of the
AastraIPPhoneStatus object regarding the phone notification.
Select Basic Settings=>Preferences.
Enable or disable the parameter.
Click
.
209 | DEVELOPMENT GUIDE 58015045-00
XML
Support
7.5
Beep
CONFIGURING THE STATUS SCROLL DELAY USING THE PHONE WEB UI
You can configure the Status Scroll Delay (delay in seconds, default 5) from the Web UI. It impacts the behavior of
the AastraIPPhoneStatus object defining the delay between each message.
Select Basic Settings=>Preferences.
Enter the value in seconds.
Click
.
Status
Delay
Scroll
DEVELOPMENT GUIDE 58015045-00 | 210
7.6
CONFIGURING THE XML SIP NOTIFY USING THE PHONE WEB UI
You can configure the XML SIP Notify from the Web UI. It will enable or disable SIP Notify aastra-xml to be
processed by the phone.
Select Advanced Settings=>Global SIP.
Enable or disable the parameter.
Click
.
XML SIP Notify
7.7
XML CONFIGURATION USING THE CONFIGURATION FILES
The aastra.cfg and <mac>.cfg Configuration File contains all the configuration parameters for the phone. Please
refer to the phone administration guide for more details.
7.7.1
GENERAL XML PARAMETERS
You can configure the XML applications in the aastra.cfg or <mac>.cfg file using the following parameters:
211 | DEVELOPMENT GUIDE 58015045-00
xml application URI1
xml application title1
xml application post list
xml beep notification
xml status scroll delay
xml get timeout
xml lock override
services script2
callers list script
directory script
redial script
xfer script
conf script
icom script
voicemail script
options script
auto offhook
Parameter
xml application URI
Configuration Files aastra.cfg, <mac>.cfg
Description
This is the XML application you are loading into the IP phone
configuration.
Format
HTTP server path or fully qualified Domain Name
Default Value
Not Applicable
Range
Not Applicable
Example
xml application URI: http://172.16.96.63/aastra/internet.php
Parameter
xml application title
Description
Configuration Files aastra.cfg, <mac>.cfg
This parameter allows you to rename the XML application in the IP
phone UI (Services->4. Custom Feature). By default, when you load
an XML application to the IP phone, the XML application title is called
"Custom Feature". The "xml application title" parameter allows you to
change that title.
For example, if you are loading a traffic report XML application, you
could change this parameter title to "Traffic Reports", and that title will
display in the IP phone UI as Services->4. Traffic Reports.
Format
Alphanumeric characters
Default Value
Not Applicable
1
Not supported on Mitel 53i and Mitel 9143i
2
Not supported on Mitel 51i, Mitel 53i and Mitel 9143i
DEVELOPMENT GUIDE 58015045-00 | 212
Range
Not Applicable
Example
xml application title: Traffic Reports
Parameter
xml application post list
Configuration Files aastra.cfg, <mac>.cfg
Description
The HTTP server that is pushing XML applications to the IP phone.
Format
IP address in dotted decimal format and/or Domain name address
Default Value
Not Applicable
Range
Not Applicable
Example
Parameter
xml beep notification
xml application post list: 10.50.10.53,
dhcp10-53.ana.aastra.com
Configuration Files aastra.cfg, <mac>.cfg
Description
Enables or disables a BEEP notification on the phone when an
AastraIPPhoneStatus object containing a “beep” attribute arrives to
the phone.
Format
Boolean
Default Value
Value 1 (ON)
Range
Example
Parameter
xml status scroll delay
0 (OFF) No beep is audible even if the beep attribute is present in the
XML object.
1 (ON) The phone beeps when an XML object with the “beep”
attribute arrives to the phone.
xml beep notification: 0
Configuration Files aastra.cfg, <mac>.cfg
Description
Specifies the length of time, in seconds, that each XML status
message displays on the phone.
Format
Integer
Default Value
5
213 | DEVELOPMENT GUIDE 58015045-00
Range
1 to 25
Example
xml status scroll delay: 3
Parameter
xml get timeout
Configuration Files aastra.cfg, <mac>.cfg
Description
Specifies the length of time, in seconds, that the phone will wait for a
HTTP GET answer called by an XML.
Format
Integer
Default Value
0 (no timeout)
Range
0 to 4294967295
Example
xml get timeout: 10
Parameter
xml lock override
Configuration Files aastra.cfg, <mac>.cfg
Specifies the method to use for overriding a locked phone when XML
applications are sent to the phone. There are three settings for this
parameter:
Phone prevents XML POSTs and XML GETs from being received or
sent.
Description
Phone allows XML POSTs; however, XML GETs by pressing the
XML keys (softkeys/programmable keys/extension module keys) are
not allowed.
Phone allows XML POSTs to the phone as well as XML GETs to/from
the phone by pressing the XML keys (softkeys/programmable
keys/extension module keys).
Format
Integer
Default Value
0
Range
0 to 2
Example
xml lock override: 1, xml lock override: 2
Parameter
services script
Description
Configuration Files aastra.cfg, <mac>.cfg
Specifies the XML URI to call when a “Services” key (prgkey or
softkey) is pressed. The URI overrides native behavior of the
DEVELOPMENT GUIDE 58015045-00 | 214
“Services” key.
Format
HTTP server path or fully qualified Domain Name
Default Value
Not Applicable
Range
Not Applicable
Example
services script: http://172.16.96.63/services.php
Parameter
callers list script
Configuration Files aastra.cfg, <mac>.cfg
Description
Specifies the XML URI to call when a “Callers List” key (prgkey or
softkey) is pressed. The URI overrides native behavior of the “Callers
List” key.
Format
HTTP server path or fully qualified Domain Name
Default Value
Not Applicable
Range
Not Applicable
Example
callers list script: http://172.16.96.63/callers.php
Parameter
directory script
Configuration Files aastra.cfg, <mac>.cfg
Description
Specifies the XML URI to call when a “Directory” key (prgkey or
softkey) is pressed. The URI overrides native behavior of the
“Directory” key.
Format
HTTP server path or fully qualified Domain Name
Default Value
Not Applicable
Range
Not Applicable
Example
directory script: http://172.16.96.63/directory.php
Parameter
redial script
Configuration Files aastra.cfg, <mac>.cfg
Description
Specifies the XML URI to call when a “Redial” key (prgkey or softkey)
is pressed. The URI overrides native behavior of the “Redial” key.
Format
HTTP server path or fully qualified Domain Name
215 | DEVELOPMENT GUIDE 58015045-00
Default Value
Not Applicable
Range
Not Applicable
Example
redial script: http://172.16.96.63/redial.php
Parameter
xfer script
Configuration Files aastra.cfg, <mac>.cfg
Description
Specifies the XML URI to call when a “Xfer” key (prgkey or softkey) is
pressed. The URI overrides native behavior of the “Xfer” key.
Format
HTTP server path or fully qualified Domain Name
Default Value
Not Applicable
Range
Not Applicable
Example
xfer script: http://172.16.96.63/xfer.php
Note: The Xfer key is redirected only in the “connected” and “dialing” states.
Parameter
conf script
Configuration Files aastra.cfg, <mac>.cfg
Description
Specifies the XML URI to call when a “Conference” key is pressed.
The URI overrides native behavior of the “Conference” key.
Format
HTTP server path or fully qualified Domain Name
Default Value
Not Applicable
Range
Not Applicable
Example
conf script: http://172.16.96.63/conf.php
Note: The Conference key is redirected only in the “connected” state.
Parameter
icom script
Configuration Files aastra.cfg, <mac>.cfg
DEVELOPMENT GUIDE 58015045-00 | 216
Description
Specifies the XML URI to call when a “Icom” key (prgkey or softkey)
is pressed. The URI overrides native behavior of the “Icom” key.
Format
HTTP server path or fully qualified Domain Name
Default Value
Not Applicable
Range
Not Applicable
Example
icom script: http://172.16.96.63/icom.php
Parameter
voicemail script
Configuration Files aastra.cfg, <mac>.cfg
Description
Specifies the XML URI to call when a “Voicemail” key (prgkey or
softkey) is pressed. The URI overrides native behavior of the
“Voicemail” key.
Format
HTTP server path or fully qualified Domain Name
Default Value
Not Applicable
Range
Not Applicable
Example
voicemail script: http://172.16.96.63/vm.php
Parameter
options script
Configuration Files aastra.cfg, <mac>.cfg
Specifies the XML URI to call when the “Options” key is pressed. The
URI overrides native behavior of the “Options” key.
On a normal key press of the “Options” key the XML application set in
the URI is displayed
Description
On a long key press the normal/local options menu is displayed
Format
HTTP server path or fully qualified Domain Name
Default Value
Not Applicable
Range
Not Applicable
Example
options script: http://172.16.96.63/opt.php
Notes:
If no Options URI script is configured, the local Options Menu on the phone displays as normal.
If you configure password access to the Options Menu, this password is required when
217 | DEVELOPMENT GUIDE 58015045-00
accessing the local Option Menu, but is not required for the Options Key redirection feature.
Pressing the Options Menu for redirection from the server does not interfere with normal
operations of the phone (for example, pressing the options menu when on a call does not affect
the call).
If the phone is locked, you must unlock the phone before accessing the Options Menu redirect
feature. After pressing the Options Key, the phone displays a screen that allows you to unlock
the phone before continuing.
Parameter
auto offhook
Configuration Files aastra.cfg, <mac>.cfg
Description
Specifies whether or not the phone is prevented from entering the offhook/dialing state, if the handset is off-hook for more than 2 seconds,
and the call ends.
Format
Boolean
Default Value
0 (disabled)
0 (disabled)
Range
1 (enabled)
Example
7.7.2
auto offhook: 1
ACTION URI PARAMETERS
These URIs will be configurable via the configuration files using the following parameters.
action uri startup: <URI to GET on startup>
action uri registered: <URI to GET on successful registration>
action uri registration event: <URI to GET on any registration event>
action uri incoming: <URI to GET on an incoming call>
action uri outgoing: <URI to GET on outgoing call>
action uri offhook: <URI to GET on an off-hook event>
action uri onhook: <URI to get on an on-hook event>
action uri poll: <URI to get when configured timer expires>
action uri poll interval: <polling interval in seconds for action uri poll>
action uri xml sip notify: <URI to get when a aastra-xml SIP notify without content is received by the
phone>
sip xml notify event: <Enables or disables the phone to accept an aastra-xml SIP Notify event>
action uri connected: <URI to get on a connect event>
action uri disconnected: <URI to get on a disconnect event>
DEVELOPMENT GUIDE 58015045-00 | 218
Parameter
Mitel Web UI:
action uri startup
Configuration Files
Description
URI to be called at then end of the boot sequence.
Format
HTTP(s) server path or fully qualified Domain Name
Default Value
Not applicable
Range
Not applicable
Example
action uri startup: http://myserver.com/myappli.xml
Parameter
Mitel Web UI:
action uri registered
Configuration Files
Description
URI to be called the first time the phone successfully registers.
Format
HTTP(s) server path or fully qualified Domain Name
Default Value
Not applicable
Range
Not applicable
Example
action uri registered: http://myserver.com/myappli.xml
Parameter
Mitel Web UI:
action uri registration event
Configuration Files
Description
URI to be called for every registration event.
Format
HTTP(s) server path or fully qualified Domain Name
Default Value
Not applicable
Range
Not applicable
Example
action uri registration event: http://myserver.com/myappli.xml
219 | DEVELOPMENT GUIDE 58015045-00
Advanced Settings->Action URI
aastra.cfg, <mac>.cfg
Advanced Settings->Action URI
aastra.cfg, <mac>.cfg
Advanced Settings->Action URI
aastra.cfg, <mac>.cfg
Parameter
Mitel Web UI:
action uri incoming
Configuration Files
Description
URI to be called every time the phone receives an incoming call.
Format
HTTP(s) server path or fully qualified Domain Name
Default Value
Not applicable
Range
Not applicable
Example
action uri incoming: http://myserver.com/myappli.xml
Parameter
Mitel Web UI:
action uri outgoing
Configuration Files
Description
URI to be called every time the phone makes a valid outgoing call.
Format
HTTP(s) server path or fully qualified Domain Name
Default Value
Not applicable
Range
Not applicable
Example
action uri outgoing: http://myserver.com/myappli.xml
Parameter
Mitel Web UI:
action uri offhook
Configuration Files
Description
URI to be called every time the phone goes offhook.
Format
HTTP(s) server path or fully qualified Domain Name
Default Value
Not applicable
Range
Not applicable
Example
action uri offhook: http://myserver.com/myappli.xml
Advanced Settings->Action URI
aastra.cfg, <mac>.cfg
Advanced Settings->Action URI
aastra.cfg, <mac>.cfg
Advanced Settings->Action URI
aastra.cfg, <mac>.cfg
DEVELOPMENT GUIDE 58015045-00 | 220
Parameter
Mitel Web UI:
action uri onhook
Configuration Files
Description
URI to be called every time the phone goes back on hook after an
active call.
Format
HTTP(s) server path or fully qualified Domain Name
Default Value
Not applicable
Range
Not applicable
Example
action uri onhook: http://myserver.com/myappli.xml
Parameter
Mitel Web UI:
action uri poll
Configuration Files
Description
URI to be called every "action uri pool interval" seconds.
Format
HTTP(s) server path or fully qualified Domain Name
Default Value
Not applicable
Range
Not applicable
Example
action uri poll: http://myserver.com/myappli.xml
Parameter
Mitel Web UI:
action uri poll interval
Configuration Files
Description
Specifies the interval, in seconds, between calls from the phone to
the "action uri poll".
Format
Integer
Default Value
0 (disabled)
Range
Not applicable
Example
action uri poll interval:60
221 | DEVELOPMENT GUIDE 58015045-00
Advanced Settings->Action URI
aastra.cfg, <mac>.cfg
Advanced Settings->Action URI
aastra.cfg, <mac>.cfg
Advanced Settings->Action URI
aastra.cfg, <mac>.cfg
Parameter
Mitel Web UI:
action uri xml sip notify
Configuration Files
Description
URI to be called when an empty XML SIP NOTIFY is received ny the
phone (sip xml notify event must be enabled).
Format
HTTP(s) server path or fully qualified Domain Name
Default Value
Not applicable
Range
Not applicable
Example
action uri xml sip notify: http://myserver.com/myappli.xml
Parameter
Mitel Web UI:
Advanced Settings->Global SIP->
Advanced SIP Settings
sip xml notify event
Advanced Settings->Action URI
Configuration Files
aastra.cfg, <mac>.cfg
aastra.cfg, <mac>.cfg
Description
Enables or disables the phone to accept an aastra-xml SIP
NOTIFYmessage.
Format
Boolean
Default Value
0
Range
0 - disabled
1 enabled
Example
sip xml notify event:1
Parameter
Mitel Web UI:
action uri connected
Configuration Files
Description
URI to be called every time the phone goes to the connected state.
Format
HTTP(s) server path or fully qualified Domain Name
Default Value
Not applicable
Range
Not applicable
Example
action uri connected: http://myserver.com/co.php
Advanced Settings->Action URI
aastra.cfg, <mac>.cfg
DEVELOPMENT GUIDE 58015045-00 | 222
Parameter
Mitel Web UI:
action uri disconnected
Configuration Files
Description
URI to be called every time the phone goes back to the idle state.
Format
HTTP(s) server path or fully qualified Domain Name
Default Value
Not applicable
Range
Not applicable
Example
action uri disconnected: http://myserver.com/di.php
7.7.3
Advanced Settings->Action URI
aastra.cfg, <mac>.cfg
PROGRAMMABLE AND SOFT KEYS
You can configure keys calling an XML application using the following parameters.
softkeyX/prgkeyX/topsoftkeyX/expmodT keyX type: xml
softkeyX/prgkeyX/topsoftkeyX/expmodT keyX value: http://someapp.xml
As described in chapter 5.2, system variables can be used in the URI to be called by pressing a key.
7.7.4
EXAMPLES
Example (6863i/6865i)
# XML configuration
xml application URI: http://172.16.96.63/aastra/internet.php
xml application post list: 10.10.50.53, xmlserver.aastra.com
xml beep notification: 1
xml status scroll delay: 5
# Key 1
prgkey1 type: xml
prgkey1 value: http://172.16.96.63/aastra/internet.php
# Key 2
prgkey2 type: xml
prgkey2 value: http://myserver.com/login.php?user=$$SIPUSERNAME$$
Example (6867i/6869i/6873i/6920/6930/6940)
# XML configuration
xml beep notification: 1
xml status scroll delay: 5
# Softkey 1
softkey1 type: xml
softkey1 label: My XML
softkey1 value: http://172.16.96.63/aastra/internet.php
# Softkey 2
softkey2 type: xml
softkey2 label: Login
softkey2 value: http://myserver.com/login.php?user=$$SIPUSERNAME$$
223 | DEVELOPMENT GUIDE 58015045-00
8
8.1
TROUBLESHOOTING XML APPLICATIONS
INTRODUCTION
The following figure shows the HTTP call flows when the phone is performing an XML operation.
Figure 92: HTTP flow for XML applications
When the phone performs an HTTP GET there are many potential sources of error such as:
Server is not reachable
Answer
Network is down
Cannot display
Server is down
Cannot display
HTTP server application is down
Cannot display
URI can not be resolved (DNS issue)
Cannot display
Server is reachable
Answer
Wrong file name on the server
File not found
Parsing error of the XML answer
Cannot display
Timeout reached before getting an answer
Connect Timeout
URI can not be parsed (wrong format)
Invalid URI
Most of the time, an error will translate into a “Cannot display” which is not very helpful to find the origin of the
problem as well as very frustrating for the XML developer.
The most common error is a XML parsing error and often the most difficult one to fix.
Note: Using the php classes provided in the toolkit is a good way to limit the number of parsing errors as
the object are built following the XSD scheme.
DEVELOPMENT GUIDE 58015045-00 | 224
When the server performs a PUSH to the phone, the common errors are:
Nothing happens, most of the time the problem comes from a wrong configuration of the XML push list.
“Cannot display”, if the XML object pushed to the phone creates a parsing error (object not properly formatted).
8.2
TROUBLESHOOTING TOOLS
The following tools will help you troubleshoot problems with the XML services.
Standard web browser (Microsoft Internet Explorer 6.0 or a later version)
Verify the connectivity
Verify the validity of the URI called by the phone
Verify if the XML answer has a correct syntax
Network packet analyzer such as Wireshark
Verify what is exchanged between the phone and the server
HTTP Server log
Verify if the HTTP GET reached the server
Verify the parameters of the HTTP GET
XML validator tools
Verify the XML syntax and the compliance with the XSD model
Phone log (syslog)
Verify how the phone processes a XML request
This last tool is the most powerful as it allows you to read phone internal traces and understand why something went
wrong. It is the best way to debug a parsing error.
The phone can be configured to send internal traces to a Syslog server (such as Kiwi Syslog Deamon) either from
the WebUI or from the configuration files.
8.3
CONFIGURING THE SYSLOG SERVER USING THE WEBUI
You can configure the Syslog server and activate the traces from the Web UI.
Select Advanced Settings=>Troubleshooting.
Set Log IP (IP address of the Syslog server) and Log port (usually 514)
Set XML to 65535
Click
.
225 | DEVELOPMENT GUIDE 58015045-00
Syslog Server
Debug levels
8.4
CONFIGURING THE SYSLOG SERVER USING THE CONFIGURATION FILES
The traces can also be activated from the configuration files (aastra.cfg and/or <MAC>.cfg), using the following
parameters:
Syslog server
log server ip
IP address of the Syslog server
log server port
Port of the Syslog server
Traces level
log module xml
debug level for xml module
Example
# Syslog Server
log server ip: 192.168.0.106
log server port: 514
# Debug list
log module xml: 65535
8.5
PARSING ERROR DEBUG EXAMPLE
In this example, the phone is making an XML GET and receives the following XML object as an answer. The answer
has an obvious parsing error, the phone displays Cannot display.
DEVELOPMENT GUIDE 58015045-00 | 226
<?xml version="1.0" encoding="ISO-8859-1"?>
<AastraIPPhoneTextMenu>
<Title>Graphic Apps Demo</Title>
<MenuItem>
<Prompt>Clock Digital GMT+1</Prompt>
<URI>http://192.168.0.112/xml/lucaGD/demo.php?type=dclock</URI>
</MenuItem>
<MenuItem>
<Prompt>Clock Analog GMT+1</Prompt>
<URI>http://192.168.0.112/xml/lucaGD/demo.php?type=aclock</URI>
</MenuItem>
<MenuItem>
<Prompt>Different Fonts</Prompt>
<URI>http://192.168.0.112/xml/lucaGD/demo.php?type=font</URI>
</MenuItem>
<AastraIPPhoneTextMenu>
The error is on the last line, it should be </AastraIPPhoneTextMenu>.
The following Syslog traces tell us where the problem is.
CreateApp:
(UI)
INFO:
XML=|<?xml
version="1.0"
encoding="ISO-88591"?><010><AastraIPPhoneTextMenu><010><Title>Graphic
Apps
Demo</Title><010><MenuItem><010><Prompt>Clock
Digital
GMT+1</Prompt><010><URI>http://192.168.0.112/xml/lucaGD/demo.php?type=dclock</U
RI><010></MenuItem><010><MenuItem><010><Prompt>Clock
Analog
GMT+1</Prompt><010><URI>http://192.168.0.112/xml/lucaGD/demo.php?type=aclock</U
RI><010></MenuItem><010><MenuItem><010><Prompt>Different
Fonts</Prompt><010><URI>http://192.168.0.112/xml/lucaGD/demo.php?type=font</URI
><010></MenuItem><010><AastraIPPhoneTextMenu><010>|<010>mac:00-08-5D-1A-3C-54
ParserData: (XML) FUNC: ParserData ctor<010>mac:00-08-5D-1A-3C-54
TextMenuData: (XML) FUNC: TextMenuData ctor<010>mac:00-08-5D-1A-3C-54
startTagHandler: (XML) ERROR: Invalid tag: <AastraIPPhoneTextMenu> in the Root
state<010>mac:00-08-5D-1A-3C-54
TextMenuData: (XML) FUNC: TextMenuData dtor<010>mac:00-08-5D-1A-3C-54
ParserData: (XML) FUNC: ParserData dtor<010>mac:00-08-5D-1A-3C-54
CreateApp: (UI) ERROR: !!!!!!!!!!!!!!!!!!!! XML parsing error: no element
found, Line 16, Column 23 !!!!!!!!!!!!!!!!!!!!<010>mac:00-08-5D-1A-3C-54
ParserData: (XML) FUNC: ParserData ctor<010>mac:00-08-5D-1A-3C-54
227 | DEVELOPMENT GUIDE 58015045-00
9
WHY XML APPLICATIONS FOR AN IP PHONE?
XML applications can be split in 3 categories:
Telephony applications, integration with the call processing, Voice Mail server, Conference server, Call
Center application…
Media and information
Vertical applications
9.1
TELEPHONY APPLICATIONS
This chapter details potential XML telephony applications which could be developed to enhance integration of an IP
phone with the other telecom applications.
9.1.1
DIRECTORY
The first obvious applications that can be developed are the directory application, it includes:
PBX directory
Corporate directory (Global list from a Microsoft Exchange server)
Personal contacts (My contacts in Outlook)
Any LDAP directory (public or private)
9.1.2
CALL PROCESSING
XML applications can also be used to develop interactions between the call processing and the phone:
DND
Call Forward
Parked calls
Call pickup
PBX configuration
9.1.3
Voice mail messages management (play, skip, delete, …)
Display message envelopes
Presence management
9.1.4
CONFERENCE BRIDGE
Conference booking
Conference reminder
Audio console
9.1.5
9.2
VOICE-MAIL
CONTACT CENTER
Agent Login/Logout
Access to call center reports
Account codes
Wrap codes
MEDIA AND INFORMATION
These are the applications getting information from the Web.
DEVELOPMENT GUIDE 58015045-00 | 228
Weather Alerts
Stock Alerts
Stock Prices
Worldwide Time/Temperature
Server Alarms and Notifications
Server Status
Account Balances
Current Gas Prices
Local Movie Times
Upcoming Concerts-By Category
Order Flowers-by Category
Send Order to Starbucks
Send SMS Messages
Track FedEx Package (or Airborne, UPS, etc.)
Calling Card Minutes Remaining
Reserve Meeting Rooms
Contact center Metrics (Calls Waiting, Longest Hold, Performance against Service Level, etc.)
Pro Sports Scores, Vegas Betting Lines
Multitude of Banking apps: Balances, Transfers, etc.
Language Translation
Daily Horoscope
Broadcast Joke Of The Day/Inspirational Quote of the Day
9.3
VERTICAL APPLICATIONS
This chapter details potential vertical applications that can be developed as an XML application for the Mitel IP
phones. The list is far from being exhaustive.
9.3.1
HUMAN RESOURCES
Available Vacation Days
Available Personal Days
401K balance
Clock-In/Clock-Out
9.3.2
TRAVEL/HOTEL
Current Balance
In-Room Dining Ordering
Delivery Dining Options
Extend Stay
Schedule Airport Shuttle
Request Housekeeping/Engineering
Leave Feedback
229 | DEVELOPMENT GUIDE 58015045-00
Wake-Up Call
Book Corporate Travel
Do Not Disturb
9.3.3
HEALTH CARE
Test Results
Manage Appointment
Appointment Reminders
Take-Your-Medicine Reminders
Order Hospital Meals
Check Pharmacy Inventory
Schedule Blood Donation
9.3.4
EDUCATION
Attendance
Request Substitute Teacher (used by primary teacher)
Review Open Requests for Substitute Teacher (used by potential subs)
Schedule Classes
Request Dorm Room Change
School Closing Notification/Status
Parent Contact Info
9.3.5
LAW ENFORCEMENT
Amber Alerts
Traffic Ticket Plead By Phone
Fugitive Alerts
DEVELOPMENT GUIDE 58015045-00 | 230
10 PHONE SELF-CONFIGURATION USING XML
10.1
INTRODUCTION
The deployment of a SIP phone is not a simple task; you have to face 2 challenges:
Provide the address of the configuration server to the phone
Link the MAC address of the phone with a SIP extension
The first challenge is usually solved by using DHCP option 66 (bootp) to provision the phone with the IP
address/name of the configuration server (TFTP, FTP, HTTP or HTTPS).
The second challenge is more difficult as you have to know the MAC address of the phone in advance in order to
prepare the specific configuration file the phone will use. Usually, each phone is identified (scan of the MAC
address) and then linked to an extension.
It is possible to have a complete self-configuration of the phone using an XML application called by the action uri
startup at the end of the boot sequence.
10.2
MESSAGE FLOW
It is possible for a third-party to develop an automatic configuration process. The following is a description of how
this can be done using existing phone features.
The aastra.cfg file sets the startup action uri configuration parameter to point to the configuration script and
configuration download information.
Phone downloads the aastra.cfg file, ignores missing <MAC>.cfg file and continues boot process.
Phone executes startup uri, running the configuration script. The MAC address of the phone and the phone model
are in the HTTP headers of the request.
The script uses XML to gather required configuration information and creates <mac>.cfg file. The <mac>.cfg file
must reset the startup action uri to avoid the configuration script being called on subsequent boots.
The script reboots the phone via XML reboot command or via SIP check-sync message.
Phone reboots, directly downloads both aastra.cfg and newly created <MAC>.cfg file
231 | DEVELOPMENT GUIDE 58015045-00
Phone
Server
Gets IP address
Gets
Configuration
Server parameters
Request for aastra.cfg
aastra.cfg (configured with a startup URI)
Request for <MAC>.cfg
No <MAC>.cfg
Startup URI
XML questions and answers
Script
creates
<MAC>.cfg
XML “Reset”
Phone reboots
Figure 93: Auto-configuration message flow
10.3
AUTO-CONFIGURATION POLICY
The auto-configuration policy which includes the flow of questions asked to the user and the script to generate the
<MAC>.cfg file is totally open with this mechanism.
Multiple options are available.
Extension is already provisioned in the IP-PBX database.
One way to implement this feature might be to have all the extensions already provisioned on the switch side and
the XML flow will be used to identify the user (extension number and voicemail password for instance). The script
must then control if the extension is not already assigned and create the <MAC>.cfg based on the extension(s)
configuration.
Another way would be to display the list of available extensions and let the user select his extension; of course
password protection is needed to avoid any hacking of the platform.
Extension is not provisioned in the IP-PBX database
A second option is to have the script to provision the extension in the database. To do so, the script can ask for user
general parameters (name…) and automatically creates an extension in the switch database and then creates the
<MAC>.cfg, the extension number can be either automatically assigned or the user can select it in a list of available
extensions.
DEVELOPMENT GUIDE 58015045-00 | 232
10.4
ARCHITECTURE
The following diagram represents the architecture of what needs to be developed to implement the Mitel selfconfiguration mechanism.
IP-PBX configuration
startup.cf
g
Database
<MAC>.cf
<MAC>.cf
g <MAC>.cf
g
g
Configuration
(TFTP)
XML Scripts
Server
HTTP Server
Figure 94: Self-configuration implementation architecture
The development effort to implement the self-configuration is straight forward but the complexity depends on the
policy to attribute extensions on the phone system.
233 | DEVELOPMENT GUIDE 58015045-00
11 SAMPLE XML APPLICATIONS
Here is the list of XML applications provided by Mitel, these XML applications are available either through an
Internet server hosted by Mitel or as source code (part of the Mitel XML API SDK) to be executed from a local PC
running XAMPP for example.
Area code (US)
Local Weather (US)
Biorhythms
Movies
CNN News
Netflix
Currency Converter
Stock
ESPN News
Today…
Fox News
World Clock
Horoscope
Yahtzee
IP Geolocation
All the above
11.1
ACCESS FROM THE INTERNET
Mitel has made available, for demonstration purpose only, a list of XML applications on the Internet.
Notes:
Mitel does not guarantee the availability of these applications. The applications can change at any time
without notice.
These applications should not be used commercially; any abusive use of these applications will be
detected and the phone will be automatically banned from the applications.
your Mitel SIP phone must have Internet access to use these applications.
The XML applications can be configured individually on a phone key or as a global menu.
11.2
LOCAL SERVER USING XAMPP
XAMPP is a free, cross-platform, easy-to-use web server capable of serving dynamic pages. XAMPP consists
mainly of the Apache HTTP Server, MySQL database and interpreters for scripts written in the PHP and Perl
programming languages. The program is released under the GNU General Public License.
Notes: your server must have Internet access to use these applications.
XAMPP is an acronym for:
X (any of the four operating systems Windows, Linux, Sun Solaris and Mac OS X)
Apache
MySQL
PHP
Perl
The XAMPP 1.6.6 Basic Package includes the following main components:
Apache HTTPD 2.2.8 + OpenSSL 0.9.8g
MySQL 5.0.51
PHP 5.2.5 + PHP 4.4.8 rc2 dev + PEAR
SQLite 2.8.15
DEVELOPMENT GUIDE 58015045-00 | 234
phpMyAdmin 2.11.4
Mercury Mail Transport System v4.52
FileZilla FTP Server 0.9.25
Note: the XML scripts provided by Mitel use only Apache and PHP.
11.2.1
XAMPP INSTALLATION
The nice thing with XAMPP is that it does not need to be installed. Simply extracting the archive to the root folder of
your disk is enough. No registry keys are written, no files are copied to the Windows directory. You can even put
XAMPP on a memory stick and run it from there. This makes it very portable and easy to use.
XAMPP can be downloaded from http://www.apachefriends.org/en/xampp.html, where you can select which
Operating System you want to use XAMPP.
Please refer to the XAMPP web site for detailed information on how to install the software.
Notes:
Make sure you extract XAMPP to the root directory of your disk or memory stick (e.g. C:\),
otherwise you may run into troubles later
If you have an existing PHP installation on your computer, please uninstall it or remove the
Windows environment variable PHPRC (open the Windows Control Panel, go to System,
Advanced, Environment Variables and remove the PHPRC variable). Otherwise XAMPP might
use the wrong PHP settings.
Once XAMPP is installed, just run
installation of XAMPP on your computer.
which is located in the xampp directory. This configures the
To uninstall, just remove the xampp directory.
11.2.2
XML SCRIPTS INSTALLATION
Just create a directory named “xml” under “xampp/htdocs” directory and unzip the xml-xampp.zip file provided in the
Mitel XML API SDK in this directory.
Also create a “cache” directory under the xampp directory. This directory will be used to cache data on the server.
11.2.3
XAMPP START AND STOP
In the xampp directory run
next to the Apache module.
235 | DEVELOPMENT GUIDE 58015045-00
. To start the Apache HTTP server, just click on the “Start” button
Apache is now running.
Note: In case you have a firewall running (native for Windows XP or Vista), you will be prompted to
authorize Apache HTTP Server.
To stop Apache, simply click on the Stop-button. To close the XAMPP Control Panel, click on the Exit button.
DEVELOPMENT GUIDE 58015045-00 | 236
11.2.4
TEST YOUR INSTALLATION
To test the HTTP server, direct your Web browser to http://localhost/xampp/. You should see the following page:
To test the XML scripts, direct your Web browser to http://localhost/xml/area/area.php. You should see the following
page:
11.2.5
TROUBLESHOOTING APACHE
Most common problem is that another program is already using TCP server port 80 (HTTP) and port 443 (HTTPS).
Run the program
in the xampp directory.
Check which program is using server port 80 and/or 443. Shutdown that program.
11.3
APPLICATIONS
This chapter describes all the sample applications available either from the Internet or from XAMPP running on a
server (represented below as myserver.com).
11.3.1
AREA CODE LOOKUP (US)
Description
This application allows the user to lookup for the State/Cities of any given US area code.
Phone compatibility
Mitel 6863i/6865i
Configuration (Internet)
uri=http://65.36.55.137/xml/area/area.php
237 | DEVELOPMENT GUIDE 58015045-00
Mitel 6867i/6869i/6873i/6920/6930/6940
Configuration (XAMPP)
uri=http://myserver.com/xml/area/area.php
Screenshots
11.3.2
BIORHYTHMS
Description
Check your Biorhythms.
Phone compatibility
Mitel 6863i/6865i
Mitel 6867i/6869i/6873i/6920/6930/6940
Configuration (Internet)
uri=http://65.36.55.137/xml/games/biorhythms.php
Configuration (XAMPP)
uri=http://myserver.com/xml/games/biorhythms.php
Screenshots (6867i/6969i/6873i)
Comments
Users birth date is stored on the server.
Only phones with graphical display (6867i, 6869i, 6873i, 6920, 6930 and 6940) will display the charts
PHP-GD extension is needed for this XML script.
DEVELOPMENT GUIDE 58015045-00 | 238
11.3.3
CNN NEWS
Description
RSS feed from CNN.com including the following topics:
Top Stories
Entertainment
World
Travel
U.S.
Education
Politics
Video
Law
Offbeat
Technology
Most Popular
Science and Space
Most Recent
Health
Phone compatibility
Mitel 6863i/6865i
Mitel 6867i/6869i/6873i/6920/6930/6940
Configuration (Internet)
uri=http://65.36.55.137/xml/rss/rss.php?feed=cnn
Configuration (XAMPP)
uri=http://myserver.com/xml/rss/rss.php?feed=cnn
Screenshots
11.3.4
CURRENCY CONVERTER
Description
This application uses www.yahoo.com to convert any currency in to another currency. It also allows the
user to setup a list of favorite conversions.
Phone compatibility
Mitel 6863i/6865i
Configuration (Internet)
239 | DEVELOPMENT GUIDE 58015045-00
Mitel 6867i/6869i/6873i/6920/6930/6940
uri=http://65.36.55.137/xml/stock/currency.php
Configuration (XAMPP)
uri=http://myserver.com/xml/stock/currency.php
Screenshots
Comments
Users last request and favorites are stored on the server.
11.3.5
ESPN NEWS
Description
RSS feed from ESPN.com bringing news for the most popular sports in North America.
Top Headlines
Motorsports
NFL
Soccer
NBA
College Basketball
MLB
College Football
NHL
Phone compatibility
Mitel 6863i/6865i
Mitel 6867i/6869i/6873i/6920/6930/6940
Configuration (Internet)
uri=http://65.36.55.137/xml/rss/rss.php?feed=espn
Configuration (XAMPP)
uri=http://myserver.com/xml/rss/rss.php?feed=espn
Screenshots
DEVELOPMENT GUIDE 58015045-00 | 240
11.3.6
FOX NEWS
Description
RSS feed from foxnews.com including the following topics:
Latest Headlines
Business
National
SciTech
World
Health
Politics
Entertainment
Phone compatibility
Mitel 6863i/6865i
Configuration (Internet)
uri=http://65.36.55.137/xml/rss/rss.php?feed=fox
Configuration (XAMPP)
uri=http://myserver.com/xml/rss/rss.php?feed=fox
Screenshots
11.3.7
HOROSCOPE
Description
RSS feed from dailyhoroscopes.com.
Phone compatibility
241 | DEVELOPMENT GUIDE 58015045-00
Mitel 6867i/6869i/6873i/6920/6930/6940
Mitel 6863i/6865i
Mitel 6867i/6869i/6873i/6920/6930/6940
Configuration (Internet)
uri=http://65.36.55.137/xml/rss/rss.php?feed=horoscope
Configuration (XAMPP)
uri=http://myserver.com/xml/rss/rss.php?feed=horoscope
Screenshots
11.3.8
IP GEOLOCATION
Description
Identify the location (Country, City…) of any given public IP address. This application uses an API
provided by http://www.geoplugin.net.
Phone compatibility
Mitel 6863i/6865i
Mitel 6867i/6869i/6873i/6920/6930/6940
Configuration (Internet)
uri=http://65.36.55.137/xml/area/ip.php
Configuration (XAMPP)
uri=http://myserver.com/xml/area/ip.php
11.3.9
MOVIES
Description
RSS feed from yahoo.com including the following topics:
Top 10 Box Office
Opening This Week
Coming Soon
Phone compatibility
DEVELOPMENT GUIDE 58015045-00 | 242
Mitel 6863i/6865i
Mitel 6867i/6869i/6873i/6920/6930/6940
Configuration (Internet)
uri=http://65.36.55.137/xml/rss/rss.php?feed=movies
Configuration (XAMPP)
uri=http://myserver.com/xml/rss/rss.php?feed=movies
11.3.10 NETFLIX
Description
RSS feed from netflix.com including the following topics:
Top 100
Horror Top 25
New Releases*
Sci-Fi Top 25
Action/adventure Top 25
Television Top 25
Comedy Top 25
Thrillers Top 25
Drama Top 25
Phone compatibility
Mitel 6863i/6865i
Mitel 6867i/6869i/6873i/6920/6930/6940
Configuration (Internet)
uri=http://65.36.55.137/xml/rss/rss.php?feed=netflix
Configuration (XAMPP)
uri=http://myserver.com/xml/rss/rss.php?feed=netflix
Comments
*Not available if you are using XAMPP under Microsoft Windows due to memory limitation for PHP.
11.3.11 STOCK QUOTES
Description
This application uses www.yahoo.com to get the value of any given stock. Please refer to yahoo.com for
the syntax of the stock ticker.
Phone compatibility
Mitel 6863i/6865i
Configuration (Internet)
uri=http://65.36.55.137/xml/stock/stock.php
243 | DEVELOPMENT GUIDE 58015045-00
Mitel 6867i/6869i/6873i/6920/6930/6940
Configuration (XAMPP)
uri=http://myserver.com/xml/stock/stock.php
Screenshots
Comments
Users last request and favorites are stored on the server.
Only large screen phones have access to the favorites.
11.3.12 TODAY…
Description
RSS feed from answers.com including the following topics:
Word of the Day
Birthdays today
This day in History
Quote of the Day
Phone compatibility
Mitel 6863i/6865i
Mitel 6867i/6869i/6873i/6920/6930/6940
Configuration (Internet)
uri=http://65.205.17.13/xml/rss/rss.php?feed=day
Configuration (XAMPP)
uri=http://myserver.com/xml/rss/rss.php?feed=day
11.3.13 LOCAL WEATHER
Description
RSS feed from rssweather.com providing weather forecast for any given US ZIP code
Phone compatibility
Mitel 6863i/6865i
Mitel 6867i/6869i/6873i/6920/6930/6940
DEVELOPMENT GUIDE 58015045-00 | 244
Configuration (Internet)
uri=http://65.36.55.137/xml/weather/weather.php
Configuration (XAMPP)
uri=http://myserver.com/xml/weather/weather.php
Screenshots
Comments
Users last request is stored on the server
11.3.14 YAHTZEE
Description
A Yahtzee game…
Phone compatibility
Mitel 6863i/6865i
Mitel 6867i/6869i/6873i/6920/6930/6940
Configuration (Internet)
uri=http://65.36.55.137/xml/games/yahtzee.php
Configuration (XAMPP)
uri=http://myserver.com/xml/games/yahtzee.php
11.3.15 GLOBAL MENU
Description
This application is an XML application agragator. It can be configured as an XML key or as the XML
custom menu behind the “Services” key (not supported on 9143i and 6753i).
Phone compatibility
Mitel 6863i/6865i
Configuration (Internet)
245 | DEVELOPMENT GUIDE 58015045-00
Mitel 6867i/6869i/6873i/6920/6930/6940
uri=http://65.36.55.137/xml/menu/mymenu.php
Configuration (XAMPP)
uri=http://myserver.com/xml/menu/mymenu.php
Screenshots
Comments
Only Mitel phones with softkeys are able to customize the list of applications.
DEVELOPMENT GUIDE 58015045-00 | 246
12 APPENDIX A: XSL MODEL
The xsl model is provided as an xsd file in this SDK.
247 | DEVELOPMENT GUIDE 58015045-00
13 APPENDIX B: OBJECT ORIENTED PHP CLASSES
Mitel also provides an object oriented API to develop XML applications which is included in the XML SDK.
Note: The PHP objects are taking care of the XML escape encoding when they are needed.
13.1
AASTRAIPPHONECALLLOG()
This class allows you to create a XML PhoneCallLog object.
Include
AastraIPPhoneCallLog.class.php
Methods
setTopTitle(title,color,icon_index) to set the Top Title of the XML screen
o
title
string
o
color
string, "red", "blue", ... (optional)
o
icon_index
integer, icon number
setCancelAction(uri) to set the cancel parameter with the URI to be called on Cancel (optional)
o
uri
string
setDestroyOnExit() to set DestroyonExit parameter to 'yes', 'no' by default (optional)
setBeep() to enable a notification beep with the object (optional)
setLockIn(uri) to set the Lock-in tag to 'yes' and the GoodbyeLockInURI (optional)
o
uri
string, GoodByeLockInURI
setAllowAnswer() to set the allowAnswer tag to 'yes' (optional only for non softkey phones)
setAllowDrop() to set the allowDrop tag to 'yes' (optional only for non softkey phones)
setAllowXfer() to set the allowXfer tag to 'yes' (optional only for non softkey phones)
setAllowConf() to set the allowConf tag to 'yes' (optional only for non softkey phones)
setTimeout(timeout) to define a specific timeout for the XML object (optional)
o
timeout
integer (seconds)
setRefresh(timeout,URL) to add Refresh parameters to the object (optional)
o
timeout
integer (seconds)
o
URL
string
setEncodingUTF8() to change encoding from default ISO-8859-1 to UTF-8 (optional)
addIcon(index,icon) to add custom icons to the object (optional)
o
index
integer, icon index
o
icon
string, icon name or definition
generate() to return the generated XML for the object
output(flush) to display the object
o
flush
boolean optional, output buffer to be flushed out or not.
addEntry(name,number,date,time,selection,duration,type,terminal,count,line)
DEVELOPMENT GUIDE 58015045-00 | 248
o
name
string (optional)
o
number
string
o
date
string MM-DD-YYYY
o
time
string HH:MM (military time)
o
selection string (optional)
o
duration integer call duration in seconds (optional)
o
type
o
terminal string terminal type (office/mobile/home) (optional)
o
count
integer number of calls (optional)
o
line
integer line used (1-9) (optional)
string call type (incoming/outgoung/missed) (optional)
setScrollConstrain() to avoid the list to wrap
setScrollUp(uri) to set the URI to be called when the user presses the Up arrow (optional)
o
uri
string
uri
string
setDialUri(uri) to configure the uri called by the "Dial" button (optional)
o
string
setDeleteAllUri(uri) to configure the uri called by the "Delete ALL" button (optional)
o
uri
setDeleteUri(uri) to configure the uri called by the "Delete" button (optional)
o
string
setScrollDown(uri) to set the URI to be called when the user presses the Down arrow (optional)
o
uri
uri
string
setAddUri(uri) to configure the uri called by the "Add to directory" button(optional)
o
uri
string
Example
require_once('AastraIPPhoneCallLog.class.php');
$object = new AastraIPPhoneCallLog();
$object->setTopTitle('Callers List','','1');
$object->setDestroyOnExit();
$object->setCancelAction($XML_SERVER);
$object->addEntry('John
Doe','972-555-2345','01-012012','15:28','1','60','incoming','mobile','','1');
$object->addEntry('Jane
Doe','408-555-1234','01-052011','10:01','2','','missed','home','2','1');
$object->setAddUri('http://myserver/myscript.php?action=add');
$object->addIcon('1', 'Icon:Book');
$object->output();
In this example, the label and the type of the softkey 1 are changed.
249 | DEVELOPMENT GUIDE 58015045-00
Output
Wed Apr 14
9:30am
Callers List
Wed Jan 5
Ja ne D oe
Jane Doe
408-555-1234
10:01am
Wed Jan 5 10:01am
Sun Jan 1
2 Call(s)
John Doe
Line 1
03:28pm
Dial
Ad d t o
Direct ory
13.2
Delet e
AASTRAIPPHONECONFIGURATION()
This class allows you to create a XML PhoneConfiguration object.
Include
AastraIPPhoneConfiguration.class.php
Methods
setEncodingUTF8() to change encoding from default ISO-8859-1 to UTF-8 (optional)
generate() to return the generated XML for the object
output(flush) to display the object
o
boolean optional, output buffer to be flushed out or not.
setType(type) to set the type of configuration object (optional)
o
flush
type
string, configuration change type
addEntry(parameter,value,type) to add a configuration change
o
parameter
string, parameter name
o
value
string, parameter value
o
type
string, conmfiguration change type (optional)
setTriggerDestroyOnExit() to set the triggerDestroyOnExit tag to "yes" (optional)
DEVELOPMENT GUIDE 58015045-00 | 250
Example
require_once('AastraIPPhoneConfiguration.class.php');
$configuration = new AastraIPPhoneConfiguration();
$configuration->addEntry('softkey1 label','Test');
$configuration->addEntry('softkey1 type','xml');
$configuration->setTriggerDestroyOnExit();
$configuration->setBeep();
$configuration->output();
In this example, the label and the type of the softkey 1 are changed.
13.3
AASTRAIPPHONEEXECUTE()
This class allows you to create a XML PhoneExecute object.
Include
AastraIPPhoneExecute.class.php
Methods
setBeep() to enable a notification beep with the object (optional)
setEncodingUTF8() to change encoding from default ISO-8859-1 to UTF-8 (optional)
generate() to return the generated XML for the object
output(flush) to display the object
o
flush
boolean optional, output buffer to be flushed out or not.
setTriggerDestroyOnExit() to set the triggerDestroyOnExit tag to "yes" (optional)
o
addEntry(url,interruptCall,title) to add an action to be executed.
o
url
string
o
interruptCall
string, optional, "yes" or "no”
o
title
string, optional, 6867i/6869i and 6973i only, title to be displayed
Example
require_once('AastraIPPhoneExecute.class.php');
$execute = new AastraIPPhoneExecute();
$execute->addEntry('http://myserver.com/script.php?choice=2');
$execute->addEntry('Command: Reset');
$execute->output();
13.4
AASTRAIPPHONEFORMATTEDTEXTSCREEN()
This class allows you to create a XML FormattedTextScreen object.
Include
AastraIPPhoneFormattedTextScreen.class.php
Methods
setTopTitle(title,color,icon_index) to set the Top Title of the XML screen
o
title
string
o
color
string, "red", "blue", ... (optional)
o
icon_index
integer, icon number
setCancelAction(uri) to set the cancel parameter with the URI to be called on Cancel (optional)
251 | DEVELOPMENT GUIDE 58015045-00
o
uri
string
setDestroyOnExit() to set DestroyonExit parameter to 'yes', 'no' by default (optional)
setLockIn(uri) to set the Lock-in tag to 'yes' and the GoodbyeLockInURI (optional)
o
uri
string, GoodByeLockInURI
setCallProtection(notif) to protect the XML object against incoming calls
o
notif
enable/disable the display of an incoming call notification (optional)
setAllowAnswer() to set the allowAnswer tag to 'yes' (optional)
setAllowDrop() to set the allowDrop tag to 'yes' (optional)
setAllowXfer() to set the allowXfer tag to 'yes' (optional)
setAllowConf() to set the allowConf tag to 'yes' (optional)
setTimeout(timeout) to define a specific timeout for the XML object (optional)
o
integer (seconds)
setBackgroundColor(color) to change the XML object background color (optional)
o
timeout
color
string, "red", "blue", ...
addSoftkey(index,label,uri) to add custom soktkeys to the object (optional)
o
index
integer, softkey number
o
label
string
o
uri
string
setRefresh(timeout,URL) to add Refresh parameters to the object (optional)
o
timeout
integer (seconds)
o
URL
string
setEncodingUTF8() to change encoding from default ISO-8859-1 to UTF-8 (optional)
generate() to return the generated XML for the object
output(flush) to display the object
o
flush
boolean optional, output buffer to be flushed out or not.
addLine(text,size,align,color,wrap, blink) to add a formatted line
o
text
string
o
size
string, optional, "double"
o
align
string, optional, "left", "right" or "center"
o
color
string, optional
o
wrap
string, optional, “yes”, “no” (default)
o
blink
string, optional, "slow", "fast" or "no" (default)
setScrollStart() to define the beginning of the scrolling section
setScrollEnd() to define the end of the scrolling section
setAllowDTMF() to allow DTMF passthrough on the object
setDial(number,line) to set the number to be dialed as well as the line to use when going off-hook or with
the custom softkey Softkey::Dial2
o
number
string
o
line
integer (optional)
DEVELOPMENT GUIDE 58015045-00 | 252
Example
require_once('AastraIPPhoneFormattedTextScreen.class.php');
$ftext = new AastraIPPhoneFormattedTextScreen();
$ftext->setDestroyOnExit();
$ftext->addLine('Formatted Screen','double','center',red);
$ftext->setScrollStart();
$ftext->addLine('Scrolled text1');
$ftext->addLine('Scrolled text2');
$ftext->addLine('Scrolled text3');
$ftext->addLine('Scrolled text4');
$ftext->addLine('Scrolled text5');
$ftext->setScrollEnd();
$ftext->addLine('Footer',NULL,'center',blue);
$ftext->addSoftkey('10', 'Exit', 'SoftKey:Exit');
$ftext->output();
Output
Fr i Nov 6
9:30am
XML
Form at t ed Screen
Scr olled
Scr olled
Scr olled
Scr olled
Scr olled
Line
Line
Line
Line
Line
1
2
3
4
5
Ex it
Foot er
13.5
AASTRAIPPHONEICONMENU()
This class allows you to create a XML IconMenu object.
Include
AastraIPPhoneIconMenu.class.php
Methods
setDestroyOnExit() to set DestroyonExit parameter to 'yes', 'no' by default (optional)
setBeep() to enable a notification beep with the object (optional)
setLockIn(uri) to set the Lock-in tag to 'yes' and the GoodbyeLockInURI (optional)
o
string, GoodByeLockInURI
setCallProtection(notif) to protect the XML object against incoming calls
o
uri
notif
enable/disable the display of an incoming call notification (optional)
setTimeout(timeout) to define a specific timeout for the XML object (optional)
253 | DEVELOPMENT GUIDE 58015045-00
o
integer (seconds)
setBackgroundColor(color) to change the XML object background color (optional)
o
timeout
color
string, "red", "blue", ...
addSoftkey(index,label,uri) to add custom soktkeys to the object (optional)
o
index
integer, softkey number
o
label
string
o
uri
string
setRefresh(timeout,URL) to add Refresh parameters to the object (optional)
o
timeout
integer (seconds)
o
URL
string
setEncodingUTF8() to change encoding from default ISO-8859-1 to UTF-8 (optional)
generate() to return the generated XML for the object
output(flush) to display the object
o
mode
'regular' or 'extended'
index
index (1-24)
setFontMono(fontMono) to decide the use of the monotype font
o
1 or 2
setDefaultIndex(index) to set the default selection in the list (optional)
o
layout
setMode(mode) to set the screen mode
o
boolean optional, output buffer to be flushed out or not.
setLayout(layout) to set the desired layout
o
flush
fontMono
boolean ("yes"/"no")
addEntry(url,selection,icon,fontMono,dial,line) to add an element in the list to be displayed
o
url
o
selection string (optional)
o
icon
o
fontMono boolean (optional)
o
dial
string, phone number to dial (optional)
o
line
integer, SIP line to use (optional)
string
integer (optional)
addLine(text,align,color) to add a line in the current item
o
text
string
o
align
string, optional, "left", "right" or "center"
o
color
string, optional, "red", "black", ...
Example
require_once('AastraIPPhoneIconMenu.class.php');
$menu = new AastraIPPhoneIconMenu();
$menu->setDestroyOnExit();
$menu->setTopTitle('IconMenu');
$menu->setDeFaultIndex('3');
$menu->setLayout('1');
$menu->setMode('regular');
DEVELOPMENT GUIDE 58015045-00 | 254
$menu->setFontMono('yes');
$menu->addEntry(
'http://myserver.com/script.php?choice=1',
'Value=1',
'Icon:Alarm',
'yes'
);
$menu->addLine('Line 11','left','red');
$menu->addLine('Line 12','right','green');
$menu->addLine('Line 13','center','blue');
$menu->addEntry(
'http://myserver.com/script.php?choice=2',
'Value=2',
'Icon:AlarmFilled',
'no'
);
$menu->addLine('Line 21','left','red');
$menu->addLine('Line 22','right','green');
$menu->addLine('Line 23','center','blue');
$menu->addSoftkey('1', 'My Select', 'http://myserver.com/script.php?action=1');
$menu->addSoftkey('6', 'Exit', 'SoftKey:Exit');
$menu->output();
Output
13.6
AASTRAIPPHONEIMAGEMENU()
This class allows you to create a XML ImageMenu object.
Include
AastraIPPhoneImageMenu.class.php
Methods
setTopTitle(title,color,icon_index) to set the Top Title of the XML screen
o
title
string
o
color
string, "red", "blue", ... (optional)
o
icon_index
integer, icon number
setCancelAction(uri) to set the cancel parameter with the URI to be called on Cancel (optional)
o
uri
string
255 | DEVELOPMENT GUIDE 58015045-00
setDestroyOnExit() to set DestroyonExit parameter to 'yes', 'no' by default (optional)
setBeep() to enable a notification beep with the object (optional)
setLockIn(uri) to set the Lock-in tag to 'yes' and the GoodbyeLockInURI (optional)
o
uri
string, GoodByeLockInURI
setCallProtection(notif) to protect the XML object against incoming calls
o
notif
enable/disable the display of an incoming call notification (optional)
setAllowAnswer() to set the allowAnswer tag to 'yes' (optional)
setAllowDrop() to set the allowDrop tag to 'yes' (optional)
setAllowXfer() to set the allowXfer tag to 'yes' (optional)
setAllowConf() to set the allowConf tag to 'yes' (optional)
setTimeout(timeout) to define a specific timeout for the XML object (optional)
o
integer (seconds)
setBackgroundColor(color) to change the XML object background color (optional)
o
timeout
color
string, "red", "blue", ...
addSoftkey(index,label,uri,icon_index) to add custom soktkeys to the object (optional)
o
index
integer, softkey number
o
label
string
o
uri
string
o
icon_index
integer, icon number
setRefresh(timeout,URL) to add Refresh parameters to the object (optional)
o
timeout
integer (seconds)
o
URL
string
setEncodingUTF8() to change encoding from default ISO-8859-1 to UTF-8 (optional)
addIcon(index,icon) to add custom icons to the object (optional)
o
index
integer, icon index
o
icon
string, icon name or definition
generate() to return the generated XML for the object
output(flush) to display the object
o
image
string
setGDImage(GDImage) to use a GDImage for display, the size is forced to 40x144
o
boolean optional, output buffer to be flushed out or not.
setImage(image)to define the image to be displayed
o
flush
GDImage
GDImage
setAlignment(vertical,horizontal) to define image alignment
o
vertical
string, "top", "middle", "bottom"
o
horizontal
string, "left", "middle", "right"
setSize(height,width) to define image size
o
height
integer (pixels)
o
width
integer (pixels)
DEVELOPMENT GUIDE 58015045-00 | 256
setURIBase(uriBase) to define the base URI for the selections
o
o
key
string (1-9, * and #)
o
uri
string
setMode(mode) to define the image mode to be displayed (normal, extended, fullscreen) (optional)
mode
string enum normal, extended, fullscreen
setDoneAction(uri) to set the URI to be called when the user selects the default "Done" key (optional)
o
string
addURI(key,uri) to add a selection key with its URI
o
uriBase
uri
string
setImageAction(uri) to set the imageAction parameter with the URI to be called when user presses on the
displayed image (optional)
o
uri
string
257 | DEVELOPMENT GUIDE 58015045-00
Example
require_once('AastraIPPhoneImageMenu.class.php');
$imagem = new AastraIPPhoneImageMenu();
$imagem->setDestroyOnExit();
$imagem->setSize(40,144);
$imagem>setImage('fffffffc02fffffffee4ffffbfffc05fffe7ff7a7ffffffffeffeebd7fffffea6bcf
ffffe796f3feff6fa289f0a86f4866fa20df42414595dd0134f8037ed1637f0e2522b2dd003b6eb
936f05fffbd4f4107bba6eb0080e93715000010b754001281271408c640252081b1b22500013c5c
66201368004e04467520dc11067152b82094d418e10024720580549478010500260153002013140
0020a05c91088b002b08c21c0000c200000001fe800000000000000001c00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000020041000004008300000ff08500000000c90000000071000
0000000000001401400000140140000014014000001401400000140140000000000000007c0ff00
000c30880000081088000008108800000c30700000062000000000003f000001e02000000330200
000021000000003301e000001e0330000000021000003f033000002001e0000020000000000001e
000c03fc33003c013021007c02101201f00330ff03f001e000039000003e039001e00103f003300
101f8021003007c03303f003c01e000000c00001e001c03f033007802002100f002002103e00000
1203c401702003cc0290ff039c02902101fc02b000007c03f01a003c020039018c0ff02d03c4021
02703c400001203ec01e000026402b0000264029000026c029000027c01a0000338000000033800
000003100000000300000000030003f00003fc03000003fc02000003fc020000030001f00003000
00000030001e000030002b000030002900003fc02900003fc01a00003f00000000310030000031c
01e000031f003000033f81e00003f383000001e081e000008c003000003c01e00000fc03000001f
000000003d001a0000390039000039002d00003f002700000f8012000007c000000001c00000000
04000000000000000000000000000');
$imagem->addURI('1','http://myserver.com?choice=1');
$imagem->addURI('2','http://myserver.com?Choice=2');
$imagem->addSoftkey('1',
'Label',
'http://myserver.com/script.php?action=1','1');
$imagem->addSoftkey('6', 'Exit', 'SoftKey:Exit');
$imagem->addIcon('1', 'Icon:Envelope');
$imagem->addIcon('2', 'FFFF0000FFFF0000');
$imagem->output();
Output
13.7
AASTRAIPPHONEIMAGESCREEN()
This class allows you to create a XML ImageScreen object.
Include
AastraIPPhoneImageScreen.class.php
DEVELOPMENT GUIDE 58015045-00 | 258
Methods
setTopTitle(title,color,icon_index) to set the Top Title of the XML screen
o
title
string
o
color
string, "red", "blue", ... (optional)
o
icon_index
integer, icon number
setCancelAction(uri) to set the cancel parameter with the URI to be called on Cancel (optional)
o
uri
string
setDestroyOnExit() to set DestroyonExit parameter to 'yes', 'no' by default (optional)
setBeep() to enable a notification beep with the object (optional)
setLockIn(uri) to set the Lock-in tag to 'yes' and the GoodbyeLockInURI (optional)
o
uri
string, GoodByeLockInURI
setCallProtection(notif) to protect the XML object against incoming calls
o
notif
enable/disable the display of an incoming call notification (optional)
setAllowAnswer() to set the allowAnswer tag to 'yes' (optional)
setAllowDrop() to set the allowDrop tag to 'yes' (optional)
setAllowXfer() to set the allowXfer tag to 'yes' (optional)
setAllowConf() to set the allowConf tag to 'yes' (optional)
setTimeout(timeout) to define a specific timeout for the XML object (optional)
o
integer (seconds)
setBackgroundColor(color) to change the XML object background color (optional)
o
timeout
color
string, "red", "blue", ...
addSoftkey(index,label,uri,icon_index) to add custom soktkeys to the object (optional)
o
index
integer, softkey number
o
label
string
o
uri
string
o
icon_index
integer, icon number
setRefresh(timeout,URL) to add Refresh parameters to the object (optional)
o
timeout
integer (seconds)
o
URL
string
setEncodingUTF8() to change encoding from default ISO-8859-1 to UTF-8 (optional)
addIcon(index,icon) to add custom icons to the object (optional)
o
index
integer, icon index
o
icon
string, icon name or definition
generate() to return the generated XML for the object
output(flush) to display the object
o
boolean optional, output buffer to be flushed out or not.
setImage(image) to define the image to be displayed
o
flush
image
string
setGDImage(GDImage) to use a GDImage for display, the size is forced to 40x144
259 | DEVELOPMENT GUIDE 58015045-00
o
GDImage
GDImage
setAlignment(vertical,horizontal) to define image alignment
o
vertical
string, "top", "middle", "bottom"
o
horizontal
string, "left", "middle", "right"
setSize(height,width) to define image size
o
height
integer (pixels)
o
width
integer (pixels)
setAllowDTMF() to allow DTMF passthrough on the object
setScrollUp(uri) to set the URI to be called when the user presses the Up arrow (optional)
o
string
uri
string
mode
string enum normal, extended, fullscreen
setDoneAction(uri) to set the URI to be called when the user selects the default "Done" key (optional)
o
uri
setMode(mode) to define the image mode to be displayed (normal, extended, fullscreen) (optional)
o
string
setScrollRight(uri) to set the URI to be called when the user presses the Right arrow (optional)
o
uri
setScrollLeft(uri) to set the URI to be called when the user presses the Left arrow (optional)
o
string
setScrollDown(uri) to set the URI to be called when the user presses the Down arrow (optional)
o
uri
uri
string
setImageAction(uri) to set the imageAction parameter with the URI to be called when user presses on the
displayed image (optional)
o
uri
string
Example
require_once('AastraIPPhoneImageScreen.class.php');
$images = new AastraIPPhoneImageScreen();
$images->setDestroyOnExit();
$images->setSize(40,40);
$images>setImage('fffffffc02fffffffee4ffffbfffc05fffe7ff7a7ffffffffeffeebd7fffffea6bcf
ffffe796f3feff6fa289f0a86f4866fa20df42414595dd0134f8037ed1637f0e2522b2dd003b6eb
936f05fffbd4f4107bba6eb0080e93715000010b754001281271408c640252081b1b22500013c5c
66201368004e04467520dc11067152b82094d418e10024720580549478010500260153002093140
0020ac5c91088b0f2b08c21c07d0c2006009fdfe81f80efe0107fe0fb1c3ffff8ffc3fffef8f7fe
bffbfcf87ffbff64');
$images->addSoftkey('1',
'Mail',
'http://myserver.com/script.php?action=1','1');
$images->addSoftkey('6', 'Exit', 'SoftKey:Exit');
$images->addIcon('1', 'Icon:Envelope');
$images->output();
DEVELOPMENT GUIDE 58015045-00 | 260
Output
AASTRAIPPHONEINPUTSCREEN() SINGLE INPUT FIELD
13.8
This class allows you to create a XML InputScreen object.
Include
AastraIPPhoneInputScreen.class.php
Methods
setTitle(title) to setup the title of an object (optional)
o
title
string
setTopTitle(title,color,icon_index) to set the Top Title of the XML screen
o
title
string
o
color
string, "red", "blue", ... (optional)
o
icon_index
integer, icon number
setCancelAction(uri) to set the cancel parameter with the URI to be called on Cancel (optional)
o
uri
string
setDestroyOnExit() to set DestroyonExit parameter to 'yes', 'no' by default (optional)
setLockIn(uri) to set the Lock-in tag to 'yes' and the GoodbyeLockInURI (optional)
o
uri
string, GoodByeLockInURI
setCallProtection(notif) to protect the XML object against incoming calls
o
notif
enable/disable the display of an incoming call notification (optional)
setAllowAnswer() to set the allowAnswer tag to 'yes' (optional)
setAllowDrop() to set the allowDrop tag to 'yes' (optional)
setAllowXfer() to set the allowXfer tag to 'yes' (optional)
setAllowConf() to set the allowConf tag to 'yes' (optional)
setTimeout(timeout) to define a specific timeout for the XML object (optional)
o
timeout
integer (seconds)
setBackgroundColor(color) to change the XML object background color (optional)
o
color
string, "red", "blue", ...
261 | DEVELOPMENT GUIDE 58015045-00
addSoftkey(index,label,uri) to add custom soktkeys to the object (optional)
o
index
integer, softkey number
o
label
string
o
uri
string
setRefresh(timeout,URL) to add Refresh parameters to the object (optional)
o
timeout
integer (seconds)
o
URL
string
setEncodingUTF8() to change encoding from default ISO-8859-1 to UTF-8 (optional)
generate() to return the generated XML for the object
output(flush) to display the object
o
type
enum ('IP', 'string', stringN, 'number', 'dateUS'...)
default
string
setParameter(param) to set the parameter name to be parsed after the input
o
string
setDefault(default) to set default value for the input (optional)
o
url
setType(type) to set type of input, 'string' by default
o
boolean optional, output buffer to be flushed out or not.
setURL(url) to set the URL to called after the input
o
flush
param
string
setInputLanguage(language) to set the language of the input (optional)
o
language
enum ("English", "French"....)
setPassword() to set the Password parameter to 'yes', 'no' by default (optional)
setNotEditable() to set the editable parameter to 'no', 'yes' by default (optional)
setEditable() is now replaced by setNotEditable but kept for compatibility reasons (optional)
setPrompt(prompt) to set the prompt to be displayed for the input.
o
prompt
string
Example
require_once('AastraIPPhoneInputScreen.class.php');
$input = new AastraIPPhoneInputScreen();
$input->setTitle('Title');
$input->setPrompt('Enter your password');
$input->setParameter('param');
$input->setType('string');
$input->setURL('http://myserver.com/script.php');
$input->setPassword();
$input->setDestroyOnExit();
$input->setDefault('Default');
$input->output();
DEVELOPMENT GUIDE 58015045-00 | 262
Output
Fr i Nov 6
9:30am
XML
Title
Ent er your passw ord
*******
q
w
e
r
t
y
u
i
o
p
a
s
d
f
g
h
j
k
l
CAPS
z
x
c
v
b
n
m
Bksp
Hide
Enter
123
Cancel
Space
.
AASTRAIPPHONEINPUTSCREEN() MULTIPLE INPUT FIELDS
13.9
This class allows you to create a XML InputScreen object with multiple input fields.
Include
AastraIPPhoneInputScreen.class.php
Methods
setTitle(title) to setup the title of an object (optional)
o
title
string
setTopTitle(title,color,icon_index) to set the Top Title of the XML screen
o
title
string
o
color
string, "red", "blue", ... (optional)
o
icon_index
integer, icon number
setCancelAction(uri) to set the cancel parameter with the URI to be called on Cancel (optional)
o
uri
string
setDestroyOnExit() to set DestroyonExit parameter to 'yes', 'no' by default (optional)
setLockIn(uri) to set the Lock-in tag to 'yes' and the GoodbyeLockInURI (optional)
o
uri
string, GoodByeLockInURI
setCallProtection(notif) to protect the XML object against incoming calls
o
notif
enable/disable the display of an incoming call notification (optional)
setAllowAnswer() to set the allowAnswer tag to 'yes' (optional)
setAllowDrop() to set the allowDrop tag to 'yes' (optional)
setAllowXfer() to set the allowXfer tag to 'yes' (optional)
setAllowConf() to set the allowConf tag to 'yes' (optional)
263 | DEVELOPMENT GUIDE 58015045-00
setTimeout(timeout) to define a specific timeout for the XML object (optional)
o
integer (seconds)
setBackgroundColor(color) to change the XML object background color (optional)
o
timeout
color
string, "red", "blue", ...
addSoftkey(index,label,uri) to add custom soktkeys to the object (optional)
o
index
integer, softkey number
o
label
string
o
uri
string
setRefresh(timeout,URL) to add Refresh parameters to the object (optional)
o
timeout
integer (seconds)
o
URL
string
setEncodingUTF8() to change encoding from default ISO-8859-1 to UTF-8 (optional)
generate() to return the generated XML for the object
output(flush) to display the object
o
string
type
enum ('IP', 'string', 'number', 'dateUS'...)
setDefault(default) to set default default value for the input (optional)
o
url
setType(type) to set the default type of input 'string' by default
o
boolean optional, output buffer to be flushed out or not.
setURL(url) to set the URL to called after the input
o
flush
default
string
setParameter(param) to set the default parameter name to be parsed after the input
o
param
string
setPassword() to set the default Password parameter to 'yes', 'no' by default (optional)
setNotEditable() to set the default editable parameter to 'no', 'yes' by default (optional)
setEditable() is now replaced by setNotEditable but kept for compatibility reasons (optional)
setPrompt(prompt) to set the default prompt to be displayed for the input.
o
display
enum ("normal, "condensed"), default is "normal".
language
enum ("English", "French"....)
addField(type) to add an input field and setting its type
o
integer, optional, default is 1
setInputLanguage(language) to set the language of the input (optional)
o
index
setDisplayMode(display) to define the aspect of the display, normal/condensed (optional)
o
string
setDefaultIndex(index) to define the field index the object will use to start (optional)
o
prompt
type
(IP, string, stringN, number, dateUS, timeUS,dateInt, timeInt or empty) if the
type is an empty string then the type is inherited from the main object.
setFieldPassword(password) to set the password mode for the input field, overrides the value set by
setPassword for the field
DEVELOPMENT GUIDE 58015045-00 | 264
o
parameter
string
prompt
string
setFieldSelection(selection) to set the Selection tag for the field
o
enum ("yes", "no")
setFieldPrompt(prompt)to set the prompt to be displayed for the input field, overrides the value set by
setPrompt for the field
o
editable
setFieldParameter(parameter) to set the parameter name to be parsed after the global input, overrides the
value set by setParameter for the field
o
enum ("yes", "no")
setFieldEditable(editable) to set the input field editable mode ('yes', no'), overrides the value set by
setEditable or setNotEditable for the field
o
password
selection string
setFieldDefault(default) to set default value for the input field, overrides the value set by setDefault for the
field
o
default
string
Example
require_once('AastraIPPhoneInputScreen.class.php');
$input = new AastraIPPhoneInputScreen();
$input->setTitle('Restricted application');
$input->setDisplayMode('condensed');
$input->setURL($XML_SERVER);
$input->setDestroyOnExit();
$input->addField(empty);
$input->addField(string);
$input->setFieldSelection('1');
$input->setFieldPrompt('Username:');
$input->setFieldParameter('user');
$input->setFieldSelection('1');
$input->addField(number);
$input->setFieldPassword('yes');
$input->setFieldPrompt('Password:');
$input->setFieldParameter('password');
$input->setFieldSelection('2');
$input->addSoftkey('10', 'Exit', 'SoftKey:Exit');
$input->output();
265 | DEVELOPMENT GUIDE 58015045-00
Output
Fr i Nov 6
9:30am
XML
Restricted application
Usernam e: adm in
Passw ord:
*****
Ex it
Subm it
13.10 AASTRAIPPHONESOFTKEY()
This class allows you to create a XML PhoneSoftkey object.
Include
AastraIPPhoneSoftkey.class.php
Methods
setEncodingUTF8() to change encoding from default ISO-8859-1 to UTF-8 (optional)
generate() to return the generated XML for the object
output(flush) to display the object
o
flush
boolean optional, output buffer to be flushed out or not.
addEntry(parameter,value) to add a configuration change for a dynamic attribute
o
parameter
string, parameter name
o
value
string, parameter value
setTriggerDestroyOnExit() to set the triggerDestroyOnExit tag to "yes" (optional)
Example
require_once('AastraIPPhoneSoftkey.class.php');
$configuration = new AastraIPPhoneSoftkey();
$configuration->addEntry('topsoftkey1 icon left','Icon:Home');
$configuration->addEntry('topsoftkey1 label','Demo Text');
$configuration->output();
In this example, the left icon and the label of the topsoftkey 1 are updated.
13.11 AASTRAIPPHONESTATUS()
This class allows you to create a XML PhoneStatus object.
DEVELOPMENT GUIDE 58015045-00 | 266
Include
AastraIPPhoneStatus.class.php
Methods
setEncodingUTF8() to change encoding from default ISO-8859-1 to UTF-8 (optional)
generate() to return the generated XML for the object
output(flush) to display the object
o
flush
boolean optional, output buffer to be flushed out or not.
setSession(session) to setup the session ID
o
session
string
setTriggerDestroyOnExit() to set the triggerDestroyOnExit tag to "yes" (optional)
addEntry(index,message,type,timeout,uri,icon) to add a message to be displayed on the idle screen.
o
index
integer
o
message
string
o
type
enum ("alert") optional
o
timeout
integer (seconds) optional
o
uri
string (unused)
o
icon
integer (graphical phones only, optional)
Example
require_once('AastraIPPhoneStatus.class.php');
$status = new AastraIPPhoneStatus();
$status->setSession('Session');
$status->addEntry('1','Message 1');
$status->addEntry('2','Alert Message',alert,5);
$status->output();
Output
Alert Message
Message 1
13.12 AASTRAIPPHONETEXTMENU()
This class allows you to create a XML TextMenu object.
Include
AastraIPPhoneTextMenu.class.php
267 | DEVELOPMENT GUIDE 58015045-00
Displayed for 5s
Methods
setTitle(title) to setup the title of an object (optional)
o
title
string
setCancelAction(uri) to set the cancel parameter with the URI to be called on Cancel (optional)
o
uri
string
setDestroyOnExit() to set DestroyonExit parameter to 'yes', 'no' by default (optional)
setBeep() to enable a notification beep with the object (optional)
setLockIn(uri) to set the Lock-in tag to 'yes' and the GoodbyeLockInURI (optional)
o
uri
string, GoodByeLockInURI
setAllowAnswer() to set the allowAnswer tag to 'yes' (optional)
setAllowDrop() to set the allowDrop tag to 'yes' (optional)
setAllowXfer() to set the allowXfer tag to 'yes' (optional)
setAllowConf() to set the allowConf tag to 'yes' (optional)
setTimeout(timeout) to define a specific timeout for the XML object (optional)
o
integer (seconds)
setBackgroundColor(color) to change the XML object background color (optional)
o
timeout
color
string, "red", "blue", ...
addSoftkey(index,label,uri) to add custom soktkeys to the object (optional)
o
index
integer, softkey number
o
label
string
o
uri
string
setRefresh(timeout,URL) to add Refresh parameters to the object (optional)
o
timeout
integer (seconds)
o
URL
string
setEncodingUTF8() to change encoding from default ISO-8859-1 to UTF-8 (optional)
generate() to return the generated XML for the object
output(flush) to display the object
o
boolean optional, output buffer to be flushed out or not.
setDefaultIndex(index) to set the default selection in the list (optional)
o
flush
index
index (1-30)
setBase(base) to configure the menuItem base URI
o
base
string
resetBase() to reset the menuItem base URI
setScrollConstrain() to avoid the list to wrap
setNumberLaunch() to allow keypad selection
setTouchLaunch() to allow quick item selection
addEntry(name,url,selection,icon,dial,line,color,split,iconr1,iconr2,iconr3,iconr4) to add an element in the
list to be displayed
o
name
string or array(0=>Line1,1=>Line2,2=>Offset,3=>Char,4=>Mode)
DEVELOPMENT GUIDE 58015045-00 | 268
o
url
string
o
selection
string
o
icon
integer
o
dial
string, phone number to dial
o
line
integer, SIP line to use (optional)
o
color
string, "red", "black", ... (optional)
o
split
integer, position of the split between line 1 and line 2 (optional)
o
iconr1
integer (optional)
o
iconr2
integer (optional)
o
iconr3
integer (optional)
o
iconr4
integer (optional)
setScrollUp(uri) to set the URI to be called when the user presses the Up arrow (optional)
o
string
setScrollDown(uri) to set the URI to be called when the user presses the Down arrow (optional)
o
uri
uri
string
natsortbyname() to order the list, must not be used in conjunction with setBase or resetBase
Example
require_once('AastraIPPhoneTextMenu.class.php');
$menu = new AastraIPPhoneTextMenu();
$menu->setTitle('Title');
$menu->setDestroyOnExit();
$menu->setDeFaultIndex('3');
$menu->addEntry('Choice
2',
'http://myserver.com/script.php?choice=2',
'Value=2');
$menu->addEntry('Choice
1',
'http://myserver.com/script.php?choice=1',
'Value=1');
$menu->addEntry('Choice
3',
'http://myserver.com/script.php?choice=3',
'Value=3');
$menu->natsortByName();
$menu->addSoftkey('1', 'My Select', 'http://myserver.com/script.php?action=1');
$menu->addSoftkey('10', 'Exit', 'SoftKey:Exit');
$menu->output();
269 | DEVELOPMENT GUIDE 58015045-00
Output
Fr i Nov 6
9:30am
XML
My Select
Title
Choice 1
Choice 2
Choice 3
Ex it
13.13 AASTRAIPPHONETEXTSCREEN()
This class allows you to create a XML TextScreen object.
Include
AastraIPPhoneTextScreen.class.php
Methods
setTitle(title) to setup the title of an object (optional)
o
title
string
setTopTitle(title,color,icon_index) to set the Top Title of the XML screen
o
title
string
o
color
string, "red", "blue", ... (optional)
o
icon_index
integer, icon number
setCancelAction(uri) to set the cancel parameter with the URI to be called on Cancel (optional)
o
uri
string
setDestroyOnExit() to set DestroyonExit parameter to 'yes', 'no' by default (optional)
setBeep() to enable a notification beep with the object (optional)
setLockIn(uri) to set the Lock-in tag to 'yes' and the GoodbyeLockInURI (optional)
o
uri
string, GoodByeLockInURI
setAllowAnswer() to set the allowAnswer tag to 'yes' (optional)
setAllowDrop() to set the allowDrop tag to 'yes' (optional)
setAllowXfer() to set the allowXfer tag to 'yes' (optional)
setAllowConf() to set the allowConf tag to 'yes' (optional)
setTimeout(timeout) to define a specific timeout for the XML object (optional)
DEVELOPMENT GUIDE 58015045-00 | 270
o
integer (seconds)
setBackgroundColor(color) to change the XML object background color (optional)
o
timeout
color
string, "red", "blue", ...
addSoftkey(index,label,uri) to add custom soktkeys to the object (optional)
o
index
integer, softkey number
o
label
string
o
uri
string
setRefresh(timeout,URL) to add Refresh parameters to the object (optional)
o
timeout
integer (seconds)
o
URL
string
setEncodingUTF8() to change encoding from default ISO-8859-1 to UTF-8 (optional)
addIcon(index,icon) to add custom icons to the object (optional)
generate() to return the generated XML for the object
output(flush) to display the object
o
flush
boolean optional, output buffer to be flushed out or not.
setText(text) to set the text to be displayed.
o
text
string
setAllowDTMF() to allow DTMF passthrough on the object
setDial(number,line) to set the number to be dialed as well as the line to use when going off-hook or with
the custom softkey Softkey::Dial2
o
number string
o
line
integer (optional)
Example
require_once('AastraIPPhoneTextScreen.class.php');
$text = new AastraIPPhoneTextScreen();
$text->setTitle('Title');
$text->setText('Text to be displayed and this text can be really long…');
$text->setDestroyOnExit();
$text->addSoftkey('1', 'Mail', 'http://myserver.com/script.php?action=1');
$text->addSoftkey('10', 'Exit', 'SoftKey:Exit');
$text->output();
271 | DEVELOPMENT GUIDE 58015045-00
Output
Fr i Nov 6
9:30am
XML
Mail
Title
Text t o be displayed and t his t ext can be really
long…
Ex it
13.14 AASTRAIPPHONESCROLLABLETEXTMENU()
This class allows you to create TextMenu supporting more than 30 items, all the next/previous page management is
handled by the object.
Include
AastraIPPhoneScrollableTextMenu.class.php
Methods
setEntries(entries) Set entries of the list by 2 dim array.
o
entries Inner array field names: 'name', 'url', 'selection', 'icon', 'dial'
verifyCookie(cookie) Verifies if the cookie of the HTTP requests matches the cookie of the saved context.
setBackURI(URI) Set the cancel parameter with the URI to be called on Cancel or Back Softkey (optional)
setBackKeyPosition(position) Set position of Back Softkey. Default is 3.
setNextKeyPosition(position) Set position of Next Softkey. Default is 4.
setPreviousKeyPosition(position) Set position of Previous Softkey. Default is 5.
setExitKeyPosition(position) Set position of Back Softkey. Default is 6.
setSelectKeyPosition(position) Set position of Back Softkey. Default is 1.
setNextKeyIcon(icon) Set icon of Next Softkey. Default is Icon:TailArrowDown. Set NULL to disable icon.
setPreviousKeyIcon(icon) Set icon of Previous Softkey. Default is Icon:TailArrowUp. Set NULL to disable
icon.
disableExitKey() Disable the Exit Softkey
setSelectKeyLabel(label) Set the label of the Select Softkey. Default is 'Select'. Make sure the string is in
language.ini.
setCancelAction(uri) to set the cancel parameter with the URI to be called on Cancel or Back Softkey
(optional)
output() to display the object
DEVELOPMENT GUIDE 58015045-00 | 272
addEntry(name,url,selection,icon,dial) to add an element in the list to be displayed
natsortbyname() to order the list
setTitle(Title) to setup the title of an object (optional)
setTitleWrap() to set the title to be wrapped on 2 lines (optional)
setTopTitle(title,color,icon_index) to set the Top Title of the XML screen
o
title
string
o
color
string, "red", "blue", ... (optional)
o
icon_index
integer, icon number
setDestroyOnExit() to set DestroyOnExit parameter to "yes" (optional)
setBeep() to enable a notification beep with the object (optional)
setLockIn(uri) to set the Lock-in tag to 'yes' and the GoodbyeLockInURI (optional)
o
uri
string, GoodByeLockInURI
setAllowAnswer() to set the allowAnswer tag to 'yes' (optional)
setTimeout(timeout) to define a specific timeout for the XML object (optional)
addSoftkey(index,label,uri,icon_index) to add custom softkeys to the object (optional)
setRefresh(timeout,URL) to add Refresh parameters to the object (optional)
generate() to return the object content
setDefaultIndex(index) to set the default selection in the list (optional)
setStyle(style) to set the style of the list numbered/none/radio (optional)
setWrapList() to allow 2 lines items (optional)
Examples
require_once(AastraIPPhoneScrollableTextMenu.class.php)
$menu = new AastraIPPhoneScrollableTextMenu();
$menu->setTitle('My Menu');
$menu->addEntry('Choice 1', $XML_SERVER."?choice=1", '1');
# ... add as many entries you want
$menu->addEntry('Choice 100', $XML_SERVER."?choice=100", '100');
$menu->output();
And
require_once(AastraIPPhoneScrollableTextMenu.class.php)
$entries[0]['name'] = "Choice 1";
$entries[0]['url'] = $XML_SERVER."?choice=1";
$entries[0]['selection'] = "1";
# ... add as many entries you want
$entries[99]['name'] = "Choice 100";
$entries[99]['url'] = $XML_SERVER."?choice=100";
$entries[99]['selection'] = "100";
$menu = new AastraIPPhoneScrollableTextMenu();
$menu->setTitle('My Menu');
$menu->setEntries($entries):
$menu->output();
13.15 AASTRAIPPHONESCROLLABLEDIRECTORY()
This class allows you to create a complete directory application by jusr providing the results of a directory query as
an array.
273 | DEVELOPMENT GUIDE 58015045-00
Include
AastraIPPhoneScrollableDirectory.class.php
Methods
setDialKeyPosition(position)setNameDisplayFormat(format) Set position of Dial Softkey in list view. Default
is 2.
setNameDisplayFormat(format) Set name display format. 0="Firstname Lastname", 1="Lastname,
Firstname"
natsortByLastname() Sort by lastname (same as natsortByName in case firstname is not provided)
natsortByFirstname() Sort by firstname (same as natsortByName in case firstname is not provided)
Overwritten methods from AastraIPPhoneScrollableTextMenu
setEntries(records) Set directory entries by 2 dim array. Inner array fields: See addEntry(record)
addEntry(record) Add directory entry
Array fields: (name is mandatory, rest optional)
name: Lastname or name
firstname: Firstname (optional)
title: Title
department: Department
company: Company
icon: Icon
office: Office number display format
officeDigits: Office number digits / extension to be dialed. Optional
mobile: Cell number display format
mobileDigits: Cell number digits / extension to be dialed. Optional
home: Home number display format
homeDigits: Home number digits / extension to be dialed. Optional
office2: Alternative / 2nd office number display format
office2Digits: 2nd office number digits / extension to be dialed. Optional
speedURL: If this field is present, a "+Speed" Softkey will be shown in zoom mode. Selected number will
be passed in $selection variable.
Example: speedURL=http://xmlserver/xml/speed/speed.php?action=add&name=Peter
Inherited from AastraIPPhoneScrollableTextMenu
setTopTitle(title,color,icon_index) to set the Top Title of the XML screen
o
title
string
o
color
string, "red", "blue", ... (optional)
o
icon_index
integer, icon number
setEntries(entries) Set entries of the list by an 2 dim array. Inner array field names: 'name', 'url', 'selection',
'icon', 'dial'
verifyCookie(cookie) Verifies if the cookie of the HTTP requests matches the cookie of the saved context.
setBackURI(URI) Set the cancel parameter with the URI to be called on Cancel or Back Softkey (optional)
DEVELOPMENT GUIDE 58015045-00 | 274
setBackKeyPosition(position) Set position of Back Softkey. Default is 3.
setNextKeyPosition(position) Set position of Back Softkey. Default is 4.
setPreviousKeyPosition(position) Set position of Back Softkey. Default is 5.
setExitKeyPosition(position) Set position of Back Softkey. Default is 6.
setSelectKeyPosition(position) Set position of Back Softkey. Default is 1.
setNextKeyIcon(icon) Set icon of Next Softkey. Default is Icon:TailArrowDown. Set NULL to disable icon.
setPreviousKeyIcon(icon) Set icon of Previous Softkey. Default is Icon:TailArrowUp. Set NULL to disable
icon.
disableExitKey() Disable the Exit Softkey
setSelectKeyLabel(label) Set the label of the Select Softkey. Default is 'Select'. Make sure the string is in
language.ini.
setCancelAction(uri) to set the cancel parameter with the URI to be called on Cancel or Back Softkey
(optional)
addIcon(index,icon) to add custom icons to the object (optional)
output() to display the object
addEntry(name,url,selection,icon,dial) to add an element in the list to be displayed
natsortbyname() to order the list
Examples
require_once(AastraIPPhoneScrollableDirectory.class.php)
$records[0]['name'] = "Smith";
$records[0]['firstname'] = "Lisa";
$records[0]['office'] = "+1 (0) 555-123-4321";
$records[0]['officeDigits'] = "4321";
$records[0]['mobile'] = "079 555 12 34";
# ... add as many entries you want
$records[99]['name'] = "Miller";
$records[99]['firstname'] = "Bob";
$records[99]['office'] = "+1 (0) 555-123-1234";
$records[99]['officeDigits'] = "1234";
$records[99]['home'] = "044 555 22 33";
$records[99]['company'] = "Mitel";
$directory = new AastraIPPhoneScrollableDirectory();
$directory->setTitle('Directory');
$directory->setBackURI($XML_SERVER."?action=start");
$directory->setEntries($records):
$directory->output();
13.16 EXAMPLES PROVIDED WITH THE PHP API
With the PHP API, Mitel provides some source code on how to use it.
sample.php for the regular XML objects
The whole directory “php_classes” must be installed on a HTTP server anywhere behind the root directory
sample.php
On any type of phone, create a XML softkey/prgkey to call the sample.php script using the following uri:
http://myserver.com/mydirectory/sample.php
It includes examples for
PhoneConfiguration
275 | DEVELOPMENT GUIDE 58015045-00
PhoneExecute
PhoneInputScreen (3)
PhoneTextMenu (2)
PhoneTextScreen
PhoneFormattedTextScreen
PhoneStatus (2)
DEVELOPMENT GUIDE 58015045-00 | 276
14 APPENDIX C: DYNAMIC PARAMETERS
The following table lists the configuration parameters that can be modified by a PhoneConfiguration object without a
reboot of the SIP phone.
Parameter
Comments
ALL action uri
ALL SIP parameters
admin password
alternate tftp server
audio mode
auto offhook
auto resync days
auto resync max delay
auto resync mode
auto resync time
background image
call forward key mode
call transfer disabled
callers list disabled
This parameter is dynamic so a user
cant access it or add to it. However,
you need to reboot the phone to
clear the list.
conf script
conference disabled
date format
directed call pickup
directory 1
directory 2
directory disabled
277 | DEVELOPMENT GUIDE 58015045-00
You need to reboot the phone to
download new directories.
This parameter is dynamic so a user
cant access it or add to it. However,
you need to reboot the phone to
clear the list.
Parameter
Comments
directory script
dnd key mode
download protocol
dst config
dst end day
dst end hour
dst end month
dst end relative date
dst end week
dst minutes
dst start day
dst start hour
dst start month
dst start relative date
dst start week
feature key selection list
ftp password
ftp server
ftp username
handset sidetone gain
handset tx gain
handsfree tx gain
headset sidetone gain
headset tx gain
http path
http server
https validate certificates
DEVELOPMENT GUIDE 58015045-00 | 278
Parameter
Comments
https validate expires
https validate hostname
icom script
inactivity brightness level
language
line1 ring tone
line2 ring tone
line3 ring tone
line4 ring tone
line5 ring tone
line6 ring tone
line7 ring tone
line8 ring tone
line9 ring tone
live dialpad
log module lldp
map conf key to
map redial key to
mwi missed calls
options password enabled
options script
play a ring splash
preferred line
preferred line timeout
prgkeyN line
prgkeyN name
prgkeyN type
279 | DEVELOPMENT GUIDE 58015045-00
Changes to subscriptions (eg BLF or
BLA) require a reboot.
Parameter
Comments
prgkeyN value
redial disabled
This parameter is dynamic so a user
cant access it or add to it. However,
you need to reboot the phone to
clear the list.
redial script
ring tone
ringback timeout
softkeyN label
softkeyN line
softkeyN states
Changes to subscriptions (eg BLF or
BLA) require a reboot.
softkeyN type
softkeyN value
softkey selection list
speeddial edit
suppress dtmf playback
switch ui focus to ringing line
tftp server
time format
time reserved
time server disabled
time server1
time server2
time server3
time zone code
time zone minutes
time zone name
tone set
DEVELOPMENT GUIDE 58015045-00 | 280
Parameter
use alternate tftp server
user password
voicemail script
xfer script
xml application title
xml application URI
xml beep notification
281 | DEVELOPMENT GUIDE 58015045-00
Comments
15 APPENDIX D: LOCALIZED INPUT CHARACTER SET
15.1
ENGLISH
Key
15.2
Upper case
Lower case
1
1.:;=_,-'&()
1.:;=_,-'&()
2
ABC2
abc2
3
DEF3
def3
4
GHI4
ghi4
5
JKL5
jkl5
6
MNO6
mno6
7
PQRS7
pqrs7
8
TUV8
tuv8
9
WXYZ9
wxyz9
0
0+
0+
*
* <SPACE>
* <SPACE>
#
#/\\@
#/\@
FRENCH/FRANÇAIS
Key
15.3
Upper case
Lower case
1
1.:;=_,-'&()
1.:;=_,-'&()
2
ABC2ÀÂÇÁÅÆ
abc2àâçáåæ
3
DEF3ÉÈÊË
def3éèêë
4
GHI4ÎÏ
ghi4îï
5
JKL5
jkl5
6
MNO6ÑÓÒÔÖ
mno6ñóòôö
7
PQRS7
pqrs7
8
TUV8ÚÙÛÜ
tuv8úùûü
9
WXYZ9
wxyz9
0
0+
0+
*
* <SPACE>
* <SPACE>
#
#/\@
#/\@
SPANISH/ESPAÑOL
Key
Upper case
Lower case
1
1.:;=_,-'&()
1.:;=_,-'&()
2
ABC2ÁÀÇ
abc2áàç
3
DEF3ÉÈ
def3éè
4
GHI4ÏÍ
Ghi4ïí
5
JKL5
Jkl5
6
MNO6ÑÓÒ
mno6ñóò
DEVELOPMENT GUIDE 58015045-00 | 282
Key
15.4
Upper case
Lower case
7
PQRS7
pqrs7
8
TUV8ÚÜ
tuv8úü
9
WXYZ9
wxyz9
0
0+
0+
*
* <SPACE>
* <SPACE>
#
#/\@
#/\@
GERMAN/DEUTSCH
Key
15.5
Upper case
Lower case
1
1.:;=_,-'&()
1.:;=_,-'&()
2
ABC2ÄÀ
abc2äà
3
DEF3É
def3é
4
GHI4
ghi4
5
JKL5
jkl5
6
MNO6Ö
mno6ö
7
PQRS7ß
pqrs7ß
8
TUV8Ü
tuv8ü
9
WXYZ9
wxyz9
0
0+
0+
*
* <SPACE>
* <SPACE>
#
#/\@
#/\@
ITALIAN/ITALIANO
Key
Upper case
Lower case
1
1.:;=_,-'&()
1.:;=_,-'&()
2
ABC2ÀCÇ
abc2àcç
3
DEF3ÉÈË
def3éèë
4
GHI4
ghi4
5
JKL5
jkl5
6
MNO6ÓÒ
mno6óò
7
PQRS7
pqrs7
8
TUV8Ù
tuv8ù
9
WXYZ9
wxyz9
0
0+
0+
*
* <SPACE>
* <SPACE>
#
#/\@
#/\@
283 | DEVELOPMENT GUIDE 58015045-00
15.6
PORTUGUESE/PORTUGÊS
Key
Upper case
Lower case
1
1.:;=_,-'&()
1.:;=_,-'&()
2
ABC2ÁÀÂÃÇ
abc2áàâãç
3
DEF3ÉÊ
def3éê
4
GHI4Í
ghi4í
5
JKL5
jkl5
6
MNO6ÓÔÕ
mno6óôõ
7
PQRS7
pqrs7
8
TUV8ÚÜ
tuv8úü
9
WXYZ9
wxyz9
0
0+
0+
*
* <SPACE>
* <SPACE>
#
#/\@
#/\@
DEVELOPMENT GUIDE 58015045-00 | 284
16 APPENDIX E: XML SELF-CONFIGURATION
Mitel provides here a possible implementation for the self-configuration, this is just an example source code not
supported by Mitel.
In this implementation targeted for Trixbox CE using FreePBX, the chosen policy is to have all the extensions preconfigured in the Asterisk database and use
the extension
the voice mail password
for the credentials to authenticate the user and link the MAC address of the phone to an extension.
The script checks the credentials but also uses a log file to trace the extensions that are already used (startup.cfg).
On top of the XML self-configuration we also provide here a “hot desking” capability using the “logout.php”, the user
can logout his extension of his current phone and login somewhere else.
For instance the logout key can be configured as a softkey
softkey1 type: xml
softkey1 label: logout
softkey1
http://192.168.0.110/startup/logout.php?extension=$$SIPUSERNAME$$
softkey1 states: idle
value:
Notes:
TFTP server root directory is located at /tftpboot
Asterisk directory is located at /etc/asterisk
XML script and all the related files are located at the root directory of the HTTP server (typically
/var/www/html) under the directory “startup“.
The “startup” directory must have read/write for the HTTP server user.
aastra.cfg (typically located at /tftpboot)
Note: In this example, the Trixbox CE server is located at 192.168.0.110 and is also the TFTP server.
# Setup DHCP mode
dhcp: 1
# Setup TFTP server address
tftp server: 192.168.0.110
# Time server
time server disabled: 0
time server1: pool.ntp.org
time server2: 192.168.0.110
# Startup URI
action uri startup: http://192.168.0.110/startup/startup.php
gen-aastra script shell to generate the aastra.cfg file
285 | DEVELOPMENT GUIDE 58015045-00
#!/bin/sh
# To put on /usr/local/sbin
echo ""
echo "--------------------------------------------------------------"
echo "Creating a default config file for Mitel phones"
echo "--------------------------------------------------------------"
echo ""
echo "Creating /tftpboot/aastra.cfg..."
echo ""
IFCONFIG=`which ifconfig 2>/dev/null||echo /sbin/ifconfig`
IPADDR=`$IFCONFIG eth0|gawk '/inet addr/{print $2}'|gawk -F: '{print $2}'`
cat > /tftpboot/aastra.cfg <<EOF
# Setup DHCP mode
dhcp: 1
# Setup TFTP server address
tftp server: $IPADDR
# Time server
time server disabled: 0
time server1: pool.ntp.org
time server2: $IPADDR
# Startup URI
action uri startup: http://$IPADDR/xml/startup/startup.php
EOF
chmod 666 /tftpboot/aastra.cfg
echo "Created /tftpboot/aastra.cfg using $IPADDR for the proxy. If the"
echo "IP address of your Asterisk system changes run this script again and
reboot."
echo "Reboot your Mitel phones by disconnecting the power to the phone."
echo ""
Template files for the phones (typically located at /var/www/html/startup)
The following file is a template used to create the MAC.cfg file, there must be one file for each Mitel phone.
Aastra6863i.cfg for the 6863i
Aastra6865i.cfg for the 6865i
Aastra6867i.cfg for the 6867i
Aastra6867i.cfg for the 6869i
Aastra6873i.cfg for the 6873i
Mitel6920.cfg for the 6920
Mitel6930.cfg for the 6930
Mitel6940.cfg for the 6940
In these template files, you can use variables that will be replaced with the corresponding value by the script.
$$AA_SIPAUTHNAME_AA$$ for the user SIP authentication name
$$AA_SIPSECRET_AA$$ for the user SIP secret
$$AA_SIPUSERNAME_AA$$ for the user SIP username
$$AA_SIPCALLERID_AA$$ for the user SIP caller-id
DEVELOPMENT GUIDE 58015045-00 | 286
$$AA_PROXY_SERVER_AA$$ for the name/IP address of the proxy server
$$AA_REGISTRAR_SERVER_AA$$ for the name/IP address of the registrar server
The template files can of course be completed with extra parameters (timezone, softkeys …).
# SIP Lines
sip line1 auth name: $$AA_SIPAUTHNAME_AA$$
sip line1 password: $$AA_SIPSECRET_AA$$
sip line1 user name: $$AA_SIPUSERNAME_AA$$
sip line1 display name: $$AA_SIPCALLERID_AA$$
sip line1 screen name: $$AA_SIPCALLERID_AA$$
sip line1 proxy ip: $$AA_PROXY_SERVER_AA$$
sip line1 proxy port: 5060
sip line1 registrar ip: $$AA_REGISTRAR_SERVER_AA$$
sip line1 registrar port: 5060
sip line1 vmail: *98
sip line1 mode: 0
# Action URI
action uri startup:
startup.php (located at /var/www/html/startup)
287 | DEVELOPMENT GUIDE 58015045-00
<?php
#####################################################################
# Sample script for self-configuration with Trixbox CE/Asterisk
# Mitel SIP Phones R2.3.0 or better
#
# php source code
# Provided by Mitel 2008
#
# Phone supported
#
Mitel 68xx and 69xx series
#####################################################################
#####################################################################
# Includes
#####################################################################
require_once('include/config.inc.php');
require_once('include/backend.inc.php');
require_once('phpagi/misc.php');
require_once('phpagi/phpagi-asmanager.php');
#####################################################################
# Private functions
#####################################################################
#####################################################################
# Aastra_decode_HTTP_header()
#
# Returns an array
#
0 Phone Type
#
1 Phone MAC Address
#
2 Phone firmware version
#####################################################################
function Aastra_decode_HTTP_header()
{
$user_agent=$_SERVER["HTTP_USER_AGENT"];
if(stristr($user_agent,"Aastra"))
{
$value=preg_split("/ MAC:/",$user_agent);
$fin=preg_split("/ /",$value[1]);
$value[1]=preg_replace("/\-/","",$fin[0]);
$value[2]=preg_replace("/V:/","",$fin[1]);
}
else
{
$value[0]="MSIE";
$value[1]="NA";
$value[2]="NA";
}
$value[3]=$_SERVER["REMOTE_ADDR"];
return($value);
}
#####################################################################
# lookup_config_file(extension)
# Checks if extension is already in use.
#
# Parameters
#
extension
extension t check
#
# Returns 1 if extension already in use
#####################################################################
DEVELOPMENT GUIDE 58015045-00 | 288
function lookup_config_file($extension)
{
$config="startup.cfg";
# Init return
$return=0;
# Read config file
$array = @parse_ini_file($config, true);
# Test MAC address
if($array[$extension]['mac']!="") $return=1;
return($return);
}
#####################################################################
# update_config_file(extension,mac,ip,model)
# Update the config file with the new extension parameters
#
# Parameters
#
extension
user extension
#
mac
MAC address of the phone
#
ip
IP address of the phone
#
model
Phone model
#####################################################################
function update_config_file($extension,$mac,$ip,$model)
{
$config="startup.cfg";
# Read config file
$array = @parse_ini_file($config, true);
if($array==NULL) $array=array();
# Update value
$array[$extension]['mac']=$mac;
$array[$extension]['ip']=$ip;
$array[$extension]['model']=$model;
# Update config file
reset($array);
$handle = @fopen($config, "w");
if($handle)
{
while ($v = current($array))
{
fputs($handle,"[".key($array)."]"."\n");
fputs($handle,"mac=".$v['mac']."\n");
fputs($handle,"ip=".$v['ip']."\n");
fputs($handle,"model=".$v['model']."\n\n");
next($array);
}
fclose($handle);
}
}
#####################################################################
# create_mac(extension,mac,username,secret,callerid,model)
# Creates the MAC.cfg file for the user.
#
# Parameters
#
extension
user extension
#
mac
MAC address of the phone
289 | DEVELOPMENT GUIDE 58015045-00
#
username
SIP authname
#
secret
SIP secret
#
callerid
User CallerID
#
model
Phone model
#
#####################################################################
function create_mac($mac,$extension,$username,$secret,$callerid,$model)
{
Global $AA_PROXY_SERVER,$AA_REGISTRAR_SERVER;
$value=preg_split("/ /",$callerid);
$result=$value[0]." ".$value[1];
$result=preg_replace("/</","(",$result);
$result=preg_replace("/>/",")",$result);
# Prepare replace strings
$search=array('/\$\$AA_SIPAUTHNAME_AA\$\$/','/\$\$AA_SIPSECRET_AA\$\$/','/\$\$A
A_SIPUSERNAME_AA\$\$/','/\$\$AA_SIPCALLERID_AA\$\$/','/\$\$AA_PROXY_SERVER_AA\$
\$/','/\$\$AA_REGISTRAR_SERVER_AA\$\$/');
$replace=array($username,$secret,$extension,$result,$AA_PROXY_SERVER,$AA_REGIST
RAR_SERVER);
$read = @fopen($model.".cfg", "r");
if($read)
{
$write = @fopen("/tftpboot/".$mac.".cfg", "w");
if($write)
{
# Create file header
while($line=fgets($read,200))
{
$line = preg_replace($search, $replace, $line);
fputs($write,$line);
}
fputs($write,"\n");
fclose($write);
}
fclose($read);
}
}
#####################################################################
# get_callerid(user)
#
# This function retrieves the user callerID of a user in the Asterisk
# registry (FreePBX 2.3)
#
# Parameters
#
@user
user ID
#
# Returns
#
CallerID as a string
#####################################################################
function get_callerid($user)
{
Global $ASTERISK_LOCATION;
# Try in the config file first
$sip_array = parse_ini_file($ASTERISK_LOCATION."sip_additional.conf", true);
# Extension exists?
if ($sip_array[$user]==NULL) $callerid="Unknown";
else
DEVELOPMENT GUIDE 58015045-00 | 290
{
# FreePBX ?
if(strstr($sip_array[$user]['callerid'],'device'))
{
# Connect to AGI
$as = new AGI_AsteriskManager();
$res = $as->connect();
# Get value in the database
$res = $as->Command('database get AMPUSER '.$user.'\/cidname');
$line=split("\n", $res['data']);
$cid=split(" ", $line[1]);
$callerid= $cid[1].' '.$cid[2];
# Disconnect properly
$as->disconnect();
}
else
{
# Retrieve the value
$value=explode(" <",$sip_array[$user]['callerid'],2);
$callerid=$value[0];
}
}
# Return Caller ID
return($callerid);
}
#####################################################################
# get_username(user)
#
# This function retrieves the username of a user in the Asterisk
# registry (FreePBX 2.3)
#
# Parameters
#
@user
user ID
#
# Returns
#
username as a string
#####################################################################
function get_username($user)
{
Global $ASTERISK_LOCATION;
# Get all the user data
$sip_array = @parse_ini_file($ASTERISK_LOCATION."sip_additional.conf", true);
# Collect data
if($sip_array[$user]['username']!='') $username=$sip_array[$user]['username'];
else
{
# Connect to AGI
$as = new AGI_AsteriskManager();
$res = $as->connect();
# Get value in the database
$res = $as->Command('database get DEVICE '.$user.'\/user');
$line=split("\n", $res['data']);
$cid=split(" ", $line[1]);
$username= $cid[1];
# Disconnect properly
291 | DEVELOPMENT GUIDE 58015045-00
$as->disconnect();
}
# Return answer
return($username);
}
#####################################################################
# get_secret(user)
#
# This function retrieves the SIP password (secret) of a user in the
# Asterisk configuration
#
# Parameters
#
@user
user ID
#
# Returns
#
secret as a string
#####################################################################
function get_secret($user)
{
Global $ASTERISK_LOCATION;
# Get all the user data
$sip_array = @parse_ini_file($ASTERISK_LOCATION."sip_additional.conf", true);
# Return answer
return($sip_array[$user]['secret']);
}
#####################################################################
# Main code
#####################################################################
# GLOBAL VARIABLES
$XML_SERVER = "http://".$_SERVER['SERVER_ADDR'].$_SERVER['SCRIPT_NAME'];
$AA_PROXY_SERVER = $_SERVER['SERVER_ADDR'];
$AA_REGISTRAR_SERVER = $_SERVER['SERVER_ADDR'];
$ASTERISK_LOCATION = "/etc/asterisk/";
# Retrieve parameters
$extension=$_GET["extension"];
$password=$_GET["password"];
$action=$_GET["action"];
$step=$_GET["step"];
# Set content type
header("Content-Type: text/xml");
# Reboot
if($action=="reboot")
{
$output = "<AastraIPPhoneExecute>\n";
$output .= "<ExecuteItem URI=\"Command: Reset\"/>\n";
$output .= "</AastraIPPhoneExecute>\n";
header("Content-Length: ".strlen($output));
echo $output;
exit;
}
# Input Extension
if ($extension=="")
{
DEVELOPMENT GUIDE 58015045-00 | 292
$output = "<AastraIPPhoneInputScreen type=\"number\" LockIn=\"yes\">\n";
$output .= "<Title>Initial startup</Title>\n";
$output .= "<Prompt>Enter Extension</Prompt>\n";
$output .= "<URL>$XML_SERVER</URL>\n";
$output .= "<Parameter>extension</Parameter>\n";
$output .= "<Default></Default>\n";
$output .= "</AastraIPPhoneInputScreen>\n";
header("Content-Length: ".strlen($output));
echo $output;
exit;
}
# Input Password
if ($password=="")
{
$output = "<AastraIPPhoneInputScreen type=\"number\" password=\"yes\"
LockIn=\"yes\" destroyOnExit=\"yes\">\n";
$output .= "<Title>Initial startup</Title>\n";
$output .= "<Prompt>Enter Password</Prompt>\n";
$output .= "<URL>$XML_SERVER?extension=$extension</URL>\n";
$output .= "<Parameter>password</Parameter>\n";
$output .= "<Default></Default>\n";
$output .= "</AastraIPPhoneInputScreen>\n";
header("Content-Length: ".strlen($output));
echo $output;
exit;
}
# IF authentication failed
if (!$userinfo = verify_user($extension, $password))
{
# Display error
$output
=
"<AastraIPPhoneTextScreen
destroyOnExit=\"yes\">\n";
$output .= "<Title>Authentication failed</Title>\n";
$output .= "<Text>Wrong user and password.</Text>\n";
$output .= "</AastraIPPhoneTextScreen>\n";
header("Content-Type: text/xml");
header("Content-Length: ".strlen($output));
echo $output;
exit;
}
# IF already configured
if(lookup_config_file($extension)==1)
{
# Display error
$output
=
"<AastraIPPhoneTextScreen
destroyOnExit=\"yes\">\n";
$output .= "<Title>Error</Title>\n";
$output .= "<Text>Extension already in use.</Text>\n";
$output .= "</AastraIPPhoneTextScreen>\n";
header("Content-Type: text/xml");
header("Content-Length: ".strlen($output));
echo $output;
exit;
}
LockIn=\"yes\"
LockIn=\"yes\"
# Get all the user data
$sip_array = parse_ini_file($ASTERISK_LOCATION."sip_additional.conf", true);
# If user not found
if ($sip_array[$extension]==NULL)
293 | DEVELOPMENT GUIDE 58015045-00
{
# Display error
$output
=
"<AastraIPPhoneTextScreen
LockIn=\"yes\"
destroyOnExit=\"yes\">\n";
$output .= "<Title>Internal error</Title>\n";
$output .= "<Text>Extension is not provisioned.</Text>\n";
$output .= "</AastraIPPhoneTextScreen>\n";
header("Content-Type: text/xml");
header("Content-Length: ".strlen($output));
echo $output;
exit;
}
else
{
# Collect data
$username=get_username($extension);
$secret=get_secret($extension);
$callerid=get_callerid($extension);
}
# Get MAC address and type of phone
$value=Aastra_decode_HTTP_header();
# Create mac.cfg
create_mac($value[1],$extension,$username,$secret,$callerid,$value[0]);
# Update config file
update_config_file($extension,$value[1],$value[3],$value[0]);
# Create Reboot screen
$output = "<AastraIPPhoneTextScreen destroyOnExit=\"yes\">\n";
$output .= "<Title>REBOOT</Title>\n";
$output .= "<Text>Reboot</Text>\n";
$output .= "</AastraIPPhoneTextScreen>\n";
header("Refresh: 1; url=".$XML_SERVER."?action=reboot");
# Display XML Object
header("Content-Type: text/xml");
header("Content-Length: ".strlen($output));
echo $output;
exit;
?>
logout.php (located at /var/www/html/startup)
DEVELOPMENT GUIDE 58015045-00 | 294
<?php
#####################################################################
# Sample script for shot desking with Trixbox CE/Asterisk
# Mitel SIP Phones R2.3.0 or better
#
# php source code
# Provided by Mitel 2008
#
# Phone supported
#
Mitel 5i series
#####################################################################
####################################################################
# Includes
####################################################################
require_once('include/config.inc.php');
require_once('include/backend.inc.php');
####################################################################
# Private functions
####################################################################
####################################################################
# Aastra_decode_HTTP_header()
#
# Returns an array
#
0 Phone Type
#
1 Phone MAC Address
#
2 Phone firmware version
#####################################################################
function Aastra_decode_HTTP_header()
{
$user_agent=$_SERVER["HTTP_USER_AGENT"];
if(stristr($user_agent,"Aastra"))
{
$value=preg_split("/ MAC:/",$user_agent);
$fin=preg_split("/ /",$value[1]);
$value[1]=preg_replace("/\-/","",$fin[0]);
$value[2]=preg_replace("/V:/","",$fin[1]);
}
else
{
$value[0]="MSIE";
$value[1]="NA";
$value[2]="NA";
}
$value[3]=$_SERVER["REMOTE_ADDR"];
return($value);
}
#####################################################################
# update_config_file(extension)
# Update the config file deleting the current extension
#
# Parameters
#
extension
user extension
#####################################################################
function update_config_file($extension)
{
# Config file
295 | DEVELOPMENT GUIDE 58015045-00
$config="startup.cfg";
# Read config file
$array = @parse_ini_file($config, true);
if($array==NULL) $array=array();
# Update config file
$handle = @fopen($config, "w");
if($handle)
{
foreach($array as $key=>$value)
{
if($key!=$extension)
{
fputs($handle,"[".$key."]"."\n");
fputs($handle,"mac=".$value['mac']."\n");
fputs($handle,"ip=".$value['ip']."\n");
fputs($handle,"model=".$value['model']."\n\n");
}
}
fclose($handle);
}
}
#####################################################################
# delete_mac(mac)
# Deletes the MAC.cfg file for the user.
#
# Parameters
#
mac
MAC address of the phone
#
#####################################################################
function delete_mac($mac)
{
# Delete MAC.cfg
@unlink("/tftpboot/".$mac.".cfg");
}
#####################################################################
# Main code
#####################################################################
# GLOBAL VARIABLES
$XML_SERVER = "http://".$_SERVER['SERVER_ADDR'].$_SERVER['SCRIPT_NAME'];
# Retrieve parameters
$extension=$_GET["extension"];
$password=$_GET["password"];
$action=$_GET["action"];
# Set content type
header("Content-Type: text/xml");
# Process action
switch($action)
{
case 'display':
# Reboot
$output
=
"<AastraIPPhoneTextScreen
destroyOnExit=\"yes\">\n";
$output .= "<Title>REBOOT</Title>\n";
$output .= "<Text>Reboot.</Text>\n";
$output .= "</AastraIPPhoneTextScreen>\n";
break;
LockIn=\"yes\"
DEVELOPMENT GUIDE 58015045-00 | 296
default:
# Input Password
if ($password=='')
{
$output
=
"<AastraIPPhoneInputScreen
type=\"number\"
password=\"yes\" LockIn=\"yes\" destroyOnExit=\"yes\">\n";
$output .= "<Title>Logout</Title>\n";
$output .= "<Prompt>Enter Password</Prompt>\n";
$output .= "<URL>$XML_SERVER?extension=$extension</URL>\n";
$output .= "<Parameter>password</Parameter>\n";
$output .= "<Default></Default>\n";
$output .= "</AastraIPPhoneInputScreen>\n";
}
else
{
# IF authentication fails
if (!verify_user($extension,$password))
{
# Display error
$output = "<AastraIPPhoneTextScreen LockIn=\"yes\"
destroyOnExit=\"yes\">\n";
$output .= "<Title>Authentication failed</Title>\n";
$output .= "<Text>Wrong credentials.</Text>\n";
$output .= "</AastraIPPhoneTextScreen>\n";
}
else
{
# Get MAC address and type of phone
$value=Aastra_decode_HTTP_header();
# Erase mac.cfg
delete_mac($value[1]);
# Update config file
update_config_file($extension);
# Reboot needed
$output = "<AastraIPPhoneExecute>\n";
$output
.=
"<ExecuteItem
URI=\"".$XML_SERVER."?action=display"."\"/>\n";
$output
.=
"<ExecuteItem
URI=\"Command:
FastReboot\"/>\n";
$output .= "</AastraIPPhoneExecute>\n";
}
}
break;
}
# Display XML Object
header("Content-Type: text/xml");
header("Content-Length: ".strlen($output));
echo $output;
exit;
?>
297 | DEVELOPMENT GUIDE 58015045-00
17 APPENDIX F: CSV BASED DIRECTORY
17.1
INTRODUCTION
The application described in this chapter is a generic directory application using a CSV file as data source as well as
a server-side speed dial application which can be linked from the directory application.
The directory application allows the user to perform a lookup based on
The first letters of the first name
The first letters of the last name
The first letters of the Company name
(at least 3) Letters anywhere in the complete name or company name
Also, it allows the user to configure:
The results display format: first name last name or last name first name
Sorting index: last name or first name
The directory application can also be password protected (configured in config/directory.conf), the password is
requested only for the first use, once authenticated by its MAC address, the phone no longer requires the password
check.
The source code is provided in the XML SDK as a zip file called csv_directory_5.0.0.zip
Note: the source code is not supported by Mitel, it is provided only as an example.
17.2
PHONE COMPATIBILITY
The directory and speed dial applications are available for
Mitel 6863i/6865i
Mitel 6867i/6869i/6873i
Mitel 6920/6930/6940
But some limitations apply in the directory application when the phone is a non softkey phone a user cannot:
17.3
set a speed dial from the directory application
change sorting index and display format
access to record details
perform a search using first name or last name
INSTALLATION
The provided scripts must be extracted under the ROOT directory of the HTTP server in a xmldirectory, a cache
directory (default /var/cache/aastra) must also be created with read/write access for the HTTP server user.
The cache directory can be configured in config/server.conf, see chapter 17.6.1 for more details.
17.4
XML KEY CONFIGURATION
Directory
DEVELOPMENT GUIDE 58015045-00 | 298
The uri to use is
http://myserver.com/xml/directory/directory.php?user=USER&source=SOURCE
Where
myserver.com is the name or IP address of your HTTP server
USER is the userID, if not provided the script uses the phone MAC address as the userID.
SOURCE is the name of the csv file located in the directory directory, if not provided, the script uses the
file configured as default in config/directory.conf
Speed dial
The uri to use is
http://myserver.com/xml/directory/speed.php?user=USER
Where
myserver.com is the name or IP address of your HTTP server
USER is the userID, if not provided the script uses the phone MAC address as the userID.
Note: USER must be the same for both applications in order to have the speed dial integrated in the
directory application.
17.5
CSV FILE FORMAT
The CSV file must respect the following format:
First name, Last name, Company, Title, Work, Home, Mobile
The application is provided with a sample database directory/directory.txt where all the fields have been randomly
generated.
17.6
17.6.1
CONFIGURATION FILES
SERVER.CONF
This file includes configuration parameters for the XML server.
[General]
# Public IP address (optional), if not provided $_SERVER['HTTP_HOST'] is used
public=
#
Path
for
the
Mitel
cache
directory
(optional),
if
not
provided
/var/cache/aastra is used
cache=
# Path for the TFTP root directory (optional) if not provided /tftpboot is used
tftp=
# Path for the XML directory behind the HTTP Server (optional), default is xml
xmldirectory=
# Mode DEBUG (0 or 1), default is 0
debug=
# Mode TRACE (0 or 1), default is 0
trace=
# Forced language (optional), can be en, de, fr...
language=
When activated, the traces are stored in a log file located in the cache directory (by default /var/cache/aastra)
indexed by the date, a file is generated per day.
17.6.2
DIRECTORY.CONF
This file includes configuration parameters for the Directory application.
299 | DEVELOPMENT GUIDE 58015045-00
###############################################################################
# directory.conf
#
# Configuration file for the directory application
###############################################################################
###############################################################################
# Global configuration
#
# [general]
# password
To protect the application with a password
# speeddial
Configure is speedial is enabled (0 or 1)(optional)
# default
Name of the default csv file located in the directory
###############################################################################
[General]
password=
speeddial=
default=directory
###############################################################################
# Dialing profile
#
# [Dialplan]
# country
country code
# long distance
long distance prefix
# international
international prefix
# outgoing
outgoing prefix
# local
list of local phone numbers prefixes separated by a comma
###############################################################################
[Dialplan]
country=1
long distance=1
international=011
outgoing=9
local=
17.7
APPLICATION FILES
/
Root Directory
language.ini
Language configuration file
license.txt
License file
/directory/
Directory for the applications
directory.php
Directory application
directory.txt
Sample CSV file
speed.php
Speed dial application
/config/
Directory for configuration files
server.conf
Server configuration
DEVELOPMENT GUIDE 58015045-00 | 300
directory.conf
Directory configuration
/include/
Directory for common includes
AastraCommon.php
Common Mitel functions
AastraIPPhone.php
AastraIPPhone.class.php
AastraIPPhoneConfiguration.class.php
AastraIPPhoneConfigurationEntry.class.php
AastraIPPhoneExecute.class.php
AastraIPPhoneExecuteEntry.class.php
AastraIPPhoneInputScreen.class.php
AastraIPPhoneInputScreenEntry.class.php
AastraIPPhoneSoftkey.class.php
AastraIPPhoneSoftkeyParam.class.php
AastraIPPhoneSoftkeyEntry.class.php
AastraIPPhoneStatus.class.php
AastraIPPhoneStatusEntry.class.php
AastraIPPhoneTextMenu.class.php
AastraIPPhoneTextMenuEntry.class.php
AastraIPPhoneTextScreen.class.php
301 | DEVELOPMENT GUIDE 58015045-00
Mitel XML objects
php classes
18 APPENDIX G: LDAP DIRECTORY
18.1
INTRODUCTION
This appendix describes how to provide access to the Corporate Directory (Active Directory) from the Mitel SIP
phones. As LDAP protocol is used to access Active Directory, this document is also valid for any other LDAP
enabled directory server. This document is solely about user initiated directory lookup, it does not cover Corporate
Directory based caller ID lookup for incoming or outgoing calls.
There is no native LDAP client in the Mitel SIP phone, but the phone's inbuilt XML browser can be used to access a
XML Proxy Server which then communicates with the LDAP server. This architecture offers more flexibility than a
native LDAP client in the phone since the logic of the LDAP directory application lies in the XML LDAP application
(e.g. a PHP script) running on the XML Proxy Server rather than in the LDAP client embedded in the phone's
firmware. The following features can be easily controlled by changing the XML LDAP application on the XML Proxy
Server:
Customized search fields on the phone (e.g. first name / last name / any name / department / …)
Customized LDAP-attributes to be included in the search result (such as title, department, address)
Number translation (digits to be removed from / added to the numbers found in the LDAP before dialling
e.g. external prefix)
The message flow is given by the diagram below:
Figure 95: LDAP directory message flow
The directory application allows the user to perform a lookup based on
The first letters of the first name AND last name
(at least 3) Letters anywhere in the complete name
The source code is provided in the XML SDK as a zip file called ldap_directory_5.0.0.zip
Note: the source code is not supported by Mitel, it is provided only as an example.
18.2
INSTALLATION
The provided scripts must be extracted under the ROOT directory of the HTTP server in a xmldirectory, a cache
directory (default /var/cache/aastra) must also be created with read/write access for the HTTP server user.
The cache directory can be configured in config/server.conf, see chapter 18.5.1 for more details.
The Web server must support PHP 5.x or higher and the PHP LDAP extension must be available in PHP. Typically,
Apache Web server is used. Apache runs on most operating systems.
Windows platforms
DEVELOPMENT GUIDE 58015045-00 | 302
To enable the PHP LDAP extension, this line must be inserted into php.ini:
extension=php_ldap.dll
Linux platforms
Just install the php-ldap package (via yum or via rpm)
To check whether PHP 5.x (or higher) and the PHP LDAP extensions are properly installed, create a PHP script with
the following content and save it under the Web server's root directory:
<?php phpinfo(); ?>
Then point your Web browser to this script. Check the PHP version and make sure there is a section "ldap" with a
table containing the key "LDAP Support" and corresponding value "enabled"
18.3
18.3.1
NETWORK REQUIREMENTS
PHONE -> XML PROXY SERVER
The phone must be able to reach the XML Proxy Server. Typically, the XML Proxy Server will run on port 80/tcp, but
any other port can be used as well. The phone can be behind NAT as the TCP requests will always be phone
initiated.
In case there is a firewall between the phone and the XML Proxy Server, the firewall must allow phone initiated TCP
sessions towards the Web server port on the XML Proxy Server.
18.3.2
XML PROXY SERVER -> LDAP-SERVER
The XML Proxy Server must be able to reach the LDAP-Server on port 389/tcp (default LDAP port) or 3268/tcp
(default LDAP port on Active Directory Server) or any other port that is used for LDAP access.
Requests will always be XML Proxy Server initiated.
18.4
ACTIVE DIRECTORY / LDAP-SERVER REQUIREMENTS
The LDAP / Active Directory Server must allow LDAP search requests. Depending on the server's configuration,
anonymous access (anonymous bind) is allowed. If not, a username (User DN) and password must be provided.
Active Directory typically does not allow anonymous access.
Also the Search Base / Root DN needs to be known. This information should be requested from the LDAP / Active
Server administrator.
To test the LDAP server access, use a tool like "Softerra LDAP Browser" (free). If anonymous access is supported,
setup a new profile with "Anonymous Bind" selected. Otherwise provide User DN and password. Configure the
server's IP address and port plus the "Base DN" and you should be able to browse the LDAP tree.
18.5
18.5.1
CONFIGURATION FILES
SERVER.CONF
This file includes configuration parameters for the XML server.
303 | DEVELOPMENT GUIDE 58015045-00
[General]
# Public IP address (optional), if not provided $_SERVER['HTTP_HOST'] is used
public=
#
Path
for
the
Mitel
cache
directory
(optional),
if
not
provided
/var/cache/aastra is used
cache=
# Path for the TFTP root directory (optional) if not provided /tftpboot is used
tftp=
# Path for the XML directory behind the HTTP Server (optional), default is xml
xmldirectory=
# Mode DEBUG (0 or 1), default is 0
debug=
# Mode TRACE (0 or 1), default is 0
trace=
# Forced language (optional), can be en, de, fr...
language=
When activated, the traces are stored in a log file located in the cache directory (by default /var/cache/aastra)
indexed by the date, a file is generated per day.
18.5.2
LDAP_DIRECTORY.CONF
This file includes configuration parameters for the LDAP Directory application.
DEVELOPMENT GUIDE 58015045-00 | 304
###############################################################################
###############
# ldap_directory.conf
#
# Configuration file for the LDAP directory application
###############################################################################
###############
###############################################################################
###############
# Global configuration
#
# [LDAP_Server]
# hostname
Hostname or IP address of LDAP server
# port
TCP server port of LDAP server. Typically this is 389 or 3268
# baseDN
Base / Root Search DN. Example: dc=company, dc=com
# userdomain User domain to connect to the LDAP server (optional)
# username
User DN to connect to the LDAP server. Leave blank if anonymous
bind is used.
# password
Password for the User DN. Leave blank if anonymous bind is used.
###############################################################################
###############
[LDAP_Server]
hostname=
port=3268
basedn=
userdomain=
username=
password=
###############################################################################
###############
# Dialing profile
#
# [Dialplan]
# countrycode
Country code
#
If phone number starts with "+<countrycode>", this will be
removed
#
# longdistance Long distance prefix
#
This prefix will be added to the number in case +<countrycode>
has been stripped.
#
Leave blank if not needed.
#
# international International prefix
#
The "+" sign will be replaced with this prefix
#
# outgoing
Outgoing prefix
#
Prefix that needs to be appended for outgoing calls
#
(all call but local calls), e.g. 0 or 9
#
# local
List of local PBX number prefixes separated by a comma (in
national format).
#
Prefix will be removed, no outgoing prefix will be added.
#
Examples: local=905760,978262
#
--> 9057602222 will be replaced by 2222 and 9782623333 will be
replaced by 3333.
#
# localextlen Numbers with this number of digits or less will be treated as
local PBX extensions
#
No prefix added (useful in case numbers are stored in local
format in LDAP)
305 | DEVELOPMENT GUIDE 58015045-00
###############################################################################
###############
[Dialplan]
countrycode=1
longdistance=1
international=011
outgoing=
local=
localextlen=4
DEVELOPMENT GUIDE 58015045-00 | 306
19 APPENDIX H: PICTURECALLERID (6867I, 6869I, 6873I, 6920, 6930 AND 6940)
19.1
INTRODUCTION
This feature, available on the Mitel 6867i, 6869i, 6873i, 6920, 6930 and 6940 allows the display of a picture
referenced by the Caller ID number for an incoming and an outgoing call.
When the user makes or receives a call, the phone (by configuration) fetches an image stored on a
TFTP/FTP/HTTP/HTTPS server and displays it.
For instance, if the incoming or outgoing number is “9725551234” the phone makes a request for a file named
“9725551234.png” which must be
6867i/6920
Display size is 86x86 pixels (image is rescaled)
png format
24 or 32 bits depth colors
6869i/6930
Display size is 96x96 pixels (image is rescaled)
png format
24 or 32 bits depth colors
6873i/6940
Display size is 170x170 pixels (image is rescaled)
png format
24 or 32 bits depth colors
in order to be displayed for consecutive calls. The image is cached in the phone until the next reboot.
If no image matching the request is found on the server or in its cache, the phone displays a default image (below).
This implementation means that the server must host all the pictures in the right format which can be pretty tedious.
19.2
APPLICATION IMPLEMENTATION
To simplify the deployment of the picture Caller ID, Mitel has developed an application which answers to the phone
requests but also:
converts any size picture (png, jpeg, gif) to the right format and cache the converted picture,
allows number/picture matching (cell phone number, home number…),
allows phone number pattern matching,
allows to customize the matching picture by adding a custom label.
With this application, an administrator does not have to convert the pictures to the right format, he just has to put the
pictures in any format (jpeg, gif or png) in the “pictures” directory for instance using XXXX.yyy where XXXX is the
user extension number.
The administrator can also create number or pattern matching to display all kind of pictures using the configuration
file “pictureID.conf” as described in chapter 19.5.2.3.
Here is how the algorithm works (NUMBER is the incoming or outgoing number)
307 | DEVELOPMENT GUIDE 58015045-00
Checks if NUMBER.png is in the cache directory (if yes sends the image back)
Remove local prefixes and check the transformed number (if yes sends the image back)
Check basic mapping and check the transformed number (if yes sends the image back)
Check advanced pattern matching and check the transformed number (if yes sends the image back)
Remove external prefix and check the transformed number (if yes sends the image back)
Remove international prefix and check the transformed number (if yes sends the image back)
Sends a HTTP 404 (Image Not found) or the configured image
19.3
REQUIREMENTS/COMPATIBILITY
19.3.1
HTTP SERVER
Operating System:
Microsoft Windows Server 2003/2008
Microsoft XP/Vista/7
Most flavors of Linux
HTTP Server:
Microsoft IIS
Apache
Lighttpd
PHP
19.3.2
o
Release 5.0 or better,
o
Configured to be called by the HTTP server for .php files
o
php-gd extension
COMPATIBILITY
The Picture Caller ID application is available only for the following phones:
Mitel 6867i, 6869i and 6873i
Mitel 6920, 6930 and 6940
19.4
19.4.1
INSTALLATION
INTRODUCTION
The Picture Caller ID application is provided to allow generic implementation and also for testing purpose as a zip
file which includes only the source code to be installed on an existing HTTP Server “pictureCallerID_5.0.0.zip”.
19.4.2
HTTP SERVER
The Picture Caller ID application is a single php script which can be installed anywhere behind the root directory of
any HTTP Server supporting php scripts.
19.4.3
PACKAGE INSTALLATION
Just untar the provided tarball wherever you want behind the HTTP Server root directory (typically /var/www/html
with Apache on Linux).
Just make sure that
DEVELOPMENT GUIDE 58015045-00 | 308
The “cache” directory is accessible in read/write for the HTTP Server user
The “pictures” directory is accessible in read for the HTTP Server user
The Picture Caller ID can be relocated under any directory.
19.4.4
TEST YOUR INSTALLATION
To test the HTTP server direct your Web browser (Internet Explorer, Firefox…) to
http://MYSERVERIP/imageServer.php?0000.png
directory
if the application has been installed at the HTTP Server root
or
http://MYSERVERIP/PATH/imageServer.php?0000.png if the application has been installed at a different directory
Where MYSERVERIP is the IP address/name of your server and PATH the directory behind the HTTP Server root
directory.
You should see the following page:
19.4.5
TROUBLESHOOTING
If the previous test did not work here are a couple of things you may want to check:
Is the HTTP Server running?
Is php supported?
Is php-gd extension installed?
Are the user rights OK for “pictures” and “cache” directories?
19.4.6
WINDOWS PC USING XAMPP LITE
Please refer to chapter 11.2 on how to use XAMPP as an http server for this application.
19.5
19.5.1
CONFIGURATION
PHONE CONFIGURATION
The Picture Caller ID feature is configured using a parameter called “image server uri” in the phone config files
(aastra.cfg or MAC.cfg)
image server uri: URL to access the Picture Caller ID application
309 | DEVELOPMENT GUIDE 58015045-00
HTTP Server implementation
image server uri: http://MYSERVERIP/PATH/imageServer.php?
where MYSERVERIP is the IP address/name of your HTTP server and PATH the directory behind the
HTTP Server root directory.
XAMPP Implementation
image server uri: http://MYPC/imageServer.php?
where MYPC is the IP address/name of the PC where the XAMPP package has been installed.
Note: the “?” at the end of the uri is mandatory, it is not a typo.
19.5.2
APPLICATION CONFIGURATION
The application can be configured by modifying pictureID.conf in the main directory; this configuration file contains
3 sections.
Note: Changes in this file are dynamic.
19.5.2.1 General parameters
This section includes the global configuration parameters:
Location of the pictures directory
Location of the cache directory
Enable or disable upscaling pictures
Name and customization of the default picture (optional)
DEVELOPMENT GUIDE 58015045-00 | 310
###############################################################################
# Global parameters
#
# [General]
# pictures
Directory for the raw pictures
#
Default is ./pictures
#
Must be r for HTTP Server user
#
# cache
Directory for the cached pictures
#
Default is ./cache
#
Must be r/w for HTTP Server user
#
# blowup
Enable (1) or disable (0) image scaling smaller than
150x200 pixels.
#
This may/will lead to grainy/pixelized images.
#
Default is disable
# default
Provides a default image when the number does not match
#
any picture. A 404 is sent if no number is provided though.
#
default=mapped_number
or
mappedname,LABEL|YPOSITION|ALIGNMENT|COLOR|FONTSIZE
#
See the [Numbers] section for the format of the line
###############################################################################
[General]
pictures=
cache=
blowup=
default=
19.5.2.2 Dialing plan
This section contains the PBX dialing plan which will be used to transform the numbers:
Country code
Long distance prefix
International prefix
Outgoing prefix
Local prefix(es)
311 | DEVELOPMENT GUIDE 58015045-00
###############################################################################
# Dialing profile
#
# [Dialplan]
# country
Country code
#
If phone number starts with "+<country>", this will be
#
removed
#
# long distance
Long distance prefix
#
This prefix will be added to the number in case +<country>
#
has been stripped.
#
Leave blank if not needed.
#
# international
International prefix
#
The "+" sign will be replaced with this prefix
#
# outgoing
Outgoing prefix
#
Prefix that needs to be appended for outgoing calls
#
(all call but local calls), e.g. 0 or 9
#
# local
List of local PBX number prefixes separated by a comma
#
(in national format). Prefix will be removed, no outgoing
#
prefix will be added.
#
Examples: local=905760,978262
#
--> 9057602222 will be replaced by 2222 and 9782623333 will
#
be replaced by 3333.
###############################################################################
[Dialplan]
country=1
long distance=1
international=011
outgoing=
local=
19.5.2.3 Number transformations
This section describes the number transformations you want the application to use to display a given picture as well
as the optional customization of the picture.
Each line is formatted like this
Number and/or patterns=picture number or name,[Optional customization]
Pattern format is P followed by:
any digit including * or #
X digit between 0 and 9
Z digit between 1 and 9
N digit between 2 and 9
The optional customization allows you to add a label on the displayed picture by defining:
the label itself
its vertical position in pixels (1 to 200)
its alignment (left, center, right)
its color
its font size
DEVELOPMENT GUIDE 58015045-00 | 312
#############################################################################
# Number mapping
#
# Line Format
# [Numbers]
#
number
and/or
patterns
comma
separated=mapped_number
or
mappedname,LABEL|YPOSITION|ALIGNMENT|COLOR|FONTSIZE
#
Simple number matching
#
it can be used to map multiple phone numbers (cell, home , other) to a
user
#
Pattern matching
#
it can be used to map open numbers
#
Pattern format is P followed by
#
any digit including * or #
#
X digit between 0 and 9
#
Z digit between 1 and 9
#
N digit between 2 and 9
#
. indicates an open length number, must be positioned at the end
of the pattern
#
The entries in the [Numbers] section are processed based on the order in
#
the file, so it is recommended to put the open patterns at the end.
#
# Where
#
LABEL is the label to be displayed on the picture
#
YPOSITION is the vertical position of the label (between 1 and 200),
default is 100
#
ALIGNMENT is the horizontal alignment left|center|right, default is center
#
COLOR
is
the
label
color
yellow|orange|pink|purple|black|grey|red|brown|tan|magenta|blue|green|white
(default is white)
#
FONTSIZE is the font size in pixels (between 8 and 24) default is 10
#
# Example
# [Numbers]
# 0795551234=2299
# Will display the picture "2299" when 0795551234 is dialed or incoming
# P972XXXXXXX,P469XXXXXXX,P214XXXXXXX=default,"DALLAS, TX"|187|center|blue|10
# Will display the picture "default" with a centered blue label "Dallas, TX"
font size 10 at vertical position 187 when 10 digits numbers starting with 972
or 469 or 214 are dialed or incoming
# P44.=UK
# Will display the picture "UK" when any number starting with 44 is dialed or
is incoming
#############################################################################
[Numbers]
*97,*98=voicemail
*76,*78,*79,*21,*65=phone
19.5.3
NUMBER MATCHING EXAMPLES
The number matching can be used to map external phone numbers (cell phone, home…) to a local extension.
John Doe is extension 2000 on the local PBX, 2000.jpg is available is the “pictures” directory.
The following line in the configuration file
4085551234,3105551234=2000
Will display the 2000.jpeg picture when 4085551234 or 3105551234 are calling or being called.
19.5.4
PATTERN MATCHING EXAMPLES
The pattern matching allows you to define hierarchical rules to match a number with a picture; the order in the
configuration file is significant.
313 | DEVELOPMENT GUIDE 58015045-00
Example 1
P972XXXXXXX,P469XXXXXXX,P214XXXXXXX =default,"DALLAS, TX"|187|center|red|10
Will display the following picture on the phone
When a 10 digit number starting with 972, 469 or 214 is
calling or being called.
.
Example 2
This example demonstrates the relevance of the lines order in the configuration files.
P972555XXXX=default,"ACME Dallas"|187|center|blue|10
P972XXXXXXX,P469XXXXXXX,P214XXXXXXX=default,"DALLAS, TX"|187|center|red|10
Will display:
When a 10 digit number starting with 972555 is calling
or being called.
When a 10 digit number starting with 972 (except if it is
starting with 972555), 469 or 214 is calling or being
called.
DEVELOPMENT GUIDE 58015045-00 | 314
Example 3
This example demonstrates how to use undefined length patterns.
P44.= default,"United Kingdom"|187|center|red|10
Will display the following picture
When a number (any number of digits) starting with 44
is calling or being called.
Unit ed Kingdom
19.6
FILES
This chapter describes the files provided in the package
File
Comment
./
Root directory
imageServer.php
PHP script for the Picture Caller ID application
License.txt
License file
pictureID.conf
Configuration file
./cache
Cache directory
./fonts
Font directory
DejaVuSans-Bold.ttf
True Type font used to customize the labels
./pictures
Picture directory
Aastra.gif
conference.png
default.png
phone.png
time.png
voicemail.png
Various country flags (US, UK, DE…)
315 | DEVELOPMENT GUIDE 58015045-00
Sample graphic files
DEVELOPMENT GUIDE 58015045-00 | 316
20 LAST PAGE OF THE DOCUMENT
58015045-00
This page is intentionally left blank
317 | DEVELOPMENT GUIDE 58015045-00