diff --git a/channels/chan_sip.c b/channels/chan_sip.c index bce2ad5bdd..54528d80cd 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -6336,13 +6336,7 @@ static int sip_hangup(struct ast_channel *ast) return 0; } - if (ast_test_flag(ast, AST_FLAG_ZOMBIE)) { - if (p->refer) - ast_debug(1, "SIP Transfer: Hanging up Zombie channel %s after transfer ... Call-ID: %s\n", ast->name, p->callid); - else - ast_debug(1, "Hanging up zombie call. Be scared.\n"); - } else - ast_debug(1, "Hangup call %s, SIP callid %s\n", ast->name, p->callid); + ast_debug(1, "Hangup call %s, SIP callid %s\n", ast->name, p->callid); sip_pvt_lock(p); if (ast_test_flag(&p->flags[0], SIP_INC_COUNT) || ast_test_flag(&p->flags[1], SIP_PAGE2_CALL_ONHOLD)) { diff --git a/main/ccss.c b/main/ccss.c index 6544ba394b..d012550f91 100644 --- a/main/ccss.c +++ b/main/ccss.c @@ -2710,8 +2710,13 @@ static void *generic_recall(void *data) return NULL; } } - ast_cc_agent_recalling(agent->core_id, "Generic agent %s is recalling", agent->device_name); - ast_pbx_start(chan); + if (ast_pbx_start(chan)) { + ast_cc_failed(agent->core_id, "PBX failed to start for %s.", agent->device_name); + ast_hangup(chan); + return NULL; + } + ast_cc_agent_recalling(agent->core_id, "Generic agent %s is recalling", + agent->device_name); return NULL; }