res_stasis: Enable transfers and provide events when they occur.

This change enables transfers within ARI created bridges and adds events
for when they occur. Unlike other events these will be received if *any*
subscribed object is involved in the transfer.

(closes issue ASTERISK-22984)
Reported by: David M. Lee

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@407154 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Joshua Colp
2014-02-01 16:26:57 +00:00
parent ccf8b48f14
commit e5899852cc
6 changed files with 826 additions and 30 deletions

View File

@@ -536,6 +536,42 @@ int ast_ari_validate_application_replaced(struct ast_json *json);
*/
ari_validator ast_ari_validate_application_replaced_fn(void);
/*!
* \brief Validator for BridgeAttendedTransfer.
*
* Notification that an attended transfer has occurred.
*
* \param json JSON object to validate.
* \returns True (non-zero) if valid.
* \returns False (zero) if invalid.
*/
int ast_ari_validate_bridge_attended_transfer(struct ast_json *json);
/*!
* \brief Function pointer to ast_ari_validate_bridge_attended_transfer().
*
* See \ref ast_ari_model_validators.h for more details.
*/
ari_validator ast_ari_validate_bridge_attended_transfer_fn(void);
/*!
* \brief Validator for BridgeBlindTransfer.
*
* Notification that a blind transfer has occurred.
*
* \param json JSON object to validate.
* \returns True (non-zero) if valid.
* \returns False (zero) if invalid.
*/
int ast_ari_validate_bridge_blind_transfer(struct ast_json *json);
/*!
* \brief Function pointer to ast_ari_validate_bridge_blind_transfer().
*
* See \ref ast_ari_model_validators.h for more details.
*/
ari_validator ast_ari_validate_bridge_blind_transfer_fn(void);
/*!
* \brief Validator for BridgeCreated.
*
@@ -1137,6 +1173,33 @@ ari_validator ast_ari_validate_application_fn(void);
* - type: string (required)
* - application: string (required)
* - timestamp: Date
* BridgeAttendedTransfer
* - type: string (required)
* - application: string (required)
* - timestamp: Date
* - destination_application: string
* - destination_bridge: string
* - destination_link_first_leg: Channel
* - destination_link_second_leg: Channel
* - destination_threeway_bridge: Bridge
* - destination_threeway_channel: Channel
* - destination_type: string (required)
* - is_external: boolean (required)
* - result: string (required)
* - transferer_first_leg: Channel (required)
* - transferer_first_leg_bridge: Bridge
* - transferer_second_leg: Channel (required)
* - transferer_second_leg_bridge: Bridge
* BridgeBlindTransfer
* - type: string (required)
* - application: string (required)
* - timestamp: Date
* - bridge: Bridge
* - channel: Channel (required)
* - context: string (required)
* - exten: string (required)
* - is_external: boolean (required)
* - result: string (required)
* BridgeCreated
* - type: string (required)
* - application: string (required)