Toolpack monitoring isdn analyzer
Toolpack ISDN Analyzer is a class that uses Media-only legs and monitoring API to capture HDLC frames from ISDN D-channel timeslot.
The captured ISDN HDLC frames are analyzed, to identify Q.921 and Q.931 frames from the HDLC frames.
Then, ISDN calls are identified from the analyzed Q.931 packets.
Capturing each direction of each D-Channel
The ISDN analyzer will allocate a pair TDM media-only call legs for each Line service of the ISDN stack that has a D-Channel (primary D-Channel, and backup D-Channel if appropriate).
- The primary Line service of the ISDN stack holds the primary D-channel (timeslot 16 for E1, timeslot 24 for T1/J1).
- For NFAS ISDN stacks, multiple Line services are used. An optional backup D-channel may be present among these line services.
Typical ISDN analyzer call flow
A typical ISDN analyzer call goes as follows:
- ISDN Q.931 "SETUP" message is detected
- ISDN IEs are analyzed to extract relevant information
- Call id
- Channel identification
- Calling/called numbers
- And others...
- A new "analyzed" call context is created, bound with the call id
- ISDN IEs are analyzed to extract relevant information
- ISDN Q.931 "PROCEEDING" is detected
- The call changes to "accepted" state
- ISDN Q.931 "ALERTING" is detected
- The call changes to "alerting" state
- ISDN Q.931 "CONNECT" is detected
- The call changes to "answered" state
- ISDN Q.931 "DISCONNECT" is detected
- The call changes to "terminating" state
- ISDN Q.931 "RELEASE" is detected
- The call changes to "terinated" state
- ISDN Q.931 "RELEASE_COMPLETE" is detected
- The call context is destroyed
Forwarding analyzed call states to application
Each analyzer has been provided a pointer to a "parent" application (a "user") to inform of call state changes.
This "user" is a class that implement the interface ITBCAFAnalyzerUser.
This interface will provide the "user" with the following callbacks from the analyzer, to report new calls and state changes:
- OnAnalyzerCallLegPresent: A new ISDN call was detected
- OnAnalyzerCallLegAccepted: A ISDN call is now "accepted"
- OnAnalyzerCallLegAlerting: A ISDN call is now "alerting" (ringing)
- OnAnalyzerCallLegAnswered: A ISDN call is now "answered"
- OnAnalyzerCallLegTerminating: A ISDN call is now "terminating"
- OnAnalyzerCallLegTerminated: A ISDN call is now terminated
- OnAnalyzerCallLegSuppInfo: Other ISDN message (non call-state affecting) was received
It's up to the user application to decide what should be done with analyzed calls and state changes.