mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-02 11:58:40 +00:00
Merged revisions 155553 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r155553 | seanbright | 2008-11-08 20:08:07 -0500 (Sat, 08 Nov 2008) | 6 lines Use static functions here instead of nested ones. This requires a small change to the ast_bridge_config struct as well. To understand the reason for this change, see the following post: http://gcc.gnu.org/ml/gcc-help/2008-11/msg00049.html ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@155554 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1462,6 +1462,27 @@ static void set_dial_features(struct ast_flags64 *opts, struct ast_dial_features
|
||||
ast_app_options2str64(dial_exec_options, &perm_opts, features->options, sizeof(features->options));
|
||||
}
|
||||
|
||||
static void end_bridge_callback(void *data)
|
||||
{
|
||||
char buf[80];
|
||||
time_t end;
|
||||
struct ast_channel *chan = data;
|
||||
|
||||
time(&end);
|
||||
|
||||
ast_channel_lock(chan);
|
||||
if (chan->cdr->answer.tv_sec) {
|
||||
snprintf(buf, sizeof(buf), "%ld", end - chan->cdr->answer.tv_sec);
|
||||
pbx_builtin_setvar_helper(chan, "ANSWEREDTIME", buf);
|
||||
}
|
||||
|
||||
if (chan->cdr->start.tv_sec) {
|
||||
snprintf(buf, sizeof(buf), "%ld", end - chan->cdr->start.tv_sec);
|
||||
pbx_builtin_setvar_helper(chan, "DIALEDTIME", buf);
|
||||
}
|
||||
ast_channel_unlock(chan);
|
||||
}
|
||||
|
||||
static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags64 *peerflags, int *continue_exec)
|
||||
{
|
||||
int res = -1; /* default: error */
|
||||
@@ -2117,27 +2138,6 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
|
||||
if (res) { /* some error */
|
||||
res = -1;
|
||||
} else {
|
||||
auto void end_bridge_callback(void);
|
||||
void end_bridge_callback (void)
|
||||
{
|
||||
char buf[80];
|
||||
time_t end;
|
||||
|
||||
time(&end);
|
||||
|
||||
ast_channel_lock(chan);
|
||||
if (chan->cdr->answer.tv_sec) {
|
||||
snprintf(buf, sizeof(buf), "%ld", end - chan->cdr->answer.tv_sec);
|
||||
pbx_builtin_setvar_helper(chan, "ANSWEREDTIME", buf);
|
||||
}
|
||||
|
||||
if (chan->cdr->start.tv_sec) {
|
||||
snprintf(buf, sizeof(buf), "%ld", end - chan->cdr->start.tv_sec);
|
||||
pbx_builtin_setvar_helper(chan, "DIALEDTIME", buf);
|
||||
}
|
||||
ast_channel_unlock(chan);
|
||||
}
|
||||
|
||||
if (ast_test_flag64(peerflags, OPT_CALLEE_TRANSFER))
|
||||
ast_set_flag(&(config.features_callee), AST_FEATURE_REDIRECT);
|
||||
if (ast_test_flag64(peerflags, OPT_CALLER_TRANSFER))
|
||||
@@ -2162,6 +2162,7 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
|
||||
ast_set_flag(&(config.features_caller), AST_FEATURE_NO_H_EXTEN);
|
||||
|
||||
config.end_bridge_callback = end_bridge_callback;
|
||||
config.end_bridge_callback_data = chan;
|
||||
|
||||
if (moh) {
|
||||
moh = 0;
|
||||
|
||||
Reference in New Issue
Block a user