I would like to know why DIALSTATUS is always returning NOANSWER, when the extension is on DND, or is busy on another call. I am expecting to get BUSY returned. I also don’t get any fast busy signal, it goes to voicemail. But the most important thing, I would like BUSY returned.
Using Asterisk 11, this is some old code, but I assume it used to work before.
exten => s, n, Set(DESTINATION_STATUS=${IF($["${DIALSTATUS}" = “BUSY”]?BUSY:UNAVAILABLE)})
This is the Dial:
– Executing [s~xxx~108~beep@AUDIO_INJECT:15] Dial(“Local/s~xxx~108~beep@AUDIO_INJECT-00000011;2”, “LOCAL/customer-proxy-0000000e@AUDIO_INJECT_CONNECTOR,5,gL(5)A(beep)”) in new stack
When I set DND on the phone, I get:
– Local/s@NoDeviceRing-00000010;1 is ringing
– Got SIP response 486 “Busy Here” back from …
That’s no longer supported. However, it does translate 486 to AST_CAUSE_BUSY, so should end up with a BUSY DIALSTATUS.
However, the other question is what does customer-proxy-0000000e@AUDIO_INJECT_CONNECTOR do? If, for example it output any sort of early media message about the busy, your very short timeout could well be exceeded before the original hangup cause was propagated.
It’s one of the options in the system to record a call. If I remove, I get something like this:
-- Executing [s@PHONE:22] ExecIf("SIP/customer-proxy-00000018", "0?Dial(SIP/xxx@xxnet&Local/s@NoDeviceRing&SIP/~xxx@mobile,10,M(rewrite_cdr_dialed^@xxx):Dial(SIP/xxx@xxxnet&Local/s@NoDeviceRing,10,M(rewrite_cdr_dialed))") in new stack
Someone that use Local Channel on dialplan can solve this DIALSTATUS looking into h@context.
In other hand I doubt you have done this dialplan. Are you using some web interface to help with management?