[asterisk-users] How to use AMD "Answering Machine Detect" ?

Benoit maverick at maverick.eu.org
Wed Jan 7 10:02:32 CST 2009


Daniel Varella a écrit :
> Hi everybody,
>
>    Happy New Year !
>
>    I'm trying to detect if a call was answered by a machine (linke
> voicemail systems) or a human.
>    I would like to use AMD (Answering Machine Detect) command, but
> with my configuration it was not possible get there.
>
>    Follow my dialplan:
>
>      exten => _[789].,1,NoCDR
>      exten => _[789].,n,Dial(SIP/${EXTEN}@111,60)
>      exten => _[789].,n,AMD
>      exten => _[789].,n,NoOp(AMD Status is: ${AMDSTATUS})
>      exten => _[789].,n,Hangup
>
>    What is happening is when the call is answered by the other part,
> Asterisk doesn't go to the next level (exten => _[789].,n,AMD). So AMD
> can't verify the call.
>
> How can I do this ? Any idea ?
>   
iirc AMD is for the other way around, ie detect when a call receive on
your box was made
by an automated machine.

In your case, the extension stop at the Dial() command, except if nobody
answer your call.

However, maybe you can try it with the M(x) argument of Dial():

     *M(*/x/*)*: Executes the macro (x) upon connect of the call (i.e.
when the called party answers). IMPORTANT - The CDR 'billsecs' field is
set to zero if the callee answers the call, but hangs up whilst the
macro is still running (if the callee answers and the macro finishes,
'billsecs' contains the correct value).




More information about the asterisk-users mailing list