Revision
15808
Author
mikej
Date
2009-12-06 21:32:56 -0600 (Sun, 06 Dec 2009)

Log Message

mod_sofia: send bye instead of cancel after invalid 200 OK (MODENDP-270)

Modified Paths

Diff

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c (15807 => 15808)


--- freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c	2009-12-07 00:46:54 UTC (rev 15807)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c	2009-12-07 03:32:56 UTC (rev 15808)
@@ -389,7 +389,7 @@
 					switch_channel_cause2str(cause));
 		}
 
-		if (switch_channel_test_flag(channel, CF_ANSWERED)) {
+		if (switch_channel_test_flag(channel, CF_ANSWERED) || sofia_test_flag(tech_pvt, TFLAG_ANS)) {
 			if (!tech_pvt->got_bye) {
 				switch_channel_set_variable(channel, "sip_hangup_disposition", "send_bye");
 			}

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c (15807 => 15808)


--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c	2009-12-07 00:46:54 UTC (rev 15807)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c	2009-12-07 03:32:56 UTC (rev 15808)
@@ -4264,8 +4264,9 @@
 						}
 					}
 
+					sofia_set_flag_locked(tech_pvt, TFLAG_ANS);
+
 					if (match) {
-						sofia_set_flag_locked(tech_pvt, TFLAG_ANS);
 						if (sofia_glue_tech_choose_port(tech_pvt, 0) == SWITCH_STATUS_SUCCESS) {
 							if (sofia_glue_activate_rtp(tech_pvt, 0) == SWITCH_STATUS_SUCCESS) {
 								switch_channel_mark_answered(channel);