Application control describes the Application Dispatch (AD) process that controls applications. This includes starting applications via the AD process and changing the contents of the AD tables via the AD-Application Programming Interface (API).
Application Dispatch process
The Application Dispatch (AD) process is a permanent, multi-channel IRAPI process that starts (or dispatches) an application on a channel when a new call arrives for that channel. By default, the AD process is the default owner of all the channels on the system. The default owner for a channel receives the IRE_DEFOWNER event when another process initializes a channel and there is no other process waiting for that channel. In other words, the default owner is the process that accepts ownership of a channel when there is no other process that wants the channel. The default owner for a channel is set using the irDefOwn function.
When an out-of-service channel is restored to service via the restore command, the MTC_PROXY process places the channel on-hook and then calls irDeinit for that channel. If there is no process waiting for ownership of that channel, AD receives an IRE_DEFOWNER event for that channel. AD uses irInit to initialize the channel and sets the IRP_CHAN_NEGOTIATION parameter to IRD_ALLOW. This allows another process to irInit the channel if it desires. AD then calls irWait to wait for another IRAPI event.
When the AD process receives an IRE_NEWCALL representing an incoming call for a channel, AD uses the iraQueryADTables function to determine what application should be started on this channel.
Application Dispatch API
The AD-API is a subset of functions within the IRAPI that manipulate the AD tables and the associated service registration files.