mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	Analog lines do not transfer CONNECTED LINE or execute the interception macros.
Add connected line update for sig_analog transfers and simplify the corresponding sig_pri and chan_misdn transfer code. Note that if you create a three-way call in sig_analog before transferring the call, the distinction of the caller/callee interception macros make little sense. The interception macro writer needs to be prepared for either caller/callee macro to be executed. The current implementation swaps which caller/callee interception macro is executed after a three-way call is created. Review: https://reviewboard.asterisk.org/r/996/ JIRA ABE-2589 JIRA SWP-2372 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@294349 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		| @@ -1874,6 +1874,52 @@ int ast_channel_bridge(struct ast_channel *c0,struct ast_channel *c1, | ||||
|  */ | ||||
| int ast_channel_masquerade(struct ast_channel *original, struct ast_channel *clone); | ||||
|  | ||||
| /*! | ||||
|  * \brief Setup a masquerade to transfer a call. | ||||
|  * \since 1.8 | ||||
|  * | ||||
|  * \param target_chan Target of the call transfer.  (Masquerade original channel) | ||||
|  * \param target_id New connected line information for the target channel. | ||||
|  * \param target_held TRUE if the target call is on hold. | ||||
|  * \param transferee_chan Transferee of the call transfer. (Masquerade clone channel) | ||||
|  * \param transferee_id New connected line information for the transferee channel. | ||||
|  * \param transferee_held TRUE if the transferee call is on hold. | ||||
|  * | ||||
|  * \details | ||||
|  * Party A - Transferee | ||||
|  * Party B - Transferer | ||||
|  * Party C - Target of transfer | ||||
|  * | ||||
|  * Party B transfers A to C. | ||||
|  * | ||||
|  * Party A is connected to bridged channel B1. | ||||
|  * Party B is connected to channels C1 and C2. | ||||
|  * Party C is connected to bridged channel B2. | ||||
|  * | ||||
|  * Party B -- C1 == B1 -- Party A | ||||
|  *               __/ | ||||
|  *              / | ||||
|  * Party B -- C2 == B2 -- Party C | ||||
|  * | ||||
|  * Bridged channel B1 is masqueraded into channel C2.  Where B1 | ||||
|  * is the masquerade clone channel and C2 is the masquerade | ||||
|  * original channel. | ||||
|  * | ||||
|  * \see ast_channel_masquerade() | ||||
|  * | ||||
|  * \note Has the same locking requirements as ast_channel_masquerade(). | ||||
|  * | ||||
|  * \retval 0 on success. | ||||
|  * \retval -1 on error. | ||||
|  */ | ||||
| int ast_channel_transfer_masquerade( | ||||
| 	struct ast_channel *target_chan, | ||||
| 	const struct ast_party_connected_line *target_id, | ||||
| 	int target_held, | ||||
| 	struct ast_channel *transferee_chan, | ||||
| 	const struct ast_party_connected_line *transferee_id, | ||||
| 	int transferee_held); | ||||
|  | ||||
| /*! | ||||
|  * \brief Gives the string form of a given cause code. | ||||
|  * | ||||
|   | ||||
		Reference in New Issue
	
	Block a user