Improve detection of answer on SIP blind transfer.
authorMark Michelson <mmichelson@digium.com>
Wed, 28 Aug 2013 21:09:43 +0000 (21:09 +0000)
committerMark Michelson <mmichelson@digium.com>
Wed, 28 Aug 2013 21:09:43 +0000 (21:09 +0000)
commit6cc73194555b5037a5d4023a263e19ce3a78ff86
tree2a3759d64ec6d7db79a233bdae046abbb682b435
parent629f43d2b637b8515939097fa8e89fd42df4fa23
Improve detection of answer on SIP blind transfer.

A problem encountered during testing was that res_pjsip_refer would
not ever send a NOTIFY with a 200 OK sipfrag. This is because the framehook
that was supposed to send the NOTIFY would never be told that an answer
had occurred. This happened for two reasons:

1) The transferee channel on which the framehook was on was already up.
2) Answers are rarely if ever written to channels. Rather, the ast_answer()
or ast_raw_answer() function is used to answer channels.

Thanks to a suggestion by Matt Jordan, the best way to detect that the call
had been answered was to find out when the transferee channel joined a bridge.
With stasis this is an easy task. So now, in addition to the framehook logic,
there is a stasis subscription used to determine when the transferee has entered
a bridge. Once it has entered, an appropriate NOTIFY is sent.
........

Merged revisions 397876 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@397877 65c4cc65-6c06-0410-ace0-fbb531ad65f3
res/res_pjsip_refer.c