Hello,
I have switched on DND on a SNOM 360. When I call this phone, I get the
following output:
-- Executing [93 at local:1] Dial("SIP/user4-0821b0e8",
"SIP/user3|20|tr") in new stack
-- Called user3
-- Got SIP response 480 "Do Not Disturb" back from 192.168.0.34
-- SIP/user3-081f8d20 is circuit-busy
== Everyone is busy/congested at this time (1:0/1/0)
-- Executing [93 at local:2] Goto("SIP/user4-0821b0e8",
"fehler|s-CONGESTION|1") in new stack
-- Goto (fehler,s-CONGESTION,1)
-- Executing [s-CONGESTION at fehler:1]
NoOp("SIP/user4-0821b0e8",
""xCONGESTION"") in new stack
-- Executing [s-CONGESTION at fehler:2]
Hangup("SIP/user4-0821b0e8",
"") in new stack
I'm using a separate context to catch the dialstatus
[fehler]
exten => s-NOANSWER,1,NoOp("xNOANSWER")
exten => s-NOANSWER,2,Hangup
exten => s-CHANUNAVAIL,1,NoOp("xCHANUNAVAIL")
exten => s-CHANUNAVAIL,2,Hangup
exten => s-BUSY,1,NoOp("xBUSY")
exten => s-BUSY,2,Hangup
exten => s-CONGESTION,1,NoOp("xCONGESTION")
exten => s-CONGESTION,2,Hangup
exten => _s-.,1,NoOp("????")
exten => _s-.,2,Hangup
Now my question is: Is it possible to tell asterisk that SIP 480
shouldn't result in dialstatus CONGESTION, but in dialstatus BUSY?
Thanks for your help,
Stefan
--
********************************************
in-put GbR - Das Linux-Systemhaus
Stefan-Michael Guenther
Geschaeftsfuehrer
Moltkestrasse 49 D-76133 Karlsruhe
Tel./Fax : +49 (0)721 / 83044 - 98/93
http://www.in-put.de
********************************************
Schulungen Installationen
Beratung Support
Voice-over-IP-Loesungen
********************************************
15 apr 2008 kl. 12.06 skrev Stefan Guenther:> Hello, > > I have switched on DND on a SNOM 360. When I call this phone, I get > the > following output: > > -- Executing [93 at local:1] Dial("SIP/user4-0821b0e8", > "SIP/user3|20|tr") in new stack > -- Called user3 > -- Got SIP response 480 "Do Not Disturb" back from 192.168.0.34 > -- SIP/user3-081f8d20 is circuit-busy > == Everyone is busy/congested at this time (1:0/1/0) > -- Executing [93 at local:2] Goto("SIP/user4-0821b0e8", > "fehler|s-CONGESTION|1") in new stack > -- Goto (fehler,s-CONGESTION,1) > -- Executing [s-CONGESTION at fehler:1] NoOp("SIP/user4-0821b0e8", > ""xCONGESTION"") in new stack > -- Executing [s-CONGESTION at fehler:2] Hangup("SIP/user4-0821b0e8", > "") in new stack > > I'm using a separate context to catch the dialstatus > > [fehler] > exten => s-NOANSWER,1,NoOp("xNOANSWER") > exten => s-NOANSWER,2,Hangup > > exten => s-CHANUNAVAIL,1,NoOp("xCHANUNAVAIL") > exten => s-CHANUNAVAIL,2,Hangup > > exten => s-BUSY,1,NoOp("xBUSY") > exten => s-BUSY,2,Hangup > > exten => s-CONGESTION,1,NoOp("xCONGESTION") > exten => s-CONGESTION,2,Hangup > > exten => _s-.,1,NoOp("????") > exten => _s-.,2,Hangup > > Now my question is: Is it possible to tell asterisk that SIP 480 > shouldn't result in dialstatus CONGESTION, but in dialstatus BUSY? >Well, 480 translates to AST_CAUSE_NOANSWER - cause 19 - check by checking HANGUPCAUSE instead of DIALSTATUS and you will get many more details. /Olle
The only solution that I found for this is to use Asterisk 1.4 with devstate backport (http://svncommunity.digium.com/svn/russell/asterisk-1.4/func_devstate-1.4/) and use the hints and to determine if it's inuse (or any other status) before the dialing - in order to generate a proper reply. I didn't find a way to handle the SIP 480 reply using Asterisk 1.2 properly. Note that it's an idea I was about to run but I didn't get to it yet. devstate on test machine compiled fine & seems to be working from first sight. Tomer. Stefan Guenther wrote:> Hello, > > I have switched on DND on a SNOM 360. When I call this phone, I get the > following output: > > -- Executing [93 at local:1] Dial("SIP/user4-0821b0e8", > "SIP/user3|20|tr") in new stack > -- Called user3 > -- Got SIP response 480 "Do Not Disturb" back from 192.168.0.34 > -- SIP/user3-081f8d20 is circuit-busy > == Everyone is busy/congested at this time (1:0/1/0) > -- Executing [93 at local:2] Goto("SIP/user4-0821b0e8", > "fehler|s-CONGESTION|1") in new stack > -- Goto (fehler,s-CONGESTION,1) > -- Executing [s-CONGESTION at fehler:1] NoOp("SIP/user4-0821b0e8", > ""xCONGESTION"") in new stack > -- Executing [s-CONGESTION at fehler:2] Hangup("SIP/user4-0821b0e8", > "") in new stack > > I'm using a separate context to catch the dialstatus > > [fehler] > exten => s-NOANSWER,1,NoOp("xNOANSWER") > exten => s-NOANSWER,2,Hangup > > exten => s-CHANUNAVAIL,1,NoOp("xCHANUNAVAIL") > exten => s-CHANUNAVAIL,2,Hangup > > exten => s-BUSY,1,NoOp("xBUSY") > exten => s-BUSY,2,Hangup > > exten => s-CONGESTION,1,NoOp("xCONGESTION") > exten => s-CONGESTION,2,Hangup > > exten => _s-.,1,NoOp("????") > exten => _s-.,2,Hangup > > Now my question is: Is it possible to tell asterisk that SIP 480 > shouldn't result in dialstatus CONGESTION, but in dialstatus BUSY? > > Thanks for your help, > > Stefan >
Hi,
Johansson Olle E wrote:
>Well, 480 translates to AST_CAUSE_NOANSWER - cause 19 - check by
>checking HANGUPCAUSE instead of DIALSTATUS and you will get many more
>details.
>
Great, that's all I need:
It gives me more ways to analyse the different reason for the hangup and
I can use the different numbers to return different explanations with
Playback(). My client doesn't only want to hear the busy signal, but
wants to play a file with an explanation why the call couldn't be
established.
Thanks again,
Stefan
--
********************************************
in-put GbR - Das Linux-Systemhaus
Stefan-Michael Guenther
Geschaeftsfuehrer
Moltkestrasse 49 D-76133 Karlsruhe
Tel./Fax : +49 (0)721 / 83044 - 98/93
http://www.in-put.de
********************************************
Schulungen Installationen
Beratung Support
Voice-over-IP-Loesungen
********************************************