[Asterisk-cvs] asterisk/channels chan_h323.c,1.58,1.59

jeremy at lists.digium.com jeremy at lists.digium.com
Tue Jun 15 15:51:11 CDT 2004


Update of /usr/cvsroot/asterisk/channels
In directory mongoose.digium.com:/tmp/cvs-serv11784

Modified Files:
	chan_h323.c 
Log Message:
check to make sure the extension exists b4 actually accepting the call and lets hope this gives Open H.323 enough time to sync up (bug #1714)

Index: chan_h323.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channels/chan_h323.c,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -d -r1.58 -r1.59
--- chan_h323.c	14 Jun 2004 21:18:52 -0000	1.58
+++ chan_h323.c	15 Jun 2004 20:56:05 -0000	1.59
@@ -1007,7 +1007,7 @@
 {
 	
 	struct oh323_pvt *p = NULL;
-	struct ast_channel *c = NULL;
+/*	struct ast_channel *c = NULL; */
 	struct oh323_user *user = NULL;
 	struct oh323_alias *alias = NULL;
 
@@ -1118,13 +1118,41 @@
 	}
 
 exit:
+#if 0
 	/* allocate a channel and tell asterisk about it */
 	c = oh323_new(p, AST_STATE_RINGING, cd.call_token);
 	if (!c) {
 		ast_log(LOG_ERROR, "Couldn't create channel. This is bad\n");
 		return 0;
 	}
+#endif
+	return 1;
+}
 
+/**
+ * Call-back function to start PBX when OpenH323 ready to serve incoming call
+ *
+ * Returns 1 on success
+ */
+static int answer_call(unsigned call_reference)
+{
+	struct oh323_pvt *p = NULL;
+	struct ast_channel *c = NULL;
+	
+	/* Find the call or allocate a private structure if call not found */
+	p = find_call(call_reference);
+	
+	if (!p) {
+		ast_log(LOG_ERROR, "Something is wrong: answer_call\n");
+		return 0;
+	}
+	
+	/* allocate a channel and tell asterisk about it */
+	c = oh323_new(p, AST_STATE_RINGING, p->cd.call_token);
+	if (!c) {
+		ast_log(LOG_ERROR, "Couldn't create channel. This is bad\n");
+		return 0;
+	}
 	return 1;
 }
 
@@ -1857,7 +1885,8 @@
 				       cleanup_connection, 
 				       chan_ringing,
 				       connection_made, 
-				       send_digit);	
+				       send_digit,
+				       answer_call);
 	
 
 		/* start the h.323 listener */




More information about the svn-commits mailing list