[asterisk-commits] mmichelson: branch mmichelson/issue13630 r188458 - in /team/mmichelson/issue1...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Apr 14 16:11:45 CDT 2009


Author: mmichelson
Date: Tue Apr 14 16:11:42 2009
New Revision: 188458

URL: http://svn.digium.com/svn-view/asterisk?view=rev&rev=188458
Log:
Get the skeleton of what is necessary put in.


Modified:
    team/mmichelson/issue13630/include/asterisk/channel.h
    team/mmichelson/issue13630/main/channel.c
    team/mmichelson/issue13630/res/res_features.c

Modified: team/mmichelson/issue13630/include/asterisk/channel.h
URL: http://svn.digium.com/svn-view/asterisk/team/mmichelson/issue13630/include/asterisk/channel.h?view=diff&rev=188458&r1=188457&r2=188458
==============================================================================
--- team/mmichelson/issue13630/include/asterisk/channel.h (original)
+++ team/mmichelson/issue13630/include/asterisk/channel.h Tue Apr 14 16:11:42 2009
@@ -716,6 +716,11 @@
 
 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 general method for handling a call forward.
+ */
+int ast_forward_call(void);
+
 /*!\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"

Modified: team/mmichelson/issue13630/main/channel.c
URL: http://svn.digium.com/svn-view/asterisk/team/mmichelson/issue13630/main/channel.c?view=diff&rev=188458&r1=188457&r2=188458
==============================================================================
--- team/mmichelson/issue13630/main/channel.c (original)
+++ team/mmichelson/issue13630/main/channel.c Tue Apr 14 16:11:42 2009
@@ -3076,6 +3076,12 @@
 				break;
 			if (timeout > -1)
 				timeout = res;
+
+			if (!ast_strlen_zero(chan->call_forward)) {
+				ast_forward_call();
+				continue;
+			}
+
 			f = ast_read(chan);
 			if (!f) {
 				*outstate = AST_CONTROL_HANGUP;
@@ -3151,6 +3157,12 @@
 struct ast_channel *ast_request_and_dial(const char *type, int format, void *data, int timeout, int *outstate, const char *cidnum, const char *cidname)
 {
 	return __ast_request_and_dial(type, format, data, timeout, outstate, cidnum, cidname, NULL);
+}
+
+int ast_forward_call(void)
+{
+	/* stub */
+	return 0;
 }
 
 struct ast_channel *ast_request(const char *type, int format, void *data, int *cause)

Modified: team/mmichelson/issue13630/res/res_features.c
URL: http://svn.digium.com/svn-view/asterisk/team/mmichelson/issue13630/res/res_features.c?view=diff&rev=188458&r1=188457&r2=188458
==============================================================================
--- team/mmichelson/issue13630/res/res_features.c (original)
+++ team/mmichelson/issue13630/res/res_features.c Tue Apr 14 16:11:42 2009
@@ -1446,6 +1446,11 @@
 					continue;
 
 				if (chan && (chan == active_channel)){
+
+					if (!ast_strlen_zero(chan->call_forward)) {
+						ast_forward_call();
+						continue;
+					}
 					f = ast_read(chan);
 					if (f == NULL) { /*doh! where'd he go?*/
 						state = AST_CONTROL_HANGUP;




More information about the asterisk-commits mailing list