Calls using IP Office are designed as a communications line between two endpoints, A and B respectively. A is always present, but B might not be present, depending on the state of the call. B endpoints are typically extensions or trunks, but they can also be connected to the voice mail system or parked.
The following types of real-time events are generated by DevLink and used to track the call throughout its lifetime:
S events provide information on call status. S events are generated when calls are first created, answered, or the status of a device involved in the call changes.
D events are generated when the call is completed or abandoned. D events indicate that the call no longer exists.
A events are generated when one end of a call is connected to a line, such as an ISDN, QSig, or VoIP line. IP Office swaps the A and B end of the call. This event occurs when:
Applications request information real-time events by calling the DLRegisterType2CallDeltas() function after they are connected to IP Office: LONG PASCAL DLRegisterType2CallDeltas( HANDLE pbxh, CommsEvent cb );.
This request registers a function provided by the CommsEvent type. The function is called by DevLink when a real-time event is generated: typedef void (CALLBACK * CommsEvent)( LONG pbxh, TEXT * info );
The pbxh and info parameters are provided. The pbxh parameter is the identifier used in the call to DLOpen() and can be used to identify the system when the application is connected to multiple IP Office systems. The info parameter is a string containing the call record. The call record is a comma-separated string, with variable width fields. The string is always less than 1500 bytes in length inclusive of a terminating Null character.