From 130ce699870eaeea70d3487ffb3a625f90884f85 Mon Sep 17 00:00:00 2001 From: Christian Richter Date: Tue, 4 Jul 2006 17:04:21 +0000 Subject: [PATCH] removed the reloading of the ntdebug stuff, since this is a bit buggy, we only set it when loading chan_misdn for now. fixed a litle state problem when receiving RELEASE_COMPLETE. also we may only play tones to a NT when the extension does not match and such cases. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@36941 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_misdn.c | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index 6d02eebab9..daf5448d87 100644 --- a/channels/chan_misdn.c +++ b/channels/chan_misdn.c @@ -743,14 +743,6 @@ static void reload_config(void) misdn_debug[i] = cfg_debug; misdn_debug_only[i] = 0; } - - int ntflags=0; - char ntfile[BUFFERSIZE+1]; - - misdn_cfg_get( 0, MISDN_GEN_NTDEBUGFLAGS, &ntflags, sizeof(int)); - misdn_cfg_get( 0, MISDN_GEN_NTDEBUGFILE, &ntfile, BUFFERSIZE); - - misdn_lib_nt_debug_init(ntflags,ntfile); } static int misdn_reload (int fd, int argc, char *argv[]) @@ -3431,7 +3423,8 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data) if(!ast_canmatch_extension(ch->ast, ch->context, bc->dad, 1, bc->oad)) { chan_misdn_log(-1, bc->port, "Extension can never match, so disconnecting\n"); - tone_indicate(ch,TONE_BUSY); + if (bc->nt) + tone_indicate(ch,TONE_BUSY); ch->state=MISDN_EXTCANTMATCH; bc->out_cause=1; @@ -3447,7 +3440,7 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data) if (ast_pbx_start(ch->ast)<0) { chan_misdn_log(-1, bc->port, "ast_pbx_start returned < 0 in INFO\n"); - tone_indicate(ch,TONE_BUSY); + if (bc->nt) tone_indicate(ch,TONE_BUSY); misdn_lib_send_event(bc, EVENT_DISCONNECT ); } @@ -3617,7 +3610,8 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data) chan_misdn_log(-1, bc->port, "Extension can never match, so disconnecting\n"); - tone_indicate(ch,TONE_BUSY); + if (bc->nt) + tone_indicate(ch,TONE_BUSY); ch->state=MISDN_EXTCANTMATCH; bc->out_cause=1; @@ -3644,11 +3638,11 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data) chan_misdn_log(-1, bc->port, "ast_pbx_start returned <0 in SETUP\n"); chan=NULL; - tone_indicate(ch,TONE_BUSY); - if (bc->nt) + if (bc->nt) { + tone_indicate(ch,TONE_BUSY); misdn_lib_send_event(bc, EVENT_RELEASE_COMPLETE ); - else + } else misdn_lib_send_event(bc, EVENT_RELEASE); } } else { @@ -3882,9 +3876,9 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data) break; case EVENT_RELEASE_COMPLETE: { - ch->state=MISDN_CLEANING; stop_bc_tones(ch); release_chan(bc); + ch->state=MISDN_CLEANING; } break; @@ -4236,12 +4230,17 @@ static int load_module(void *mod) if (misdn_lib_init(ports, &iface, NULL)) chan_misdn_log(0, 0, "No te ports initialized\n"); + + int ntflags=0; + char ntfile[BUFFERSIZE+1]; + + misdn_cfg_get( 0, MISDN_GEN_NTDEBUGFLAGS, &ntflags, sizeof(int)); + misdn_cfg_get( 0, MISDN_GEN_NTDEBUGFILE, &ntfile, BUFFERSIZE); + + misdn_lib_nt_debug_init(ntflags,ntfile); + } - - - reload_config(); - { if (ast_channel_register(&misdn_tech)) { ast_log(LOG_ERROR, "Unable to register channel class %s\n", misdn_type);