diff options
author | Anthony Minessale II <anthmct@yahoo.com> | 2004-07-24 02:29:40 +0000 |
---|---|---|
committer | Anthony Minessale II <anthmct@yahoo.com> | 2004-07-24 02:29:40 +0000 |
commit | 4dba976a7f3b6054b7d633b56e248bf31f4fc8b3 (patch) | |
tree | aa956501aacd2cfbc275116b00c9d5050b6aa7b3 /res | |
parent | d3499da6fdfb98438f9af6290b8d2574d47b2fa2 (diff) |
added support to be able to set the channel var TRANSFER_CONTEXT so when
a #transfer is executed it uses ${TRANSFER_CONTEXT} from transferree else
from transferer else it acts as always
-anthm
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3499 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res')
-rwxr-xr-x | res/res_features.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/res/res_features.c b/res/res_features.c index b55f1be5e..d03f7f394 100755 --- a/res/res_features.c +++ b/res/res_features.c @@ -303,13 +303,14 @@ int ast_bridge_call(struct ast_channel *chan,struct ast_channel *peer,struct ast transferer = chan; transferee = peer; } - - /* Use the non-macro context to transfer the call */ - if(strlen(transferer->macrocontext)) - transferer_real_context=transferer->macrocontext; - else - transferer_real_context=transferer->context; - + if(!(transferer_real_context=pbx_builtin_getvar_helper(transferee, "TRANSFER_CONTEXT")) && + !(transferer_real_context=pbx_builtin_getvar_helper(transferer, "TRANSFER_CONTEXT"))) { + /* Use the non-macro context to transfer the call */ + if(strlen(transferer->macrocontext)) + transferer_real_context=transferer->macrocontext; + else + transferer_real_context=transferer->context; + } /* Start autoservice on chan while we talk to the originator */ ast_autoservice_start(transferee); |