Fix problem where a hung channel could occur on a failed blind transfer.

Different clients react differently to being told that a blind transfer
has failed. Some will simply send a BYE and be done with it. Others will
attempt to reinvite themselves back onto the call.

In the latter case, we were creating a new channel and then leaving it to
sit forever doing nothing. With this code change, that new channel will
not be created and the dialog with the transferring channel will be cleaned
up properly.

ASTERISK-24624 #close
Reported by Zane Conkle

Review: https://reviewboard.asterisk.org/r/4339



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430714 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Michelson
2015-01-16 22:12:25 +00:00
parent 8bc4a89e1f
commit 821c15ae53
2 changed files with 17 additions and 1 deletions

View File

@@ -779,7 +779,8 @@ static pj_bool_t session_reinvite_on_rx_request(pjsip_rx_data *rdata)
if (rdata->msg_info.msg->line.req.method.id != PJSIP_INVITE_METHOD ||
!(dlg = pjsip_ua_find_dialog(&rdata->msg_info.cid->id, &rdata->msg_info.to->tag, &rdata->msg_info.from->tag, PJ_FALSE)) ||
!(session = ast_sip_dialog_get_session(dlg))) {
!(session = ast_sip_dialog_get_session(dlg)) ||
!session->channel) {
return PJ_FALSE;
}