From f9003db7849955dceb6f463bdcfaddeb9a526c8a Mon Sep 17 00:00:00 2001 From: Giovanni Maruzzelli Date: Mon, 27 Jul 2009 12:53:06 +0000 Subject: [PATCH] skypiax: manage the 'BUSY' call status message (skypeout: remote PSTN party is busy, our outbound call is failed) git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@14371 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_skypiax/skypiax_protocol.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/mod/endpoints/mod_skypiax/skypiax_protocol.c b/src/mod/endpoints/mod_skypiax/skypiax_protocol.c index 029b1ef8fe..1c768cdd38 100644 --- a/src/mod/endpoints/mod_skypiax/skypiax_protocol.c +++ b/src/mod/endpoints/mod_skypiax/skypiax_protocol.c @@ -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);