From ec2b265188e685c041b0dbd1f5e978a633e84a25 Mon Sep 17 00:00:00 2001 From: dvossel Date: Wed, 3 Jun 2009 15:49:46 +0000 Subject: 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 res_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: http://svn.digium.com/svn/asterisk/branches/1.4@198891 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/channel.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'include/asterisk/channel.h') diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h index 8757a3ad4..de81f75c2 100644 --- a/include/asterisk/channel.h +++ b/include/asterisk/channel.h @@ -717,6 +717,18 @@ struct ast_channel *ast_request_and_dial(const char *type, int format, void *dat struct ast_channel *__ast_request_and_dial(const char *type, int format, void *data, int timeout, int *reason, const char *cidnum, const char *cidname, struct outgoing_helper *oh); +/*! +* \brief Forwards a call to a new channel specified by the original channel's call_forward str. If possible, the new forwarded channel is created and returned while the original one is terminated. +* \param caller in channel that requested orig +* \param orig channel being replaced by the call forward channel +* \param timeout maximum amount of time to wait for setup of new forward channel +* \param format requested channel format +* \param oh outgoing helper used with original channel +* \param outstate reason why unsuccessful (if uncuccessful) +* \return Returns the forwarded call's ast_channel on success or NULL on failure +*/ +struct ast_channel *ast_call_forward(struct ast_channel *caller, struct ast_channel *orig, int *timeout, int format, struct outgoing_helper *oh, int *outstate); + /*!\brief Register a channel technology (a new channel driver) * Called by a channel module to register the kind of channels it supports. * \param tech Structure defining channel technology or "type" -- cgit v1.2.3