From 8cb78976545869d9d75d6254ab059718824c31d7 Mon Sep 17 00:00:00 2001 From: Giovanni Maruzzelli Date: Wed, 17 Feb 2010 15:56:27 +0000 Subject: [PATCH] skypiax: small change in reacting to 'ERROR 559 CALL', action failed, in case we are in the process of answering git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16677 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_skypiax/skypiax_protocol.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/mod/endpoints/mod_skypiax/skypiax_protocol.c b/src/mod/endpoints/mod_skypiax/skypiax_protocol.c index ba7c50fb66..59a397b3bc 100644 --- a/src/mod/endpoints/mod_skypiax/skypiax_protocol.c +++ b/src/mod/endpoints/mod_skypiax/skypiax_protocol.c @@ -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;