Figure 1 shows the system components involved in processing a voice application when using channel associated signaling. Telephony actions, such as MakeCall, result in signaling information being sent on the digital trunk. Voice processing actions, such as PlayVoiceSegment, result in audio signals being sent on the voice channel.
State table MakeCall actions are interpreted by the channel process, and passed to the digital trunk device driver, which performs the channel associated signaling required. When the signaling is complete, the digital trunk device driver returns control to the channel process, which maps the result into an edge which is returned to the state table.
Incoming calls are detected by the digital trunk device driver, which notifies the channel process manager. The channel process manager determines which state table to execute, and a channel process is allocated to run the state table.
State table TerminateCall actions are interpreted by the channel process, and passed to the digital trunk device driver, which performs the channel associated signaling required. When the signaling is complete, the digital trunk device driver returns control to the channel process, which maps the result into an edge that is returned to the state table.
The digital trunk device driver detects far-end hangup and notifies the channel process. Subsequent actions executed in the state table that use telephony complete with the Caller Hung Up result. Not all channel associated signaling protocols can detect far-end hangup. In this case, the digital trunk device driver hangs up the call when it has determined that there has been no voice energy on the line, or there has been a constant or cadenced tone on the line, for a predefined length of time. The state table action completes with the Caller Hung Up result.