mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-22 20:56:39 +00:00
Merged revisions 289340 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r289340 | qwell | 2010-09-29 16:12:43 -0500 (Wed, 29 Sep 2010) | 22 lines Merged revisions 289339 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ................ r289339 | qwell | 2010-09-29 16:03:47 -0500 (Wed, 29 Sep 2010) | 15 lines Merged revisions 289338 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r289338 | qwell | 2010-09-29 15:56:26 -0500 (Wed, 29 Sep 2010) | 8 lines Allow a manager originate to succeed on forwarded devices. The timeout to wait for an answer was being set to 0 when a device forwarded to another extension. We don't always need the timeout set like this, so make it an optional parameter, and don't use it in this case. ABE-2544 ........ ................ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@289354 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -5002,6 +5002,7 @@ struct ast_channel *ast_call_forward(struct ast_channel *caller, struct ast_chan
|
||||
struct ast_party_redirecting *apr = &orig->redirecting;
|
||||
char *data, *type;
|
||||
int cause = 0;
|
||||
int res;
|
||||
|
||||
/* gather data and request the new forward channel */
|
||||
ast_copy_string(tmpchan, orig->call_forward, sizeof(tmpchan));
|
||||
@@ -5060,7 +5061,11 @@ struct ast_channel *ast_call_forward(struct ast_channel *caller, struct ast_chan
|
||||
ast_channel_unlock(orig);
|
||||
|
||||
/* call new channel */
|
||||
if ((*timeout = ast_call(new, data, 0))) {
|
||||
res = ast_call(new, data, 0);
|
||||
if (timeout) {
|
||||
*timeout = res;
|
||||
}
|
||||
if (res) {
|
||||
ast_log(LOG_NOTICE, "Unable to call forward to channel %s/%s\n", type, (char *)data);
|
||||
ast_hangup(orig);
|
||||
ast_hangup(new);
|
||||
@@ -5137,7 +5142,7 @@ struct ast_channel *__ast_request_and_dial(const char *type, format_t format, co
|
||||
if (timeout > -1)
|
||||
timeout = res;
|
||||
if (!ast_strlen_zero(chan->call_forward)) {
|
||||
if (!(chan = ast_call_forward(NULL, chan, &timeout, format, oh, outstate))) {
|
||||
if (!(chan = ast_call_forward(NULL, chan, NULL, format, oh, outstate))) {
|
||||
return NULL;
|
||||
}
|
||||
continue;
|
||||
|
@@ -2833,7 +2833,7 @@ static struct ast_channel *feature_request_and_dial(struct ast_channel *caller,
|
||||
|
||||
if (chan && (chan == active_channel)){
|
||||
if (!ast_strlen_zero(chan->call_forward)) {
|
||||
if (!(chan = ast_call_forward(caller, chan, &to, format, NULL, outstate))) {
|
||||
if (!(chan = ast_call_forward(caller, chan, NULL, format, NULL, outstate))) {
|
||||
return NULL;
|
||||
}
|
||||
continue;
|
||||
|
Reference in New Issue
Block a user