
Description | Cautions | Lucent 7434 | Example | Siemens ROLM | Example | Siemens Hicom | Example | MITEL SX | Example | Nortel Norstar | Example | Nortel Meridian | Example | Example | Errors
ED42_BADDEVICE |
Invalid or wrong device handle | ||
ED42_UNSUPPORTED |
Function not supported on this board | ||
ED42_SYSTEM |
System level error | ||
ED42_INVALARG |
Invalid argument passed to function | ||
Name: |
|||
Inputs: |
int devh |
| |
char *bufferp |
| ||
Returns: |
0 |
| |
-1 |
| ||
Includes: |
D42LIB.H | ||
Mode: |
synchronous | ||
The d42_indicators( ) function retrieves the current LCD or LED indicators status and places it in an application buffer. The application buffer must be 49 bytes, and will hold the entire bit mask (see below) representing the status of each indicator. Refer to the PBX Integration User's Guide for more information specific to your switch. Examples showing the contents of the application buffer for each supported switch are as follows:
PBX |
Number of Indicators |
Lucent 7434 4-wire |
41 indicators |
Lucent 8434 2-wire |
34 indicators |
Siemens/ROLM 35 indicators
Siemens Hicom |
12 indicators |
MITEL SUPERSET 400 |
12 indicators |
Nortel Norstar M7324 |
24 indicators |
Nortel Meridian 1 M2616 |
16 indicators |
Parameter |
Description |
devh: |
specifies the valid channel device descriptor obtained by a call to dx_open( ) |
bufferp: |
pointer to the application buffer; the indicator is placed here |
The application buffer must be 49 bytes. The length of the line indicator data is variable (currently 126-34 bytes), and is stored as bit mask. An application that passes anything smaller will not be compatible.
Lucent 7434 (4-Wire) and Lucent 8434 (2-Wire)
On the Lucent 7434 telephone, there are a total of 34 sets of line indicators (a set of two indicators, with red on the left and green on the right). Twelve LEC Line Indicators are located to the left of line keys 00-23. In addition, there are 10 LEC Line Indicators located to the left of line keys 24-33 (see Figure 1).
Like the 7434, the Lucent 8434 also has a total of 34 sets of line indicators (a set of two indicators, with red the top and green on the bottom) on the Lucent 8434 telephone, but their arrangement is somewhat different (see Figure 2). Twelve LEC Line Indicators are located to the left of line keys 00-11 and 12 LEC Line Indicators to the right of keys 12-23 on the Lucent 8434 telephone. In addition, there are five LEC Line Indicators located to the left of line keys 24-28 and five LEC Line Indicators located to the right of line keys 29-33.
For both phones, the indicator status data stored in the application buffer is 34 bytes long. Bytes 0-33 contain the indicator status of Feature Buttons 0-33, respectively.
As mentioned above, each line or feature button actually has two indicator lights. The red indicator tells the user that the line is being used or that the line will be the one used when the handset is lifted. The green indicator (bottom on the 8434 and right on the 7434) tells the user that the line or feature is in use. In other words, when you pick up the handset or press a feature button, the green indicator goes on.
When a call is on hold, the green indicator for that line flashes and the red indicator goes off. The red light is either off or on (a value of eight [0x08] indicates ON), while the green light has six possible values.
The status of the indicators is obtained by bitwise-ANDing the returned value from the green light with the value from the red light (green light value + red light value). In other words, the value for a line indicator in use with a call would be nine--0x08 (for red light on) + 0x01 (for green light on). The status conditions for each byte of the green light are defined as follows:
Value (in HEX) |
State |
0x00 |
off |
0x01 |
on |
0x02 |
ringing |
0x03 |
hold |
0x04 |
error |
0x05 |
unknown |
If the data for byte 19 is 0x09 and byte 28 is 0x03, the red and green indicators are on for Feature Button 19 indicating that the line is in use for a call, and the green indicator for Memory Button 28 is flashing, indicating that the call is on hold. The contents of the application buffer are shown below.
Figure 1. Lucent 7434 (4-wire) Telephone Indicators
Figure 2. Lucent 8434 (2-wire) Telephone Indicators
There are 35 LED Line Indicators located to the left of feature keys 01-09, 11-29, 31-35, and 36-37 on the ROLMphone 400 telephone (see Figure 3), for a total of 35 LED Line Indicators. The line indicator status data stored in the application buffer is 39 bytes long. Bytes 00-39 contain the indicator status for Feature Keys 01-37. Feature Key 01 is the Mail Box or message waiting indicator. Byte 39 is used for the Call Waiting Indicator LED. Note that keys 10, 30, 38-4 0 do not have line indicator LEDs.
Value (in HEX) |
State |
0x00 |
off |
0x01 |
on |
0x02 |
ringing |
0x03 |
hold |
0x04 |
error |
0x05 |
unknown |
If the data for byte 06 is 0x02, the indicator for Feature Key 11 is indicating ringing. If the data for byte 08 is 0x03, the indicator for Feature Key 09 is indicating hold. The contents of the application buffer are shown below.
Figure 3. ROLMphone 400 Telephone Indicators
There are 12 LED Line Indicators looked to the right of Feature Keys 00-11on the Hicom Optiset E telephone. The line indicator status data stored in the application buffer is 12 bytes long. Bytes 0-11 contain the indicator status for line keys 00-11, respectively.
Value (in HEX) |
State |
0x00 |
off |
0x01 |
on |
0x02 |
ringing |
0x03 |
hold |
0x04 |
error |
0x05 |
unknown |
If the data for byte 04 is 0x02, the indicator for Feature Key 04 is indicating ringing. The contents of the application buffer are shown below.

