diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-05-09 14:25:57 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-05-09 14:25:57 +0000 |
commit | 7670b6ca640512806ad6fda2807b090cd4f34c41 (patch) | |
tree | 16161d604b4e14781b023303263f3e9471645a3f /include | |
parent | f6339f372684efd389bf84a24fcb706ca778ea9d (diff) |
use an enum for control frame types
support sending control frames with payload
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@26093 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include')
-rw-r--r-- | include/asterisk/channel.h | 23 | ||||
-rw-r--r-- | include/asterisk/frame.h | 57 |
2 files changed, 41 insertions, 39 deletions
diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h index 1fdec4ed3..73f1e17a7 100644 --- a/include/asterisk/channel.h +++ b/include/asterisk/channel.h @@ -605,9 +605,28 @@ int ast_queue_frame(struct ast_channel *chan, struct ast_frame *f); /*! \brief Queue a hangup frame */ int ast_queue_hangup(struct ast_channel *chan); -/*! \brief Queue a control frame */ -int ast_queue_control(struct ast_channel *chan, int control); +/*! + \brief Queue a control frame with payload + \param chan channel to queue frame onto + \param control type of control frame + \return zero on success, non-zero on failure +*/ +int ast_queue_control(struct ast_channel *chan, enum ast_control_frame_type control); +/*! + \brief Queue a control frame with payload + \param chan channel to queue frame onto + \param control type of control frame + \param data pointer to payload data to be included in frame + \param datalen number of bytes of payload data + \return zero on success, non-zero on failure + + The supplied payload data is copied into the frame, so the caller's copy + is not modified nor freed, and the resulting frame will retain a copy of + the data even if the caller frees their local copy. +*/ +int ast_queue_control_data(struct ast_channel *chan, enum ast_control_frame_type control, + const void *data, size_t datalen); /*! \brief Change channel name */ void ast_change_name(struct ast_channel *chan, char *newname); diff --git a/include/asterisk/frame.h b/include/asterisk/frame.h index b70b7bcd2..09d8674b2 100644 --- a/include/asterisk/frame.h +++ b/include/asterisk/frame.h @@ -240,43 +240,26 @@ extern struct ast_frame ast_null_frame; #define AST_FORMAT_MAX_VIDEO (1 << 24) #define AST_FORMAT_VIDEO_MASK (((1 << 25)-1) & ~(AST_FORMAT_AUDIO_MASK)) -/* Control frame types */ -/*! Other end has hungup */ -#define AST_CONTROL_HANGUP 1 -/*! Local ring */ -#define AST_CONTROL_RING 2 -/*! Remote end is ringing */ -#define AST_CONTROL_RINGING 3 -/*! Remote end has answered */ -#define AST_CONTROL_ANSWER 4 -/*! Remote end is busy */ -#define AST_CONTROL_BUSY 5 -/*! Make it go off hook */ -#define AST_CONTROL_TAKEOFFHOOK 6 -/*! Line is off hook */ -#define AST_CONTROL_OFFHOOK 7 -/*! Congestion (circuits busy) */ -#define AST_CONTROL_CONGESTION 8 -/*! Flash hook */ -#define AST_CONTROL_FLASH 9 -/*! Wink */ -#define AST_CONTROL_WINK 10 -/*! Set a low-level option */ -#define AST_CONTROL_OPTION 11 -/*! Key Radio */ -#define AST_CONTROL_RADIO_KEY 12 -/*! Un-Key Radio */ -#define AST_CONTROL_RADIO_UNKEY 13 -/*! Indicate PROGRESS */ -#define AST_CONTROL_PROGRESS 14 -/*! Indicate CALL PROCEEDING */ -#define AST_CONTROL_PROCEEDING 15 -/*! Indicate call is placed on hold */ -#define AST_CONTROL_HOLD 16 -/*! Indicate call is left from hold */ -#define AST_CONTROL_UNHOLD 17 -/*! Indicate video frame update */ -#define AST_CONTROL_VIDUPDATE 18 +enum ast_control_frame_type { + AST_CONTROL_HANGUP = 1, /*! Other end has hungup */ + AST_CONTROL_RING = 2, /*! Local ring */ + AST_CONTROL_RINGING = 3, /*! Remote end is ringing */ + AST_CONTROL_ANSWER = 4, /*! Remote end has answered */ + AST_CONTROL_BUSY = 5, /*! Remote end is busy */ + AST_CONTROL_TAKEOFFHOOK = 6, /*! Make it go off hook */ + AST_CONTROL_OFFHOOK = 7, /*! Line is off hook */ + AST_CONTROL_CONGESTION = 8, /*! Congestion (circuits busy) */ + AST_CONTROL_FLASH = 9, /*! Flash hook */ + AST_CONTROL_WINK = 10, /*! Wink */ + AST_CONTROL_OPTION = 11, /*! Set a low-level option */ + AST_CONTROL_RADIO_KEY = 12, /*! Key Radio */ + AST_CONTROL_RADIO_UNKEY = 13, /*! Un-Key Radio */ + AST_CONTROL_PROGRESS = 14, /*! Indicate PROGRESS */ + AST_CONTROL_PROCEEDING = 15, /*! Indicate CALL PROCEEDING */ + AST_CONTROL_HOLD = 16, /*! Indicate call is placed on hold */ + AST_CONTROL_UNHOLD = 17, /*! Indicate call is left from hold */ + AST_CONTROL_VIDUPDATE = 18, /*! Indicate video frame update */ +}; #define AST_SMOOTHER_FLAG_G729 (1 << 0) |