mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 20:20:07 +00:00
use an enum for control frame types
support sending control frames with payload git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@26093 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
17
channel.c
17
channel.c
@@ -738,10 +738,25 @@ int ast_queue_hangup(struct ast_channel *chan)
|
||||
}
|
||||
|
||||
/*! \brief Queue a control frame */
|
||||
int ast_queue_control(struct ast_channel *chan, int control)
|
||||
int ast_queue_control(struct ast_channel *chan, enum ast_control_frame_type control)
|
||||
{
|
||||
struct ast_frame f = { AST_FRAME_CONTROL, };
|
||||
|
||||
f.subclass = control;
|
||||
|
||||
return ast_queue_frame(chan, &f);
|
||||
}
|
||||
|
||||
/*! \brief Queue a control frame with payload */
|
||||
int ast_queue_control_data(struct ast_channel *chan, enum ast_control_frame_type control,
|
||||
const void *data, size_t datalen)
|
||||
{
|
||||
struct ast_frame f = { AST_FRAME_CONTROL, };
|
||||
|
||||
f.subclass = control;
|
||||
f.data = (void *) data;
|
||||
f.datalen = datalen;
|
||||
|
||||
return ast_queue_frame(chan, &f);
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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)
|
||||
|
||||
|
Reference in New Issue
Block a user