Merged revisions 198856 via svnmerge from

https://origsvn.digium.com/svn/asterisk/trunk

........
  r198856 | dvossel | 2009-06-02 16:17:49 -0500 (Tue, 02 Jun 2009) | 10 lines
  
  Generic call forward api, ast_call_forward()
  
  The function ast_call_forward() forwards a call to an extension specified in an ast_channel's call_forward string.  After an ast_channel is called, if the channel's call_forward string is set this function can be used to forward the call to a new channel and terminate the original one.  I have included this api call in both channel.c's ast_request_and_dial() and feature.c's feature_request_and_dial().  App_dial and app_queue already contain call forward logic specific for their application and options.
  
  (closes issue #13630)
  Reported by: festr
  
  Review: https://reviewboard.asterisk.org/r/271/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@198889 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
David Vossel
2009-06-03 15:27:30 +00:00
parent d1b1506bc5
commit 9c6652d306
3 changed files with 111 additions and 6 deletions

View File

@@ -1955,7 +1955,13 @@ static struct ast_channel *ast_feature_request_and_dial(struct ast_channel *call
if (!active_channel)
continue;
if (chan && (chan == active_channel)){
if (chan && (chan == active_channel)) {
if (!ast_strlen_zero(chan->call_forward)) {
if (!(chan = ast_call_forward(caller, chan, &to, format, NULL, outstate))) {
return NULL;
}
continue;
}
f = ast_read(chan);
if (f == NULL) { /*doh! where'd he go?*/
state = AST_CONTROL_HANGUP;