[Asterisk-Users] detecting pickup

John Todd jtodd at loligo.com
Wed Jun 4 23:56:57 MST 2003


Let me be a bit more specific about my meaning:

Using a PRI interface, it is possible to get "good" call progress 
supervision, where one can see if the far end has answered.  This is 
also possible with standard Zap interfaces, and certainly with SIP (I 
assume H323 is also possible, but my experience there is weaker.) 
 From our brief conversation, I'll assume you are talking about 
detecting an answer on a Zap line.

Looking at the DEBUG information during a Dial command, you can 
clearly see when a line is picked up.  The Dial program has a 
'timeout' feature, which will count a number of seconds before the 
Dial is aborted if there is no answer.  So, in short, you can do what 
you're asking for with the existing commands.   You are somewhat 
limited with Dial and standard Zap (X100P and FXS) ports as there 
sometimes are difficulties with call progress detection, but many 
people have no problems with that feature, so it's a gamble.

example:

exten => 12345,1,Dial(Zap/g1/12345,30)
exten => 12345,2,Playback(error-has-happened-recording)
exten => 12345,102,Playback(line-is-busy-recording)

You can tell the following things from the Dial statement above:
   a) A call has not been answered in the number of seconds you have 
provided.  The call will proceed to priority 2, and the file 
error-has-happened-recording will be played to the caller.

   b) A call has been answered normally, and terminated normally.  The 
execution will stop at Priority 1, unless you have an "h" context.

   c) The line 12345 was busy, in which case the Dial program will 
jump to extension 102


<pokes Mark>  More cool stuff would be achievable if there were some 
variables that were handed to the dialplan "h" logic after a Dial 
statement was executed (such as "SIP 403 Forbidden" or "Zap 33 
Circuit out of order")  I've whined about this before, though, so 
won't beat that dead horse again.

JT


>Hi,
>
>I have a simple asterisk application that bridges a call to an operator.
>Now I want to detect if this operator has picked up his phone or not.
>Ass John Todd told me on the irc channel, that cannot easily be done
>because Asterisk understands this internally, but does not present these
>data
>to the dial plan...
>
>Is there a solution to my problem or do I have to hack the code...
>I'm sure other people have encountered this problem.. i think it's a nice
>feature.. so if someone has a patch, tell me !
>
>Sincerely,
>
>Bart Ronsyn,
>Leuven (Belgium)
>
>PS. You could suggest working with a timeout of say 30 seconds, but is not
>     100% correct... if the 30 seconds expire, you can certainly say the
>operator
>     has not picked up... it the call ends within the first 30 seconds, you
>can
>     not tell if the operator has picked up his phone or not... correct me if
>i'm
>     wrong...
>



More information about the asterisk-users mailing list