diff --git a/src/mod/endpoints/mod_skypiax/skypiax_protocol.c b/src/mod/endpoints/mod_skypiax/skypiax_protocol.c index 1c768cdd38..462d90635c 100644 --- a/src/mod/endpoints/mod_skypiax/skypiax_protocol.c +++ b/src/mod/endpoints/mod_skypiax/skypiax_protocol.c @@ -385,7 +385,18 @@ int skypiax_signaling_read(private_t * tech_pvt) } 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); + tech_pvt->interface_state = SKYPIAX_STATE_DOWN; + 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);