Summary: | ASTERISK-08359: [patch] Asterisk doesn't send CANCEL before Ringing | ||
Reporter: | Alexandr Dubovikov (baron) | Labels: | |
Date Opened: | 2006-12-15 06:07:08.000-0600 | Date Closed: | 2006-12-27 09:45:36.000-0600 |
Priority: | Minor | Regression? | No |
Status: | Closed/Complete | Components: | Core/General |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) 100cancel.txt ( 1) verbosedebug_nopatch.txt ( 2) verbosedebug_patch.txt | |
Description: | The bug in the next scenario: callee --INVITE -------> Asterisk callee <-- 100 Trying -- Asterisk --- INVITE -------> SoftSwitch ---> PSTN Asterisk <--- 100 Trying --- SoftSwitch callee -- CANCEL ------> Asterisk callee <- 487 Req.Term - Asterisk callee ------ ACK -----> Asterisk Asterisk don't send CANCEL for outgoing Invite, because ast_set_flag(p, SIP_CAN_BYE) only for 180,183 Response and not for 100 Trying. Asterisk <--- 183 Ringing -- SoftSwitch <- CPG - PSTN Asterisk ----- BYE --------> SoftSwitch - REL -> PSTN Asterisk <----- 487 -------- SoftSwitch Asterisk <----- 487 -------- SoftSwitch Asterisk <----- 487 -------- SoftSwitch and Asterisk don't send ACK for 487. ****** ADDITIONAL INFORMATION ****** --- chan_sip.c.orig 2006-12-15 12:41:47.000000000 +0100 +++ chan_sip.c 2006-12-15 12:41:47.000000000 +0100 @@ -9660,6 +9660,8 @@ static void handle_response_invite(struc case 100: /* Trying */ if (!ignore) sip_cancel_destroy(p); + + ast_set_flag(p, SIP_CAN_BYE); check_pendings(p); break; case 180: /* 180 Ringing */ | ||
Comments: | By: Serge Vecher (serge-v) 2006-12-15 08:27:30.000-0600 I think this was fixed in latest 1.2. Can you please check out 1.2 from svn and see if it's fixed? By: Alexandr Dubovikov (baron) 2006-12-15 16:33:39.000-0600 I have checked latest SVN out and didn't find the fix: ------------code----------------------- case 100: /* Trying */ if (!ignore) sip_cancel_destroy(p); check_pendings(p); break; --------------code-------------------------- By: Serge Vecher (serge-v) 2006-12-18 08:40:07.000-0600 ok, then: As per bug-guidelines, please produce the sip debug as per following instructions with and without the patch: 1) Prepare test environment (reduce the amount of unrelated traffic on the server); 2) Make sure your logger.conf has the following line: console => notice,warning,error,debug 3) restart Asterisk with the following command: 'asterisk -Tvvvvvdddddngc | tee /tmp/verbosedebug.txt' 4) Enable SIP transaction logging with the following CLI commands: set debug 4 set verbose 4 sip debug 5) Trim startup information and attach verbosedebug.txt to the issue By: Alexandr Dubovikov (baron) 2006-12-19 08:00:38.000-0600 I did two tests. Please check the log files. I have changed real IP address and phonenumbers for security reason :-) Sorry for that. By: Serge Vecher (serge-v) 2006-12-19 11:41:18.000-0600 excellent, thank you! By: Serge Vecher (serge-v) 2006-12-19 12:12:51.000-0600 also, while we are waiting for the developer to look at this, could you please check out the code from the following branch to see if it makes any difference: http://svn.digium.com/svn/asterisk/team/oej/invitestate By: Olle Johansson (oej) 2006-12-27 09:44:17.000-0600 Fixed in rev 48794 of 1.2. Thanks! |