AMD for outbound calls

Hi Team,

I am trying to achieve the below scenario:

[ul]An a phone is registered in Asterisk.

When the phone dials out, I need to do AMD.

If the answerer is a Machine, then I need to play a prompt “Machine”, then let the caller to leave a voicemail.
If the answerer is Human, then play the prompt “Human”, then let the caller have a conversation with person.

[/ul]

Below is my macro that connects the call.

[macro-trunkdial-failover-0.3]
exten = s,1,GotoIf($[${LEN(${FMCIDNUM})} > 6]?1-fmsetcid,1)
exten = s,n,GotoIf($[${LEN(${GLOBAL_OUTBOUNDCIDNAME})} > 1]?1-setgbobname,1)
exten = s,n,GotoIf($[${LEN(${CALLERID(num)})} > 6]?1-dial,1)
exten = s,n,Set(CALLERID(all)=${IF($[${LEN(${CID_${ARG3}})} > 6]?${CID_${ARG3}}:${GLOBAL_OUTBOUNDCID})})
exten = s,n,Set(CALLERID(all)=${IF($[${LEN(${ARG5})} > 2]?${ARG5}:)})
exten = s,n,Goto(1-dial,1)
exten = 1-setgbobname,1,Set(CALLERID(name)=${GLOBAL_OUTBOUNDCIDNAME})
exten = 1-setgbobname,n,Goto(s,3)
exten = 1-fmsetcid,1,Set(CALLERID(num)=${FMCIDNUM})
exten = 1-fmsetcid,n,Set(CALLERID(name)=${FMCIDNAME})
exten = 1-fmsetcid,n,Goto(s,4)
exten = 1-dial,1,Dial(${ARG1})
exten = 1-dial,n,Gotoif(${LEN(${ARG2})} > 0 ?1-${DIALSTATUS},1:1-out,1)
exten = 1-CHANUNAVAIL,1,Dial(${ARG2})
exten = 1-CHANUNAVAIL,n,Hangup()
exten = 1-CONGESTION,1,Dial(${ARG2})
exten = 1-CONGESTION,n,Hangup()
exten = 1-out,1,Hangup()

I understand that below context will do the AMD,

exten => s,n,AMD(2000,2000,1000,5000,120,50,4,256) exten => s,n,GotoIf($[${AMDSTATUS}=HUMAN]?humn:mach) exten => s,n(mach),WaitForSilence(2000,2,10) exten => s,n,Playback(vm-machine) exten => s,n(humn),WaitForSilence(500) exten => s,n,Playback(vm-human)

Any pointers, how do I make the AMD context work with my above macro?

Thanks!

Why do you want to record Machine on the answering machine and tell the human callee they are human? Both AMD and Playback will be run on the same channel.

Why do you want to tell the human caller whether the machine thinks it is talking to an answering machine? Human’s are much better at detecting answering machines than any computer algorithm.

[quote=“david55”]Why do you want to record Machine on the answering machine and tell the human callee they are human? Both AMD and Playback will be run on the same channel.

Why do you want to tell the human caller whether the machine thinks it is talking to an answering machine? Human’s are much better at detecting answering machines than any computer algorithm.[/quote]

At the end of this exercise, the plan is to send custom SIP Bye messages, so that machine contacts and human contacts could be logged. But I first want to get things going with AMD, then move to the secondary target.