Incoming call processing
At line 23 in the code we checked if the env
array exists or is nil
.
If env
exists, the script is being executed as API hangup_hook
, the call has been already hung up, there is no session (the call does not exist anymore), but all channel variables have been saved into env
. We'll look into it in the next section.
If env
does not exist then we know the script is called in normal
mode, for example, there is an incoming call and a dialplan extension (in our case 2910
, in welcome.xml
) is calling the script:
Before answering
We are at line 54 right now. The code in the preceding screenshot begins by setting an input callback function. That would be a function that process DTMFs entered by the caller when there is no other DTMF processor in execution (for example, when we are directly playing an audio file, and not while we're playAndGetDigits
a menu, see the following (voice menu processing).
Then we set a hangup
hook function. Note that this is very different from api_hangup_hook...