Revision
16677
Author
gmaruzz
Date
2010-02-17 09:56:27 -0600 (Wed, 17 Feb 2010)

Log Message

skypiax: small change in reacting to 'ERROR 559 CALL', action failed, in case we are in the process of answering

Modified Paths

Diff

Modified: freeswitch/trunk/src/mod/endpoints/mod_skypiax/skypiax_protocol.c (16676 => 16677)


--- freeswitch/trunk/src/mod/endpoints/mod_skypiax/skypiax_protocol.c	2010-02-17 11:35:12 UTC (rev 16676)
+++ freeswitch/trunk/src/mod/endpoints/mod_skypiax/skypiax_protocol.c	2010-02-17 15:56:27 UTC (rev 16677)
@@ -190,8 +190,19 @@
 				} else if (!strncasecmp(message, "ERROR 592 ALTER CALL", 19)) {
 					ERRORA("Skype got ERROR about TRANSFERRING, no problem: |||%s|||\n", SKYPIAX_P_LOG, message);
 				} else if (!strncasecmp(message, "ERROR 559 CALL", 13)) {
-					DEBUGA_SKYPE("Skype got ERROR about a failed action (probably TRYING to HANGUP A CALL), no problem: |||%s|||\n", SKYPIAX_P_LOG,
-								 message);
+					if(tech_pvt->interface_state == SKYPIAX_STATE_PREANSWER){
+						DEBUGA_SKYPE("Skype got ERROR about a failed action (probably TRYING to ANSWER A CALL), let's go down: |||%s|||\n", SKYPIAX_P_LOG,
+								message);
+						tech_pvt->skype_callflow = CALLFLOW_STATUS_FINISHED;
+						ERRORA("skype_call now is DOWN\n", SKYPIAX_P_LOG);
+						tech_pvt->skype_call_id[0] = '\0';
+						tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
+						return CALLFLOW_INCOMING_HANGUP;
+
+					} else {
+						DEBUGA_SKYPE("Skype got ERROR about a failed action (probably TRYING to HANGUP A CALL), no problem: |||%s|||\n", SKYPIAX_P_LOG,
+								message);
+					}
 				} else {
 					ERRORA("Skype got ERROR: |||%s|||\n", SKYPIAX_P_LOG, message);
 					tech_pvt->skype_callflow = CALLFLOW_STATUS_FINISHED;