I am using a Local channel in order to provide a layer of processing
when dialling out. I have put a timeout on the inner dial, which returns
a DIALSTATUS of NOANSWER if the call times out while ringing.

However, this then causes the Local channel to return CHANUNAVAIL
instead of NOANSWER, because effectively the proxy channel has just gone
away.

Here is a simplified example:

[test]
exten => _X.,1,Dial(Local/${EXTEN}@outbound)
exten => _X.,n,NoOp(${CONTEXT}:DIALSTATUS=${DIALSTATUS})

[outbound]
exten => _X.,1,Dial(SIP/ext${EXTEN},30)
exten => _X.,n,NoOp(${CONTEXT}:DIALSTATUS=${DIALSTATUS})

So if I don't answer within 30 sec, I see outbound:DIALSTATUS=NOANSWER
but test:DIALSTATUS=CHANUNAVAIL

If instead I put the timeout on the outer Dial instead, I see
test:DIALSTATUS=NOANSWER and outbound:DIALSTATUS=CANCEL, because the
Local channel hung up the inner Dial while it was still ringing.

So I understand the reasons for the above behaviours, but my question
is: How can I propagate the NOANSWER status upwards from the inner Dial,
so that the Local channel also returns NOANSWER?

Cheers
Tony
-- 
Tony Mountifield
Work: t...@softins.co.uk - http://www.softins.co.uk
Play: t...@mountifield.org - http://tony.mountifield.org

--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
               http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to