You can access PBX features such as turning on and off a message waiting indicator, dialing programmable keys, and transferring calls, using dial strings in the dx_dial( ) function. dx_dial( ) is a D/4x voice function. For detailed information on how to use this function, see the Voice Software Reference .
Input parameters for the dx_dial( ) function are defined as follows:
dx_dial( )
Name: int dx_dial(cd, dialstrp, capp, mode)
Inputs: int cd _ channel descriptor
char *dialstrp _ pointer to ASCIIZ dial string
DX_CAP *capp _ pointer to Call Progress Analysis Parameter structure
unsigned short mode _ asynchronous/synchronous setting and call analysis flag
The dial string accepts escape sequences that are used to access PBX features. Acceptable ASCII characters for each dial string are the standard DTMF dialing and control characters described in the Voice Software Reference , and the additional characters described in the following paragraphs.
The procedure for accessing a feature is as follows:
4.2.1. On-Hook and Off-Hook Dialing NoteWhen using the PBX Integration board with the supported Mitel and Siemens PBXs, you can make a connection without explicitly going off-hook. With a channel in the on-hook state, if you dx_dial( ) a valid extension, you can make a connection. However, if you do a dx_sethook( ) to go back on-hook, you cannot go back to the on-hook state no matter how many on-hooks are performed. You must dx_sethook( ) off-hook, then on-hook (or dx_dial( ) the Release key, in the case of the Siemens).
4.2.2. Turn On the Message Waiting Indicator
DescriptionA dial string instructs the PBX to light the message waiting indicator on the specific extension. The dial string contains the following components:
|
<ESC> |
the ASCII escape character (0x1B). |
|
command |
an ASCII character that identifies the "turn on message waiting indicator" feature. |
, |
pause (optional) |
|
<extension> |
the number of the extension whose message waiting indicator is to be lit. |
The dial string for all sported PBXs is listed below.
Turn On the Message Waiting Indicator Dial String<ESC>O,<extension>,<ESC>O
All PBXs - Except Nortel Meridian
For all supported PBXs, except Nortel Meridian, use the following technique to turn on the MWI using dx_dial( ) and the dial string.
1) Go Off Hook using dx_sethook( )
2) Call the dx_dial( ) function. The dial string is <ESCO><extention><ESCO>
3) Go On hook using the dx_sethook( ) again
Use the optional pause character (comma) in the dial string when necessary.
Nortel Meridian - Exception
For the Nortel Meridian Switch only, skip items 1 and 3 above:
Characters are case sensitive.
Exampleunsigned int cd; /* channel descriptor */
char digstr[40];
int turn_on_mwl()
{
/* set up dial string */
switch (ATD4_CHTYPE(cd))
{
case TYP_D/82M1:
case TYP_D/82L4:
case TYP_D/82L2:
sprintf(digstr,"%c0,555,%cO",ESC,ESC);
break;
}
/* turn on message waiting indicator on ext. 555 */
if (dx_dial(cd,digstr,NULL,EV_SYNC) == -1)
{
printf("\nDial failed\n");
exit (1);
}
return (0);
}
4.2.3. Turn Off the Message Waiting Indicator Dial String
DescriptionA dial string instructs the PBX to turn off the message waiting indicator on the specific extension. The dial string contains the following components:
|
<ESC> |
the ASCII escape character (1B hex). |
|
command |
an ASCII character that identifies the "turn off message waiting indicator" feature. |
, |
pause (optional) |
|
<extension> |
the number of the extension whose message waiting indicator is to be turned off. |
The dial string for all supported PBXs is listed below.
Turn Off the Message Waiting Indicator Dial String<ESC>F,<extension>,<ESC>F
All PBXs - except Nortel Meridian
For all supported PBXs except Nortel Meridian, use the following technique to turn off the MWI using dx_dial( ) and the dial string.
1) Go Off Hook using dx_sethook( )
2) Call the dx_dial( ) function. The dial string is <ESCF><extention><ESCF>
3) Go On hook using the dx_sethook( ) again
Use the optional pause character (comma) in the dial string when necessary.
Nortel Meridian - exception
For the Nortel Meridian Switch only, skip items 1 and 3 above:
Characters are case sensitive.
Exampleunsigned int cd; /* channel descriptor */
char digstr[40];
int turn_off_mwl()
{
/* set up dial string */
switch (ATD4_CHTYPE(cd))
{
case TYP_D/82M1:
case TYP_D/82L4:
case TYP_D/82L2:
sprintf(digstr,"%cF,555,%cF",ESC,ESC);
break;
}
/* turn off message waiting indicator on ext. 555 */
if (dx_dial(cd,digstr,NULL,EV_SYNC) == -1)
{
printf("\nDial failed\n");
exit (1);
}
return (0);
}
4.2.4. Dial Programmable Keys
DescriptionThe dial string <ESC>K<key>, enables the PBX Integration board to access features programmed into the programmable keys available to extensions on the PBX. The dial string contains the following components:
|
<ESC> |
the ASCII escape character (1B hex) |
|
K |
identifies the Dial Programmable Key feature |
|
<key> |
indicates which programmable feature key to access |
|
, |
pause (optional) |
Lucent Definity 7434 (4-wire)To access the dial string features on a Lucent 7434 4-wire telephone, refer to Figure 9 and use the direct key dialing sequences listed in Table 3. Also, refer to the PBX Integration User's Guide for more detailed information about programmable keys.
Figure 9. Lucent 7434 (4-wire) Telephone
Table 3. Lucent 7434 (4-wire) Direct Key Dialing Sequences
Dial Code |
Key Description |
<ESC>KA |
Feature Key 00 |
<ESC>KB |
Feature Key 01 |
<ESC>KC |
Feature Key 02 |
<ESC>KD |
Feature Key 03 |
<ESC>KE |
Feature Key 04 |
<ESC>KF |
Feature Key 05 |
<ESC>KG |
Feature Key 06 |
<ESC>KH |
Feature Key 07 |
<ESC>KI |
Feature Key 08 |
<ESC>KJ |
Feature Key 09 |
<ESC>KK |
Feature Key 10 |
<ESC>KL |
Feature Key 11 |
<ESC>KM |
Feature Key 12 |
<ESC>KN |
Feature Key 13 |
<ESC>KO |
Feature Key 14 |
<ESC>KP |
Feature Key 15 |
<ESC>KQ |
Feature Key 16 |
<ESC>KR |
Feature Key 17 |
<ESC>KS |
Feature Key 18 |
<ESC>KT |
Feature Key 19 |
<ESC>KU |
Feature Key 20 |
<ESC>KV |
Feature Key 21 |
<ESC>KW |
Feature Key 22 |
<ESC>KX |
Feature Key 23 |
<ESC>KY |
Feature Key 24 |
<ESC>KZ |
Feature Key 25 |
<ESC>Ka |
Feature Key 26 |
<ESC>Kb |
Feature Key 27 |
<ESC>Kc |
Feature Key 28 |
<ESC>Kd |
Feature Key 29 |
<ESC>Ke |
Feature Key 30 |
<ESC>Kf |
Feature Key 31 |
<ESC>Kg |
Feature Key 32 |
<ESC>Kh |
Feature Key 33 |
<ESC>Ki |
Hold |
<ESC>Kj |
Drop |
<ESC>Kk |
Transfer |
<ESC>Kl |
Conference |
<ESC>DI |
Enable in-band signaling |
<ESC>DO |
Lucent Definity 8434 (2-wire)To access the dial string features on a 2-wire Lucent 8434 telephone, refer to Figure 10 to and use the direct key dialing sequences listed in Table 4. Also, refer to the PBX Integration User's Guide for more detailed information about programmable keys.
Figure 10. Lucent 8434 (2-wire) Telephone
Table 4. Lucent 8434DX (2-wire) Direct Key Dialing Sequences
Dial Code |
Key Description |
<ESC>KA |
Feature Key 00 |
<ESC>KB |
Feature Key 01 |
<ESC>KC |
Feature Key 02 |
<ESC>KD |
Feature Key 03 |
<ESC>KE |
Feature Key 04 |
<ESC>KF |
Feature Key 05 |
<ESC>KG |
Feature Key 06 |
<ESC>KH |
Feature Key 07 |
<ESC>KI |
Feature Key 08 |
<ESC>KJ |
Feature Key 09 |
<ESC>KK |
Feature Key 10 |
<ESC>KL |
Feature Key 11 |
<ESC>KM |
Feature Key 12 |
<ESC>KN |
Feature Key 13 |
<ESC>KO |
Feature Key 14 |
<ESC>KP |
Feature Key 15 |
<ESC>KQ |
Feature Key 16 |
<ESC>KR |
Feature Key 17 |
<ESC>KS |
Feature Key 18 |
<ESC>KT |
Feature Key 19 |
<ESC>KU |
Feature Key 20 |
<ESC>KV |
Feature Key 21 |
<ESC>KW |
Feature Key 22 |
<ESC>KX |
Feature Key 23 |
<ESC>KY |
Feature Key 24 |
<ESC>KZ |
Feature Key 25 |
<ESC>Ka |
Feature Key 26 |
<ESC>Kb |
Feature Key 27 |
<ESC>Kc |
Feature Key 28 |
<ESC>Kd |
Feature Key 29 |
<ESC>Ke |
Feature Key 30 |
<ESC>Kf |
Feature Key 31 |
<ESC>Kg |
Feature Key 32 |
<ESC>Kh |
Feature Key 33 |
<ESC>Ki |
Hold |
<ESC>Kj |
Drop |
<ESC>Kk |
Transfer |
<ESC>Kl |
Conference |
<ESC>Km |
Display Key 0 |
<ESC>Kn |
Display Key 1 |
<ESC>Ko |
Display Key 2 |
<ESC>Kp |
Display Key 3 |
<ESC>Kq |
Display Key 4 |
<ESC>Kr |
Display Key 5 - Menu |
<ESC>Ks |
Display Key 6- Exit |
<ESC>DI |
Enable in-band signaling |
<ESC>DO |
Siemens ROLMTo access the dial string features on a Siemens ROLMphone 400, refer to Figure 11 and use the direct key dialing sequences listed in Table 5.
Figure 11. ROLMphone 400 Telephone
Also, refer to the PBX Integration User's Guide for more detailed information about programmable keys.
Table 5. Siemens ROLMphone 400 Direct Key Dialing Sequences
Dial Code |
Key Description |
<ESC>K0 |
Dialpad 0 |
<ESC>K1 |
Dialpad 1 |
<ESC>K2 |
Dialpad 2 |
<ESC>K3 |
Dialpad 3 |
<ESC>K4 |
Dialpad 4 |
<ESC>K5 |
Dialpad 5 |
<ESC>K6 |
Dialpad 6 |
<ESC>K7 |
Dialpad 7 |
<ESC>K8 |
Dialpad 8 |
<ESC>K9 |
Dialpad 9 |
<ESC>K* |
Dialpad * |
<ESC>K# |
Dialpad # |
<ESC>KA |
Feature Key 09 - LINE |
<ESC>KB |
Feature Key 08 |
<ESC>KC |
Feature Key 07 |
<ESC>KD |
Feature Key 06 - CLEAR |
<ESC>KE |
Feature Key 05 |
<ESC>KF |
Feature Key 04 - DDS (for Message Waiting Light OFF) |
<ESC>KG |
Feature Key 03 - DDS (for Message Waiting Light ON) |
<ESC>KH |
Feature Key 02 |
<ESC>KI |
Feature Key 01 - MAILBOX (MWL) |
<ESC>KJ |
Feature Key 15 |
<ESC>KK |
Feature Key 14 |
<ESC>KL |
Feature Key 13 |
<ESC>KM |
Feature Key 12 |
<ESC>KN |
Feature Key 11 |
<ESC>KO |
Feature Key 20 - PROG |
<ESC>KP |
Feature Key 19 |
<ESC>KQ |
Feature Key 18 |
<ESC>KR |
Feature Key 17 |
<ESC>KS |
Feature Key 16 |
<ESC>KT |
Feature Key 25 |
<ESC>KU |
Feature Key 24 |
<ESC>KV |
Feature Key 23 |
<ESC>KW |
Feature Key 22 |
<ESC>KX |
Feature Key 21 |
<ESC>KY |
Feature Key 35 |
<ESC>KZ |
Feature Key 34 |
<ESC>Ka |
Feature Key 33 |
<ESC>Kb |
Feature Key 32 |
<ESC>Kc |
Feature Key 31 |
<ESC>Kd |
Feature Key 29 |
<ESC>Ke |
Feature Key 28 |
<ESC>Kf |
Feature Key 27 |
<ESC>Kg |
Feature Key 26 |
<ESC>Kh |
Feature Key 37 - MWCTR |
<ESC>Ki |
Feature Key 36 - SPEAKER |
<ESC>Kj |
Feature Key 40 - Volume Down |
<ESC>Kk |
Feature Key 39 - Volume Up |
<ESC>Kl |
Feature Key 10 |
<ESC>Km |
Feature Key 30 |
<ESC>Kn |
Feature Key 38 - XFER |
<ESC>DI |
Enable in-band signaling |
<ESC>DO |
Siemens HicomTo access the dial string features on a Siemens Hicom Optiset E telephone, depending on which PBX you are using, refer to Figure 12 and Figure 13, along with the direct key dialing sequences listed in Table 6 and Table 7. Also, refer to the PBX Integration User's Guide for more detailed information about programmable keys.
Figure 12. Siemens Optiset E Telephone with a Hicom 150E
Table 6. Siemens Hicom Optiset E Direct Key Dialing Sequences with Hicom 150E
Dial Code |
Key Description |
<ESC>K0 |
Dialpad 0 |
<ESC>K1 |
Dialpad 1 |
<ESC>K2 |
Dialpad 2 |
<ESC>K3 |
Dialpad 3 |
<ESC>K4 |
Dialpad 4 |
<ESC>K5 |
Dialpad 5 |
<ESC>K6 |
Dialpad 6 |
<ESC>K7 |
Dialpad 7 |
<ESC>K8 |
Dialpad 8 |
<ESC>K9 |
Dialpad 9 |
<ESC>K* |
Dialpad * |
<ESC>K# |
Dialpad # |
<ESC>KA |
Feature Key 00 - Service Menu |
<ESC>KB |
Feature Key 01 - Redial |
<ESC>KC |
Feature Key 02 - Mute |
<ESC>KD |
Feature Key 03 - Speaker |
<ESC>KE |
Feature Key 04 - General Call |
<ESC>KF |
Feature Key 05 - Send Message |
<ESC>KG |
Feature Key 06 - Consultation |
<ESC>KH |
Feature Key 07 |
<ESC>KI |
Feature Key 08 |
<ESC>KJ |
Feature Key 09 |
<ESC>KK |
Feature Key 10 |
<ESC>KL |
Feature Key 11 - Release |
<ESC>KM |
Select OptiGuide key (for selecting display options) |
<ESC>KN |
Scroll Back OptiGuide key (for scrolling display options) |
<ESC>KO |
Scroll Forward OptiGuide key (for scrolling display options) |
<ESC>KP |
Plus (+) key |
<ESC>KQ |
Minus (-) key |
<ESC>DI |
Enable in-band signaling |
<ESC>DO |
Figure 13. Siemens Optiset E Telephone with a Hicom 300E

