]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
skypiax: manage the 'BUSY' call status message (skypeout: remote PSTN party is busy...
authorGiovanni Maruzzelli <gmaruzz@gmail.com>
Mon, 27 Jul 2009 12:53:06 +0000 (12:53 +0000)
committerGiovanni Maruzzelli <gmaruzz@gmail.com>
Mon, 27 Jul 2009 12:53:06 +0000 (12:53 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@14371 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_skypiax/skypiax_protocol.c

index 029b1ef8fe393b40a98761bfb63db02b2bdfa8e8..1c768cdd3868a98e6baa44bba36493f2ed225853 100644 (file)
@@ -375,12 +375,24 @@ int skypiax_signaling_read(private_t * tech_pvt)
               }
             } else {
               tech_pvt->skype_callflow = CALLFLOW_STATUS_INPROGRESS;
-              WARNINGA("Back from REMOTEHOLD!\n", SKYPIAX_P_LOG);
+              DEBUGA_SKYPE("Back from REMOTEHOLD!\n", SKYPIAX_P_LOG);
             }
 
           } else if (!strcasecmp(value, "REMOTEHOLD")) {
             tech_pvt->skype_callflow = CALLFLOW_STATUS_REMOTEHOLD;
-            WARNINGA("skype_call: %s is now REMOTEHOLD\n", SKYPIAX_P_LOG, id);
+            DEBUGA_SKYPE("skype_call: %s is now REMOTEHOLD\n", SKYPIAX_P_LOG, id);
+
+          } else if (!strcasecmp(value, "BUSY")) {
+            tech_pvt->skype_callflow = CALLFLOW_STATUS_FAILED;
+            DEBUGA_SKYPE
+              ("we tried to call Skype on skype_call %s and remote party (destination) was BUSY\n",
+               SKYPIAX_P_LOG, id);
+            skypiax_strncpy(tech_pvt->skype_call_id, id,
+                            sizeof(tech_pvt->skype_call_id) - 1);
+            tech_pvt->interface_state = SKYPIAX_STATE_DOWN;
+            tech_pvt->skype_call_id[0] = '\0';
+                       skypiax_sleep(1000);
+            return CALLFLOW_INCOMING_HANGUP;
           } else {
             WARNINGA("skype_call: %s, STATUS: %s is not recognized\n", SKYPIAX_P_LOG, id,
                      value);