Add attended transfer support for chan_sip.c

This now uses the core API for performing attended transfers.

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

(Closes issue ASTERISK-21520)
reported by Matt Jordan



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@389869 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Michelson
2013-05-28 15:26:15 +00:00
parent fac3839e68
commit cfe32ec1da
2 changed files with 129 additions and 431 deletions

View File

@@ -834,16 +834,6 @@ struct sip_request {
*/
#define REQ_OFFSET_TO_STR(req,offset) (ast_str_buffer((req)->data) + ((req)->offset))
/*! \brief structure used in transfers */
struct sip_dual {
struct ast_channel *chan1; /*!< First channel involved */
struct ast_channel *chan2; /*!< Second channel involved */
struct sip_request req; /*!< Request that caused the transfer (REFER) */
uint32_t seqno; /*!< Sequence number */
char *park_exten;
char *park_context;
};
/*! \brief Parameters to the transmit_invite function */
struct sip_invite_param {
int addsipheaders; /*!< Add extra SIP headers */
@@ -935,10 +925,6 @@ struct sip_refer {
AST_STRING_FIELD(replaces_callid_totag); /*!< Replace info: to-tag */
AST_STRING_FIELD(replaces_callid_fromtag); /*!< Replace info: from-tag */
);
struct sip_pvt *refer_call; /*!< Call we are referring. This is just a reference to a
* dialog owned by someone else, so we should not destroy
* it when the sip_refer object goes.
*/
int attendedtransfer; /*!< Attended or blind transfer? */
int localtransfer; /*!< Transfer to local domain? */
enum referstatus status; /*!< REFER status */