Table 7. Siemens Hicom Optiset E Direct Key Dialing Sequences with Hicom 300E
Dial Code |
Key Description |
<ESC>K0 |
Dialpad 0 |
<ESC>K1 |
Dialpad 1 |
<ESC>K2 |
Dialpad 2 |
<ESC>K3 |
Dialpad 3 |
<ESC>K4 |
Dialpad 4 |
<ESC>K5 |
Dialpad 5 |
<ESC>K6 |
Dialpad 6 |
<ESC>K7 |
Dialpad 7 |
<ESC>K8 |
Dialpad 8 |
<ESC>K9 |
Dialpad 9 |
<ESC>K* |
Dialpad * |
<ESC>K# |
Dialpad # |
<ESC>KA |
Feature Key 00 - Mailbox |
<ESC>KB |
Feature Key 01 - Callback |
<ESC>KC |
Feature Key 02 - (Configure to dial MWL_ON) |
<ESC>KD |
Feature Key 03 - (Configure to dial MWL_OFF) |
<ESC>KE |
Feature Key 04 - Programmable |
<ESC>KF |
Feature Key 05 - Programmable |
<ESC>KG |
Feature Key 06 - Consultation |
<ESC>KH |
Feature Key 07- Line |
<ESC>KI |
Feature Key 08 - Line |
<ESC>KJ |
Feature Key 09 - Line |
<ESC>KK |
Feature Key 10 - Line |
<ESC>KL |
Feature Key 11 - General Call |
<ESC>KM |
Select OptiGuide key (for selecting display options) |
<ESC>KN |
Scroll Back OptiGuide key (for scrolling display options) |
<ESC>KO |
Scroll Forward OptiGuide key (for scrolling display options) |
<ESC>KP |
Plus (+) key |
<ESC>KQ |
Minus (-) key |
<ESC>DI |
Enable in-band signaling |
<ESC>DO |
MITEL SX Series PBXsTo access the dial string features on a MITEL SUPERSET 420 and 430 telephones, refer to Figure 14 and Table 8 and use the direct key dialing sequences listed in Figure 15 and Table 9. Also, refer to the PBX Integration User's Guide for more detailed information about programmable keys.
Figure 14. MITEL SUPERSET 420 Telephone

