Summary: | ASTERISK-07360: Callee's sip response TEMPORARILY_UNAVAILABLE (480) makes asterisk estabilish the connection and send congestion tone | ||
Reporter: | dankleis (dankleis) | Labels: | |
Date Opened: | 2006-07-19 03:41:44 | Date Closed: | 2006-11-12 15:12:08.000-0600 |
Priority: | Minor | Regression? | No |
Status: | Closed/Complete | Components: | Core/General |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) Case__1_480_2-1.log ( 1) Case__2_486_2-1.log | |
Description: | Suppose we have two sip clients registered to asterisk. Client A sends an INVITE message to Client B through asterisk. Client B replies with a TEMPORARILY_UNAVAILABLE (480) message in order to reject the invite. When asterisk receives the TEMPORARILY_UNAVAILABLE message it sends to Client A a 200 (OK) message and estabilishes the connection. After that, asterisk sends the congestion tone into the RTP stream and hangup the connection with a BYE request. Otherwise, if the Client B replies to the INVITE with a BUSY_HERE (486) message, when asterisk receives this message it sends to Client A a SESSION_PROGRESS (183) message, sends the busy tone WITHOUT estabilishing the connection and then closes the RTP stream with a BUSY_HERE (486) message. The problem is the different behaviour between two cases: in the first case the call is not rejected but successfully connected (with a billing time). So we register wrong information in cdr and client hears wrong signaling (congestion tone). ****** ADDITIONAL INFORMATION ****** This is the executed macro: exten = s,1,Set(EXTENSION=${CUT(ARG1,/,2)}) exten = s,n,GotoIf(${EXISTS(${DB(DND/${EXTENSION})})}?s-BUSY,1) exten = s,n,GotoIf(${EXISTS(${DB(CFU/${EXTENSION})})}?${MACRO_CONTEXT},${DB(CFU/${ARG1})},1) exten = s,n,Dial(${ARG1},20,gtTwW) exten = s,n,Goto(s-${DIALSTATUS},1) exten = s-ANSWER,1,Playtones(congestion) exten = s-NOANSWER,1,GotoIf(${EXISTS(${DB(CFNR/${EXTENSION})})}?${MACRO_CONTEXT},${DB(CFNR/${ARG1})},1) exten = s-NOANSWER,n,GotoIf(${EXISTS(${DB(VM/${EXTENSION})})}?skip-vm) exten = s-NOANSWER,n,Voicemail(u${EXTENSION}) exten = s-NOANSWER,n(skip-vm),Playtones(congestion) exten = s-BUSY,1,GotoIf(${EXISTS(${DB(CFB/${EXTENSION})})}?${MACRO_CONTEXT},${DB(CFB/${ARG1})},1) exten = s-BUSY,n,GotoIf(${EXISTS(${DB(VM/${EXTENSION})})}?skip-vm) exten = s-BUSY,n,MailboxExists(${EXTENSION}) exten = s-BUSY,n,NoOp(MailboxExists(${EXTENSION}): ${VMBOXEXISTSSTATUS}) exten = s-BUSY,n,GotoIf($["${VMBOXEXISTSSTATUS}"="SUCCESS"]?:skip-vm) exten = s-BUSY,n,Voicemail(b${EXTENSION}) ;If busy, send to voicemail w/ busy announce exten = s-BUSY,n,Playtones(congestion) ;Voicemail exited, play congestion exten = s-BUSY,n,MacroExit exten = s-BUSY,n(skip-vm),Playtones(busy) ;If voicemail doesn't exist,play busy exten = _s-.,1,Goto(s-NOANSWER,1) ;Treat anything else as no answer exten = a,1,VoicemailMain(${EXTENSION}) ;If they press *, send the user into VoicemailMain | ||
Comments: | By: Serge Vecher (serge-v) 2006-07-19 08:30:31 we also need to see the debug output. Please do the following: 1) Prepare test environment (reduce the ammount of unrelated traffic on the server); 2) Make sure your logger.conf has the following line: console => notice,warning,error,debug 3) restart Asterik. 4) Enable SIP transaction logging with the following CLI commands: set debug 4 set verbose 4 sip debug 5) Save complete console log to file and _attach_ said file to the bug. By: dankleis (dankleis) 2006-07-19 09:40:27 plese delete file "Case_ 1_480_2.log" cose it's wrong By: alexb (alexb) 2006-07-25 09:41:40 This issue apply to eyeBeam softphone (i.e. client B in the example above). Any idea about the correct behaviour should be for Asterisk/eyeBeam, please? Please look at the following thread http://support.counterpath.net/viewtopic.php?t=7030 on Counterpath forum. Regards, Alex By: jmls (jmls) 2006-11-01 10:27:36.000-0600 danKleis, could you provide the debug output as requested ? Thanks By: Olle Johansson (oej) 2006-11-12 15:11:44.000-0600 In your dialplan, you use "playtones" instead of just issuing "busy" or "congestion". Playtones will open a channel instead of indicate to the phone. Change your dialplan and it will work properly. This is not a bug, it's a poor configuration. |