diff options
author | Jeremy McNamara <jj@nufone.net> | 2004-06-15 20:56:06 +0000 |
---|---|---|
committer | Jeremy McNamara <jj@nufone.net> | 2004-06-15 20:56:06 +0000 |
commit | 1f4eadaf6a4840773cb44aa9be4ded233b72540f (patch) | |
tree | a801fd2c3cdc95ff9a4174bc12e1c3237fe120b4 /channels/chan_h323.c | |
parent | ada1e768c46a689636de407e0692ea742894fd1f (diff) |
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)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3220 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_h323.c')
-rwxr-xr-x | channels/chan_h323.c | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/channels/chan_h323.c b/channels/chan_h323.c index ae1a6bbf2..e016b4812 100755 --- a/channels/chan_h323.c +++ b/channels/chan_h323.c @@ -1007,7 +1007,7 @@ int setup_incoming_call(call_details_t cd) { 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 @@ int setup_incoming_call(call_details_t cd) } 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 @@ int load_module() cleanup_connection, chan_ringing, connection_made, - send_digit); + send_digit, + answer_call); /* start the h.323 listener */ |