Table 8. MITEL SX SUPERSET 420 Direct Key Dialing Sequences
Dial Code |
Key Description |
<ESC>K0 |
Dialpad 0 |
<ESC>K1 |
Dialpad 1 |
<ESC>K2 |
Dialpad 2 |
<ESC>K3 |
Dialpad 3 |
<ESC>K4 |
Dialpad 4 |
<ESC>K5 |
Dialpad 5 |
<ESC>K6 |
Dialpad 6 |
<ESC>K7 |
Dialpad 7 |
<ESC>K8 |
Dialpad 8 |
<ESC>K9 |
Dialpad 9 |
<ESC>K* |
Dialpad * |
<ESC>K# |
Dialpad # |
<ESC>KA |
Personal Key 00 |
<ESC>KB |
Personal Key 06 |
<ESC>KC |
Personal Key 01 |
<ESC>KD |
Personal Key 07 |
<ESC>KE |
Personal Key 02 |
<ESC>KF |
Personal Key 08 |
<ESC>KG |
Personal Key 03 |
<ESC>KH |
Personal Key 09 |
<ESC>KI |
Personal Key 04 |
<ESC>KJ |
Personal Key 10 |
<ESC>KK |
Personal Key 05 |
<ESC>KL |
Personal Key 11 |
<ESC>KM |
Message Key |
<ESC>KN |
SuperKey |
<ESC>KO |
Cancel |
<ESC>KP |
Microphone |
<ESC>KQ |
Hold |
<ESC>KR |
Redial |
<ESC>KS |
Speaker |
<ESC>KT |
Trans/Conf |
<ESC>KU |
V/T/C up |
<ESC>KV |
V/T/C down |
<ESC>Ka |
Left Softkey |
<ESC>Kb |
Middle Softkey |
<ESC>Kc |
Right Softkey |
<ESC>DI |
Enable in-band signaling |
<ESC>DO |
Figure 15. MITEL SUPERSET 430 Telephone

