Summary: | ASTERISK-11560: Why Asterisk replies with "486 Busy Here" if it receives a "603 Decline"? | ||
Reporter: | Iñaki Baz Castillo (ibc) | Labels: | |
Date Opened: | 2008-03-03 06:13:17.000-0600 | Date Closed: | 2011-06-07 14:08:01 |
Priority: | Minor | Regression? | No |
Status: | Closed/Complete | Components: | Channels/chan_sip/Interoperability |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ||
Description: | If Asterisk calls a phone and receives a "603 Decline" from it, it replies a "486 Busy Here" to the caller, why? It makes more sense to reply with a "480 Temporary Unavailable". Also there is a draft about this issue to propose a new response code: 441: Decline (instead of a global "603: Decline"): http://tools.ietf.org/html/draft-worley-6xx-considered-harmful I've tryed and in version 1.4.15, Asterisk replies with "403 Forbidden" if it receives a "603 Decline" from a phone. Afortunatelly this terrible error seems to be "semi"-solved in later versions ;) | ||
Comments: | By: Joshua C. Colp (jcolp) 2008-03-03 09:09:14.000-0600 Please post a complete console output with sip debug so I can see some extra headers that Asterisk adds. By: Iñaki Baz Castillo (ibc) 2008-03-05 04:18:44.000-0600 I paste the full console output. As yuocan see the most important is that after "603 Decline" Asterisk says: -- SIP/201-0820b808 is busy == Everyone is busy/congested at this time (1:1/0/0) -- Auto fallthrough, channel 'SIP/200-0820d3c8' status is 'BUSY' <--- Transmitting (NAT) to 222.111.235.18:5060 ---> SIP/2.0 486 Busy Here Via: SIP/2.0/UDP 192.168.1.58;branch=z9hG4bKxcozppdp;received=222.111.235.18;rport=5060 From: "Twinkleeeee" <sip:200@asterisk-svn.domain.es>;tag=ypyfu To: <sip:201@asterisk-svn.domain.es>;tag=as06f97034 Call-ID: hyztqyrbakbzmbc@ibc.domain.lan CSeq: 766 INVITE User-Agent: Asterisk SVN trunk Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces, timer Content-Length: 0 X-Asterisk-HangupCause: Call Rejected X-Asterisk-HangupCauseCode: 21 Full trace/log: <--- SIP read from UDP://222.111.235.18:5060 ---> INVITE sip:201@asterisk-svn.domain.es SIP/2.0 Via: SIP/2.0/UDP 192.168.1.58;rport;branch=z9hG4bKiyhcisjy Max-Forwards: 70 To: <sip:201@asterisk-svn.domain.es> From: "Twinkleeeee" <sip:200@asterisk-svn.domain.es>;tag=ypyfu Call-ID: hyztqyrbakbzmbc@ibc.domain.lan CSeq: 765 INVITE Contact: <sip:200@192.168.1.58> Content-Type: application/sdp Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO,MESSAGE Supported: replaces,norefersub,100rel User-Agent: Twinkle/1.2alpha2 Content-Length: 308 v=0 o=twinkle 175148285 1275464401 IN IP4 192.168.1.58 s=- c=IN IP4 192.168.1.58 t=0 0 m=audio 8000 RTP/AVP 98 97 8 0 3 101 a=rtpmap:98 speex/16000 a=rtpmap:97 speex/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:3 GSM/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=ptime:20 <-------------> --- (13 headers 14 lines) --- == Using SIP RTP CoS mark 5 Sending to 222.111.235.18 : 5060 (NAT) Using INVITE request as basis request - hyztqyrbakbzmbc@ibc.domain.lan Found user '200' for '200' asterisk-svn*CLI> <--- Reliably Transmitting (NAT) to 222.111.235.18:5060 ---> SIP/2.0 401 Unauthorized Via: SIP/2.0/UDP 192.168.1.58;branch=z9hG4bKiyhcisjy;received=222.111.235.18;rport=5060 From: "Twinkleeeee" <sip:200@asterisk-svn.domain.es>;tag=ypyfu To: <sip:201@asterisk-svn.domain.es>;tag=as7a3c6b91 Call-ID: hyztqyrbakbzmbc@ibc.domain.lan CSeq: 765 INVITE User-Agent: Asterisk SVN trunk Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces, timer WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="3f3a0a64" Content-Length: 0 <------------> Scheduling destruction of SIP dialog 'hyztqyrbakbzmbc@ibc.domain.lan' in 32000 ms (Method: INVITE) asterisk-svn*CLI> <--- SIP read from UDP://222.111.235.18:5060 ---> ACK sip:201@asterisk-svn.domain.es SIP/2.0 Via: SIP/2.0/UDP 192.168.1.58;rport;branch=z9hG4bKiyhcisjy Max-Forwards: 70 To: <sip:201@asterisk-svn.domain.es>;tag=as7a3c6b91 From: "Twinkleeeee" <sip:200@asterisk-svn.domain.es>;tag=ypyfu Call-ID: hyztqyrbakbzmbc@ibc.domain.lan CSeq: 765 ACK User-Agent: Twinkle/1.2alpha2 Content-Length: 0 <-------------> --- (9 headers 0 lines) --- asterisk-svn*CLI> <--- SIP read from UDP://222.111.235.18:5060 ---> INVITE sip:201@asterisk-svn.domain.es SIP/2.0 Via: SIP/2.0/UDP 192.168.1.58;rport;branch=z9hG4bKxcozppdp Max-Forwards: 70 To: <sip:201@asterisk-svn.domain.es> From: "Twinkleeeee" <sip:200@asterisk-svn.domain.es>;tag=ypyfu Call-ID: hyztqyrbakbzmbc@ibc.domain.lan CSeq: 766 INVITE Contact: <sip:200@192.168.1.58> Content-Type: application/sdp Authorization: Digest username="200",realm="asterisk",nonce="3f3a0a64",uri="sip:201@asterisk-svn.domain.es",response="685a91fb5a47c1260db643c320144ffa",algorithm=MD5 Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO,MESSAGE Supported: replaces,norefersub,100rel User-Agent: Twinkle/1.2alpha2 Content-Length: 308 v=0 o=twinkle 175148285 1275464401 IN IP4 192.168.1.58 s=- c=IN IP4 192.168.1.58 t=0 0 m=audio 8000 RTP/AVP 98 97 8 0 3 101 a=rtpmap:98 speex/16000 a=rtpmap:97 speex/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:3 GSM/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=ptime:20 <-------------> --- (14 headers 14 lines) --- Sending to 222.111.235.18 : 5060 (NAT) Using INVITE request as basis request - hyztqyrbakbzmbc@ibc.domain.lan Found user '200' for '200' Found RTP audio format 98 Found RTP audio format 97 Found RTP audio format 8 Found RTP audio format 0 Found RTP audio format 3 Found RTP audio format 101 Peer audio RTP is at port 192.168.1.58:8000 Found audio description format speex for ID 98 Found audio description format speex for ID 97 Found audio description format PCMA for ID 8 Found audio description format PCMU for ID 0 Found audio description format GSM for ID 3 Found audio description format telephone-event for ID 101 Got unsupported a:fmtp in SDP offer Capabilities: us - 0x8000e (gsm|ulaw|alaw|h263), peer - audio=0x20e (gsm|ulaw|alaw|speex)/video=0x0 (nothing)/text=0x0 (nothing), combined - 0xe (gsm|ulaw|alaw) Non-codec capabilities (dtmf): us - 0x1 (telephone-event), peer - 0x1 (telephone-event), combined - 0x1 (telephone-event) Peer audio RTP is at port 192.168.1.58:8000 Looking for 201 in desde-usuarios (domain asterisk-svn.domain.es) list_route: hop: <sip:200@192.168.1.58> <--- Transmitting (NAT) to 222.111.235.18:5060 ---> SIP/2.0 100 Trying Via: SIP/2.0/UDP 192.168.1.58;branch=z9hG4bKxcozppdp;received=222.111.235.18;rport=5060 From: "Twinkleeeee" <sip:200@asterisk-svn.domain.es>;tag=ypyfu To: <sip:201@asterisk-svn.domain.es> Call-ID: hyztqyrbakbzmbc@ibc.domain.lan CSeq: 766 INVITE User-Agent: Asterisk SVN trunk Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces, timer Contact: <sip:201@88.99.0.111:5060> Content-Length: 0 <------------> -- Executing [201@desde-usuarios:1] Dial("SIP/200-0820d3c8", "SIP/201,30,tT") in new stack == Using SIP RTP CoS mark 5 Audio is at 88.99.0.111 port 10322 Adding codec 0x4 (ulaw) to SDP Adding codec 0x2 (gsm) to SDP Adding codec 0x8 (alaw) to SDP Adding non-codec 0x1 (telephone-event) to SDP Reliably Transmitting (NAT) to 222.111.235.18:5060: INVITE sip:201@192.168.1.58 SIP/2.0 Via: SIP/2.0/UDP 88.99.0.111:5060;branch=z9hG4bK73c45c44;rport Max-Forwards: 70 From: "Twinkleeeee" <sip:200@88.99.0.111:5060>;tag=as7ebe1ea6 To: <sip:201@192.168.1.58> Contact: <sip:200@88.99.0.111:5060> Call-ID: 3d70edc44c1c5d6f2f4744e1467b78bb@88.99.0.111 CSeq: 102 INVITE User-Agent: Asterisk SVN trunk Date: Wed, 05 Mar 2008 10:17:32 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces, timer Content-Type: application/sdp Content-Length: 317 v=0 o=root 620478896 620478896 IN IP4 88.99.0.111 s=Asterisk PBX SVN-trunk-r101271M c=IN IP4 88.99.0.111 t=0 0 m=audio 10322 RTP/AVP 0 3 8 101 a=rtpmap:0 PCMU/8000 a=rtpmap:3 GSM/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=silenceSupp:off - - - - a=ptime:20 a=sendrecv --- -- Called 201 asterisk-svn*CLI> <--- SIP read from UDP://222.111.235.18:5060 ---> SIP/2.0 100 Trying Via: SIP/2.0/UDP 88.99.0.111:5060;rport=5060;branch=z9hG4bK73c45c44 To: <sip:201@192.168.1.58> From: "Twinkleeeee" <sip:200@88.99.0.111:5060>;tag=as7ebe1ea6 Call-ID: 3d70edc44c1c5d6f2f4744e1467b78bb@88.99.0.111 CSeq: 102 INVITE Server: Twinkle/1.2alpha2 Content-Length: 0 <-------------> --- (8 headers 0 lines) --- <--- SIP read from UDP://222.111.235.18:5060 ---> SIP/2.0 180 Ringing Via: SIP/2.0/UDP 88.99.0.111:5060;rport=5060;branch=z9hG4bK73c45c44 To: <sip:201@192.168.1.58>;tag=udoed From: "Twinkleeeee" <sip:200@88.99.0.111:5060>;tag=as7ebe1ea6 Call-ID: 3d70edc44c1c5d6f2f4744e1467b78bb@88.99.0.111 CSeq: 102 INVITE Server: Twinkle/1.2alpha2 Content-Length: 0 <-------------> --- (8 headers 0 lines) --- -- SIP/201-0820b808 is ringing <--- Transmitting (NAT) to 222.111.235.18:5060 ---> SIP/2.0 180 Ringing Via: SIP/2.0/UDP 192.168.1.58;branch=z9hG4bKxcozppdp;received=222.111.235.18;rport=5060 From: "Twinkleeeee" <sip:200@asterisk-svn.domain.es>;tag=ypyfu To: <sip:201@asterisk-svn.domain.es>;tag=as06f97034 Call-ID: hyztqyrbakbzmbc@ibc.domain.lan CSeq: 766 INVITE User-Agent: Asterisk SVN trunk Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces, timer Contact: <sip:201@88.99.0.111:5060> Content-Length: 0 <------------> asterisk-svn*CLI> asterisk-svn*CLI> asterisk-svn*CLI> asterisk-svn*CLI> asterisk-svn*CLI> asterisk-svn*CLI> asterisk-svn*CLI> asterisk-svn*CLI> asterisk-svn*CLI> asterisk-svn*CLI> asterisk-svn*CLI> asterisk-svn*CLI> asterisk-svn*CLI> asterisk-svn*CLI> <--- SIP read from UDP://222.111.235.18:5060 ---> SIP/2.0 603 Decline Via: SIP/2.0/UDP 88.99.0.111:5060;rport=5060;branch=z9hG4bK73c45c44 To: <sip:201@192.168.1.58>;tag=udoed From: "Twinkleeeee" <sip:200@88.99.0.111:5060>;tag=as7ebe1ea6 Call-ID: 3d70edc44c1c5d6f2f4744e1467b78bb@88.99.0.111 CSeq: 102 INVITE Server: Twinkle/1.2alpha2 Content-Length: 0 <-------------> --- (8 headers 0 lines) --- -- Got SIP response 603 "Decline" back from 222.111.235.18 Transmitting (NAT) to 222.111.235.18:5060: ACK sip:201@192.168.1.58 SIP/2.0 Via: SIP/2.0/UDP 88.99.0.111:5060;branch=z9hG4bK73c45c44;rport Max-Forwards: 70 From: "Twinkleeeee" <sip:200@88.99.0.111:5060>;tag=as7ebe1ea6 To: <sip:201@192.168.1.58>;tag=udoed Contact: <sip:200@88.99.0.111:5060> Call-ID: 3d70edc44c1c5d6f2f4744e1467b78bb@88.99.0.111 CSeq: 102 ACK User-Agent: Asterisk SVN trunk Content-Length: 0 --- -- SIP/201-0820b808 is busy == Everyone is busy/congested at this time (1:1/0/0) -- Auto fallthrough, channel 'SIP/200-0820d3c8' status is 'BUSY' <--- Transmitting (NAT) to 222.111.235.18:5060 ---> SIP/2.0 486 Busy Here Via: SIP/2.0/UDP 192.168.1.58;branch=z9hG4bKxcozppdp;received=222.111.235.18;rport=5060 From: "Twinkleeeee" <sip:200@asterisk-svn.domain.es>;tag=ypyfu To: <sip:201@asterisk-svn.domain.es>;tag=as06f97034 Call-ID: hyztqyrbakbzmbc@ibc.domain.lan CSeq: 766 INVITE User-Agent: Asterisk SVN trunk Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces, timer Content-Length: 0 X-Asterisk-HangupCause: Call Rejected X-Asterisk-HangupCauseCode: 21 <------------> asterisk-svn*CLI> <--- SIP read from UDP://222.111.235.18:5060 ---> ACK sip:201@asterisk-svn.domain.es SIP/2.0 Via: SIP/2.0/UDP 192.168.1.58;rport;branch=z9hG4bKxcozppdp Max-Forwards: 70 To: <sip:201@asterisk-svn.domain.es>;tag=as06f97034 From: "Twinkleeeee" <sip:200@asterisk-svn.domain.es>;tag=ypyfu Call-ID: hyztqyrbakbzmbc@ibc.domain.lan CSeq: 766 ACK Authorization: Digest username="200",realm="asterisk",nonce="3f3a0a64",uri="sip:201@asterisk-svn.domain.es",response="685a91fb5a47c1260db643c320144ffa",algorithm=MD5 User-Agent: Twinkle/1.2alpha2 Content-Length: 0 <-------------> --- (10 headers 0 lines) --- Really destroying SIP dialog '3d70edc44c1c5d6f2f4744e1467b78bb@88.99.0.111' Method: INVITE Really destroying SIP dialog 'hyztqyrbakbzmbc@ibc.domain.lan' Method: ACK By: Joshua C. Colp (jcolp) 2008-03-05 11:49:47.000-0600 This is a dialplan configuration issue. It is falling through and signalling back busy, as that is what app_dial returns in DIALSTATUS. If you want to pass back a more accurate cause use the Hangup application with a specific cause code. To get the cause code returned by the dial device use ${HANGUPCAUSE}. If you want to see what the values map to it is documented above hangup_cause2sip. |