Figure 4. Siemens Optiset E Telephone Indicators
There are six LCD Line Indicators located to the left of Personal Keys 00-05 and six LCD Line Indicators to the right of keys 06-11 on the MITEL SUPERSET 400 Series telephones (see Figure 5), for a total of 12 LCD Line Indicators. The line indicator status data stored in the application buffer is 12 bytes long. Bytes 0-11 contain the indicator status for line keys 00-11, respectively.
Value (in HEX) |
State |
0x00 |
off |
0x01 |
on |
0x02 |
ringing |
0x03 |
hold |
0x04 |
error |
0x05 |
unknown |
If the data for byte 7 is 0x02, the indicator for Personal Key 07 is indicating ringing. The contents of the application buffer are shown below.
Figure 5. MITEL SUPERSET 400 Series Telephone Indicators
As shown in Figure 6, there are 24 LCD Line Indicators located between Programmable Memory Buttons 00-23 on the Model 7324 telephone. The indicator status data stored in the application buffer is 24 bytes long. Bytes 00-23 contain the indicator status of Memory Buttons 00-23, respectively. The status data for each byte is defined as follows:
Value (in HEX) |
State |
0x00 |
off |
0x01 |
on |
0x02 |
ringing |
0x03 |
hold |
0x04 |
error |
0x05 |
unknown |
If the data for byte 16 is 0x02 and byte 19 is 0x01, the indicator for Memory Button 16 indicates ringing and the indicator for Memory Button 19 is on. The contents of the application buffer are shown below.

Figure 6. Nortel Model 7324 Telephone Indicators
As shown in Figure 7, there are 16 LCD Line Indicators located between Programmable Memory Buttons 00-15 on the Model 2616 telephone. The indicator status data stored in the application buffer is 24 bytes long. Bytes 00-23 contain the indicator status of Memory Buttons 00-23, respectively. The status data for each byte is defined as follows:
Value (in HEX) |
State |
0x00 |
off |
0x01 |
on |
0x02 |
ringing |
0x03 |
hold |
0x04 |
error |
0x05 |
unknown |
If the data for byte 04 is 0x01 and byte 10 is 0x02, the indicator for Memory Button 04 is on and the indicator for Memory Button 10 is alerting. The contents of the application buffer are shown below.
Figure 7. Nortel Model 2616 Telephone Indicators
void main(void)
{
int devh;
int rc = 0;
int count;
char bufferp[49];
/* Open Channel Device */
if ( (devh = dx_open("dxxxB1C1",NULL))==-1)
{
printf("Error dx_open()\n");
exit(-1);
} /* End dx_open */
/* Wait for incoming call */
if ( (rc = dx_wtring(devh, 2, DX_ONHOOK, -1))==-1)
{
printf("Error dx_wtring()\n");
dx_close(devh);
exit(-1);
}
/* Get the Calling/Caller Id */
if ( (rc = d42_gtcallid(devh, bufferp)) == -1)
{
printf("Error d42_gtcallid()\n");
dx_close(devh);
exit(-1);
} /* End d42_gtcallid */
printf("Caller Id = %s\n",bufferp);
/* Get the Indicator Information */
if ( (rc = d42_indicators(devh, bufferp)) == -1)
{
printf("Error d42_indicators(): Error Code: %hX\n",dx_errno);
dx_close(devha);
exit(-1);
} /* End d42_indicators*/
for (count = 0; count < 49; count++)
{
printf("Indicator %d = %X\n",count, bufferp[count]);
}
dx_close(devh);
} /* End main */
If this function returns -1 to indicate a failure, one of the following (most common) codes will be contained in dx_errno. For a complete list of error codes and definitions, refer to Appendix C.
Click here to contact Dialogic Customer Engineering
Copyright 2001, Dialogic Corporation