]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
skypiax: small change in reacting to 'ERROR 559 CALL', action failed, in case we...
authorGiovanni Maruzzelli <gmaruzz@gmail.com>
Wed, 17 Feb 2010 15:56:27 +0000 (15:56 +0000)
committerGiovanni Maruzzelli <gmaruzz@gmail.com>
Wed, 17 Feb 2010 15:56:27 +0000 (15:56 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16677 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_skypiax/skypiax_protocol.c

index ba7c50fb664bde9ed1de2c942efa9c7db30a5fd1..59a397b3bc32739d550719f699962462ef1c2d0f 100644 (file)
@@ -190,8 +190,19 @@ int skypiax_signaling_read(private_t * tech_pvt)
                                } 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;