Revision
14372
Author
gmaruzz
Date
2009-07-27 08:12:12 -0500 (Mon, 27 Jul 2009)

Log Message

skypiax: manage the 'WAITING_REDIAL_COMMAND' call status message (skypeout: remote PSTN party has rejected us, our outbound call is failed)

Modified Paths

Diff

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


--- freeswitch/trunk/src/mod/endpoints/mod_skypiax/skypiax_protocol.c	2009-07-27 12:53:06 UTC (rev 14371)
+++ freeswitch/trunk/src/mod/endpoints/mod_skypiax/skypiax_protocol.c	2009-07-27 13:12:12 UTC (rev 14372)
@@ -385,7 +385,7 @@
           } 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",
+              ("we tried to call Skype on skype_call %s and remote party (destination) was BUSY. Our outbound call has failed\n",
                SKYPIAX_P_LOG, id);
             skypiax_strncpy(tech_pvt->skype_call_id, id,
                             sizeof(tech_pvt->skype_call_id) - 1);
@@ -393,6 +393,17 @@
             tech_pvt->skype_call_id[0] = '\0';
 			skypiax_sleep(1000);
             return CALLFLOW_INCOMING_HANGUP;
+          } else if (!strcasecmp(value, "WAITING_REDIAL_COMMAND")) {
+            tech_pvt->skype_callflow = CALLFLOW_STATUS_FAILED;
+            DEBUGA_SKYPE
+              ("we tried to call Skype on skype_call %s and remote party (destination) has rejected us (WAITING_REDIAL_COMMAND). Our outbound call has failed\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);