Table 9. MITEL SX SUPERSET 430 Direct Key Dialing Sequences
Dial Code |
Key Description |
<ESC>K0 |
Dialpad 0 |
<ESC>K1 |
Dialpad 1 |
<ESC>K2 |
Dialpad 2 |
<ESC>K3 |
Dialpad 3 |
<ESC>K4 |
Dialpad 4 |
<ESC>K5 |
Dialpad 5 |
<ESC>K6 |
Dialpad 6 |
<ESC>K7 |
Dialpad 7 |
<ESC>K8 |
Dialpad 8 |
<ESC>K9 |
Dialpad 9 |
<ESC>K* |
Dialpad * |
<ESC>K# |
Dialpad # |
<ESC>KA |
Personal Key 00 |
<ESC>KB |
Personal Key 06 |
<ESC>KC |
Personal Key 01 |
<ESC>KD |
Personal Key 07 |
<ESC>KE |
Personal Key 02 |
<ESC>KF |
Personal Key 08 |
<ESC>KG |
Personal Key 03 |
<ESC>KH |
Personal Key 09 |
<ESC>KI |
Personal Key 04 |
<ESC>KJ |
Personal Key 10 |
<ESC>KK |
Personal Key 05 |
<ESC>KL |
Personal Key 11 |
<ESC>KM |
Message Key |
<ESC>KN |
SuperKey |
<ESC>KO |
Not Used |
<ESC>KP |
Microphone |
<ESC>KQ |
Hold |
<ESC>KR |
Applications |
<ESC>KS |
Speaker |
<ESC>KT |
Not Used |
<ESC>KU |
V/T/C up |
<ESC>KV |
V/T/C down |
<ESC>Ka |
Top Left Softkey |
<ESC>Kb |
Top Middle Softkey |
<ESC>Kc |
Top Right Softkey |
<ESC>Kd |
Bottom Left Softkey |
<ESC>Ke |
Bottom Middle Softkey |
<ESC>Kf |
Bottom Right Softkey |
<ESC>DI |
Enable in-band signaling |
<ESC>DO |
Nortel NorstarTo access the dial string features on a Nortel Model 7324 telephone, refer to Figure 16 and while using the direct key dialing sequences listed in Table 10 and. Also, refer to the PBX Integration User's Guide for more detailed information about programmable keys.
Figure 16. Nortel M7324 Telephone
Table 10. Nortel Norstar M7324 Direct Key Dialing Sequences
Dial Code |
Key Description |
<ESC>K0 |
Memory Button 00 |
<ESC>K1 |
Memory Button 01 |
<ESC>K2 |
Memory Button 02 |
<ESC>K3 |
Memory Button 03 |
<ESC>K4 |
Memory Button 04 |
<ESC>K5 |
Memory Button 05 |
<ESC>K6 |
Memory Button 06 |
<ESC>K7 |
Memory Button 07 |
<ESC>K8 |
Memory Button 08 |
<ESC>K9 |
Memory Button 09 |
<ESC>KA |
Dialpad 0 |
<ESC>KB |
Dialpad 1 |
<ESC>KC |
Dialpad 2 |
<ESC>KD |
Dialpad 3 |
<ESC>KE |
Dialpad 4 |
<ESC>KF |
Dialpad 5 |
<ESC>KG |
Dialpad 6 |
<ESC>KH |
Dialpad 7 |
<ESC>KI |
Dialpad 8 |
<ESC>KJ |
Dialpad 9 |
<ESC>KK |
Dialpad * |
<ESC>KL |
Dialpad # |
<ESC>KM |
Release |
<ESC>KN |
Feature |
<ESC>KO |
Hold |
<ESC>KP |
Display button 00 |
<ESC>KQ |
Display button 01 |
<ESC>KR |
Display button 02 |
<ESC>KS |
Memory Button 10 |
<ESC>KT |
Memory Button 11 |
<ESC>KU |
Memory Button 12 |
<ESC>KV |
Memory Button 13 |
<ESC>KW |
Memory Button 14 |
<ESC>KX |
Memory Button 15 |
<ESC>KY |
Memory Button 16 |
<ESC>KZ |
Memory Button 17 |
<ESC>Ka |
Memory Button 18 |
<ESC>Kb |
Memory Button 19 |
<ESC>Kc |
Memory Button 20 |
<ESC>Kd |
Memory Button 21 |
<ESC>Ke |
Memory Button 22 |
<ESC>Kf |
Memory Button 23 |
<ESC>DI |
Enable in-band signaling |
<ESC>DO |
Nortel Meridian 1 M2616To access the dial string features on a Nortel Model 2616 telephone, refer to Figure 17 and use the direct key dialing sequences listed in Table 11. Also, refer to the PBX Integration User's Guide for more detailed information about programmable keys.
Figure 17. Nortel Meridian 1 M2616 Telephone
Table 11. Nortel Meridian 1 M2616 Direct Key Dialing Sequences
Dial Code |
Key Description |
<ESC>K0 |
Dialpad 0 |
<ESC>K1 |
Dialpad 1 |
<ESC>K2 |
Dialpad 2 |
<ESC>K3 |
Dialpad 3 |
<ESC>K4 |
Dialpad 4 |
<ESC>K5 |
Dialpad 5 |
<ESC>K6 |
Dialpad 6 |
<ESC>K7 |
Dialpad 7 |
<ESC>K8 |
Dialpad 8 |
<ESC>K9 |
Dialpad 9 |
<ESC>K* |
Dialpad * |
<ESC>K# |
Dialpad # |
<ESC>KA |
Feature Key 00 - Primary Call |
<ESC>KB |
Feature Key 01 |
<ESC>KC |
Feature Key 02 |
<ESC>KD |
Feature Key 03 - Transfer |
<ESC>KE |
Feature Key 04 |
<ESC>KF |
Feature Key 05 |
<ESC>KG |
Feature Key 06 |
<ESC>KH |
Feature Key 07 - Program |
<ESC>KI |
Feature Key 08 |
<ESC>KJ |
Feature Key 09 |
<ESC>KK |
Feature Key 10 |
<ESC>KL |
Feature Key 11 |
<ESC>KM |
Feature Key 12 |
<ESC>KN |
Feature Key 13 |
<ESC>KO |
Feature Key 14 |
<ESC>KP |
Feature Key 15 |
<ESC>KQ |
Hold |
<ESC>KR |
Release |
<ESC>DI |
Enable in-band signaling |
<ESC>DO |
Exampleint cd; /* channel descriptor */
char digstr[40];
int set_dpk()
{
/* set up dial string to press Speaker key */
switch (ATD4_CHTYPE(cd))
{
case TYP_D/82M1:
sprintf(digstr,"%cKD",ESC);
break;
case TYP_D/82L4:
case TYP_D/82L2:
sprintf(digstr,"%cKl",ESC);
break;
}
/* Program dial programmable key */
if (dx_dial(cd,digstr,NULL, EV_SYNC))
{
printf("\nDial failed\n");
exit(1);
}
exit(0);
}
4.2.5. Transferring a Call
DescriptionThe hook flash character ("&" by default) is used to initiate a transfer instead of an escape sequence as in the other feature dial strings. The hook flash is used because many PBX switches commonly use a hook flash as a transfer key. The following procedure is used by an application to transfer a call:
&,<extension>
where "&" is the hook flash character, the comma (",") is a pause, and <extension> is the extension to which the call is being transferred.
The pause in the dial string is required. The pause gives the PBX time to activate the feature. Instead of a pause, you can use the Dialogic Enhanced Call Progress Analysis (ECPA) to detect a dial tone before dialing an extension. When the control character "L" is used in the dial string, the dx_dial( ) function waits for a dial tone before dialing. For example, to transfer to extension 555:
dx_initcallp(chdev) dx_dial(channel, "&L555",NULL, EV_SYNC)
You can also use The Dialogic Global Tone Detection (GTD) to detect a dial tone before dialing an extension. For example, to transfer to extension 555:
dx_dial(chdev, "&",NULL, EV_SYNC) */ add code here to wait for tone event /* dx_dial (chdev, "555" ,NULL, EV_SYNC)
Refer to the Voice Software Reference for more information about using ECPA and GTD.
Exampleint cd; /* channel descriptor */
char digstr[40];
int transfer_call()
{
/* transfer the call */
if (dx_dial(cd,"&,555",NULL,EV_SYNC) == -1)
{
printf("\nDial failed\n");
exit (1);
}
/* set the channel onhook after the transfer */
if (dx_sethook(cd, DX_ONHOOK, EV_SYNC) == -1)
{
/* process error */
exit(1);
}
exit (0);
}
4.2.6. In-Band/Out-of-Band SignalingIn-band signaling is a method used by analog (2500) telephones to communicate with PBXs (e.g., calling into a PBX and using DTMF to respond to voice prompts). In-band signals use the same band of frequencies as the voice signal. The in-band signaling method provides limited integration because there are no standards and different PBXs provide varying levels of control.
Out-of-band signaling is used by PBXs to communicate with their station sets or a CT computer. Out-of-band signals do not use the band of frequencies used by the voice signals. The PBX transmits data that can include information such as called/calling number ID. Because of its versatility, out-of-band signaling is the preferred method.
In-band signaling must be used when DTMF tones are required to communicate (e.g., connecting two voice mail systems through a CO using AMIS--Automated Messaging Interchange Specification). If out-of-band signaling is used, timing problems may occur because digit data (dial pad) sent from the station set (or PBX Integration board) to the PBX are converted to DTMF and then sent to the CO.
PBX Integration boards can be set to communicate using either in-band or out-of-band signaling (refer to Table 12). Characters are not case sensitive for this dial string.
Table 12. Setting In-band and Out-of-band Signaling
DTMF Signaling |
|||
PBX |
In-band |
Out-of-band |
Default Signaling |
Lucent 4-wire |
<ESC>DI |
<ESC>DO |
In-band |
Lucent 2-wire |
<ESC>DI |
<ESC>DO |
In-band |
Siemens ROLM |
<ESC>DI |
<ESC>DO |
In-band |
Siemens Hicom |
<ESC>DI |
<ESC>DO |
In-band |
MITEL SX Series |
<ESC>DI |
<ESC>DO |
In-band |
Nortel Meridian 1 |
<ESC>DI |
<ESC>DO |
Out-of-band |
Nortel Norstar |
<ESC>DI |
<ESC>DO |
Out-of-band |
Exampleunsigned int cd; /* channel descriptor */
char digstr[40];
int set_dtmf_signaling()
{
/* set up dial string */
switch (ATD4_CHTYPE(cd))
{
case TYP_D/82M1:
case TYP_D/82L4:
case TYP_D/82L2:
sprintf(digstr,"%cDI",ESC);
break;
}
/* set DTMF signaling to in-band */
if (dx_dial(cd,digstr,NULL,EV_SYNC) == -1)
{
printf("\nDial failed\n");
exit (1);
}
return (0);
}
4.2.7. Disconnect Supervision
DescriptionDisconnect supervision for PBX Integration boards functions the same as other D/4x boards. Refer to the Voice Software Reference for a description on using I/O terminations to perform disconnect supervision in your application.
As part of disconnect supervision, the PBX Integration boards monitor communications with the PBX. If communication is lost with the PBX for 60 seconds, the firmware forces a loop current drop condition until communication is re-established.
4.2.8. Converting Existing D/4x Applications
DescriptionThe PBX Integration, D/42-xx, and D/41 voice boards use the same D/4x voice runtime library and supporting library. However , some modifications are required to convert an existing D/4x application into a PBX Integration application. This conversion only includes new functions provided by the D/42 runtime library. Use the following guidelines to convert an existing D/4x application to an application that uses the D/42 runtime library:
Click here to contact Dialogic Customer Engineering
Copyright 2001, Dialogic Corporation