diff options
author | Matthew Jordan <mjordan@digium.com> | 2013-07-24 15:38:18 +0000 |
---|---|---|
committer | Matthew Jordan <mjordan@digium.com> | 2013-07-24 15:38:18 +0000 |
commit | d91dc6d1a8a6e364d9edd6738c20ac5b8545db97 (patch) | |
tree | 6ed5d5a62860460e387714b9f334cc5d1fae779a /main/channel.c | |
parent | 1f0ac51f49ca72d4f36490295ece83fb8e8fe151 (diff) |
Perform the initial renaming of the Bridging API
This patch does the following:
* It pulls out bridge_channel and puts it into its own translation unit
* It adds public and protected headers for bridging_channel. Protected
functions are appropriate only for the Bridging API and sub-classes of a
bridge.
(issue ASTERISK-22130)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@395253 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/channel.c')
-rw-r--r-- | main/channel.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/main/channel.c b/main/channel.c index a1a3730ba..4738e37d4 100644 --- a/main/channel.c +++ b/main/channel.c @@ -6740,7 +6740,7 @@ void ast_do_masquerade(struct ast_channel *original) * The clonechan was sending a DTMF digit that was not completed * before the masquerade. */ - ast_bridge_end_dtmf(original, clone_sending_dtmf_digit, clone_sending_dtmf_tv, + ast_channel_end_dtmf(original, clone_sending_dtmf_digit, clone_sending_dtmf_tv, "masquerade"); } @@ -10406,3 +10406,24 @@ int ast_channel_unsuppress(struct ast_channel *chan, unsigned int direction, enu return 0; } + +void ast_channel_end_dtmf(struct ast_channel *chan, char digit, struct timeval start, const char *why) +{ + int dead; + long duration; + + ast_channel_lock(chan); + dead = ast_test_flag(ast_channel_flags(chan), AST_FLAG_ZOMBIE) + || (ast_channel_softhangup_internal_flag(chan) + & ~(AST_SOFTHANGUP_ASYNCGOTO | AST_SOFTHANGUP_UNBRIDGE)); + ast_channel_unlock(chan); + if (dead) { + /* Channel is a zombie or a real hangup. */ + return; + } + + duration = ast_tvdiff_ms(ast_tvnow(), start); + ast_senddigit_end(chan, digit, duration); + ast_log(LOG_DTMF, "DTMF end '%c' simulated on %s due to %s, duration %ld ms\n", + digit, ast_channel_name(chan), why, duration); +}
\ No newline at end of file |