mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 03:50:31 +00:00
channel api: Create is_t38_active accessor functions.
ASTERISK-25582 Change-Id: I69451920b122de7ee18d15bb231c80ea7067a22b
This commit is contained in:
@@ -1595,6 +1595,42 @@ void ast_channel_set_unbridged(struct ast_channel *chan, int value);
|
|||||||
*/
|
*/
|
||||||
void ast_channel_set_unbridged_nolock(struct ast_channel *chan, int value);
|
void ast_channel_set_unbridged_nolock(struct ast_channel *chan, int value);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief This function will check if T.38 is active on the channel.
|
||||||
|
*
|
||||||
|
* \param chan Channel on which to check the unbridge_eval flag
|
||||||
|
*
|
||||||
|
* \return Returns 0 if the flag is down or 1 if the flag is up.
|
||||||
|
*/
|
||||||
|
int ast_channel_is_t38_active(struct ast_channel *chan);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief ast_channel_is_t38_active variant. Use this if the channel
|
||||||
|
* is already locked prior to calling.
|
||||||
|
*
|
||||||
|
* \param chan Channel on which to check the is_t38_active flag
|
||||||
|
*
|
||||||
|
* \return Returns 0 if the flag is down or 1 if the flag is up.
|
||||||
|
*/
|
||||||
|
int ast_channel_is_t38_active_nolock(struct ast_channel *chan);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Sets the is_t38_active flag
|
||||||
|
*
|
||||||
|
* \param chan Which channel is having its is_t38_active value set
|
||||||
|
* \param is_t38_active Non-zero if T.38 is active
|
||||||
|
*/
|
||||||
|
void ast_channel_set_is_t38_active(struct ast_channel *chan, int is_t38_active);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Variant of ast_channel_set_is_t38_active. Use this if the channel
|
||||||
|
* is already locked prior to calling.
|
||||||
|
*
|
||||||
|
* \param chan Which channel is having its is_t38_active value set
|
||||||
|
* \param is_t38_active Non-zero if T.38 is active
|
||||||
|
*/
|
||||||
|
void ast_channel_set_is_t38_active_nolock(struct ast_channel *chan, int is_t38_active);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Lock the given channel, then request softhangup on the channel with the given causecode
|
* \brief Lock the given channel, then request softhangup on the channel with the given causecode
|
||||||
* \param chan channel on which to hang up
|
* \param chan channel on which to hang up
|
||||||
|
@@ -173,8 +173,6 @@ struct ast_channel {
|
|||||||
* See \arg \ref AstFileDesc */
|
* See \arg \ref AstFileDesc */
|
||||||
int softhangup; /*!< Whether or not we have been hung up... Do not set this value
|
int softhangup; /*!< Whether or not we have been hung up... Do not set this value
|
||||||
* directly, use ast_softhangup() */
|
* directly, use ast_softhangup() */
|
||||||
int unbridged; /*!< If non-zero, the bridge core needs to re-evaluate the current
|
|
||||||
bridging technology which is in use by this channel's bridge. */
|
|
||||||
int fdno; /*!< Which fd had an event detected on */
|
int fdno; /*!< Which fd had an event detected on */
|
||||||
int streamid; /*!< For streaming playback, the schedule ID */
|
int streamid; /*!< For streaming playback, the schedule ID */
|
||||||
int vstreamid; /*!< For streaming video playback, the schedule ID */
|
int vstreamid; /*!< For streaming video playback, the schedule ID */
|
||||||
@@ -216,6 +214,9 @@ struct ast_channel {
|
|||||||
char exten[AST_MAX_EXTENSION]; /*!< Dialplan: Current extension number */
|
char exten[AST_MAX_EXTENSION]; /*!< Dialplan: Current extension number */
|
||||||
char macrocontext[AST_MAX_CONTEXT]; /*!< Macro: Current non-macro context. See app_macro.c */
|
char macrocontext[AST_MAX_CONTEXT]; /*!< Macro: Current non-macro context. See app_macro.c */
|
||||||
char macroexten[AST_MAX_EXTENSION]; /*!< Macro: Current non-macro extension. See app_macro.c */
|
char macroexten[AST_MAX_EXTENSION]; /*!< Macro: Current non-macro extension. See app_macro.c */
|
||||||
|
char unbridged; /*!< non-zero if the bridge core needs to re-evaluate the current
|
||||||
|
bridging technology which is in use by this channel's bridge. */
|
||||||
|
char is_t38_active; /*!< non-zero if T.38 is active on this channel. */
|
||||||
char dtmf_digit_to_emulate; /*!< Digit being emulated */
|
char dtmf_digit_to_emulate; /*!< Digit being emulated */
|
||||||
char sending_dtmf_digit; /*!< Digit this channel is currently sending out. (zero if not sending) */
|
char sending_dtmf_digit; /*!< Digit this channel is currently sending out. (zero if not sending) */
|
||||||
struct timeval sending_dtmf_tv; /*!< The time this channel started sending the current digit. (Invalid if sending_dtmf_digit is zero.) */
|
struct timeval sending_dtmf_tv; /*!< The time this channel started sending the current digit. (Invalid if sending_dtmf_digit is zero.) */
|
||||||
@@ -1146,7 +1147,7 @@ int ast_channel_unbridged(struct ast_channel *chan)
|
|||||||
|
|
||||||
void ast_channel_set_unbridged_nolock(struct ast_channel *chan, int value)
|
void ast_channel_set_unbridged_nolock(struct ast_channel *chan, int value)
|
||||||
{
|
{
|
||||||
chan->unbridged = value;
|
chan->unbridged = !!value;
|
||||||
ast_queue_frame(chan, &ast_null_frame);
|
ast_queue_frame(chan, &ast_null_frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1157,6 +1158,33 @@ void ast_channel_set_unbridged(struct ast_channel *chan, int value)
|
|||||||
ast_channel_unlock(chan);
|
ast_channel_unlock(chan);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ast_channel_is_t38_active_nolock(struct ast_channel *chan)
|
||||||
|
{
|
||||||
|
return chan->is_t38_active;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ast_channel_is_t38_active(struct ast_channel *chan)
|
||||||
|
{
|
||||||
|
int res;
|
||||||
|
|
||||||
|
ast_channel_lock(chan);
|
||||||
|
res = ast_channel_is_t38_active_nolock(chan);
|
||||||
|
ast_channel_unlock(chan);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ast_channel_set_is_t38_active_nolock(struct ast_channel *chan, int is_t38_active)
|
||||||
|
{
|
||||||
|
chan->is_t38_active = !!is_t38_active;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ast_channel_set_is_t38_active(struct ast_channel *chan, int is_t38_active)
|
||||||
|
{
|
||||||
|
ast_channel_lock(chan);
|
||||||
|
ast_channel_set_is_t38_active_nolock(chan, is_t38_active);
|
||||||
|
ast_channel_unlock(chan);
|
||||||
|
}
|
||||||
|
|
||||||
void ast_channel_callid_cleanup(struct ast_channel *chan)
|
void ast_channel_callid_cleanup(struct ast_channel *chan)
|
||||||
{
|
{
|
||||||
chan->callid = 0;
|
chan->callid = 0;
|
||||||
|
Reference in New Issue
Block a user