Add better support for relaying success or failure of the ast_transfer() API call.

This API call now waits for a special frame from the underlying channel driver to
indicate success or failure. This allows the return value to truly convey whether
the transfer worked or not. In the case of the Transfer() dialplan application this
means the value of the TRANSFERSTATUS dialplan variable is actually true.

(closes issue #12713)
Reported by: davidw
Tested by: file


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@186382 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Joshua Colp
2009-04-03 16:47:27 +00:00
parent 547b5c7e90
commit 2d9c6ef3d5
4 changed files with 66 additions and 2 deletions

View File

@@ -319,6 +319,7 @@ enum ast_control_frame_type {
AST_CONTROL_VIDUPDATE = 18, /*!< Indicate video frame update */
AST_CONTROL_T38 = 19, /*!< T38 state change request/notification */
AST_CONTROL_SRCUPDATE = 20, /*!< Indicate source of media has changed */
AST_CONTROL_TRANSFER = 21, /*!< Indicate status of a transfer request */
};
enum ast_control_t38 {
@@ -329,6 +330,11 @@ enum ast_control_t38 {
AST_T38_REFUSED /*!< T38 refused for some reason (usually rejected by remote end) */
};
enum ast_control_transfer {
AST_TRANSFER_SUCCESS = 0, /*!< Transfer request on the channel worked */
AST_TRANSFER_FAILED, /*!< Transfer request on the channel failed */
};
#define AST_SMOOTHER_FLAG_G729 (1 << 0)
#define AST_SMOOTHER_FLAG_BE (1 << 1)