bug #8076 check option_debug before printing to debug channel.
authorMatt O'Gorman <mogorman@digium.com>
Tue, 3 Oct 2006 15:53:07 +0000 (15:53 +0000)
committerMatt O'Gorman <mogorman@digium.com>
Tue, 3 Oct 2006 15:53:07 +0000 (15:53 +0000)
patch provided in bugnote, with minor changes.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44253 65c4cc65-6c06-0410-ace0-fbb531ad65f3

67 files changed:
apps/app_alarmreceiver.c
apps/app_db.c
apps/app_dial.c
apps/app_directed_pickup.c
apps/app_disa.c
apps/app_externalivr.c
apps/app_festival.c
apps/app_ices.c
apps/app_macro.c
apps/app_meetme.c
apps/app_mp3.c
apps/app_nbscat.c
apps/app_osplookup.c
apps/app_queue.c
apps/app_record.c
apps/app_talkdetect.c
apps/app_test.c
apps/app_voicemail.c
apps/app_waitforsilence.c
apps/app_zapbarge.c
apps/app_zapras.c
apps/app_zapscan.c
cdr/cdr_csv.c
cdr/cdr_odbc.c
cdr/cdr_tds.c
channels/chan_agent.c
channels/chan_alsa.c
channels/chan_features.c
channels/chan_gtalk.c
channels/chan_iax2.c
channels/chan_jingle.c
channels/chan_mgcp.c
channels/chan_misdn.c
channels/chan_nbs.c
channels/chan_phone.c
channels/chan_sip.c
channels/chan_skinny.c
channels/chan_zap.c
channels/iax2-provision.c
funcs/func_db.c
funcs/func_rand.c
funcs/func_strings.c
main/app.c
main/channel.c
main/db.c
main/dns.c
main/dsp.c
main/enum.c
main/file.c
main/http.c
main/loader.c
main/logger.c
main/manager.c
main/pbx.c
main/rtp.c
main/say.c
main/sched.c
main/udptl.c
pbx/pbx_dundi.c
res/res_adsi.c
res/res_agi.c
res/res_config_pgsql.c
res/res_crypto.c
res/res_jabber.c
res/res_monitor.c
res/res_musiconhold.c
res/res_smdi.c

index 8afce25..6ae9853 100644 (file)
@@ -251,14 +251,16 @@ static int receive_dtmf_digits(struct ast_channel *chan, char *digit_string, int
                        if(option_verbose >= 4)
                                ast_verbose(VERBOSE_PREFIX_4 "AlarmReceiver: DTMF Digit Timeout on %s\n", chan->name);
                                
-                       ast_log(LOG_DEBUG,"AlarmReceiver: DTMF timeout on chan %s\n",chan->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"AlarmReceiver: DTMF timeout on chan %s\n",chan->name);
                                
                        res = 1;
                        break;
                }
                
                if ((r = ast_waitfor(chan, -1) < 0)) {
-                       ast_log(LOG_DEBUG, "Waitfor returned %d\n", r);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Waitfor returned %d\n", r);
                        continue;
                }
                        
@@ -350,9 +352,11 @@ static int write_metadata( FILE *logfile, char *signalling_type, struct ast_chan
                res = fprintf(logfile, "[events]\n\n");
        
        if(res < 0){
+               if (option_verbose >= 3 )
                ast_verbose(VERBOSE_PREFIX_4 "AlarmReceiver: can't write metadata\n");  
                
-               ast_log(LOG_DEBUG,"AlarmReceiver: can't write metadata\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG,"AlarmReceiver: can't write metadata\n");
        }
        else
                res = 0;
@@ -400,9 +404,11 @@ static int log_events(struct ast_channel *chan,  char *signalling_type, event_no
                
                fd = mkstemp(workstring);
                
-               if(fd == -1){
-                       ast_verbose(VERBOSE_PREFIX_4 "AlarmReceiver: can't make temporary file\n");     
-                       ast_log(LOG_DEBUG,"AlarmReceiver: can't make temporary file\n");
+               if(fd == -1) {
+                       if (option_verbose >= 3)
+                               ast_verbose(VERBOSE_PREFIX_4 "AlarmReceiver: can't make temporary file\n");     
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"AlarmReceiver: can't make temporary file\n");
                        res = -1;
                }
                
@@ -521,9 +527,10 @@ static int receive_ademco_contact_id( struct ast_channel *chan, void *data, int
                
                got_some_digits = 1;
 
-               if(option_verbose >= 2)
+               if (option_verbose >= 2)
                        ast_verbose(VERBOSE_PREFIX_2 "AlarmReceiver: Received Event %s\n", event);
-               ast_log(LOG_DEBUG, "AlarmReceiver: Received event: %s\n", event);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "AlarmReceiver: Received event: %s\n", event);
                
                /* Calculate checksum */
                
@@ -553,7 +560,8 @@ static int receive_ademco_contact_id( struct ast_channel *chan, void *data, int
                        database_increment("checksum-errors");
                        if (option_verbose >= 2)
                                ast_verbose(VERBOSE_PREFIX_2 "AlarmReceiver: Nonzero checksum\n");
-                       ast_log(LOG_DEBUG, "AlarmReceiver: Nonzero checksum\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "AlarmReceiver: Nonzero checksum\n");
                        continue;
                }
 
@@ -564,7 +572,8 @@ static int receive_ademco_contact_id( struct ast_channel *chan, void *data, int
                                database_increment("format-errors");
                                if(option_verbose >= 2)
                                        ast_verbose(VERBOSE_PREFIX_2 "AlarmReceiver: Wrong message type\n");
-                               ast_log(LOG_DEBUG, "AlarmReceiver: Wrong message type\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "AlarmReceiver: Wrong message type\n");
                        continue;
                        }
                }
@@ -706,7 +715,8 @@ static int alarmreceiver_exec(struct ast_channel *chan, void *data)
        */
        
        if((!res) && (!ast_strlen_zero(event_app)) && (event_head)){
-               ast_log(LOG_DEBUG,"Alarmreceiver: executing: %s\n", event_app);
+               if (option_debug)
+                       ast_log(LOG_DEBUG,"Alarmreceiver: executing: %s\n", event_app);
                ast_safe_system(event_app);
        }
 
index 73d092a..52309b9 100644 (file)
@@ -78,7 +78,8 @@ static int deltree_exec(struct ast_channel *chan, void *data)
                family = strsep(&argv, "/");
                keytree = strsep(&argv, "\0");
                        if (!family || !keytree) {
-                               ast_log(LOG_DEBUG, "Ignoring; Syntax error in argument\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Ignoring; Syntax error in argument\n");
                                ast_module_user_remove(u);
                                return 0;
                        }
@@ -125,7 +126,8 @@ static int del_exec(struct ast_channel *chan, void *data)
                family = strsep(&argv, "/");
                key = strsep(&argv, "\0");
                if (!family || !key) {
-                       ast_log(LOG_DEBUG, "Ignoring; Syntax error in argument\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Ignoring; Syntax error in argument\n");
                        ast_module_user_remove(u);
                        return 0;
                }
@@ -136,7 +138,8 @@ static int del_exec(struct ast_channel *chan, void *data)
                                ast_verbose(VERBOSE_PREFIX_3 "DBdel: Error deleting key from database.\n");
                }
        } else {
-               ast_log(LOG_DEBUG, "Ignoring, no parameters\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Ignoring, no parameters\n");
        }
 
        ast_module_user_remove(u);
index da68e83..27eb2b0 100644 (file)
@@ -1466,7 +1466,8 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
                        if (theapp && !res) {   /* XXX why check res here ? */
                                replace_macro_delimiter(opt_args[OPT_ARG_CALLEE_MACRO]);
                                res = pbx_exec(peer, theapp, opt_args[OPT_ARG_CALLEE_MACRO]);
-                               ast_log(LOG_DEBUG, "Macro exited with status %d\n", res);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Macro exited with status %d\n", res);
                                res = 0;
                        } else {
                                ast_log(LOG_ERROR, "Could not find application Macro\n");
index e45c876..8076bfa 100644 (file)
@@ -41,6 +41,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/module.h"
 #include "asterisk/lock.h"
 #include "asterisk/app.h"
+#include "asterisk/options.h"
 
 #define PICKUPMARK "PICKUPMARK"
 
@@ -109,14 +110,16 @@ static int pickup_exec(struct ast_channel *chan, void *data)
                        ast_mutex_unlock(&origin->lock);
 
                } else {
-                       ast_log(LOG_DEBUG, "No originating channel found.\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "No originating channel found.\n");
                }
 
                if (res)
                        continue;
 
                if (target && (!target->pbx) && ((target->_state == AST_STATE_RINGING) || (target->_state == AST_STATE_RING) ) ) {
-                       ast_log(LOG_DEBUG, "Call pickup on chan '%s' by '%s'\n", target->name,
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Call pickup on chan '%s' by '%s'\n", target->name,
                                        chan->name);
                        res = ast_answer(chan);
                        if (res) {
index 1ec0531..586640e 100644 (file)
@@ -48,6 +48,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/ulaw.h"
 #include "asterisk/callerid.h"
 #include "asterisk/stringfields.h"
+#include "asterisk/options.h"
 
 static char *app = "DISA";
 
@@ -154,8 +155,10 @@ static int disa_exec(struct ast_channel *chan, void *data)
                return -1;
        }
        
-       ast_log(LOG_DEBUG, "Digittimeout: %d\n", digittimeout);
-       ast_log(LOG_DEBUG, "Responsetimeout: %d\n", firstdigittimeout);
+       if (option_debug) {
+               ast_log(LOG_DEBUG, "Digittimeout: %d\n", digittimeout);
+               ast_log(LOG_DEBUG, "Responsetimeout: %d\n", firstdigittimeout);
+       }
 
        tmp = ast_strdupa(data);
 
@@ -166,8 +169,8 @@ static int disa_exec(struct ast_channel *chan, void *data)
        if (ast_strlen_zero(args.mailbox))
                args.mailbox = "";
 
-       ast_log(LOG_DEBUG, "Mailbox: %s\n",args.mailbox);
-       
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Mailbox: %s\n",args.mailbox);
 
        special_noanswer = 0;
        if ((!args.noanswer) || strcmp(args.noanswer,"NOANSWER"))
@@ -183,11 +186,13 @@ static int disa_exec(struct ast_channel *chan, void *data)
        acctcode[0] = 0;
        /* can we access DISA without password? */ 
 
-       ast_log(LOG_DEBUG, "Context: %s\n",args.context);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Context: %s\n",args.context);
 
        if (!strcasecmp(args.passcode, "no-password")) {
                k |= 1; /* We have the password */
-               ast_log(LOG_DEBUG, "DISA no-password login success\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "DISA no-password login success\n");
        }
        lastdigittime = ast_tvnow();
 
@@ -197,12 +202,14 @@ static int disa_exec(struct ast_channel *chan, void *data)
                  /* if outa time, give em reorder */
                if (ast_tvdiff_ms(ast_tvnow(), lastdigittime) > 
                    ((k&2) ? digittimeout : firstdigittimeout)) {
-                       ast_log(LOG_DEBUG,"DISA %s entry timeout on chan %s\n",
-                               ((k&1) ? "extension" : "password"),chan->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"DISA %s entry timeout on chan %s\n",
+                                       ((k&1) ? "extension" : "password"),chan->name);
                        break;
                }
                if ((res = ast_waitfor(chan, -1) < 0)) {
-                       ast_log(LOG_DEBUG, "Waitfor returned %d\n", res);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Waitfor returned %d\n", res);
                        continue;
                }
                        
@@ -263,7 +270,8 @@ static int disa_exec(struct ast_channel *chan, void *data)
 
                                                        AST_STANDARD_APP_ARGS(args, pwline);
                        
-                                                       ast_log(LOG_DEBUG, "Mailbox: %s\n",args.mailbox);
+                                                       if (option_debug)
+                                                               ast_log(LOG_DEBUG, "Mailbox: %s\n",args.mailbox);
 
                                                        /* password must be in valid format (numeric) */
                                                        if (sscanf(args.passcode,"%d", &j) < 1)
@@ -286,7 +294,8 @@ static int disa_exec(struct ast_channel *chan, void *data)
 
                                        }
                                         /* password good, set to dial state */
-                                       ast_log(LOG_DEBUG,"DISA on chan %s password is good\n",chan->name);
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG,"DISA on chan %s password is good\n",chan->name);
                                        play_dialtone(chan, args.mailbox);
 
                                        k|=1; /* In number mode */
@@ -294,7 +303,8 @@ static int disa_exec(struct ast_channel *chan, void *data)
                                        exten[sizeof(acctcode)] = 0;
                                        ast_copy_string(acctcode, exten, sizeof(acctcode));
                                        exten[0] = 0;
-                                       ast_log(LOG_DEBUG,"Successful DISA log-in on chan %s\n", chan->name);
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG,"Successful DISA log-in on chan %s\n", chan->name);
                                        continue;
                                }
                        }
index e81f4f3..3ce1563 100644 (file)
@@ -103,7 +103,8 @@ static void send_child_event(FILE *handle, const char event, const char *data,
        }
 
        fprintf(handle, "%s\n", tmp);
-       ast_chan_log(LOG_DEBUG, chan, "sent '%s'\n", tmp);
+       if (option_debug)
+               ast_chan_log(LOG_DEBUG, chan, "sent '%s'\n", tmp);
 }
 
 static void *gen_alloc(struct ast_channel *chan, void *params)
@@ -439,7 +440,8 @@ static int app_exec(struct ast_channel *chan, void *data)
 
                                command = ast_strip(input);
 
-                               ast_chan_log(LOG_DEBUG, chan, "got command '%s'\n", input);
+                               if (option_debug)
+                                       ast_chan_log(LOG_DEBUG, chan, "got command '%s'\n", input);
 
                                if (strlen(input) < 4)
                                        continue;
index 6e7a4ff..dafd894 100644 (file)
@@ -210,7 +210,8 @@ static int send_waveform_to_channel(struct ast_channel *chan, char *waveform, in
                                break;
                        }
                        if (f->frametype == AST_FRAME_DTMF) {
-                               ast_log(LOG_DEBUG, "User pressed a key\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "User pressed a key\n");
                                if (intkeys && strchr(intkeys, f->subclass)) {
                                        res = f->subclass;
                                        ast_frfree(f);
@@ -241,13 +242,15 @@ static int send_waveform_to_channel(struct ast_channel *chan, char *waveform, in
                                                break;
                                        }
                                        if (res < needed) { /* last frame */
-                                               ast_log(LOG_DEBUG, "Last frame\n");
+                                               if (option_debug)
+                                                       ast_log(LOG_DEBUG, "Last frame\n");
                                                res=0;
                                                ast_frfree(f);
                                                break;
                                        }
                                } else {
-                                       ast_log(LOG_DEBUG, "No more waveform\n");
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "No more waveform\n");
                                        res = 0;
                                }
                        }
@@ -367,29 +370,34 @@ static int festival_exec(struct ast_channel *chan, void *vdata)
                        intstr = AST_DIGIT_ANY;
        }
        
-       ast_log(LOG_DEBUG, "Text passed to festival server : %s\n",(char *)data);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Text passed to festival server : %s\n",(char *)data);
        /* Connect to local festival server */
        
-       fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
+       fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
 
-       if (fd < 0) {
+       if (fd < 0) {
                ast_log(LOG_WARNING,"festival_client: can't get socket\n");
                ast_config_destroy(cfg);
                ast_module_user_remove(u);
-               return -1;
+               return -1;
        }
-        memset(&serv_addr, 0, sizeof(serv_addr));
-        if ((serv_addr.sin_addr.s_addr = inet_addr(host)) == -1) {
-               /* its a name rather than an ipnum */
-               serverhost = ast_gethostbyname(host, &ahp);
-               if (serverhost == (struct hostent *)0) {
-                       ast_log(LOG_WARNING,"festival_client: gethostbyname failed\n");
+
+       memset(&serv_addr, 0, sizeof(serv_addr));
+
+       if ((serv_addr.sin_addr.s_addr = inet_addr(host)) == -1) {
+               /* its a name rather than an ipnum */
+               serverhost = ast_gethostbyname(host, &ahp);
+
+               if (serverhost == (struct hostent *)0) {
+                       ast_log(LOG_WARNING,"festival_client: gethostbyname failed\n");
                        ast_config_destroy(cfg);
                        ast_module_user_remove(u);
-                       return -1;
-               }
-               memmove(&serv_addr.sin_addr,serverhost->h_addr, serverhost->h_length);
-       }
+                       return -1;
+               }
+               memmove(&serv_addr.sin_addr,serverhost->h_addr, serverhost->h_length);
+       }
+
        serv_addr.sin_family = AF_INET;
        serv_addr.sin_port = htons(port);
 
@@ -422,17 +430,21 @@ static int festival_exec(struct ast_channel *chan, void *vdata)
                        if (fdesc!=-1) {
                                writecache=1;
                                strln=strlen((char *)data);
-                               ast_log(LOG_DEBUG,"line length : %d\n",strln);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG,"line length : %d\n",strln);
                                write(fdesc,&strln,sizeof(int));
                                write(fdesc,data,strln);
                                seekpos=lseek(fdesc,0,SEEK_CUR);
-                               ast_log(LOG_DEBUG,"Seek position : %d\n",seekpos);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG,"Seek position : %d\n",seekpos);
                        }
                } else {
                        read(fdesc,&strln,sizeof(int));
-                       ast_log(LOG_DEBUG,"Cache file exists, strln=%d, strlen=%d\n",strln,(int)strlen((char *)data));
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"Cache file exists, strln=%d, strlen=%d\n",strln,(int)strlen((char *)data));
                        if (strlen((char *)data)==strln) {
-                               ast_log(LOG_DEBUG,"Size OK\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG,"Size OK\n");
                                read(fdesc,&bigstring,strln);
                                bigstring[strln] = 0;
                                if (strcmp(bigstring,data)==0) { 
@@ -449,10 +461,12 @@ static int festival_exec(struct ast_channel *chan, void *vdata)
        if (readcache==1) {
                close(fd);
                fd=fdesc;
-               ast_log(LOG_DEBUG,"Reading from cache...\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG,"Reading from cache...\n");
        } else {
-               ast_log(LOG_DEBUG,"Passing text to festival...\n");
-               fs=fdopen(dup(fd),"wb");
+               if (option_debug)
+                       ast_log(LOG_DEBUG,"Passing text to festival...\n");
+               fs=fdopen(dup(fd),"wb");
                fprintf(fs,festivalcommand,(char *)data);
                fflush(fs);
                fclose(fs);
@@ -460,7 +474,8 @@ static int festival_exec(struct ast_channel *chan, void *vdata)
        
        /* Write to cache and then pass it down */
        if (writecache==1) {
-               ast_log(LOG_DEBUG,"Writing result to cache...\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG,"Writing result to cache...\n");
                while ((strln=read(fd,buffer,16384))!=0) {
                        write(fdesc,buffer,strln);
                }
@@ -470,7 +485,8 @@ static int festival_exec(struct ast_channel *chan, void *vdata)
                lseek(fd,seekpos,SEEK_SET);
        }
        
-       ast_log(LOG_DEBUG,"Passing data to channel...\n");
+       if (option_debug)
+               ast_log(LOG_DEBUG,"Passing data to channel...\n");
        
        /* Read back info from server */
        /* This assumes only one waveform will come back, also LP is unlikely */
@@ -495,14 +511,16 @@ static int festival_exec(struct ast_channel *chan, void *vdata)
                }
                ack[3] = '\0';
                if (strcmp(ack,"WV\n") == 0) {         /* receive a waveform */
-                       ast_log(LOG_DEBUG,"Festival WV command\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"Festival WV command\n");
                        waveform = socket_receive_file_to_buff(fd,&filesize);
                        res = send_waveform_to_channel(chan,waveform,filesize, intstr);
                        free(waveform);
                        break;
                }
                else if (strcmp(ack,"LP\n") == 0) {   /* receive an s-expr */
-                       ast_log(LOG_DEBUG,"Festival LP command\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"Festival LP command\n");
                        waveform = socket_receive_file_to_buff(fd,&filesize);
                        waveform[filesize]='\0';
                        ast_log(LOG_WARNING,"Festival returned LP : %s\n",waveform);
index 9d93dab..4a223bd 100644 (file)
@@ -156,13 +156,15 @@ static int ices_exec(struct ast_channel *chan, void *data)
                        /* Wait for audio, and stream */
                        ms = ast_waitfor(chan, -1);
                        if (ms < 0) {
-                               ast_log(LOG_DEBUG, "Hangup detected\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Hangup detected\n");
                                res = -1;
                                break;
                        }
                        f = ast_read(chan);
                        if (!f) {
-                               ast_log(LOG_DEBUG, "Null frame == hangup() detected\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Null frame == hangup() detected\n");
                                res = -1;
                                break;
                        }
index 21c2b7c..861248c 100644 (file)
@@ -164,7 +164,8 @@ static int _macro_exec(struct ast_channel *chan, void *data, int exclusive)
 
        /* If we are to run the macro exclusively, take the mutex */
        if (exclusive) {
-               ast_log(LOG_DEBUG, "Locking macrolock for '%s'\n", fullmacro);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Locking macrolock for '%s'\n", fullmacro);
                ast_autoservice_start(chan);
                if (ast_context_lockmacro(fullmacro)) {
                        ast_log(LOG_WARNING, "Failed to lock macro '%s' as in-use\n", fullmacro);
@@ -228,7 +229,8 @@ static int _macro_exec(struct ast_channel *chan, void *data, int exclusive)
                        if (((res >= '0') && (res <= '9')) || ((res >= 'A') && (res <= 'F')) ||
                        (res == '*') || (res == '#')) {
                                /* Just return result as to the previous application as if it had been dialed */
-                               ast_log(LOG_DEBUG, "Oooh, got something to jump out with ('%c')!\n", res);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Oooh, got something to jump out with ('%c')!\n", res);
                                break;
                        }
                        switch(res) {
@@ -258,8 +260,9 @@ static int _macro_exec(struct ast_channel *chan, void *data, int exclusive)
                }
                /* don't stop executing extensions when we're in "h" */
                if (chan->_softhangup && strcasecmp(oldexten,"h") && strcasecmp(chan->macroexten,"h")) {
-                       ast_log(LOG_DEBUG, "Extension %s, macroexten %s, priority %d returned normally even though call was hung up\n",
-                               chan->exten, chan->macroexten, chan->priority);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Extension %s, macroexten %s, priority %d returned normally even though call was hung up\n",
+                                       chan->exten, chan->macroexten, chan->priority);
                        goto out;
                }
                chan->priority++;
@@ -330,7 +333,8 @@ static int _macro_exec(struct ast_channel *chan, void *data, int exclusive)
 
        /* Unlock the macro */
        if (exclusive) {
-               ast_log(LOG_DEBUG, "Unlocking macrolock for '%s'\n", fullmacro);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Unlocking macrolock for '%s'\n", fullmacro);
                if (ast_context_unlockmacro(fullmacro)) {
                        ast_log(LOG_ERROR, "Failed to unlock macro '%s' - that isn't good\n", fullmacro);
                        res = 0;
index aa52c3b..80514f8 100644 (file)
@@ -825,7 +825,10 @@ static int meetme_cmd(int fd, int argc, char **argv)
                return RESULT_SUCCESS;
        } else 
                return RESULT_SHOWUSAGE;
-       ast_log(LOG_DEBUG, "Cmdline: %s\n", cmdline);
+
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Cmdline: %s\n", cmdline);
+
        admin_exec(NULL, cmdline);
 
        return 0;
@@ -1258,7 +1261,8 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c
        if (ztc.confmode) {
                /* Whoa, already in a conference...  Retry... */
                if (!retryzap) {
-                       ast_log(LOG_DEBUG, "Zap channel is in a conference already, retrying with pseudo\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Zap channel is in a conference already, retrying with pseudo\n");
                        retryzap = 1;
                        goto zapretry;
                }
@@ -1292,7 +1296,8 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c
                ast_mutex_unlock(&conf->playlock);
                goto outrun;
        }
-       ast_log(LOG_DEBUG, "Placed channel %s in ZAP conf %d\n", chan->name, conf->zapconf);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Placed channel %s in ZAP conf %d\n", chan->name, conf->zapconf);
 
        if (!sent_event) {
                manager_event(EVENT_FLAG_CALL, "MeetmeJoin", 
@@ -1524,7 +1529,8 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c
                                                close(fd);
                                                using_pseudo = 0;
                                        }
-                                       ast_log(LOG_DEBUG, "Ooh, something swapped out under us, starting over\n");
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Ooh, something swapped out under us, starting over\n");
                                        retryzap = strcasecmp(c->tech->type, "Zap");
                                        user->zapchannel = !retryzap;
                                        goto zapretry;
@@ -1602,7 +1608,8 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c
                                        tmp[0] = f->subclass;
                                        tmp[1] = '\0';
                                        if (!ast_goto_if_exists(chan, exitcontext, tmp, 1)) {
-                                               ast_log(LOG_DEBUG, "Got DTMF %c, goto context %s\n", tmp[0], exitcontext);
+                                               if (option_debug)
+                                                       ast_log(LOG_DEBUG, "Got DTMF %c, goto context %s\n", tmp[0], exitcontext);
                                                ret = 0;
                                                ast_frfree(f);
                                                break;
@@ -2038,7 +2045,8 @@ static struct ast_conference *find_conf(struct ast_channel *chan, char *confno,
        if (!cnf) {
                if (dynamic) {
                        /* No need to parse meetme.conf */
-                       ast_log(LOG_DEBUG, "Building dynamic conference '%s'\n", confno);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Building dynamic conference '%s'\n", confno);
                        if (dynamic_pin) {
                                if (dynamic_pin[0] == 'q') {
                                        /* Query the user to enter a PIN */
@@ -2074,7 +2082,8 @@ static struct ast_conference *find_conf(struct ast_channel *chan, char *confno,
                                }
                        }
                        if (!var) {
-                               ast_log(LOG_DEBUG, "%s isn't a valid conference\n", confno);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "%s isn't a valid conference\n", confno);
                        }
                        ast_config_destroy(cfg);
                }
@@ -2920,7 +2929,8 @@ static int slastate(const char *data)
        struct ast_conference *conf;
        struct ast_sla *sla, *sla2;
 
-       ast_log(LOG_DEBUG, "asked for sla state for '%s'\n", data);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "asked for sla state for '%s'\n", data);
 
        /* Find conference */
        AST_LIST_LOCK(&confs);
@@ -2934,7 +2944,8 @@ static int slastate(const char *data)
        sla = sla2 = ASTOBJ_CONTAINER_FIND(&slas, data);
        ASTOBJ_UNREF(sla2, sla_destroy);
 
-       ast_log(LOG_DEBUG, "for '%s' conf = %p, sla = %p\n", data, conf, sla);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "for '%s' conf = %p, sla = %p\n", data, conf, sla);
 
        if (!conf && !sla)
                return AST_DEVICE_INVALID;
index 667de67..704666d 100644 (file)
@@ -183,7 +183,8 @@ static int mp3_exec(struct ast_channel *chan, void *data)
                                                break;
                                        }
                                } else {
-                                       ast_log(LOG_DEBUG, "No more mp3\n");
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "No more mp3\n");
                                        res = 0;
                                        break;
                                }
@@ -191,19 +192,22 @@ static int mp3_exec(struct ast_channel *chan, void *data)
                        } else {
                                ms = ast_waitfor(chan, ms);
                                if (ms < 0) {
-                                       ast_log(LOG_DEBUG, "Hangup detected\n");
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Hangup detected\n");
                                        res = -1;
                                        break;
                                }
                                if (ms) {
                                        f = ast_read(chan);
                                        if (!f) {
-                                               ast_log(LOG_DEBUG, "Null frame == hangup() detected\n");
+                                               if (option_debug)
+                                                       ast_log(LOG_DEBUG, "Null frame == hangup() detected\n");
                                                res = -1;
                                                break;
                                        }
                                        if (f->frametype == AST_FRAME_DTMF) {
-                                               ast_log(LOG_DEBUG, "User pressed a key\n");
+                                               if (option_debug)
+                                                       ast_log(LOG_DEBUG, "User pressed a key\n");
                                                ast_frfree(f);
                                                res = 0;
                                                break;
index 3465843..60623cc 100644 (file)
@@ -165,7 +165,8 @@ static int NBScat_exec(struct ast_channel *chan, void *data)
                                                break;
                                        }
                                } else {
-                                       ast_log(LOG_DEBUG, "No more mp3\n");
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "No more mp3\n");
                                        res = 0;
                                        break;
                                }
@@ -173,19 +174,22 @@ static int NBScat_exec(struct ast_channel *chan, void *data)
                        } else {
                                ms = ast_waitfor(chan, ms);
                                if (ms < 0) {
-                                       ast_log(LOG_DEBUG, "Hangup detected\n");
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Hangup detected\n");
                                        res = -1;
                                        break;
                                }
                                if (ms) {
                                        f = ast_read(chan);
                                        if (!f) {
-                                               ast_log(LOG_DEBUG, "Null frame == hangup() detected\n");
+                                               if (option_debug)
+                                                       ast_log(LOG_DEBUG, "Null frame == hangup() detected\n");
                                                res = -1;
                                                break;
                                        }
                                        if (f->frametype == AST_FRAME_DTMF) {
-                                               ast_log(LOG_DEBUG, "User pressed a key\n");
+                                               if (option_debug)
+                                                       ast_log(LOG_DEBUG, "User pressed a key\n");
                                                ast_frfree(f);
                                                res = 0;
                                                break;
index ec7eecf..23ad0da 100644 (file)
@@ -179,14 +179,16 @@ static int osp_create_provider(struct ast_config* cfg, const char* provider)
                        } else {
                                snprintf(p->privatekey, sizeof(p->privatekey), "%s/%s", ast_config_AST_KEY_DIR, v->value);
                        }
-                       ast_log(LOG_DEBUG, "OSP: privatekey '%s'\n", p->privatekey);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "OSP: privatekey '%s'\n", p->privatekey);
                } else if (!strcasecmp(v->name, "localcert")) {
                        if (v->value[0] == '/') {
                                ast_copy_string(p->localcert, v->value, sizeof(p->localcert));
                        } else {
                                snprintf(p->localcert, sizeof(p->localcert), "%s/%s", ast_config_AST_KEY_DIR, v->value);
                        }
-                       ast_log(LOG_DEBUG, "OSP: localcert '%s'\n", p->localcert);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "OSP: localcert '%s'\n", p->localcert);
                } else if (!strcasecmp(v->name, "cacert")) {
                        if (p->cacount < OSP_MAX_CERTS) {
                                if (v->value[0] == '/') {
@@ -194,7 +196,8 @@ static int osp_create_provider(struct ast_config* cfg, const char* provider)
                                } else {
                                        snprintf(p->cacerts[p->cacount], sizeof(p->cacerts[0]), "%s/%s", ast_config_AST_KEY_DIR, v->value);
                                }
-                               ast_log(LOG_DEBUG, "OSP: cacert[%d]: '%s'\n", p->cacount, p->cacerts[p->cacount]);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "OSP: cacert[%d]: '%s'\n", p->cacount, p->cacerts[p->cacount]);
                                p->cacount++;
                        } else {
                                ast_log(LOG_WARNING, "OSP: Too many CA Certificates at line %d\n", v->lineno);
@@ -202,7 +205,8 @@ static int osp_create_provider(struct ast_config* cfg, const char* provider)
                } else if (!strcasecmp(v->name, "servicepoint")) {
                        if (p->spcount < OSP_MAX_SRVS) {
                                ast_copy_string(p->srvpoints[p->spcount], v->value, sizeof(p->srvpoints[0]));
-                               ast_log(LOG_DEBUG, "OSP: servicepoint[%d]: '%s'\n", p->spcount, p->srvpoints[p->spcount]);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "OSP: servicepoint[%d]: '%s'\n", p->spcount, p->srvpoints[p->spcount]);
                                p->spcount++;
                        } else {
                                ast_log(LOG_WARNING, "OSP: Too many Service Points at line %d\n", v->lineno);
@@ -210,7 +214,8 @@ static int osp_create_provider(struct ast_config* cfg, const char* provider)
                } else if (!strcasecmp(v->name, "maxconnections")) {
                        if ((sscanf(v->value, "%d", &t) == 1) && (t >= OSP_MIN_MAXCONNECTIONS) && (t <= OSP_MAX_MAXCONNECTIONS)) {
                                p->maxconnections = t;
-                               ast_log(LOG_DEBUG, "OSP: maxconnections '%d'\n", t);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "OSP: maxconnections '%d'\n", t);
                        } else {
                                ast_log(LOG_WARNING, "OSP: maxconnections should be an integer from %d to %d, not '%s' at line %d\n", 
                                        OSP_MIN_MAXCONNECTIONS, OSP_MAX_MAXCONNECTIONS, v->value, v->lineno);
@@ -218,7 +223,8 @@ static int osp_create_provider(struct ast_config* cfg, const char* provider)
                } else if (!strcasecmp(v->name, "retrydelay")) {
                        if ((sscanf(v->value, "%d", &t) == 1) && (t >= OSP_MIN_RETRYDELAY) && (t <= OSP_MAX_RETRYDELAY)) {
                                p->retrydelay = t;
-                               ast_log(LOG_DEBUG, "OSP: retrydelay '%d'\n", t);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "OSP: retrydelay '%d'\n", t);
                        } else {
                                ast_log(LOG_WARNING, "OSP: retrydelay should be an integer from %d to %d, not '%s' at line %d\n", 
                                        OSP_MIN_RETRYDELAY, OSP_MAX_RETRYDELAY, v->value, v->lineno);
@@ -226,7 +232,8 @@ static int osp_create_provider(struct ast_config* cfg, const char* provider)
                } else if (!strcasecmp(v->name, "retrylimit")) {
                        if ((sscanf(v->value, "%d", &t) == 1) && (t >= OSP_MIN_RETRYLIMIT) && (t <= OSP_MAX_RETRYLIMIT)) {
                                p->retrylimit = t;
-                               ast_log(LOG_DEBUG, "OSP: retrylimit '%d'\n", t);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "OSP: retrylimit '%d'\n", t);
                        } else {
                                ast_log(LOG_WARNING, "OSP: retrylimit should be an integer from %d to %d, not '%s' at line %d\n", 
                                        OSP_MIN_RETRYLIMIT, OSP_MAX_RETRYLIMIT, v->value, v->lineno);
@@ -234,18 +241,21 @@ static int osp_create_provider(struct ast_config* cfg, const char* provider)
                } else if (!strcasecmp(v->name, "timeout")) {
                        if ((sscanf(v->value, "%d", &t) == 1) && (t >= OSP_MIN_TIMEOUT) && (t <= OSP_MAX_TIMEOUT)) {
                                p->timeout = t;
-                               ast_log(LOG_DEBUG, "OSP: timeout '%d'\n", t);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "OSP: timeout '%d'\n", t);
                        } else {
                                ast_log(LOG_WARNING, "OSP: timeout should be an integer from %d to %d, not '%s' at line %d\n", 
                                        OSP_MIN_TIMEOUT, OSP_MAX_TIMEOUT, v->value, v->lineno);
                        }
                } else if (!strcasecmp(v->name, "source")) {
                        ast_copy_string(p->source, v->value, sizeof(p->source));
-                       ast_log(LOG_DEBUG, "OSP: source '%s'\n", p->source);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "OSP: source '%s'\n", p->source);
                } else if (!strcasecmp(v->name, "authpolicy")) {
                        if ((sscanf(v->value, "%d", &t) == 1) && ((t == OSP_AUTH_NO) || (t == OSP_AUTH_YES) || (t == OSP_AUTH_EXCLUSIVE))) {
                                p->authpolicy = t;
-                               ast_log(LOG_DEBUG, "OSP: authpolicy '%d'\n", t);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "OSP: authpolicy '%d'\n", t);
                        } else {
                                ast_log(LOG_WARNING, "OSP: authpolicy should be %d, %d or %d, not '%s' at line %d\n", 
                                        OSP_AUTH_NO, OSP_AUTH_YES, OSP_AUTH_EXCLUSIVE, v->value, v->lineno);
@@ -273,7 +283,8 @@ static int osp_create_provider(struct ast_config* cfg, const char* provider)
 
        if (p->cacount < 1) {
                snprintf(p->cacerts[p->cacount], sizeof(p->cacerts[0]), "%s/%s-cacert.pem", ast_config_AST_KEY_DIR, provider);
-               ast_log(LOG_DEBUG, "OSP: cacert[%d]: '%s'\n", p->cacount, p->cacerts[p->cacount]);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: cacert[%d]: '%s'\n", p->cacount, p->cacerts[p->cacount]);
                p->cacount++;
        }
        for (i = 0; i < p->cacount; i++) {
@@ -309,7 +320,8 @@ static int osp_create_provider(struct ast_config* cfg, const char* provider)
                free(p);
                res = -1;
        } else {
-               ast_log(LOG_DEBUG, "OSP: provider '%s'\n", provider);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: provider '%s'\n", provider);
                ast_mutex_lock(&osplock);
                p->next = ospproviders;
                ospproviders = p;
@@ -348,7 +360,8 @@ static int osp_get_policy(const char* provider, int* policy)
        while(p) {
                if (!strcasecmp(p->name, provider)) {
                        *policy = p->authpolicy;
-                       ast_log(LOG_DEBUG, "OSP: authpolicy '%d'\n", *policy);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "OSP: authpolicy '%d'\n", *policy);
                        res = 1;
                        break;
                }
@@ -379,13 +392,16 @@ static int osp_create_transaction(const char* provider, int* transaction, unsign
                if (!strcasecmp(p->name, provider)) {
                        error = OSPPTransactionNew(p->handle, transaction);
                        if (error == OSPC_ERR_NO_ERROR) {
-                               ast_log(LOG_DEBUG, "OSP: transaction '%d'\n", *transaction);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "OSP: transaction '%d'\n", *transaction);
                                ast_copy_string(source, p->source, sourcesize);
-                               ast_log(LOG_DEBUG, "OSP: source '%s'\n", source);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "OSP: source '%s'\n", source);
                                res = 1;
                        } else {
                                *transaction = OSP_INVALID_HANDLE;
-                               ast_log(LOG_DEBUG, "OSP: Unable to create transaction handle, error '%d'\n", error);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "OSP: Unable to create transaction handle, error '%d'\n", error);
                                res = -1;
                        }
                        break;
@@ -430,13 +446,16 @@ static int osp_validate_token(int transaction, const char* source, const char* d
                &dummy, NULL, 
                osp_tokenformat); 
        if (error != OSPC_ERR_NO_ERROR) {
-               ast_log(LOG_DEBUG, "OSP: Unable to validate inbound token\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: Unable to validate inbound token\n");
                res = -1;
        } else if (authorised) {
-               ast_log(LOG_DEBUG, "OSP: Authorised\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: Authorised\n");
                res = 1;
        } else {
-               ast_log(LOG_DEBUG, "OSP: Unauthorised\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: Unauthorised\n");
                res = 0;
        }
        
@@ -479,13 +498,15 @@ static int osp_check_destination(const char* called, const char* calling, char*
        int error;
 
        if (strlen(destination) <= 2) {
-               ast_log(LOG_DEBUG, "OSP: Wrong destination format '%s'\n", destination);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: Wrong destination format '%s'\n", destination);
                *reason = OSPC_FAIL_NORMAL_UNSPECIFIED;
                return -1;
        } 
 
        if ((error = OSPPTransactionIsDestOSPEnabled(result->outhandle, &enabled)) != OSPC_ERR_NO_ERROR) {
-               ast_log(LOG_DEBUG, "OSP: Unable to get destination OSP version, error '%d'\n", error);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: Unable to get destination OSP version, error '%d'\n", error);
                *reason = OSPC_FAIL_NORMAL_UNSPECIFIED;
                return -1;
        }
@@ -497,7 +518,8 @@ static int osp_check_destination(const char* called, const char* calling, char*
        }
 
        if ((error = OSPPTransactionGetDestProtocol(result->outhandle, &protocol)) != OSPC_ERR_NO_ERROR) {
-               ast_log(LOG_DEBUG, "OSP: Unable to get destination protocol, error '%d'\n", error);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: Unable to get destination protocol, error '%d'\n", error);
                *reason = OSPC_FAIL_NORMAL_UNSPECIFIED; 
                result->token[0] = '\0';
                return -1;
@@ -508,25 +530,29 @@ static int osp_check_destination(const char* called, const char* calling, char*
        destination[strlen(destination) - 1] = '\0';
        switch(protocol) {
                case OSPE_DEST_PROT_H323_SETUP:
-                       ast_log(LOG_DEBUG, "OSP: protocol '%d'\n", protocol);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "OSP: protocol '%d'\n", protocol);
                        ast_copy_string(result->tech, "H323", sizeof(result->tech));
                        snprintf(result->dest, sizeof(result->dest), "%s@%s", called, destination + 1);
                        ast_copy_string(result->calling, calling, sizeof(result->calling));
                        break;
                case OSPE_DEST_PROT_SIP:
-                       ast_log(LOG_DEBUG, "OSP: protocol '%d'\n", protocol);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "OSP: protocol '%d'\n", protocol);
                        ast_copy_string(result->tech, "SIP", sizeof(result->tech));
                        snprintf(result->dest, sizeof(result->dest), "%s@%s", called, destination + 1);
                        ast_copy_string(result->calling, calling, sizeof(result->calling));
                        break;
                case OSPE_DEST_PROT_IAX:
-                       ast_log(LOG_DEBUG, "OSP: protocol '%d'\n", protocol);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "OSP: protocol '%d'\n", protocol);
                        ast_copy_string(result->tech, "IAX", sizeof(result->tech));
                        snprintf(result->dest, sizeof(result->dest), "%s@%s", called, destination + 1);
                        ast_copy_string(result->calling, calling, sizeof(result->calling));
                        break;
                default:
-                       ast_log(LOG_DEBUG, "OSP: Unknown protocol '%d'\n", protocol);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "OSP: Unknown protocol '%d'\n", protocol);
                        *reason = OSPC_FAIL_PROTOCOL_ERROR; 
                        result->token[0] = '\0';
                        res = 0;
@@ -566,7 +592,8 @@ static int osp_auth(const char* provider, int* transaction, const char* source,
        *timelimit = OSP_DEF_TIMELIMIT;
        res = osp_get_policy(provider, &policy);
        if (!res) {
-               ast_log(LOG_DEBUG, "OSP: Unabe to find OSP authentication policy\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: Unabe to find OSP authentication policy\n");
                return res;
        }
 
@@ -578,7 +605,8 @@ static int osp_auth(const char* provider, int* transaction, const char* source,
                        if (ast_strlen_zero(token)) {
                                res = 0;
                        } else if ((res = osp_create_transaction(provider, transaction, sizeof(dest), dest)) <= 0) {
-                               ast_log(LOG_DEBUG, "OSP: Unable to generate transaction handle\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "OSP: Unable to generate transaction handle\n");
                                *transaction = OSP_INVALID_HANDLE;
                                res = 0;
                        } else if((res = osp_validate_token(*transaction, source, dest, calling, called, token, timelimit)) <= 0) {
@@ -590,7 +618,8 @@ static int osp_auth(const char* provider, int* transaction, const char* source,
                        if (ast_strlen_zero(token)) {
                                res = 1;
                        } else if ((res = osp_create_transaction(provider, transaction, sizeof(dest), dest)) <= 0) {
-                               ast_log(LOG_DEBUG, "OSP: Unable to generate transaction handle\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "OSP: Unable to generate transaction handle\n");
                                *transaction = OSP_INVALID_HANDLE;
                                res = 0;
                        } else if((res = osp_validate_token(*transaction, source, dest, calling, called, token, timelimit)) <= 0) {
@@ -635,7 +664,8 @@ static int osp_lookup(const char* provider, const char* srcdev, const char* call
        result->outtimelimit = OSP_DEF_TIMELIMIT;
 
        if ((res = osp_create_transaction(provider, &result->outhandle, sizeof(source), source)) <= 0) {
-               ast_log(LOG_DEBUG, "OSP: Unable to generate transaction handle\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: Unable to generate transaction handle\n");
                result->outhandle = OSP_INVALID_HANDLE;
                if (result->inhandle != OSP_INVALID_HANDLE) {
                        OSPPTransactionRecordFailure(result->inhandle, OSPC_FAIL_NORMAL_UNSPECIFIED);
@@ -647,7 +677,8 @@ static int osp_lookup(const char* provider, const char* srcdev, const char* call
        error = OSPPTransactionRequestAuthorisation(result->outhandle, source, srcdev, calling ? calling : "",
                        OSPC_E164, called, OSPC_E164, NULL, 0, NULL, NULL, &result->numresults, &dummy, NULL);
        if (error != OSPC_ERR_NO_ERROR) {
-               ast_log(LOG_DEBUG, "OSP: Unable to request authorization\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: Unable to request authorization\n");
                result->numresults = 0;
                if (result->inhandle != OSP_INVALID_HANDLE) {
                        OSPPTransactionRecordFailure(result->inhandle, OSPC_FAIL_NORMAL_UNSPECIFIED);
@@ -656,7 +687,8 @@ static int osp_lookup(const char* provider, const char* srcdev, const char* call
        }
 
        if (!result->numresults) {
-               ast_log(LOG_DEBUG, "OSP: No more destination\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: No more destination\n");
                if (result->inhandle != OSP_INVALID_HANDLE) {
                        OSPPTransactionRecordFailure(result->inhandle, OSPC_FAIL_NO_ROUTE_TO_DEST);
                }
@@ -668,7 +700,8 @@ static int osp_lookup(const char* provider, const char* srcdev, const char* call
        error = OSPPTransactionGetFirstDestination(result->outhandle, 0, NULL, NULL, &result->outtimelimit, &callidlen, callid,
                        sizeof(callednum), callednum, sizeof(callingnum), callingnum, sizeof(destination), destination, 0, NULL, &tokenlen, token);
        if (error != OSPC_ERR_NO_ERROR) {
-               ast_log(LOG_DEBUG, "OSP: Unable to get first route\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: Unable to get first route\n");
                result->numresults = 0;
                result->outtimelimit = OSP_DEF_TIMELIMIT;
                if (result->inhandle != OSP_INVALID_HANDLE) {
@@ -679,18 +712,21 @@ static int osp_lookup(const char* provider, const char* srcdev, const char* call
 
        result->numresults--;
        result->outtimelimit = osp_choose_timelimit(result->intimelimit, result->outtimelimit);
-       ast_log(LOG_DEBUG, "OSP: outtimelimit '%d'\n", result->outtimelimit);
-       ast_log(LOG_DEBUG, "OSP: called '%s'\n", callednum);
-       ast_log(LOG_DEBUG, "OSP: calling '%s'\n", callingnum);
-       ast_log(LOG_DEBUG, "OSP: destination '%s'\n", destination);
-       ast_log(LOG_DEBUG, "OSP: token size '%d'\n", tokenlen);
+       if (option_debug) {
+               ast_log(LOG_DEBUG, "OSP: outtimelimit '%d'\n", result->outtimelimit);
+               ast_log(LOG_DEBUG, "OSP: called '%s'\n", callednum);
+               ast_log(LOG_DEBUG, "OSP: calling '%s'\n", callingnum);
+               ast_log(LOG_DEBUG, "OSP: destination '%s'\n", destination);
+               ast_log(LOG_DEBUG, "OSP: token size '%d'\n", tokenlen);
+       }
 
        if ((res = osp_check_destination(callednum, callingnum, destination, tokenlen, token, &reason, result)) > 0) {
                return 1;
        }
 
        if (!result->numresults) {
-               ast_log(LOG_DEBUG, "OSP: No more destination\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: No more destination\n");
                result->outtimelimit = OSP_DEF_TIMELIMIT;
                OSPPTransactionRecordFailure(result->outhandle, reason);
                if (result->inhandle != OSP_INVALID_HANDLE) {
@@ -707,15 +743,18 @@ static int osp_lookup(const char* provider, const char* srcdev, const char* call
                if (error == OSPC_ERR_NO_ERROR) {
                        result->numresults--;
                        result->outtimelimit = osp_choose_timelimit(result->intimelimit, result->outtimelimit);
-                       ast_log(LOG_DEBUG, "OSP: outtimelimit '%d'\n", result->outtimelimit);
-                       ast_log(LOG_DEBUG, "OSP: called '%s'\n", callednum);
-                       ast_log(LOG_DEBUG, "OSP: calling '%s'\n", callingnum);
-                       ast_log(LOG_DEBUG, "OSP: destination '%s'\n", destination);
-                       ast_log(LOG_DEBUG, "OSP: token size '%d'\n", tokenlen);
+                       if (option_debug) {
+                               ast_log(LOG_DEBUG, "OSP: outtimelimit '%d'\n", result->outtimelimit);
+                               ast_log(LOG_DEBUG, "OSP: called '%s'\n", callednum);
+                               ast_log(LOG_DEBUG, "OSP: calling '%s'\n", callingnum);
+                               ast_log(LOG_DEBUG, "OSP: destination '%s'\n", destination);
+                               ast_log(LOG_DEBUG, "OSP: token size '%d'\n", tokenlen);
+                       }
                        if ((res = osp_check_destination(callednum, callingnum, destination, tokenlen, token, &reason, result)) > 0) {
                                break;
                        } else if (!result->numresults) {
-                               ast_log(LOG_DEBUG, "OSP: No more destination\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "OSP: No more destination\n");
                                OSPPTransactionRecordFailure(result->outhandle, reason);
                                if (result->inhandle != OSP_INVALID_HANDLE) {
                                        OSPPTransactionRecordFailure(result->inhandle, OSPC_FAIL_NO_ROUTE_TO_DEST);
@@ -724,7 +763,8 @@ static int osp_lookup(const char* provider, const char* srcdev, const char* call
                                break;
                        }
                } else {
-                       ast_log(LOG_DEBUG, "OSP: Unable to get route, error '%d'\n", error);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "OSP: Unable to get route, error '%d'\n", error);
                        result->numresults = 0;
                        result->outtimelimit = OSP_DEF_TIMELIMIT;
                        if (result->inhandle != OSP_INVALID_HANDLE) {
@@ -763,7 +803,8 @@ static int osp_next(int cause, struct osp_result* result)
        result->outtimelimit = OSP_DEF_TIMELIMIT;
 
        if (result->outhandle == OSP_INVALID_HANDLE) {
-               ast_log(LOG_DEBUG, "OSP: Transaction handle undefined\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: Transaction handle undefined\n");
                result->numresults = 0;
                if (result->inhandle != OSP_INVALID_HANDLE) {
                        OSPPTransactionRecordFailure(result->inhandle, OSPC_FAIL_NORMAL_UNSPECIFIED);
@@ -774,7 +815,8 @@ static int osp_next(int cause, struct osp_result* result)
        reason = asterisk2osp(cause);
 
        if (!result->numresults) {
-               ast_log(LOG_DEBUG, "OSP: No more destination\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: No more destination\n");
                OSPPTransactionRecordFailure(result->outhandle, reason);
                if (result->inhandle != OSP_INVALID_HANDLE) {
                        OSPPTransactionRecordFailure(result->inhandle, OSPC_FAIL_NO_ROUTE_TO_DEST);
@@ -790,16 +832,19 @@ static int osp_next(int cause, struct osp_result* result)
                if (error == OSPC_ERR_NO_ERROR) {
                        result->numresults--;
                        result->outtimelimit = osp_choose_timelimit(result->intimelimit, result->outtimelimit);
-                       ast_log(LOG_DEBUG, "OSP: outtimelimit '%d'\n", result->outtimelimit);
-                       ast_log(LOG_DEBUG, "OSP: called '%s'\n", callednum);
-                       ast_log(LOG_DEBUG, "OSP: calling '%s'\n", callingnum);
-                       ast_log(LOG_DEBUG, "OSP: destination '%s'\n", destination);
-                       ast_log(LOG_DEBUG, "OSP: token size '%d'\n", tokenlen);
+                       if (option_debug) {
+                               ast_log(LOG_DEBUG, "OSP: outtimelimit '%d'\n", result->outtimelimit);
+                               ast_log(LOG_DEBUG, "OSP: called '%s'\n", callednum);
+                               ast_log(LOG_DEBUG, "OSP: calling '%s'\n", callingnum);
+                               ast_log(LOG_DEBUG, "OSP: destination '%s'\n", destination);
+                               ast_log(LOG_DEBUG, "OSP: token size '%d'\n", tokenlen);
+                       }
                        if ((res = osp_check_destination(callednum, callingnum, destination, tokenlen, token, &reason, result)) > 0) {
                                res = 1;
                                break;
                        } else if (!result->numresults) {
-                               ast_log(LOG_DEBUG, "OSP: No more destination\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "OSP: No more destination\n");
                                OSPPTransactionRecordFailure(result->outhandle, reason);
                                if (result->inhandle != OSP_INVALID_HANDLE) {
                                        OSPPTransactionRecordFailure(result->inhandle, OSPC_FAIL_NO_ROUTE_TO_DEST);
@@ -808,7 +853,8 @@ static int osp_next(int cause, struct osp_result* result)
                                break;
                        }
                } else {
-                       ast_log(LOG_DEBUG, "OSP: Unable to get route, error '%d'\n", error);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "OSP: Unable to get route, error '%d'\n", error);
                        result->token[0] = '\0';
                        result->numresults = 0;
                        result->outtimelimit = OSP_DEF_TIMELIMIT;
@@ -856,10 +902,12 @@ static int osp_finish(int handle, int recorded, int cause, time_t start, time_t
        error = OSPPTransactionReportUsage(handle, difftime(end, connect), start, end, alert, connect, isPddInfoPresent, pdd,
                                                release, (unsigned char *) "", 0, 0, 0, 0, &dummy, NULL);
        if (error == OSPC_ERR_NO_ERROR) {
-               ast_log(LOG_DEBUG, "OSP: Usage reported\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: Usage reported\n");
                res = 1;
        } else {
-               ast_log(LOG_DEBUG, "OSP: Unable to report usage, error '%d'\n", error);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: Unable to report usage, error '%d'\n", error);
                res = -1;
        }
        OSPPTransactionDelete(handle);
@@ -909,12 +957,14 @@ static int ospauth_exec(struct ast_channel* chan, void* data)
        if (!ast_strlen_zero(args.provider)) {
                provider = args.provider;
        }
-       ast_log(LOG_DEBUG, "OSPAuth: provider '%s'\n", provider);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPAuth: provider '%s'\n", provider);
 
        if ((args.options) && (strchr(args.options, 'j'))) {
                priority_jump = 1;
        }
-       ast_log(LOG_DEBUG, "OSPAuth: priority jump '%d'\n", priority_jump);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPAuth: priority jump '%d'\n", priority_jump);
 
        headp = &chan->varshead;
        AST_LIST_TRAVERSE(headp, current, entries) {
@@ -924,9 +974,11 @@ static int ospauth_exec(struct ast_channel* chan, void* data)
                        token = ast_var_value(current);
                }
        }
-       ast_log(LOG_DEBUG, "OSPAuth: source '%s'\n", source);
-       ast_log(LOG_DEBUG, "OSPAuth: token size '%zd'\n", strlen(token));
 
+       if (option_debug) {
+               ast_log(LOG_DEBUG, "OSPAuth: source '%s'\n", source);
+               ast_log(LOG_DEBUG, "OSPAuth: token size '%zd'\n", strlen(token));
+       }
        
        if ((res = osp_auth(provider, &handle, source, chan->cid.cid_num, chan->exten, token, &timelimit)) > 0) {
                status = AST_OSP_SUCCESS;
@@ -941,12 +993,15 @@ static int ospauth_exec(struct ast_channel* chan, void* data)
 
        snprintf(buffer, sizeof(buffer), "%d", handle);
        pbx_builtin_setvar_helper(chan, "OSPINHANDLE", buffer);
-       ast_log(LOG_DEBUG, "OSPAuth: OSPINHANDLE '%s'\n", buffer);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPAuth: OSPINHANDLE '%s'\n", buffer);
        snprintf(buffer, sizeof(buffer), "%d", timelimit);
        pbx_builtin_setvar_helper(chan, "OSPINTIMELIMIT", buffer);
-       ast_log(LOG_DEBUG, "OSPAuth: OSPINTIMELIMIT '%s'\n", buffer);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPAuth: OSPINTIMELIMIT '%s'\n", buffer);
        pbx_builtin_setvar_helper(chan, "OSPAUTHSTATUS", status);
-       ast_log(LOG_DEBUG, "OSPAuth: %s\n", status);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPAuth: %s\n", status);
 
        if(res <= 0) {
                if (priority_jump || ast_opt_priority_jumping) {
@@ -1005,17 +1060,20 @@ static int osplookup_exec(struct ast_channel* chan, void* data)
 
        AST_STANDARD_APP_ARGS(args, tmp);
 
-       ast_log(LOG_DEBUG, "OSPLookup: exten '%s'\n", args.exten);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPLookup: exten '%s'\n", args.exten);
 
        if (!ast_strlen_zero(args.provider)) {
                provider = args.provider;
        }
-       ast_log(LOG_DEBUG, "OSPlookup: provider '%s'\n", provider);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPlookup: provider '%s'\n", provider);
 
        if ((args.options) && (strchr(args.options, 'j'))) {
                priority_jump = 1;
        }
-       ast_log(LOG_DEBUG, "OSPLookup: priority jump '%d'\n", priority_jump);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPLookup: priority jump '%d'\n", priority_jump);
 
        result.inhandle = OSP_INVALID_HANDLE;
        result.intimelimit = OSP_DEF_TIMELIMIT;
@@ -1034,9 +1092,11 @@ static int osplookup_exec(struct ast_channel* chan, void* data)
                        srcdev = ast_var_value(current);
                }
        }
-       ast_log(LOG_DEBUG, "OSPLookup: OSPINHANDLE '%d'\n", result.inhandle);
-       ast_log(LOG_DEBUG, "OSPLookup: OSPINTIMELIMIT '%d'\n", result.intimelimit);
-       ast_log(LOG_DEBUG, "OSPLookup: source device '%s'\n", srcdev);
+       if (option_debug) {
+               ast_log(LOG_DEBUG, "OSPLookup: OSPINHANDLE '%d'\n", result.inhandle);
+               ast_log(LOG_DEBUG, "OSPLookup: OSPINTIMELIMIT '%d'\n", result.intimelimit);
+               ast_log(LOG_DEBUG, "OSPLookup: source device '%s'\n", srcdev);
+       }
        
        if ((cres = ast_autoservice_start(chan)) < 0) {
                ast_module_user_remove(u);
@@ -1061,29 +1121,38 @@ static int osplookup_exec(struct ast_channel* chan, void* data)
 
        snprintf(buffer, sizeof(buffer), "%d", result.outhandle);
        pbx_builtin_setvar_helper(chan, "OSPOUTHANDLE", buffer);
-       ast_log(LOG_DEBUG, "OSPLookup: OSPOUTHANDLE '%s'\n", buffer);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPLookup: OSPOUTHANDLE '%s'\n", buffer);
        pbx_builtin_setvar_helper(chan, "OSPTECH", result.tech);
-       ast_log(LOG_DEBUG, "OSPLookup: OSPTECH '%s'\n", result.tech);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPLookup: OSPTECH '%s'\n", result.tech);
        pbx_builtin_setvar_helper(chan, "OSPDEST", result.dest);
-       ast_log(LOG_DEBUG, "OSPLookup: OSPDEST '%s'\n", result.dest);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPLookup: OSPDEST '%s'\n", result.dest);
        pbx_builtin_setvar_helper(chan, "OSPCALLING", result.calling);
-       ast_log(LOG_DEBUG, "OSPLookup: OSPCALLING '%s'\n", result.calling);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPLookup: OSPCALLING '%s'\n", result.calling);
        pbx_builtin_setvar_helper(chan, "OSPOUTTOKEN", result.token);
-       ast_log(LOG_DEBUG, "OSPLookup: OSPOUTTOKEN size '%zd'\n", strlen(result.token));
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPLookup: OSPOUTTOKEN size '%zd'\n", strlen(result.token));
        snprintf(buffer, sizeof(buffer), "%d", result.numresults);
        pbx_builtin_setvar_helper(chan, "OSPRESULTS", buffer);
-       ast_log(LOG_DEBUG, "OSPLookup: OSPRESULTS '%s'\n", buffer);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPLookup: OSPRESULTS '%s'\n", buffer);
        snprintf(buffer, sizeof(buffer), "%d", result.outtimelimit);
        pbx_builtin_setvar_helper(chan, "OSPOUTTIMELIMIT", buffer);
-       ast_log(LOG_DEBUG, "OSPLookup: OSPOUTTIMELIMIT '%s'\n", buffer);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPLookup: OSPOUTTIMELIMIT '%s'\n", buffer);
        pbx_builtin_setvar_helper(chan, "OSPLOOKUPSTATUS", status);
-       ast_log(LOG_DEBUG, "OSPLookup: %s\n", status);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPLookup: %s\n", status);
 
        if (!strcasecmp(result.tech, "SIP")) {
                if (!ast_strlen_zero(result.token)) {
                        snprintf(buffer, sizeof(buffer), "P-OSP-Auth-Token: %s", result.token);
                        pbx_builtin_setvar_helper(chan, "_SIPADDHEADER", buffer);
-                       ast_log(LOG_DEBUG, "OSPLookup: SIPADDHEADER size '%zd'\n", strlen(buffer));
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "OSPLookup: SIPADDHEADER size '%zd'\n", strlen(buffer));
                }
        } else if (!strcasecmp(result.tech, "H323")) {
        } else if (!strcasecmp(result.tech, "IAX")) {
@@ -1152,12 +1221,14 @@ static int ospnext_exec(struct ast_channel* chan, void* data)
        if (!ast_strlen_zero(args.cause) && sscanf(args.cause, "%d", &cause) != 1) {
                cause = 0;
        }
-       ast_log(LOG_DEBUG, "OSPNext: cause '%d'\n", cause);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPNext: cause '%d'\n", cause);
 
        if ((args.options) && (strchr(args.options, 'j'))) {
                priority_jump = 1;
        }
-       ast_log(LOG_DEBUG, "OSPNext: priority jump '%d'\n", priority_jump);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPNext: priority jump '%d'\n", priority_jump);
 
        result.inhandle = OSP_INVALID_HANDLE;
        result.outhandle = OSP_INVALID_HANDLE;
@@ -1184,10 +1255,12 @@ static int ospnext_exec(struct ast_channel* chan, void* data)
                        }
                }
        }
-       ast_log(LOG_DEBUG, "OSPNext: OSPINHANDLE '%d'\n", result.inhandle);
-       ast_log(LOG_DEBUG, "OSPNext: OSPOUTHANDLE '%d'\n", result.outhandle);
-       ast_log(LOG_DEBUG, "OSPNext: OSPINTIMELIMIT '%d'\n", result.intimelimit);
-       ast_log(LOG_DEBUG, "OSPNext: OSPRESULTS '%d'\n", result.numresults);
+       if (option_debug) {
+               ast_log(LOG_DEBUG, "OSPNext: OSPINHANDLE '%d'\n", result.inhandle);
+               ast_log(LOG_DEBUG, "OSPNext: OSPOUTHANDLE '%d'\n", result.outhandle);
+               ast_log(LOG_DEBUG, "OSPNext: OSPINTIMELIMIT '%d'\n", result.intimelimit);
+               ast_log(LOG_DEBUG, "OSPNext: OSPRESULTS '%d'\n", result.numresults);
+       }
 
        if ((res = osp_next(cause, &result)) > 0) {
                status = AST_OSP_SUCCESS;
@@ -1206,27 +1279,35 @@ static int ospnext_exec(struct ast_channel* chan, void* data)
        }
 
        pbx_builtin_setvar_helper(chan, "OSPTECH", result.tech);
-       ast_log(LOG_DEBUG, "OSPNext: OSPTECH '%s'\n", result.tech);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPNext: OSPTECH '%s'\n", result.tech);
        pbx_builtin_setvar_helper(chan, "OSPDEST", result.dest);
-       ast_log(LOG_DEBUG, "OSPNext: OSPDEST '%s'\n", result.dest);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPNext: OSPDEST '%s'\n", result.dest);
        pbx_builtin_setvar_helper(chan, "OSPCALLING", result.calling);
-       ast_log(LOG_DEBUG, "OSPNext: OSPCALLING '%s'\n", result.calling);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPNext: OSPCALLING '%s'\n", result.calling);
        pbx_builtin_setvar_helper(chan, "OSPOUTTOKEN", result.token);
-       ast_log(LOG_DEBUG, "OSPNext: OSPOUTTOKEN size '%zd'\n", strlen(result.token));
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPNext: OSPOUTTOKEN size '%zd'\n", strlen(result.token));
        snprintf(buffer, sizeof(buffer), "%d", result.numresults);
        pbx_builtin_setvar_helper(chan, "OSPRESULTS", buffer);
-       ast_log(LOG_DEBUG, "OSPNext: OSPRESULTS '%s'\n", buffer);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPNext: OSPRESULTS '%s'\n", buffer);
        snprintf(buffer, sizeof(buffer), "%d", result.outtimelimit);
        pbx_builtin_setvar_helper(chan, "OSPOUTTIMELIMIT", buffer);
-       ast_log(LOG_DEBUG, "OSPNext: OSPOUTTIMELIMIT '%s'\n", buffer);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPNext: OSPOUTTIMELIMIT '%s'\n", buffer);
        pbx_builtin_setvar_helper(chan, "OSPNEXTSTATUS", status);
-       ast_log(LOG_DEBUG, "OSPNext: %s\n", status);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPNext: %s\n", status);
 
        if (!strcasecmp(result.tech, "SIP")) {
                if (!ast_strlen_zero(result.token)) {
                        snprintf(buffer, sizeof(buffer), "P-OSP-Auth-Token: %s", result.token);
                        pbx_builtin_setvar_helper(chan, "_SIPADDHEADER", buffer);
-                       ast_log(LOG_DEBUG, "OSPLookup: SIPADDHEADER size '%zd'\n", strlen(buffer));
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "OSPLookup: SIPADDHEADER size '%zd'\n", strlen(buffer));
                }
        } else if (!strcasecmp(result.tech, "H323")) {
        } else if (!strcasecmp(result.tech, "IAX")) {
@@ -1289,7 +1370,8 @@ static int ospfinished_exec(struct ast_channel* chan, void* data)
        if ((args.options) && (strchr(args.options, 'j'))) {
                priority_jump = 1;
        }
-       ast_log(LOG_DEBUG, "OSPFinish: priority jump '%d'\n", priority_jump);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPFinish: priority jump '%d'\n", priority_jump);
 
        headp = &chan->varshead;
        AST_LIST_TRAVERSE(headp, current, entries) {
@@ -1311,14 +1393,17 @@ static int ospfinished_exec(struct ast_channel* chan, void* data)
                        }
                }
        }
-       ast_log(LOG_DEBUG, "OSPFinish: OSPINHANDLE '%d'\n", inhandle);
-       ast_log(LOG_DEBUG, "OSPFinish: OSPOUTHANDLE '%d'\n", outhandle);
-       ast_log(LOG_DEBUG, "OSPFinish: recorded '%d'\n", recorded);
+       if (option_debug) {
+               ast_log(LOG_DEBUG, "OSPFinish: OSPINHANDLE '%d'\n", inhandle);
+               ast_log(LOG_DEBUG, "OSPFinish: OSPOUTHANDLE '%d'\n", outhandle);
+               ast_log(LOG_DEBUG, "OSPFinish: recorded '%d'\n", recorded);
+       }
 
        if (!ast_strlen_zero(args.cause) && sscanf(args.cause, "%d", &cause) != 1) {
                cause = 0;
        }
-       ast_log(LOG_DEBUG, "OSPFinish: cause '%d'\n", cause);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSPFinish: cause '%d'\n", cause);
 
        if (chan->cdr) {
                start = chan->cdr->start.tv_sec;
@@ -1333,14 +1418,17 @@ static int ospfinished_exec(struct ast_channel* chan, void* data)
                connect = 0;
                end = 0;
        }
-       ast_log(LOG_DEBUG, "OSPFinish: start '%ld'\n", start);
-       ast_log(LOG_DEBUG, "OSPFinish: connect '%ld'\n", connect);
-       ast_log(LOG_DEBUG, "OSPFinish: end '%ld'\n", end);
+       if (option_debug) {
+               ast_log(LOG_DEBUG, "OSPFinish: start '%ld'\n", start);
+               ast_log(LOG_DEBUG, "OSPFinish: connect '%ld'\n", connect);
+               ast_log(LOG_DEBUG, "OSPFinish: end '%ld'\n", end);
+       }
 
        release = chan->_softhangup ? 0 : 1;
 
        if (osp_finish(outhandle, recorded, cause, start, connect, end, release) <= 0) {
-               ast_log(LOG_DEBUG, "OSPFinish: Unable to report usage for outbound call\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSPFinish: Unable to report usage for outbound call\n");
        }
        switch (cause) {
                case AST_CAUSE_NORMAL_CLEARING:
@@ -1350,7 +1438,8 @@ static int ospfinished_exec(struct ast_channel* chan, void* data)
                        break;
        }
        if (osp_finish(inhandle, recorded, cause, start, connect, end, release) <= 0) {
-               ast_log(LOG_DEBUG, "OSPFinish: Unable to report usage for inbound call\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSPFinish: Unable to report usage for inbound call\n");
        }
        snprintf(buffer, sizeof(buffer), "%d", OSP_INVALID_HANDLE);
        pbx_builtin_setvar_helper(chan, "OSPOUTHANDLE", buffer);
@@ -1403,7 +1492,8 @@ static int osp_load(void)
                } else {
                        OSPPInit(0);
                }
-               ast_log(LOG_DEBUG, "OSP: osp_hardware '%d'\n", osp_hardware);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: osp_hardware '%d'\n", osp_hardware);
 
                t = ast_variable_retrieve(cfg, OSP_GENERAL_CAT, "tokenformat");
                if (t) {
@@ -1416,7 +1506,8 @@ static int osp_load(void)
                                        TOKEN_ALGO_SIGNED, TOKEN_ALGO_UNSIGNED, TOKEN_ALGO_BOTH, t);
                        }
                }
-               ast_log(LOG_DEBUG, "OSP: osp_tokenformat '%d'\n", osp_tokenformat);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "OSP: osp_tokenformat '%d'\n", osp_tokenformat);
 
                t = ast_category_browse(cfg, NULL);
                while(t) {
@@ -1433,7 +1524,8 @@ static int osp_load(void)
                ast_log(LOG_WARNING, "OSP: Unable to find configuration. OSP support disabled\n");
                return 0;
        }
-       ast_log(LOG_DEBUG, "OSP: osp_initialized '%d'\n", osp_initialized);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "OSP: osp_initialized '%d'\n", osp_initialized);
 
        return 1;
 }
index 79a8f2e..f0ce905 100644 (file)
@@ -1020,7 +1020,8 @@ static struct call_queue *find_queue_by_name_rt(const char *queuename, struct as
                        /*! \note Hmm, can't seem to distinguish a DB failure from a not
                           found condition... So we might delete an in-core queue
                           in case of DB failure. */
-                       ast_log(LOG_DEBUG, "Queue %s not found in realtime.\n", queuename);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Queue %s not found in realtime.\n", queuename);
 
                        q->dead = 1;
                        /* Delete if unused (else will be deleted when last caller leaves). */
@@ -1499,9 +1500,11 @@ static int compare_weight(struct call_queue *rq, struct member *member)
                                if (strcmp(mem->interface, member->interface))
                                        continue;
 
-                               ast_log(LOG_DEBUG, "Found matching member %s in queue '%s'\n", mem->interface, q->name);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Found matching member %s in queue '%s'\n", mem->interface, q->name);
                                if (q->weight > rq->weight) {
-                                       ast_log(LOG_DEBUG, "Queue '%s' (weight %d, calls %d) is preferred over '%s' (weight %d, calls %d)\n", q->name, q->weight, q->count, rq->name, rq->weight, rq->count);
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Queue '%s' (weight %d, calls %d) is preferred over '%s' (weight %d, calls %d)\n", q->name, q->weight, q->count, rq->name, rq->weight, rq->count);
                                        found = 1;
                                        break;
                                }
@@ -1593,7 +1596,8 @@ static int ring_entry(struct queue_ent *qe, struct callattempt *tmp, int *busies
                return 0;
        }
        if (use_weight && compare_weight(qe->parent,tmp->member)) {
-               ast_log(LOG_DEBUG, "Priority queue delaying call to %s:%s\n", qe->parent->name, tmp->interface);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Priority queue delaying call to %s:%s\n", qe->parent->name, tmp->interface);
                if (qe->chan->cdr)
                        ast_cdr_busy(qe->chan->cdr);
                tmp->stillgoing = 0;
@@ -1891,7 +1895,8 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte
                }
                if (pos == 1 /* not found */) {
                        if (numlines == (numbusies + numnochan)) {
-                               ast_log(LOG_DEBUG, "Everyone is busy at this time\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Everyone is busy at this time\n");
                        } else {
                                ast_log(LOG_NOTICE, "No one is answering queue '%s' (%d/%d/%d)\n", queue, numlines, numbusies, numnochan);
                        }
@@ -2029,7 +2034,8 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte
                                                        /* Ignore going off hook */
                                                        break;
                                                default:
-                                                       ast_log(LOG_DEBUG, "Dunno what to do with control type %d\n", f->subclass);
+                                                       if (option_debug)
+                                                               ast_log(LOG_DEBUG, "Dunno what to do with control type %d\n", f->subclass);
                                                }
                                        }
                                        ast_frfree(f);
@@ -2849,8 +2855,10 @@ static int set_member_paused(char *queuename, char *interface, int paused)
                if (ast_strlen_zero(queuename) || !strcasecmp(q->name, queuename)) {
                        if ((mem = interface_exists(q, interface))) {
                                found++;
-                               if (mem->paused == paused)
-                                       ast_log(LOG_DEBUG, "%spausing already-%spaused queue member %s:%s\n", (paused ? "" : "un"), (paused ? "" : "un"), q->name, interface);
+                               if (mem->paused == paused) {
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "%spausing already-%spaused queue member %s:%s\n", (paused ? "" : "un"), (paused ? "" : "un"), q->name, interface);
+                               }
                                mem->paused = paused;
 
                                if (queue_persistent_members)
@@ -3109,12 +3117,14 @@ static int rqm_exec(struct ast_channel *chan, void *data)
 
        switch (remove_from_queue(args.queuename, args.interface)) {
        case RES_OKAY:
-               ast_log(LOG_DEBUG, "Removed interface '%s' from queue '%s'\n", args.interface, args.queuename);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Removed interface '%s' from queue '%s'\n", args.interface, args.queuename);
                pbx_builtin_setvar_helper(chan, "RQMSTATUS", "REMOVED");
                res = 0;
                break;
        case RES_EXISTS:
-               ast_log(LOG_DEBUG, "Unable to remove interface '%s' from queue '%s': Not there\n", args.interface, args.queuename);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Unable to remove interface '%s' from queue '%s': Not there\n", args.interface, args.queuename);
                if (priority_jump || ast_opt_priority_jumping)
                        ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 101);
                pbx_builtin_setvar_helper(chan, "RQMSTATUS", "NOTINQUEUE");
index a51a8a5..924e6ba 100644 (file)
@@ -335,7 +335,8 @@ static int record_exec(struct ast_channel *chan, void *data)
                ast_frfree(f);
        }
        if (!f) {
-               ast_log(LOG_DEBUG, "Got hangup\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Got hangup\n");
                res = -1;
        }
                        
index 79cbbd5..7d9376a 100644 (file)
@@ -42,6 +42,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/translate.h"
 #include "asterisk/utils.h"
 #include "asterisk/dsp.h"
+#include "asterisk/options.h"
 
 static char *app = "BackgroundDetect";
 
@@ -102,7 +103,8 @@ static int background_detect_exec(struct ast_channel *chan, void *data)
                        }
                }
        }
-       ast_log(LOG_DEBUG, "Preparing detect of '%s', sil=%d,min=%d,max=%d\n", 
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Preparing detect of '%s', sil=%d,min=%d,max=%d\n", 
                                                tmp, sil, min, max);
        if (chan->_state != AST_STATE_UP) {
                /* Otherwise answer unless we're supposed to send this while on-hook */
@@ -162,7 +164,8 @@ static int background_detect_exec(struct ast_channel *chan, void *data)
                                                                        ms = 0;
                                                                if ((ms > min) && ((max < 0) || (ms < max))) {
                                                                        char ms_str[10];
-                                                                       ast_log(LOG_DEBUG, "Found qualified token of %d ms\n", ms);
+                                                                       if (option_debug)
+                                                                               ast_log(LOG_DEBUG, "Found qualified token of %d ms\n", ms);
 
                                                                        /* Save detected talk time (in milliseconds) */ 
                                                                        sprintf(ms_str, "%d", ms );     
@@ -172,15 +175,18 @@ static int background_detect_exec(struct ast_channel *chan, void *data)
                                                                        res = 0;
                                                                        ast_frfree(fr);
                                                                        break;
-                                                               } else
-                                                                       ast_log(LOG_DEBUG, "Found unqualified token of %d ms\n", ms);
+                                                               } else {
+                                                                       if (option_debug)
+                                                                               ast_log(LOG_DEBUG, "Found unqualified token of %d ms\n", ms);
+                                                               }
                                                                notsilent = 0;
                                                        }
                                                } else {
                                                        if (!notsilent) {
                                                                /* Heard some audio, mark the begining of the token */
                                                                start = ast_tvnow();
-                                                               ast_log(LOG_DEBUG, "Start of voice token!\n");
+                                                               if (option_debug)
+                                                                       ast_log(LOG_DEBUG, "Start of voice token!\n");
                                                                notsilent = 1;
                                                        }
                                                }
index b38fe4c..02c354f 100644 (file)
@@ -112,7 +112,8 @@ static int measurenoise(struct ast_channel *chan, int ms, char *who)
                ast_log(LOG_NOTICE, "No samples were received from the other side!\n");
                return -1;
        }
-       ast_log(LOG_DEBUG, "%s: Noise: %d, samples: %d, avg: %d\n", who, noise, samples, noise / samples);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "%s: Noise: %d, samples: %d, avg: %d\n", who, noise, samples, noise / samples);
        return (noise / samples);
 }
 
@@ -363,7 +364,8 @@ static int testserver_exec(struct ast_channel *chan, void *data)
                        fprintf(f, "SERVERCHAN:    %s\n", chan->name);
                        fprintf(f, "SERVERTEST ID: %s\n", testid);
                        fprintf(f, "ANSWER:        PASS\n");
-                       ast_log(LOG_DEBUG, "Processing Test ID '%s'\n", testid);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Processing Test ID '%s'\n", testid);
                        res = ast_safe_sleep(chan, 1000);
                        if (!res) {
                                /* Step 1: Send "1" */
index 157b2e7..ac3fd52 100644 (file)
@@ -1862,7 +1862,8 @@ static int sendmail(char *srcemail, struct ast_vm_user *vmu, int msgnum, char *c
        }
        if (!strcmp(format, "wav49"))
                format = "WAV";
-       ast_log(LOG_DEBUG, "Attaching file '%s', format '%s', uservm is '%d', global is %d\n", attach, format, attach_user_voicemail, ast_test_flag((&globalflags), VM_ATTACH));
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Attaching file '%s', format '%s', uservm is '%d', global is %d\n", attach, format, attach_user_voicemail, ast_test_flag((&globalflags), VM_ATTACH));
        /* Make a temporary file instead of piping directly to sendmail, in case the mail
           command hangs */
        if ((p = vm_mkftemp(tmp)) == NULL) {
@@ -1987,12 +1988,14 @@ static int sendmail(char *srcemail, struct ast_vm_user *vmu, int msgnum, char *c
                        create_dirpath(tmpdir, sizeof(tmpdir), vmu->context, vmu->mailbox, "tmp");
                        snprintf(newtmp, sizeof(newtmp), "%s/XXXXXX", tmpdir);
                        tmpfd = mkstemp(newtmp);
-                       ast_log(LOG_DEBUG, "newtmp: %s\n", newtmp);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "newtmp: %s\n", newtmp);
                        if (vmu->volgain < -.001 || vmu->volgain > .001) {
                                snprintf(tmpcmd, sizeof(tmpcmd), "sox -v %.4f %s.%s %s.%s", vmu->volgain, attach, format, newtmp, format);
                                ast_safe_system(tmpcmd);
                                attach = newtmp;
-                               ast_log(LOG_DEBUG, "VOLGAIN: Stored at: %s.%s - Level: %.4f - Mailbox: %s\n", attach, format, vmu->volgain, mailbox);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "VOLGAIN: Stored at: %s.%s - Level: %.4f - Mailbox: %s\n", attach, format, vmu->volgain, mailbox);
                        }
                        fprintf(p, "--%s\n", bound);
                        fprintf(p, "Content-Type: %s%s; name=\"msg%04d.%s\"\n", ctype, format, msgnum, format);
@@ -2022,7 +2025,8 @@ static int sendmail(char *srcemail, struct ast_vm_user *vmu, int msgnum, char *c
                fclose(p);
                snprintf(tmp2, sizeof(tmp2), "( %s < %s ; rm -f %s ) &", mailcmd, tmp, tmp);
                ast_safe_system(tmp2);
-               ast_log(LOG_DEBUG, "Sent mail to %s with command '%s'\n", vmu->email, mailcmd);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Sent mail to %s with command '%s'\n", vmu->email, mailcmd);
        }
        return 0;
 }
@@ -2105,7 +2109,8 @@ static int sendpage(char *srcemail, char *pager, int msgnum, char *context, char
                fclose(p);
                snprintf(tmp2, sizeof(tmp2), "( %s < %s ; rm -f %s ) &", mailcmd, tmp, tmp);
                ast_safe_system(tmp2);
-               ast_log(LOG_DEBUG, "Sent page to %s with command '%s'\n", pager, mailcmd);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Sent page to %s with command '%s'\n", pager, mailcmd);
        }
        return 0;
 }
@@ -2677,14 +2682,16 @@ static void run_externnotify(char *context, char *extension)
                        ast_log(LOG_WARNING, "The switch reported '%s'\n", mwi_msg->cause);
                        ASTOBJ_UNREF(mwi_msg, ast_smdi_mwi_message_destroy);
                } else {
-                       ast_log(LOG_DEBUG, "Successfully executed SMDI MWI change for %s on %s\n", extension, smdi_iface->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Successfully executed SMDI MWI change for %s on %s\n", extension, smdi_iface->name);
                }
        } else if (!ast_strlen_zero(externnotify)) {
                if (inboxcount(ext_context, &newvoicemails, &oldvoicemails)) {
                        ast_log(LOG_ERROR, "Problem in calculating number of voicemail messages available for extension %s\n", extension);
                } else {
                        snprintf(arguments, sizeof(arguments), "%s %s %s %d&", externnotify, context, extension, newvoicemails);
-                       ast_log(LOG_DEBUG, "Executing %s\n", arguments);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Executing %s\n", arguments);
                        ast_safe_system(arguments);
                }
        }
@@ -2803,12 +2810,14 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, struct leave_vm_
                        if (ast_streamfile(chan, prefile, chan->language) > -1) 
                                res = ast_waitstream(chan, ecodes);
                } else {
-                       ast_log(LOG_DEBUG, "%s doesn't exist, doing what we can\n", prefile);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "%s doesn't exist, doing what we can\n", prefile);
                        res = invent_message(chan, vmu->context, ext, ast_test_flag(options, OPT_BUSY_GREETING), ecodes);
                }
                DISPOSE(prefile, -1);
                if (res < 0) {
-                       ast_log(LOG_DEBUG, "Hang up during prefile playback\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Hang up during prefile playback\n");
                        free_user(vmu);
                        pbx_builtin_setvar_helper(chan, "VMSTATUS", "FAILED");
                        return -1;
@@ -2897,7 +2906,8 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, struct leave_vm_
 
                /* Check if mailbox is full */
                if (vms->quota_usage >= vms->quota_limit) {
-                       ast_log(LOG_DEBUG, "*** QUOTA EXCEEDED!!\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "*** QUOTA EXCEEDED!!\n");
                        ast_play_and_wait(chan, "vm-mailboxfull");
                        return -1;
                }
@@ -2907,7 +2917,8 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, struct leave_vm_
                if (!res)
                        res = ast_waitstream(chan, "");
                /* play_record_review does recording and verify */
-               ast_log(LOG_DEBUG, "About to record message in file %s\n",fn);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "About to record message in file %s\n",fn);
                res = play_record_review(chan, NULL, fn, vmmaxmessage, fmt, 1, vmu, &duration, dir, options->record_gain);
                if (res == '0') {
                        goto transfer;
@@ -3103,7 +3114,7 @@ static int save_to_folder(struct ast_vm_user *vmu, struct vm_state *vms, int msg
        if (box == 1) return 10;
        /* get the real IMAP message number for this message */
        sprintf(sequence,"%ld",vms->msgArray[msg]);
-       if(option_debug > 2)
+       if (option_debug > 2)
                ast_log(LOG_DEBUG, "Copying sequence %s to mailbox %s\n",sequence,dbox);
        res = mail_copy(vms->mailstream,sequence,dbox);
        if (res == 1) return 0;
@@ -3253,7 +3264,8 @@ static int adsi_load_vmail(struct ast_channel *chan, int *useadsi)
        bytes += ast_adsi_voice_mode(buf + bytes, 0);
        ast_adsi_transmit_message(chan, buf, bytes, ADSI_MSG_DOWNLOAD);
 
-       ast_log(LOG_DEBUG, "Done downloading scripts...\n");
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Done downloading scripts...\n");
 
 #ifdef DISPLAY
        /* Add last dot */
@@ -3261,7 +3273,8 @@ static int adsi_load_vmail(struct ast_channel *chan, int *useadsi)
        bytes += ast_adsi_display(buf + bytes, ADSI_COMM_PAGE, 4, ADSI_JUST_CENT, 0, "   ......", "");
        bytes += ast_adsi_set_line(buf + bytes, ADSI_COMM_PAGE, 1);
 #endif
-       ast_log(LOG_DEBUG, "Restarting session...\n");
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Restarting session...\n");
 
        bytes = 0;
        /* Load the session now */
@@ -3961,13 +3974,13 @@ static int forward_message(struct ast_channel *chan, char *context, struct vm_st
                                }
                                if (!strcasecmp(fmt, "wav49"))
                                        fmt = "WAV";
-                               if(option_debug > 2)
+                               if (option_debug > 2)
                                        ast_log (LOG_DEBUG,"**** format set to %s, vmfmts set to %s\n",fmt,vmfmts);
                                /* ast_copy_string(fmt, vmfmts, sizeof(fmt));*/
                                /* if (!ast_strlen_zero(fmt)) { */
                                snprintf(todir, sizeof(todir), "%s/imap", VM_SPOOL_DIR);
                                make_gsm_file(vms->fn, vms->imapuser, todir, vms->curmsg);
-                               if(option_debug > 2)
+                               if (option_debug > 2)
                                        ast_log (LOG_DEBUG,"Before mail_fetchstructure, message number is %ld, filename is:%s\n",vms->msgArray[vms->curmsg], vms->fn);
                                /*mail_fetchstructure (mailstream, vmArray[0], &body); */
                                mail_fetchstructure (vms->mailstream, vms->msgArray[vms->curmsg], &body);
@@ -4119,13 +4132,15 @@ static int play_message_callerid(struct ast_channel *chan, struct vm_state *vms,
                return res;
 
        /* Strip off caller ID number from name */
-       ast_log(LOG_DEBUG, "VM-CID: composite caller ID received: %s, context: %s\n", cid, context);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "VM-CID: composite caller ID received: %s, context: %s\n", cid, context);
        ast_callerid_parse(cid, &name, &callerid);
        if ((!ast_strlen_zero(callerid)) && strcmp(callerid, "Unknown")) {
                /* Check for internal contexts and only */
                /* say extension when the call didn't come from an internal context in the list */
                for (i = 0 ; i < MAX_NUM_CID_CONTEXTS ; i++){
-                       ast_log(LOG_DEBUG, "VM-CID: comparing internalcontext: %s\n", cidinternalcontexts[i]);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "VM-CID: comparing internalcontext: %s\n", cidinternalcontexts[i]);
                        if ((strcmp(cidinternalcontexts[i], context) == 0))
                                break;
                }
@@ -4153,7 +4168,8 @@ static int play_message_callerid(struct ast_channel *chan, struct vm_state *vms,
                }
 
                else if (!res){
-                       ast_log(LOG_DEBUG, "VM-CID: Numeric caller id: (%s)\n",callerid);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "VM-CID: Numeric caller id: (%s)\n",callerid);
                        /* BB: Since this is all nicely figured out, why not say "from phone number" in this case" */
                        if (!callback)
                                res = wait_file2(chan, vms, "vm-from-phonenumber");
@@ -4161,7 +4177,8 @@ static int play_message_callerid(struct ast_channel *chan, struct vm_state *vms,
                }
        } else {
                /* Number unknown */
-               ast_log(LOG_DEBUG, "VM-CID: From an unknown number\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "VM-CID: From an unknown number\n");
                /* Say "from an unknown caller" as one phrase - it is already recorded by "the voice" anyhow */
                res = wait_file2(chan, vms, "vm-unknown-caller");
        }
@@ -4181,7 +4198,8 @@ static int play_message_duration(struct ast_channel *chan, struct vm_state *vms,
        durations=atoi(duration);
        durationm=(durations / 60);
 
-       ast_log(LOG_DEBUG, "VM-Duration: duration is: %d seconds converted to: %d minutes\n", durations, durationm);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "VM-Duration: duration is: %d seconds converted to: %d minutes\n", durations, durationm);
 
        if ((!res) && (durationm >= minduration)) {
                res = wait_file2(chan, vms, "vm-duration");
@@ -5481,7 +5499,8 @@ static int vm_newuser(struct ast_channel *chan, struct ast_vm_user *vmu, struct
                vm_change_password(vmu,newpassword);
        else 
                vm_change_password_shell(vmu,newpassword);
-       ast_log(LOG_DEBUG,"User %s set password to %s of length %d\n",vms->username,newpassword,(int)strlen(newpassword));
+       if (option_debug)
+               ast_log(LOG_DEBUG,"User %s set password to %s of length %d\n",vms->username,newpassword,(int)strlen(newpassword));
        cmd = ast_play_and_wait(chan,"vm-passchanged");
 
        /* If forcename is set, have the user record their name */      
@@ -5583,7 +5602,8 @@ static int vm_options(struct ast_channel *chan, struct ast_vm_user *vmu, struct
                                vm_change_password(vmu,newpassword);
                        else 
                                vm_change_password_shell(vmu,newpassword);
-                       ast_log(LOG_DEBUG,"User %s set password to %s of length %d\n",vms->username,newpassword,(int)strlen(newpassword));
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"User %s set password to %s of length %d\n",vms->username,newpassword,(int)strlen(newpassword));
                        cmd = ast_play_and_wait(chan,"vm-passchanged");
                        break;
                case '*': 
@@ -5827,7 +5847,8 @@ static int vm_authenticate(struct ast_channel *chan, char *mailbox, int mailbox_
                        ast_copy_string(mailbox, fullusername, mailbox_size);
                }
 
-               ast_log(LOG_DEBUG, "Before find user for mailbox %s\n",mailbox);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Before find user for mailbox %s\n",mailbox);
                vmu = find_user(&vmus, context, mailbox);
                if (vmu && (vmu->password[0] == '\0' || (vmu->password[0] == '-' && vmu->password[1] == '\0'))) {
                        /* saved password is blank, so don't bother asking */
@@ -5919,7 +5940,8 @@ static int vm_execmain(struct ast_channel *chan, void *data)
        memset(&vmus, 0, sizeof(vmus));
 
        if (chan->_state != AST_STATE_UP) {
-               ast_log(LOG_DEBUG, "Before ast_answer\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Before ast_answer\n");
                ast_answer(chan);
        }
 
@@ -6001,7 +6023,8 @@ static int vm_execmain(struct ast_channel *chan, void *data)
        if (!valid)
                res = vm_authenticate(chan, vms.username, sizeof(vms.username), &vmus, context, prefixstr, skipuser, maxlogins, 0);
 
-       ast_log(LOG_DEBUG, "After vm_authenticate\n");
+       if (option_debug)
+               ast_log(LOG_DEBUG, "After vm_authenticate\n");
        if (!res) {
                valid = 1;
                if (!skipuser)
@@ -6036,18 +6059,21 @@ static int vm_execmain(struct ast_channel *chan, void *data)
        create_dirpath(vms.curdir, sizeof(vms.curdir), vmu->context, vms.username, "");
 #endif
        /* Retrieve old and new message counts */
-       ast_log(LOG_DEBUG, "Before open_mailbox\n");
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Before open_mailbox\n");
        res = open_mailbox(&vms, vmu, 1);
        if (res == ERROR_LOCK_PATH)
                goto out;
        vms.oldmessages = vms.lastmsg + 1;
-       ast_log(LOG_DEBUG, "Number of old messages: %d\n",vms.oldmessages);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Number of old messages: %d\n",vms.oldmessages);
        /* Start in INBOX */
        res = open_mailbox(&vms, vmu, 0);
        if (res == ERROR_LOCK_PATH)
                goto out;
        vms.newmessages = vms.lastmsg + 1;
-       ast_log(LOG_DEBUG, "Number of new messages: %d\n",vms.newmessages);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Number of new messages: %d\n",vms.newmessages);
                
        /* Select proper mailbox FIRST!! */
        if (play_auto) {
@@ -6938,13 +6964,16 @@ static int load_config(void)
                
                if ((notifystr = ast_variable_retrieve(cfg, "general", "externnotify"))) {
                        ast_copy_string(externnotify, notifystr, sizeof(externnotify));
-                       ast_log(LOG_DEBUG, "found externnotify: %s\n", externnotify);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "found externnotify: %s\n", externnotify);
                        if (!strcasecmp(externnotify, "smdi")) {
-                               ast_log(LOG_DEBUG, "Using SMDI for external voicemail notification\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Using SMDI for external voicemail notification\n");
                                if ((smdistr = ast_variable_retrieve(cfg, "general", "smdiport"))) {
                                        smdi_iface = ast_smdi_interface_find(smdistr);
                                } else {
-                                       ast_log(LOG_DEBUG, "No SMDI interface set, trying default (/dev/ttyS0)\n");
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "No SMDI interface set, trying default (/dev/ttyS0)\n");
                                        smdi_iface = ast_smdi_interface_find("/dev/ttyS0");
                                }
 
@@ -6952,7 +6981,8 @@ static int load_config(void)
                                        ast_log(LOG_ERROR, "No valid SMDI interface specfied, disabling external voicemail notification\n");
                                        externnotify[0] = '\0';
                                } else {
-                                       ast_log(LOG_DEBUG, "Using SMDI port %s\n", smdi_iface->name);
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Using SMDI port %s\n", smdi_iface->name);
                                }
                        }
                } else {
@@ -7029,7 +7059,8 @@ static int load_config(void)
                ast_set2_flag((&globalflags), ast_true(astforcegreet), VM_FORCEGREET);
 
                if ((s = ast_variable_retrieve(cfg, "general", "cidinternalcontexts"))){
-                       ast_log(LOG_DEBUG,"VM_CID Internal context string: %s\n",s);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"VM_CID Internal context string: %s\n",s);
                        stringp = ast_strdupa(s);
                        for (x = 0 ; x < MAX_NUM_CID_CONTEXTS ; x++){
                                if (!ast_strlen_zero(stringp)) {
@@ -7037,53 +7068,62 @@ static int load_config(void)
                                        while ((*q == ' ')||(*q == '\t')) /* Eat white space between contexts */
                                                q++;
                                        ast_copy_string(cidinternalcontexts[x], q, sizeof(cidinternalcontexts[x]));
-                                       ast_log(LOG_DEBUG,"VM_CID Internal context %d: %s\n", x, cidinternalcontexts[x]);
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG,"VM_CID Internal context %d: %s\n", x, cidinternalcontexts[x]);
                                } else {
                                        cidinternalcontexts[x][0] = '\0';
                                }
                        }
                }
                if (!(astreview = ast_variable_retrieve(cfg, "general", "review"))){
-                       ast_log(LOG_DEBUG,"VM Review Option disabled globally\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"VM Review Option disabled globally\n");
                        astreview = "no";
                }
                ast_set2_flag((&globalflags), ast_true(astreview), VM_REVIEW);  
 
                /*Temperary greeting reminder */
                if (!(asttempgreetwarn = ast_variable_retrieve(cfg, "general", "tempgreetwarn"))) {
-                       ast_log(LOG_DEBUG, "VM Temperary Greeting Reminder Option disabled globally\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "VM Temperary Greeting Reminder Option disabled globally\n");
                        asttempgreetwarn = "no";
                } else {
-                       ast_log(LOG_DEBUG, "VM Temperary Greeting Reminder Option enabled globally\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "VM Temperary Greeting Reminder Option enabled globally\n");
                }
                ast_set2_flag((&globalflags), ast_true(asttempgreetwarn), VM_TEMPGREETWARN);
 
                if (!(astcallop = ast_variable_retrieve(cfg, "general", "operator"))){
-                       ast_log(LOG_DEBUG,"VM Operator break disabled globally\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"VM Operator break disabled globally\n");
                        astcallop = "no";
                }
                ast_set2_flag((&globalflags), ast_true(astcallop), VM_OPERATOR);        
 
                if (!(astsaycid = ast_variable_retrieve(cfg, "general", "saycid"))) {
-                       ast_log(LOG_DEBUG,"VM CID Info before msg disabled globally\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"VM CID Info before msg disabled globally\n");
                        astsaycid = "no";
                } 
                ast_set2_flag((&globalflags), ast_true(astsaycid), VM_SAYCID);  
 
                if (!(send_voicemail = ast_variable_retrieve(cfg,"general", "sendvoicemail"))){
-                       ast_log(LOG_DEBUG,"Send Voicemail msg disabled globally\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"Send Voicemail msg disabled globally\n");
                        send_voicemail = "no";
                }
                ast_set2_flag((&globalflags), ast_true(send_voicemail), VM_SVMAIL);
        
                if (!(asthearenv = ast_variable_retrieve(cfg, "general", "envelope"))) {
-                       ast_log(LOG_DEBUG,"ENVELOPE before msg enabled globally\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"ENVELOPE before msg enabled globally\n");
                        asthearenv = "yes";
                }
                ast_set2_flag((&globalflags), ast_true(asthearenv), VM_ENVELOPE);       
 
                if (!(astsaydurationinfo = ast_variable_retrieve(cfg, "general", "sayduration"))) {
-                       ast_log(LOG_DEBUG,"Duration info before msg enabled globally\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"Duration info before msg enabled globally\n");
                        astsaydurationinfo = "yes";
                }
                ast_set2_flag((&globalflags), ast_true(astsaydurationinfo), VM_SAYDURATION);    
@@ -7098,28 +7138,32 @@ static int load_config(void)
                }
 
                if (!(astskipcmd = ast_variable_retrieve(cfg, "general", "nextaftercmd"))) {
-                       ast_log(LOG_DEBUG,"We are not going to skip to the next msg after save/delete\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"We are not going to skip to the next msg after save/delete\n");
                        astskipcmd = "no";
                }
                ast_set2_flag((&globalflags), ast_true(astskipcmd), VM_SKIPAFTERCMD);
 
                if ((dialoutcxt = ast_variable_retrieve(cfg, "general", "dialout"))) {
                        ast_copy_string(dialcontext, dialoutcxt, sizeof(dialcontext));
-                       ast_log(LOG_DEBUG, "found dialout context: %s\n", dialcontext);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "found dialout context: %s\n", dialcontext);
                } else {
                        dialcontext[0] = '\0';  
                }
                
                if ((callbackcxt = ast_variable_retrieve(cfg, "general", "callback"))) {
                        ast_copy_string(callcontext, callbackcxt, sizeof(callcontext));
-                       ast_log(LOG_DEBUG, "found callback context: %s\n", callcontext);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "found callback context: %s\n", callcontext);
                } else {
                        callcontext[0] = '\0';
                }
 
                if ((exitcxt = ast_variable_retrieve(cfg, "general", "exitcontext"))) {
                        ast_copy_string(exitcontext, exitcxt, sizeof(exitcontext));
-                       ast_log(LOG_DEBUG, "found operator context: %s\n", exitcontext);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "found operator context: %s\n", exitcontext);
                } else {
                        exitcontext[0] = '\0';
                }
index ef0734c..55fc714 100644 (file)
@@ -135,13 +135,15 @@ static int do_waiting(struct ast_channel *chan, int silencereqd, time_t waitstar
                        /* Ended happily with silence */
                        res = 1;
                        pbx_builtin_setvar_helper(chan, "WAITSTATUS", "SILENCE");
-                       ast_log(LOG_DEBUG, "WAITSTATUS was set to SILENCE\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "WAITSTATUS was set to SILENCE\n");
                        break;
                }
 
                if ( timeout && (difftime(time(&now),waitstart) >= timeout) ) {
                        pbx_builtin_setvar_helper(chan, "WAITSTATUS", "TIMEOUT");
-                       ast_log(LOG_DEBUG, "WAITSTATUS was set to TIMEOUT\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "WAITSTATUS was set to TIMEOUT\n");
                        res = 0;
                        break;
                }
index 735020f..bd0637e 100644 (file)
@@ -172,7 +172,8 @@ zapretry:
        if (ztc.confmode) {
                /* Whoa, already in a conference...  Retry... */
                if (!retryzap) {
-                       ast_log(LOG_DEBUG, "Zap channel is in a conference already, retrying with pseudo\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Zap channel is in a conference already, retrying with pseudo\n");
                        retryzap = 1;
                        goto zapretry;
                }
@@ -188,7 +189,8 @@ zapretry:
                close(fd);
                goto outrun;
        }
-       ast_log(LOG_DEBUG, "Placed channel %s in ZAP channel %d monitor\n", chan->name, confno);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Placed channel %s in ZAP channel %d monitor\n", chan->name, confno);
 
        for(;;) {
                outfd = -1;
@@ -200,7 +202,8 @@ zapretry:
                                        /* Kill old pseudo */
                                        close(fd);
                                }
-                               ast_log(LOG_DEBUG, "Ooh, something swapped out under us, starting over\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Ooh, something swapped out under us, starting over\n");
                                retryzap = 0;
                                goto zapretry;
                        }
index de682f7..9e84160 100644 (file)
@@ -153,7 +153,8 @@ static void run_ras(struct ast_channel *chan, char *args)
                        if (!res) {
                                /* Check for hangup */
                                if (chan->_softhangup && !signalled) {
-                                       ast_log(LOG_DEBUG, "Channel '%s' hungup.  Signalling RAS at %d to die...\n", chan->name, pid);
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Channel '%s' hungup.  Signalling RAS at %d to die...\n", chan->name, pid);
                                        kill(pid, SIGTERM);
                                        signalled=1;
                                }
index 690d9a5..86442b8 100644 (file)
@@ -179,7 +179,8 @@ static int conf_run(struct ast_channel *chan, int confno, int confflags)
         if (ztc.confmode) {
                        /* Whoa, already in a conference...  Retry... */
                        if (!retryzap) {
-                               ast_log(LOG_DEBUG, "Zap channel is in a conference already, retrying with pseudo\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Zap channel is in a conference already, retrying with pseudo\n");
                                retryzap = 1;
                                goto zapretry;
                        }
@@ -195,7 +196,8 @@ static int conf_run(struct ast_channel *chan, int confno, int confflags)
                 close(fd);
                 goto outrun;
         }
-        ast_log(LOG_DEBUG, "Placed channel %s in ZAP channel %d monitor\n", chan->name, confno);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Placed channel %s in ZAP channel %d monitor\n", chan->name, confno);
                
         for(;;) {
                        outfd = -1;
@@ -207,7 +209,8 @@ static int conf_run(struct ast_channel *chan, int confno, int confflags)
                                                /* Kill old pseudo */
                                                close(fd);
                                        }
-                                       ast_log(LOG_DEBUG, "Ooh, something swapped out under us, starting over\n");
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Ooh, something swapped out under us, starting over\n");
                                        retryzap = 0;
                                 goto zapretry;
                                }
index 3506203..ffbfee2 100644 (file)
@@ -45,6 +45,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/channel.h"
 #include "asterisk/cdr.h"
 #include "asterisk/module.h"
+#include "asterisk/options.h"
 #include "asterisk/logger.h"
 #include "asterisk/utils.h"
 
@@ -121,7 +122,8 @@ static int load_config(void)
        if (tmp) {
                usegmtime = ast_true(tmp);
                if (usegmtime) {
-                       ast_log(LOG_DEBUG, "logging time in GMT\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "logging time in GMT\n");
                }
        }
 
@@ -129,7 +131,8 @@ static int load_config(void)
        if (tmp) {
                loguniqueid = ast_true(tmp);
                if (loguniqueid) {
-                       ast_log(LOG_DEBUG, "logging CDR field UNIQUEID\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "logging CDR field UNIQUEID\n");
                }
        }
 
@@ -137,7 +140,8 @@ static int load_config(void)
        if (tmp) {
                loguserfield = ast_true(tmp);
                if (loguserfield) {
-                       ast_log(LOG_DEBUG, "logging CDR user-defined field\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "logging CDR user-defined field\n");
                }
        }
 
index 6ff1212..f916a8d 100644 (file)
@@ -306,12 +306,15 @@ static int odbc_load_module(void)
        if (tmp) {
                loguniqueid = ast_true(tmp);
                if (loguniqueid) {
-                       ast_log(LOG_DEBUG,"cdr_odbc: Logging uniqueid\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"cdr_odbc: Logging uniqueid\n");
                } else {
-                       ast_log(LOG_DEBUG,"cdr_odbc: Not logging uniqueid\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"cdr_odbc: Not logging uniqueid\n");
                }
        } else {
-               ast_log(LOG_DEBUG,"cdr_odbc: Not logging uniqueid\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG,"cdr_odbc: Not logging uniqueid\n");
                loguniqueid = 0;
        }
 
@@ -319,12 +322,15 @@ static int odbc_load_module(void)
        if (tmp) {
                usegmtime = ast_true(tmp);
                if (usegmtime) {
-                       ast_log(LOG_DEBUG,"cdr_odbc: Logging in GMT\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"cdr_odbc: Logging in GMT\n");
                } else {
-                       ast_log(LOG_DEBUG,"cdr_odbc: Not logging in GMT\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG,"cdr_odbc: Not logging in GMT\n");
                }
        } else {
-               ast_log(LOG_DEBUG,"cdr_odbc: Not logging in GMT\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG,"cdr_odbc: Not logging in GMT\n");
                usegmtime = 0;
        }
 
index 2ac8481..b4d5172 100644 (file)
@@ -482,7 +482,8 @@ static int tds_load_module(void)
 
        ptr = ast_variable_retrieve(cfg,"global","table");
        if (ptr == NULL) {
-               ast_log(LOG_DEBUG,"cdr_tds: table not specified.  Assuming cdr\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG,"cdr_tds: table not specified.  Assuming cdr\n");
                ptr = "cdr";
        }
        table = strdup(ptr);
index 42d795a..db545c4 100644 (file)
@@ -194,10 +194,12 @@ static AST_LIST_HEAD_STATIC(agents, agent_pvt);   /*!< Holds the list of agents (l
 #define CHECK_FORMATS(ast, p) do { \
        if (p->chan) {\
                if (ast->nativeformats != p->chan->nativeformats) { \
-                       ast_log(LOG_DEBUG, "Native formats changing from %d to %d\n", ast->nativeformats, p->chan->nativeformats); \
+                       if (option_debug) \
+                               ast_log(LOG_DEBUG, "Native formats changing from %d to %d\n", ast->nativeformats, p->chan->nativeformats); \
                        /* Native formats changed, reset things */ \
                        ast->nativeformats = p->chan->nativeformats; \
-                       ast_log(LOG_DEBUG, "Resetting read to %d and write to %d\n", ast->readformat, ast->writeformat);\
+                       if (option_debug) \
+                               ast_log(LOG_DEBUG, "Resetting read to %d and write to %d\n", ast->readformat, ast->writeformat);\
                        ast_set_read_format(ast, ast->readformat); \
                        ast_set_write_format(ast, ast->writeformat); \
                } \
@@ -442,7 +444,7 @@ static struct ast_frame *agent_read(struct ast_channel *ast)
                        /* Note that we don't hangup if it's not a callback because Asterisk will do it
                           for us when the PBX instance that called login finishes */
                        if (!ast_strlen_zero(p->loginchan)) {
-                               if (p->chan)
+                               if (p->chan && option_debug)
                                        ast_log(LOG_DEBUG, "Bridge on '%s' being cleared (2)\n", p->chan->name);
 
                                status = pbx_builtin_getvar_helper(p->chan, "CHANLOCALSTATUS");
@@ -513,7 +515,7 @@ static struct ast_frame *agent_read(struct ast_channel *ast)
        if (p->chan && !p->chan->_bridge) {
                if (strcasecmp(p->chan->tech->type, "Local")) {
                        p->chan->_bridge = ast;
-                       if (p->chan)
+                       if (p->chan && option_debug)
                                ast_log(LOG_DEBUG, "Bridge on '%s' being set to '%s' (3)\n", p->chan->name, p->chan->_bridge->name);
                }
        }
@@ -559,9 +561,10 @@ static int agent_write(struct ast_channel *ast, struct ast_frame *f)
                    (f->subclass == p->chan->writeformat)) {
                        res = ast_write(p->chan, f);
                } else {
-                       ast_log(LOG_DEBUG, "Dropping one incompatible %s frame on '%s' to '%s'\n", 
-                               f->frametype == AST_FRAME_VOICE ? "audio" : "video",
-                               ast->name, p->chan->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Dropping one incompatible %s frame on '%s' to '%s'\n", 
+                                       f->frametype == AST_FRAME_VOICE ? "audio" : "video",
+                                       ast->name, p->chan->name);
                        res = 0;
                }
        }
@@ -626,7 +629,8 @@ static int agent_call(struct ast_channel *ast, char *dest, int timeout)
        p->acknowledged = 0;
        if (!p->chan) {
                if (p->pending) {
-                       ast_log(LOG_DEBUG, "Pretending to dial on pending agent\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Pretending to dial on pending agent\n");
                        newstate = AST_STATE_DIALING;
                        res = 0;
                } else {
@@ -759,7 +763,8 @@ static int agent_hangup(struct ast_channel *ast)
                                ast_hangup(p->chan);
                                p->chan = NULL;
                        }
-                       ast_log(LOG_DEBUG, "Hungup, howlong is %d, autologoff is %d\n", howlong, p->autologoff);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Hungup, howlong is %d, autologoff is %d\n", howlong, p->autologoff);
                        if (howlong  && p->autologoff && (howlong > p->autologoff)) {
                                long logintime = time(NULL) - p->loginstart;
                                p->loginstart = 0;
@@ -826,7 +831,7 @@ static int agent_cont_sleep( void *data )
        }
        ast_mutex_unlock(&p->lock);
 
-       if(option_debug > 4 && !res )
+       if (option_debug > 4 && !res)
                ast_log(LOG_DEBUG, "agent_cont_sleep() returning %d\n", res );
 
        return res;
@@ -1177,13 +1182,14 @@ static int check_availability(struct agent_pvt *newlyavailable, int needlock)
                        res = 0;
                } else {
                        if (option_debug > 2)
-                               ast_log( LOG_DEBUG, "Playing beep, lang '%s'\n", newlyavailable->chan->language);
+                               ast_log(LOG_DEBUG, "Playing beep, lang '%s'\n", newlyavailable->chan->language);
                        res = ast_streamfile(newlyavailable->chan, beep, newlyavailable->chan->language);
                        if (option_debug > 2)
-                               ast_log( LOG_DEBUG, "Played beep, result '%d'\n", res);
+                               ast_log(LOG_DEBUG, "Played beep, result '%d'\n", res);
                        if (!res) {
                                res = ast_waitstream(newlyavailable->chan, "");
-                               ast_log( LOG_DEBUG, "Waited for stream, result '%d'\n", res);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Waited for stream, result '%d'\n", res);
                        }
                }
                if (!res) {
@@ -1220,7 +1226,8 @@ static int check_beep(struct agent_pvt *newlyavailable, int needlock)
        struct agent_pvt *p;
        int res=0;
 
-       ast_log(LOG_DEBUG, "Checking beep availability of '%s'\n", newlyavailable->agent);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Checking beep availability of '%s'\n", newlyavailable->agent);
        if (needlock)
                AST_LIST_LOCK(&agents);
        AST_LIST_TRAVERSE(&agents, p, list) {
@@ -1241,14 +1248,14 @@ static int check_beep(struct agent_pvt *newlyavailable, int needlock)
        if (p) {
                ast_mutex_unlock(&newlyavailable->lock);
                if (option_debug > 2)
-                       ast_log( LOG_DEBUG, "Playing beep, lang '%s'\n", newlyavailable->chan->language);
+                       ast_log(LOG_DEBUG, "Playing beep, lang '%s'\n", newlyavailable->chan->language);
                res = ast_streamfile(newlyavailable->chan, beep, newlyavailable->chan->language);
                if (option_debug > 2)
-                       ast_log( LOG_DEBUG, "Played beep, result '%d'\n", res);
+                       ast_log(LOG_DEBUG, "Played beep, result '%d'\n", res);
                if (!res) {
                        res = ast_waitstream(newlyavailable->chan, "");
                        if (option_debug)
-                               ast_log( LOG_DEBUG, "Waited for stream, result '%d'\n", res);
+                               ast_log(LOG_DEBUG, "Waited for stream, result '%d'\n", res);
                }
                ast_mutex_lock(&newlyavailable->lock);
        }
@@ -1361,8 +1368,10 @@ static struct ast_channel *agent_request(const char *type, int format, void *dat
                        chan = agent_new(p, AST_STATE_DOWN);
                        if (!chan) 
                                ast_log(LOG_WARNING, "Weird...  Fix this to drop the unused pending agent\n");
-               } else
-                       ast_log(LOG_DEBUG, "Not creating place holder for '%s' since nobody logged in\n", s);
+               } else {
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Not creating place holder for '%s' since nobody logged in\n", s);
+               }
        }
        *cause = hasagent ? AST_CAUSE_BUSY : AST_CAUSE_UNREGISTERED;
        AST_LIST_UNLOCK(&agents);
index 15e0222..44dc22f 100644 (file)
@@ -366,8 +366,10 @@ static snd_pcm_t *alsa_card_init(char *dev, snd_pcm_stream_t stream)
        if (err < 0) {
                ast_log(LOG_ERROR, "snd_pcm_open failed: %s\n", snd_strerror(err));
                return NULL;
-       } else
-               ast_log(LOG_DEBUG, "Opening device %s in %s mode\n", dev, (stream == SND_PCM_STREAM_CAPTURE) ? "read" : "write");
+       } else {
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Opening device %s in %s mode\n", dev, (stream == SND_PCM_STREAM_CAPTURE) ? "read" : "write");
+       }
 
        snd_pcm_hw_params_alloca(&hwparams);
        snd_pcm_hw_params_any(handle, hwparams);
@@ -393,15 +395,19 @@ static snd_pcm_t *alsa_card_init(char *dev, snd_pcm_stream_t stream)
        err = snd_pcm_hw_params_set_period_size_near(handle, hwparams, &period_size, &direction);
        if (err < 0)
                ast_log(LOG_ERROR, "period_size(%ld frames) is bad: %s\n", period_size, snd_strerror(err));
-       else
-               ast_log(LOG_DEBUG, "Period size is %d\n", err);
+       else {
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Period size is %d\n", err);
+       }
 
        buffer_size = 4096 * 2;         /* period_size * 16; */
        err = snd_pcm_hw_params_set_buffer_size_near(handle, hwparams, &buffer_size);
        if (err < 0)
                ast_log(LOG_WARNING, "Problem setting buffer size of %ld: %s\n", buffer_size, snd_strerror(err));
-       else
-               ast_log(LOG_DEBUG, "Buffer size is set to %d frames\n", err);
+       else {
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Buffer size is set to %d frames\n", err);
+       }
 
 #if 0
        direction = 0;
@@ -460,11 +466,14 @@ static snd_pcm_t *alsa_card_init(char *dev, snd_pcm_stream_t stream)
        err = snd_pcm_poll_descriptors_count(handle);
        if (err <= 0)
                ast_log(LOG_ERROR, "Unable to get a poll descriptors count, error is %s\n", snd_strerror(err));
-       if (err != 1)
-               ast_log(LOG_DEBUG, "Can't handle more than one device\n");
+       if (err != 1) {
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Can't handle more than one device\n");
+       }
 
        snd_pcm_poll_descriptors(handle, &pfd, err);
-       ast_log(LOG_DEBUG, "Acquired fd %d from the poll descriptor\n", pfd.fd);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Acquired fd %d from the poll descriptor\n", pfd.fd);
 
        if (stream == SND_PCM_STREAM_CAPTURE)
                readdev = pfd.fd;
@@ -628,7 +637,8 @@ static int alsa_write(struct ast_channel *chan, struct ast_frame *f)
                res = snd_pcm_writei(alsa.ocard, sizbuf, len / 2);
                if (res == -EPIPE) {
 #if DEBUG
-                       ast_log(LOG_DEBUG, "XRUN write\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "XRUN write\n");
 #endif
                        snd_pcm_prepare(alsa.ocard);
                        res = snd_pcm_writei(alsa.ocard, sizbuf, len / 2);
index 273f349..3ed41ba 100644 (file)
@@ -209,7 +209,8 @@ static void swap_subs(struct feature_pvt *p, int a, int b)
        int tinthreeway;
        struct ast_channel *towner;
 
-       ast_log(LOG_DEBUG, "Swapping %d and %d\n", a, b);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Swapping %d and %d\n", a, b);
 
        towner = p->subs[a].owner;
        tinthreeway = p->subs[a].inthreeway;
index 9346d5c..c5a8483 100644 (file)
@@ -597,7 +597,8 @@ static int gtalk_is_answered(struct gtalk *client, ikspak *pak)
 {
        struct gtalk_pvt *tmp;
        char *from;
-       ast_log(LOG_DEBUG, "The client is %s\n", client->name);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "The client is %s\n", client->name);
        /* Make sure our new call doesn't exist yet */
        for (tmp = client->p; tmp; tmp = tmp->next) {
                if (iks_find_with_attrib(pak->x, "session", "id", tmp->sid))
@@ -675,7 +676,8 @@ static int gtalk_hangup_farend(struct gtalk *client, ikspak *pak)
        struct gtalk_pvt *tmp;
        char *from;
 
-       ast_log(LOG_DEBUG, "The client is %s\n", client->name);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "The client is %s\n", client->name);
        /* Make sure our new call doesn't exist yet */
        for (tmp = client->p; tmp; tmp = tmp->next) {
                if (iks_find_with_attrib(pak->x, "session", "id", tmp->sid))
@@ -1239,7 +1241,8 @@ static struct ast_frame *gtalk_rtp_read(struct ast_channel *ast, struct gtalk_pv
 /*                     if ((ast_test_flag(p, SIP_DTMF) == SIP_DTMF_INBAND) && p->vad) {
                                f = ast_dsp_process(p->owner, p->vad, f);
                                if (option_debug && f && (f->frametype == AST_FRAME_DTMF))
-                                       ast_log(LOG_DEBUG, "* Detected inband DTMF '%c'\n", f->subclass);
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "* Detected inband DTMF '%c'\n", f->subclass);
                        } */
                }
        }
index 4ea3bd8..99949ed 100644 (file)
@@ -1177,7 +1177,8 @@ static int make_trunk(unsigned short callno, int locked)
                ast_log(LOG_WARNING, "Unable to trunk call: Insufficient space\n");
                return -1;
        }
-       ast_log(LOG_DEBUG, "Made call %d into trunk call %d\n", callno, x);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Made call %d into trunk call %d\n", callno, x);
        /* We move this call from a non-trunked to a trunked call */
        update_max_trunk();
        update_max_nontrunk();
@@ -2274,7 +2275,8 @@ static int schedule_delivery(struct iax_frame *fr, int updatehistory, int fromtr
                fr->af.delivery = ast_tvadd(iaxs[fr->callno]->rxcore, ast_samp2tv(fr->ts, 1000));
        else {
 #if 0
-               ast_log(LOG_DEBUG, "schedule_delivery: set delivery to 0 as we don't have an rxcore yet, or frame is from trunk.\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "schedule_delivery: set delivery to 0 as we don't have an rxcore yet, or frame is from trunk.\n");
 #endif
                fr->af.delivery = ast_tv(0,0);
        }
@@ -2903,7 +2905,8 @@ static int iax2_hangup(struct ast_channel *c)
        memset(&ied, 0, sizeof(ied));
        ast_mutex_lock(&iaxsl[callno]);
        if (callno && iaxs[callno]) {
-               ast_log(LOG_DEBUG, "We're hanging up %s now...\n", c->name);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "We're hanging up %s now...\n", c->name);
                alreadygone = ast_test_flag(iaxs[callno], IAX_ALREADYGONE);
                /* Send the hangup unless we have had a transmission error or are already gone */
                iax_ie_append_byte(&ied, IAX_IE_CAUSECODE, (unsigned char)c->hangupcause);
@@ -2913,7 +2916,8 @@ static int iax2_hangup(struct ast_channel *c)
                iax2_predestroy(callno);
                /* If we were already gone to begin with, destroy us now */
                if (alreadygone) {
-                       ast_log(LOG_DEBUG, "Really destroying %s now...\n", c->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Really destroying %s now...\n", c->name);
                        iax2_destroy(callno);
                }
        }
@@ -3509,7 +3513,8 @@ static struct iax2_trunk_peer *find_tpeer(struct sockaddr_in *sin, int fd)
 #ifdef SO_NO_CHECK
                        setsockopt(tpeer->sockfd, SOL_SOCKET, SO_NO_CHECK, &nochecksums, sizeof(nochecksums));
 #endif
-                       ast_log(LOG_DEBUG, "Created trunk peer for '%s:%d'\n", ast_inet_ntoa(tpeer->addr.sin_addr), ntohs(tpeer->addr.sin_port));
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Created trunk peer for '%s:%d'\n", ast_inet_ntoa(tpeer->addr.sin_addr), ntohs(tpeer->addr.sin_port));
                        AST_LIST_INSERT_TAIL(&tpeers, tpeer, list);
                }
        }
@@ -3540,7 +3545,8 @@ static int iax2_trunk_queue(struct chan_iax2_pvt *pvt, struct iax_frame *fr)
                                
                                tpeer->trunkdataalloc += DEFAULT_TRUNKDATA;
                                tpeer->trunkdata = tmp;
-                               ast_log(LOG_DEBUG, "Expanded trunk '%s:%d' to %d bytes\n", ast_inet_ntoa(tpeer->addr.sin_addr), ntohs(tpeer->addr.sin_port), tpeer->trunkdataalloc);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Expanded trunk '%s:%d' to %d bytes\n", ast_inet_ntoa(tpeer->addr.sin_addr), ntohs(tpeer->addr.sin_port), tpeer->trunkdataalloc);
                        } else {
                                ast_log(LOG_WARNING, "Maximum trunk data space exceeded to %s:%d\n", ast_inet_ntoa(tpeer->addr.sin_addr), ntohs(tpeer->addr.sin_port));
                                ast_mutex_unlock(&tpeer->lock);
@@ -4471,7 +4477,8 @@ static int iax2_write(struct ast_channel *c, struct ast_frame *f)
                        /* Simple, just queue for transmission */
                                res = iax2_send(iaxs[callno], f, 0, -1, 0, 0, 0);
                } else {
-                       ast_log(LOG_DEBUG, "Write error: %s\n", strerror(errno));
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Write error: %s\n", strerror(errno));
                }
        }
        /* If it's already gone, just return */
@@ -5455,7 +5462,8 @@ static void __expire_registry(void *data)
        if (!p)
                return;
 
-       ast_log(LOG_DEBUG, "Expiring registration for peer '%s'\n", p->name);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Expiring registration for peer '%s'\n", p->name);
        if (ast_test_flag((&globalflags), IAX_RTUPDATE) && (ast_test_flag(p, IAX_TEMPONLY|IAX_RTCACHEFRIENDS)))
                realtime_update_peer(p->name, &p->addr, 0);
        manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "Peer: IAX2/%s\r\nPeerStatus: Unregistered\r\nCause: Expired\r\n", p->name);
@@ -5869,7 +5877,8 @@ static int send_trunk(struct iax2_trunk_peer *tpeer, struct timeval *now)
                res = transmit_trunk(fr, &tpeer->addr, tpeer->sockfd);
                calls = tpeer->calls;
 #if 0
-               ast_log(LOG_DEBUG, "Trunking %d call chunks in %d bytes to %s:%d, ts=%d\n", calls, fr->datalen, ast_inet_ntoa(tpeer->addr.sin_addr), ntohs(tpeer->addr.sin_port), ntohl(mth->ts));
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Trunking %d call chunks in %d bytes to %s:%d, ts=%d\n", calls, fr->datalen, ast_inet_ntoa(tpeer->addr.sin_addr), ntohs(tpeer->addr.sin_port), ntohl(mth->ts));
 #endif         
                /* Reset transmit trunk side data */
                tpeer->trunkdatalen = 0;
@@ -5944,7 +5953,8 @@ static int timing_read(int *id, int fd, short events, void *cbdata)
                ast_mutex_lock(&drop->lock);
                /* Once we have this lock, we're sure nobody else is using it or could use it once we release it, 
                   because by the time they could get tpeerlock, we've already grabbed it */
-               ast_log(LOG_DEBUG, "Dropping unused iax2 trunk peer '%s:%d'\n", ast_inet_ntoa(drop->addr.sin_addr), ntohs(drop->addr.sin_port));
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Dropping unused iax2 trunk peer '%s:%d'\n", ast_inet_ntoa(drop->addr.sin_addr), ntohs(drop->addr.sin_port));
                free(drop->trunkdata);
                ast_mutex_unlock(&drop->lock);
                ast_mutex_destroy(&drop->lock);
@@ -6561,8 +6571,10 @@ static int socket_process(struct iax2_thread *thread)
                                        ast_mutex_unlock(&iaxsl[fr->callno]);
                                        return 1;
                                }
-                       } else
-                               ast_log(LOG_DEBUG, "Received iseqno %d not within window %d->%d\n", fr->iseqno, iaxs[fr->callno]->rseqno, iaxs[fr->callno]->oseqno);
+                       } else {
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Received iseqno %d not within window %d->%d\n", fr->iseqno, iaxs[fr->callno]->rseqno, iaxs[fr->callno]->oseqno);
+                       }
                }
                if (inaddrcmp(&sin, &iaxs[fr->callno]->addr) && 
                        ((f.frametype != AST_FRAME_IAX) || 
@@ -6593,7 +6605,8 @@ static int socket_process(struct iax2_thread *thread)
                if (f.frametype == AST_FRAME_VOICE) {
                        if (f.subclass != iaxs[fr->callno]->voiceformat) {
                                        iaxs[fr->callno]->voiceformat = f.subclass;
-                                       ast_log(LOG_DEBUG, "Ooh, voice format changed to %d\n", f.subclass);
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Ooh, voice format changed to %d\n", f.subclass);
                                        if (iaxs[fr->callno]->owner) {
                                                int orignative;
 retryowner:
@@ -6613,7 +6626,8 @@ retryowner:
                                                                ast_mutex_unlock(&iaxs[fr->callno]->owner->lock);
                                                        }
                                                } else {
-                                                       ast_log(LOG_DEBUG, "Neat, somebody took away the channel at a magical time but i found it!\n");
+                                                       if (option_debug)
+                                                               ast_log(LOG_DEBUG, "Neat, somebody took away the channel at a magical time but i found it!\n");
                                                        ast_mutex_unlock(&iaxsl[fr->callno]);
                                                        return 1;
                                                }
@@ -6622,7 +6636,8 @@ retryowner:
                }
                if (f.frametype == AST_FRAME_VIDEO) {
                        if (f.subclass != iaxs[fr->callno]->videoformat) {
-                               ast_log(LOG_DEBUG, "Ooh, video format changed to %d\n", f.subclass & ~0x1);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Ooh, video format changed to %d\n", f.subclass & ~0x1);
                                iaxs[fr->callno]->videoformat = f.subclass & ~0x1;
                        }
                }
@@ -6888,7 +6903,8 @@ retryowner:
                                break;
                        case IAX_COMMAND_HANGUP:
                                ast_set_flag(iaxs[fr->callno], IAX_ALREADYGONE);
-                               ast_log(LOG_DEBUG, "Immediately destroying %d, having received hangup\n", fr->callno);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Immediately destroying %d, having received hangup\n", fr->callno);
                                /* Set hangup cause according to remote */
                                if (ies.causecode && iaxs[fr->callno]->owner)
                                        iaxs[fr->callno]->owner->hangupcause = ies.causecode;
@@ -6906,8 +6922,9 @@ retryowner:
                                                ast_log(LOG_WARNING, "Call rejected by %s: %s\n",
                                                        ast_inet_ntoa(iaxs[fr->callno]->addr.sin_addr),
                                                        ies.cause ? ies.cause : "<Unknown>");
-                                       ast_log(LOG_DEBUG, "Immediately destroying %d, having received reject\n",
-                                               fr->callno);
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Immediately destroying %d, having received reject\n",
+                                                       fr->callno);
                                }
                                /* Send ack immediately, before we destroy */
                                send_command_immediate(iaxs[fr->callno], AST_FRAME_IAX, IAX_COMMAND_ACK,
@@ -6924,18 +6941,24 @@ retryowner:
                                        if (!strcmp(ies.called_number, ast_parking_ext())) {
                                                if (iax_park(ast_bridged_channel(iaxs[fr->callno]->owner), iaxs[fr->callno]->owner)) {
                                                        ast_log(LOG_WARNING, "Failed to park call on '%s'\n", ast_bridged_channel(iaxs[fr->callno]->owner)->name);
-                                               } else
-                                                       ast_log(LOG_DEBUG, "Parked call on '%s'\n", ast_bridged_channel(iaxs[fr->callno]->owner)->name);
+                                               } else {
+                                                       if (option_debug)
+                                                               ast_log(LOG_DEBUG, "Parked call on '%s'\n", ast_bridged_channel(iaxs[fr->callno]->owner)->name);
+                                               }
                                        } else {
                                                if (ast_async_goto(ast_bridged_channel(iaxs[fr->callno]->owner), iaxs[fr->callno]->context, ies.called_number, 1))
                                                        ast_log(LOG_WARNING, "Async goto of '%s' to '%s@%s' failed\n", ast_bridged_channel(iaxs[fr->callno]->owner)->name, 
                                                                ies.called_number, iaxs[fr->callno]->context);
-                                               else
-                                                       ast_log(LOG_DEBUG, "Async goto of '%s' to '%s@%s' started\n", ast_bridged_channel(iaxs[fr->callno]->owner)->name, 
-                                                               ies.called_number, iaxs[fr->callno]->context);
+                                               else {
+                                                       if (option_debug)
+                                                               ast_log(LOG_DEBUG, "Async goto of '%s' to '%s@%s' started\n", ast_bridged_channel(iaxs[fr->callno]->owner)->name, 
+                                                                       ies.called_number, iaxs[fr->callno]->context);
+                                               }
                                        }
-                               } else
+                               } else {
+                                       if (option_debug)
                                                ast_log(LOG_DEBUG, "Async goto not applicable on call %d\n", fr->callno);
+                               }
                                break;
                        case IAX_COMMAND_ACCEPT:
                                /* Ignore if call is already up or needs authentication or is a TBD */
@@ -7146,7 +7169,8 @@ retryowner2:
                                        }
                                        if (!format) {
                                                if(!ast_test_flag(iaxs[fr->callno], IAX_CODEC_NOCAP)) {
-                                                       ast_log(LOG_DEBUG, "We don't do requested format %s, falling back to peer capability %d\n", ast_getformatname(iaxs[fr->callno]->peerformat), iaxs[fr->callno]->peercapability);
+                                                       if (option_debug)
+                                                               ast_log(LOG_DEBUG, "We don't do requested format %s, falling back to peer capability %d\n", ast_getformatname(iaxs[fr->callno]->peerformat), iaxs[fr->callno]->peercapability);
                                                        format = iaxs[fr->callno]->peercapability & iaxs[fr->callno]->capability;
                                                }
                                                if (!format) {
@@ -7265,13 +7289,15 @@ retryowner2:
                                break;
                        case IAX_COMMAND_INVAL:
                                iaxs[fr->callno]->error = ENOTCONN;
-                               ast_log(LOG_DEBUG, "Immediately destroying %d, having received INVAL\n", fr->callno);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Immediately destroying %d, having received INVAL\n", fr->callno);
                                iax2_destroy(fr->callno);
                                if (option_debug)
                                        ast_log(LOG_DEBUG, "Destroying call %d\n", fr->callno);
                                break;
                        case IAX_COMMAND_VNAK:
-                               ast_log(LOG_DEBUG, "Received VNAK: resending outstanding frames\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Received VNAK: resending outstanding frames\n");
                                /* Force retransmission */
                                vnak_retransmit(fr->callno, fr->iseqno);
                                break;
@@ -7427,7 +7453,8 @@ retryowner2:
                                        send_command(iaxs[fr->callno], AST_FRAME_IAX, IAX_COMMAND_FWDATA, 0, ied0.buf, ied0.pos, -1);
                                break;
                        default:
-                               ast_log(LOG_DEBUG, "Unknown IAX command %d on %d/%d\n", f.subclass, fr->callno, iaxs[fr->callno]->peercallno);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Unknown IAX command %d on %d/%d\n", f.subclass, fr->callno, iaxs[fr->callno]->peercallno);
                                memset(&ied0, 0, sizeof(ied0));
                                iax_ie_append_byte(&ied0, IAX_IE_IAX_UNKNOWN, f.subclass);
                                send_command(iaxs[fr->callno], AST_FRAME_IAX, IAX_COMMAND_UNSUPPORT, 0, ied0.buf, ied0.pos, -1);
@@ -7693,7 +7720,8 @@ static int iax2_provision(struct sockaddr_in *end, int sockfd, char *dest, const
                ast_log(LOG_DEBUG, "Provisioning '%s' from template '%s'\n", dest, template);
 
        if (iax_provision_build(&provdata, &sig, template, force)) {
-               ast_log(LOG_DEBUG, "No provisioning found for template '%s'\n", template);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "No provisioning found for template '%s'\n", template);
                return 0;
        }
 
@@ -7973,7 +8001,7 @@ static void *sched_thread(void *ignore)
                pthread_testcancel();
 
                count = ast_sched_runq(sched);
-               if (count >= 20)
+               if (count >= 20 && option_debug)
                        ast_log(LOG_DEBUG, "chan_iax2: ast_sched_runq ran %d scheduled tasks all at once\n", count);
        }
 
@@ -8021,13 +8049,13 @@ static void *network_thread(void *ignore)
                AST_LIST_TRAVERSE_SAFE_END
                AST_LIST_UNLOCK(&iaxq.queue);
 
-               if (count >= 20)
+               if (count >= 20 && option_debug)
                        ast_log(LOG_DEBUG, "chan_iax2: Sent %d queued outbound frames all at once\n", count);
 
                /* Now do the IO, and run scheduled tasks */
                res = ast_io_wait(io, -1);
                if (res >= 0) {
-                       if (res >= 20)
+                       if (res >= 20 && option_debug)
                                ast_log(LOG_DEBUG, "chan_iax2: ast_io_wait ran %d I/Os all at once\n", res);
                }
        }
@@ -8101,7 +8129,8 @@ static int check_srcaddr(struct sockaddr *sa, socklen_t salen)
 
        res = bind(sd, sa, salen);
        if (res < 0) {
-               ast_log(LOG_DEBUG, "Can't bind: %s\n", strerror(errno));
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Can't bind: %s\n", strerror(errno));
                close(sd);
                return 1;
        }
@@ -8160,7 +8189,8 @@ static int peer_set_srcaddr(struct iax2_peer *peer, const char *srcaddr)
                        srcaddr, peer->name);
                return -1;
        } else {
-               ast_log(LOG_DEBUG, "Using sourceaddress %s for '%s'\n", srcaddr, peer->name);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Using sourceaddress %s for '%s'\n", srcaddr, peer->name);
                return 0;
        }
 }
@@ -9125,8 +9155,9 @@ static int cache_get_callno_locked(const char *data)
        if (create_addr(pds.peer, &sin, &cai))
                return -1;
 
-       ast_log(LOG_DEBUG, "peer: %s, username: %s, password: %s, context: %s\n",
-               pds.peer, pds.username, pds.password, pds.context);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "peer: %s, username: %s, password: %s, context: %s\n",
+                       pds.peer, pds.username, pds.password, pds.context);
 
        callno = find_callno(0, 0, &sin, NEW_FORCE, 1, cai.sockfd);
        if (callno < 1) {
index 6b09815..20fa6d0 100644 (file)
@@ -487,7 +487,8 @@ static int jingle_is_answered(struct jingle *client, ikspak *pak)
 {
        struct jingle_pvt *tmp;
 
-       ast_log(LOG_DEBUG, "The client is %s\n", client->name);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "The client is %s\n", client->name);
        /* Make sure our new call doesn't exist yet */
        for (tmp = client->p; tmp; tmp = tmp->next) {
                if (iks_find_with_attrib(pak->x, GOOGLE_NODE, GOOGLE_SID, tmp->sid))
@@ -555,7 +556,8 @@ static int jingle_hangup_farend(struct jingle *client, ikspak *pak)
 {
        struct jingle_pvt *tmp;
 
-       ast_log(LOG_DEBUG, "The client is %s\n", client->name);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "The client is %s\n", client->name);
        /* Make sure our new call doesn't exist yet */
        for (tmp = client->p; tmp; tmp = tmp->next) {
                if (iks_find_with_attrib(pak->x, GOOGLE_NODE, GOOGLE_SID, tmp->sid))
index fbdf749..cd2cad8 100644 (file)
@@ -462,7 +462,8 @@ static int unalloc_sub(struct mgcp_subchannel *sub)
                ast_log(LOG_WARNING, "Trying to unalloc the real channel %s@%s?!?\n", p->name, p->parent->name);
                return -1;
        }
-       ast_log(LOG_DEBUG, "Released sub %d of channel %s@%s\n", sub->id, p->name, p->parent->name);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Released sub %d of channel %s@%s\n", sub->id, p->name, p->parent->name);
 
        sub->owner = NULL;
        if (!ast_strlen_zero(sub->cxident)) {
@@ -725,7 +726,8 @@ static int mgcp_postrequest(struct mgcp_endpoint *p, struct mgcp_subchannel *sub
                /* XXX Should schedule retransmission XXX */
 /* SC
        } else
-               ast_log(LOG_DEBUG, "Deferring transmission of transaction %d\n", seqno);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Deferring transmission of transaction %d\n", seqno);
 */
        return 0;
 }
@@ -738,7 +740,8 @@ static int send_request(struct mgcp_endpoint *p, struct mgcp_subchannel *sub,
        struct mgcp_request **queue, *q, *r, *t;
        ast_mutex_t *l;
 
-       ast_log(LOG_DEBUG, "Slow sequence is %d\n", p->slowsequence);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Slow sequence is %d\n", p->slowsequence);
        if (p->slowsequence) {
                queue = &p->cmd_queue;
                l = &p->cmd_queue_lock;
@@ -918,11 +921,13 @@ static int mgcp_hangup(struct ast_channel *ast)
                ast_log(LOG_DEBUG, "mgcp_hangup(%s)\n", ast->name);
        }
        if (!ast->tech_pvt) {
-               ast_log(LOG_DEBUG, "Asked to hangup channel not connected\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Asked to hangup channel not connected\n");
                return 0;
        }
        if (strcmp(sub->magic, MGCP_SUBCHANNEL_MAGIC)) {
-               ast_log(LOG_DEBUG, "Invalid magic. MGCP subchannel freed up already.\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Invalid magic. MGCP subchannel freed up already.\n");
                return 0;
        }
        ast_mutex_lock(&sub->lock);
@@ -1195,7 +1200,8 @@ static struct ast_frame *mgcp_rtp_read(struct mgcp_subchannel *sub)
                /* We already hold the channel lock */
                if (f->frametype == AST_FRAME_VOICE) {
                        if (f->subclass != sub->owner->nativeformats) {
-                               ast_log(LOG_DEBUG, "Oooh, format changed to %d\n", f->subclass);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Oooh, format changed to %d\n", f->subclass);
                                sub->owner->nativeformats = f->subclass;
                                ast_set_read_format(sub->owner, sub->owner->readformat);
                                ast_set_write_format(sub->owner, sub->owner->writeformat);
@@ -1670,8 +1676,9 @@ static struct mgcp_subchannel *find_subchannel_and_lock(char *name, int msgid, s
                                        /* SC */
                                        break;
                                } else if (name && !strcasecmp(p->name, tmp)) {
-                                       ast_log(LOG_DEBUG, "Coundn't determine subchannel, assuming current master %s@%s-%d\n", 
-                                               p->name, g->name, p->sub->id);
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Coundn't determine subchannel, assuming current master %s@%s-%d\n", 
+                                                       p->name, g->name, p->sub->id);
                                        sub = p->sub;
                                        found = 1;
                                        break;
@@ -2616,7 +2623,8 @@ static void *mgcp_ss(void *data)
                res = ast_waitfordigit(chan, timeout);
                timeout = 0;
                if (res < 0) {
-                       ast_log(LOG_DEBUG, "waitfordigit returned < 0...\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "waitfordigit returned < 0...\n");
                        /*res = tone_zone_play_tone(p->subs[index].zfd, -1);*/
                        ast_indicate(chan, -1);
                        ast_hangup(chan);
@@ -2684,7 +2692,8 @@ static void *mgcp_ss(void *data)
                                timeout = matchdigittimeout;
                        }
                } else if (res == 0) {
-                       ast_log(LOG_DEBUG, "not enough digits (and no ambiguous match)...\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "not enough digits (and no ambiguous match)...\n");
                        /*res = tone_zone_play_tone(p->subs[index].zfd, ZT_TONE_CONGESTION);*/
                        transmit_notify_request(sub, "G/cg");
                        /*zt_wait_event(p->subs[index].zfd);*/
@@ -2820,11 +2829,13 @@ static void *mgcp_ss(void *data)
        for (;;) {
                res = ast_waitfordigit(chan, to);
                if (!res) {
-                       ast_log(LOG_DEBUG, "Timeout...\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Timeout...\n");
                        break;
                }
                if (res < 0) {
-                       ast_log(LOG_DEBUG, "Got hangup...\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Got hangup...\n");
                        ast_hangup(chan);
                        break;
                }
@@ -2901,8 +2912,9 @@ static int attempt_transfer(struct mgcp_endpoint *p)
                /* Tell the caller not to hangup */
                return 1;
        } else {
-               ast_log(LOG_DEBUG, "Neither %s nor %s are in a bridge, nothing to transfer\n",
-                       p->sub->owner->name, p->sub->next->owner->name);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Neither %s nor %s are in a bridge, nothing to transfer\n",
+                               p->sub->owner->name, p->sub->next->owner->name);
                p->sub->next->owner->_softhangup |= AST_SOFTHANGUP_DEV;
                if (p->sub->next->owner) {
                        p->sub->next->alreadygone = 1;
@@ -3068,7 +3080,8 @@ static int handle_request(struct mgcp_subchannel *sub, struct mgcp_request *req,
                ev = get_header(req, "O");
                s = strchr(ev, '/');
                if (s) ev = s + 1;
-               ast_log(LOG_DEBUG, "Endpoint '%s@%s-%d' observed '%s'\n", p->name, p->parent->name, sub->id, ev);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Endpoint '%s@%s-%d' observed '%s'\n", p->name, p->parent->name, sub->id, ev);
                /* Keep looking for events unless this was a hangup */
                if (strcasecmp(ev, "hu") && strcasecmp(ev, "hd") && strcasecmp(ev, "ping")) {
                        transmit_notify_request(sub, p->curtone);
@@ -3166,7 +3179,8 @@ static int handle_request(struct mgcp_subchannel *sub, struct mgcp_request *req,
                } else if (!strcasecmp(ev, "hu")) {
                        p->hookstate = MGCP_ONHOOK;
                        sub->cxmode = MGCP_CX_RECVONLY;
-                       ast_log(LOG_DEBUG, "MGCP %s@%s Went on hook\n", p->name, p->parent->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "MGCP %s@%s Went on hook\n", p->name, p->parent->name);
                        /* Do we need to send MDCX before a DLCX ?
                        if (sub->rtp) {
                                transmit_modify_request(sub);
@@ -3333,7 +3347,8 @@ static int mgcpsock_read(int *id, int fd, short events, void *ignore)
                        ast_mutex_lock(&gw->msgs_lock);
                        for (prev = NULL, cur = gw->msgs; cur; prev = cur, cur = cur->next) {
                                if (cur->seqno == ident) {
-                                       ast_log(LOG_DEBUG, "Got response back on transaction %d\n", ident);
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Got response back on transaction %d\n", ident);
                                        if (prev)
                                                prev->next = cur->next;
                                        else
index c1a0f0d..2288b1d 100644 (file)
@@ -647,9 +647,8 @@ static void send_digit_to_chan(struct chan_list *cl, char digit )
                ast_playtones_start(chan,0,dtmf_tones[15], 0);
        else {
                /* not handled */
-               ast_log(LOG_DEBUG, "Unable to handle DTMF tone '%c' for '%s'\n", digit, chan->name);
-    
-    
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Unable to handle DTMF tone '%c' for '%s'\n", digit, chan->name);
        }
 }
 /*** CLI HANDLING ***/
@@ -2223,8 +2222,9 @@ static int misdn_hangup(struct ast_channel *ast)
 {
        struct chan_list *p;
        struct misdn_bchannel *bc=NULL;
-       
-       ast_log(LOG_DEBUG, "misdn_hangup(%s)\n", ast->name);
+
+       if (option_debug)
+               ast_log(LOG_DEBUG, "misdn_hangup(%s)\n", ast->name);
        
        if (!ast || ! (p=MISDN_ASTERISK_TECH_PVT(ast) ) ) return -1;
        
@@ -2248,7 +2248,8 @@ static int misdn_hangup(struct ast_channel *ast)
        
        if (ast->_state == AST_STATE_RESERVED || p->state == MISDN_NOTHING) {
                /* between request and call */
-               ast_log(LOG_DEBUG, "State Reserved (or nothing) => chanIsAvail\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "State Reserved (or nothing) => chanIsAvail\n");
                MISDN_ASTERISK_TECH_PVT(ast)=NULL;
                
                cl_dequeue_chan(&cl_te, p);
@@ -2392,7 +2393,8 @@ static struct ast_frame *process_ast_dsp(struct chan_list *tmp, struct ast_frame
        if (!f || (f->frametype != AST_FRAME_DTMF))
                return frame;
  
-       ast_log(LOG_DEBUG, "Detected inband DTMF digit: %c\n", f->subclass);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Detected inband DTMF digit: %c\n", f->subclass);
  
        if (tmp->faxdetect && (f->subclass == 'f')) {
                /* Fax tone -- Handle and return NULL */
@@ -2423,15 +2425,19 @@ static struct ast_frame *process_ast_dsp(struct chan_list *tmp, struct ast_frame
                                                        ast_log(LOG_WARNING, "Failed to async goto '%s' into fax of '%s'\n", ast->name, context);
                                        } else
                                                ast_log(LOG_NOTICE, "Fax detected, but no fax extension ctx:%s exten:%s\n", context, ast->exten);
-                               } else 
-                                       ast_log(LOG_DEBUG, "Already in a fax extension, not redirecting\n");
+                               } else {
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Already in a fax extension, not redirecting\n");
+                               }
                                break;
                        case 2:
                                ast_verbose(VERBOSE_PREFIX_3 "Not redirecting %s to fax extension, nojump is set.\n", ast->name);
                                break;
                        }
-               } else
-                       ast_log(LOG_DEBUG, "Fax already handled\n");
+               } else {
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Fax already handled\n");
+               }
        }
        
        if (tmp->ast_dsp && (f->subclass != 'f')) {
index 30ee323..340ed24 100644 (file)
@@ -201,7 +201,8 @@ static struct ast_frame  *nbs_xread(struct ast_channel *ast)
        p->fr.delivery.tv_sec = 0;
        p->fr.delivery.tv_usec = 0;
 
-       ast_log(LOG_DEBUG, "Returning null frame on %s\n", ast->name);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Returning null frame on %s\n", ast->name);
 
        return &p->fr;
 }
index 6e658ad..a6e3d7b 100644 (file)
@@ -214,7 +214,8 @@ static int phone_indicate(struct ast_channel *chan, int condition, const void *d
 {
        struct phone_pvt *p = chan->tech_pvt;
        int res=-1;
-       ast_log(LOG_DEBUG, "Requested indication %d on channel %s\n", condition, chan->name);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Requested indication %d on channel %s\n", condition, chan->name);
        switch(condition) {
                case AST_CONTROL_FLASH:
                        ioctl(p->fd, IXJCTL_PSTN_SET_STATE, PSTN_ON_HOOK);
@@ -370,8 +371,10 @@ static int phone_hangup(struct ast_channel *ast)
 
        /* If it's an FXO, hang them up */
        if (p->mode == MODE_FXO) {
-               if (ioctl(p->fd, PHONE_PSTN_SET_STATE, PSTN_ON_HOOK)) 
-                       ast_log(LOG_DEBUG, "ioctl(PHONE_PSTN_SET_STATE) failed on %s (%s)\n",ast->name, strerror(errno));
+               if (ioctl(p->fd, PHONE_PSTN_SET_STATE, PSTN_ON_HOOK)) { 
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "ioctl(PHONE_PSTN_SET_STATE) failed on %s (%s)\n",ast->name, strerror(errno));
+               }
        }
 
        /* If they're off hook, give a busy signal */
@@ -466,10 +469,14 @@ static int phone_answer(struct ast_channel *ast)
        p = ast->tech_pvt;
        /* In case it's a LineJack, take it off hook */
        if (p->mode == MODE_FXO) {
-               if (ioctl(p->fd, PHONE_PSTN_SET_STATE, PSTN_OFF_HOOK)) 
-                       ast_log(LOG_DEBUG, "ioctl(PHONE_PSTN_SET_STATE) failed on %s (%s)\n", ast->name, strerror(errno));
-               else
-                       ast_log(LOG_DEBUG, "Took linejack off hook\n");
+               if (ioctl(p->fd, PHONE_PSTN_SET_STATE, PSTN_OFF_HOOK)) {
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "ioctl(PHONE_PSTN_SET_STATE) failed on %s (%s)\n", ast->name, strerror(errno));
+               }
+               else {
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Took linejack off hook\n");
+               }
        }
        phone_setup(ast);
        if (option_debug)
@@ -919,7 +926,8 @@ static void phone_check_exception(struct phone_pvt *i)
        union telephony_exception phonee;
        /* XXX Do something XXX */
 #if 0
-       ast_log(LOG_DEBUG, "Exception!\n");
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Exception!\n");
 #endif
        phonee.bytes = ioctl(i->fd, PHONE_EXCEPTION);
        if (phonee.bits.dtmf_ready)  {
@@ -1085,7 +1093,8 @@ static void *do_monitor(void *data)
                }
                /* Okay, select has finished.  Let's see what happened.  */
                if (res < 0) {
-                       ast_log(LOG_DEBUG, "select return %d: %s\n", res, strerror(errno));
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "select return %d: %s\n", res, strerror(errno));
                        continue;
                }
                /* If there are no fd's changed, just continue, it's probably time
@@ -1172,8 +1181,10 @@ static struct phone_pvt *mkif(char *iface, int mode, int txgain, int rxgain)
                        return NULL;
                }
                if (mode == MODE_FXO) {
-                       if (ioctl(tmp->fd, IXJCTL_PORT, PORT_PSTN)) 
-                               ast_log(LOG_DEBUG, "Unable to set port to PSTN\n");
+                       if (ioctl(tmp->fd, IXJCTL_PORT, PORT_PSTN)) {
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Unable to set port to PSTN\n");
+                       }
                } else {
                        if (ioctl(tmp->fd, IXJCTL_PORT, PORT_POTS)) 
                                 if (mode != MODE_FXS)
@@ -1183,8 +1194,10 @@ static struct phone_pvt *mkif(char *iface, int mode, int txgain, int rxgain)
                ioctl(tmp->fd, PHONE_REC_STOP);
                ioctl(tmp->fd, PHONE_RING_STOP);
                ioctl(tmp->fd, PHONE_CPT_STOP);
-               if (ioctl(tmp->fd, PHONE_PSTN_SET_STATE, PSTN_ON_HOOK)) 
-                       ast_log(LOG_DEBUG, "ioctl(PHONE_PSTN_SET_STATE) failed on %s (%s)\n",iface, strerror(errno));
+               if (ioctl(tmp->fd, PHONE_PSTN_SET_STATE, PSTN_ON_HOOK)) {
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "ioctl(PHONE_PSTN_SET_STATE) failed on %s (%s)\n",iface, strerror(errno));
+               }
                if (echocancel != AEC_OFF)
                        ioctl(tmp->fd, IXJCTL_AEC_START, echocancel);
                if (silencesupression) 
index 21ce896..78ebc97 100644 (file)
@@ -1569,7 +1569,7 @@ static char *referstatus2str(enum referstatus rstatus)
        a dialog */
 static void initialize_initreq(struct sip_pvt *p, struct sip_request *req)
 {
-       if (p->initreq.headers) {
+       if (p->initreq.headers && option_debug) {
                ast_log(LOG_DEBUG, "Initializing already initialized SIP dialog %s (presumably reinvite)\n", p->callid);
        }
        /* Use this as the basis */
@@ -2002,7 +2002,8 @@ static void __sip_ack(struct sip_pvt *p, int seqno, int resp, int sipmethod, int
                        ((ast_test_flag(cur, FLAG_RESPONSE)) || 
                         (!strncasecmp(msg, cur->data, strlen(msg)) && (cur->data[strlen(msg)] < 33)))) {
                        if (!resp && (seqno == p->pendinginvite)) {
-                               ast_log(LOG_DEBUG, "Acked pending invite %d\n", p->pendinginvite);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Acked pending invite %d\n", p->pendinginvite);
                                p->pendinginvite = 0;
                        }
                        /* this is our baby */
@@ -3148,7 +3149,8 @@ static const char *hangup_cause2sip(int cause)
                        
                case AST_CAUSE_NOTDEFINED:
                default:
-                       ast_log(LOG_DEBUG, "AST hangup cause %d (no match found in SIP)\n", cause);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "AST hangup cause %d (no match found in SIP)\n", cause);
                        return NULL;
        }
 
@@ -3167,7 +3169,8 @@ static int sip_hangup(struct ast_channel *ast)
        struct ast_channel *oldowner = ast;
 
        if (!p) {
-               ast_log(LOG_DEBUG, "Asked to hangup channel that was not connected\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Asked to hangup channel that was not connected\n");
                return 0;
        }
 
@@ -3186,8 +3189,10 @@ static int sip_hangup(struct ast_channel *ast)
        if (option_debug) {
                if (ast_test_flag(ast, AST_FLAG_ZOMBIE) && p->refer && option_debug)
                        ast_log(LOG_DEBUG, "SIP Transfer: Hanging up Zombie channel %s after transfer ... Call-ID: %s\n", ast->name, p->callid);
-               else 
-                       ast_log(LOG_DEBUG, "Hangup call %s, SIP callid %s)\n", ast->name, p->callid);
+               else  {
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Hangup call %s, SIP callid %s)\n", ast->name, p->callid);
+               }
        }
        if (option_debug && ast_test_flag(ast, AST_FLAG_ZOMBIE)) 
                ast_log(LOG_DEBUG, "Hanging up zombie call. Be scared.\n");
@@ -3433,9 +3438,9 @@ static int sip_fixup(struct ast_channel *oldchan, struct ast_channel *newchan)
        int ret = -1;
        struct sip_pvt *p;
 
-       if (newchan && ast_test_flag(newchan, AST_FLAG_ZOMBIE))
+       if (newchan && ast_test_flag(newchan, AST_FLAG_ZOMBIE) && option_debug)
                ast_log(LOG_DEBUG, "New channel is zombie\n");
-       if (oldchan && ast_test_flag(oldchan, AST_FLAG_ZOMBIE))
+       if (oldchan && ast_test_flag(oldchan, AST_FLAG_ZOMBIE) && option_debug)
                ast_log(LOG_DEBUG, "Old channel is zombie\n");
 
        if (!newchan || !newchan->tech_pvt) {
@@ -4764,7 +4769,8 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req)
                                framing = strtol(tmp, NULL, 10);
                                if (framing == LONG_MIN || framing == LONG_MAX) {
                                        framing = 0;
-                                       ast_log(LOG_DEBUG, "Can't read framing from SDP: %s\n", a);
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Can't read framing from SDP: %s\n", a);
                                }
                        }
                        if (framing && last_rtpmap_codec) {
@@ -7002,7 +7008,8 @@ static int transmit_register(struct sip_registry *r, int sipmethod, const char *
                        ast_sched_del(sched, r->timeout);
                }
                r->timeout = ast_sched_add(sched, global_reg_timeout * 1000, sip_reg_timeout, r);
-               ast_log(LOG_DEBUG, "Scheduled a registration timeout for %s id  #%d \n", r->hostname, r->timeout);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Scheduled a registration timeout for %s id  #%d \n", r->hostname, r->timeout);
        }
 
        if (strchr(r->username, '@')) {
@@ -7611,7 +7618,8 @@ static void build_route(struct sip_pvt *p, struct sip_request *req, int backward
 
        /* Once a persistant route is set, don't fool with it */
        if (p->route && p->route_persistant) {
-               ast_log(LOG_DEBUG, "build_route: Retaining previous route: <%s>\n", p->route->hop);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "build_route: Retaining previous route: <%s>\n", p->route->hop);
                return;
        }
 
@@ -8208,7 +8216,8 @@ static int get_destination(struct sip_pvt *p, struct sip_request *oreq)
                domain_context[0] = '\0';
                if (!check_sip_domain(p->domain, domain_context, sizeof(domain_context))) {
                        if (!allow_external_domains && (req->method == SIP_INVITE || req->method == SIP_REFER)) {
-                               ast_log(LOG_DEBUG, "Got SIP %s to non-local domain '%s'; refusing request.\n", sip_methods[req->method].text, p->domain);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Got SIP %s to non-local domain '%s'; refusing request.\n", sip_methods[req->method].text, p->domain);
                                return -2;
                        }
                }
@@ -8861,15 +8870,18 @@ static enum check_auth_result check_user_full(struct sip_pvt *p, struct sip_requ
                        }
                        usenatroute = ast_test_flag(&p->flags[0], SIP_NAT_ROUTE);
                        if (p->rtp) {
-                               ast_log(LOG_DEBUG, "Setting NAT on RTP to %s\n", usenatroute ? "On" : "Off");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Setting NAT on RTP to %s\n", usenatroute ? "On" : "Off");
                                ast_rtp_setnat(p->rtp, usenatroute);
                        }
                        if (p->vrtp) {
-                               ast_log(LOG_DEBUG, "Setting NAT on VRTP to %s\n", usenatroute ? "On" : "Off");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Setting NAT on VRTP to %s\n", usenatroute ? "On" : "Off");
                                ast_rtp_setnat(p->vrtp, usenatroute);
                        }
                        if (p->udptl) {
-                               ast_log(LOG_DEBUG, "Setting NAT on UDPTL to %s\n", usenatroute ? "On" : "Off");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Setting NAT on UDPTL to %s\n", usenatroute ? "On" : "Off");
                                ast_udptl_setnat(p->udptl, usenatroute);
                        }
                        ast_string_field_set(p, peersecret, peer->secret);
@@ -10409,6 +10421,11 @@ static void sip_dump_history(struct sip_pvt *dialog)
        if (!dialog)
                return;
 
+       if (!option_debug && !sipdebug) {
+               ast_log(LOG_NOTICE, "You must have debugging enabled (SIP or Asterisk) in order to dump SIP history.\n");
+               return;
+       }
+
        ast_log(LOG_DEBUG, "\n---------- SIP HISTORY for '%s' \n", dialog->callid);
        if (dialog->subscribed)
                ast_log(LOG_DEBUG, "  * Subscription\n");
@@ -11220,7 +11237,8 @@ static void parse_moved_contact(struct sip_pvt *p, struct sip_request *req)
                e = strchr(s, '/');
                if (e)
                        *e = '\0';
-               ast_log(LOG_DEBUG, "Found promiscuous redirection to 'SIP/%s'\n", s);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Found promiscuous redirection to 'SIP/%s'\n", s);
                if (p->owner)
                        ast_string_field_build(p->owner, call_forward, "SIP/%s", s);
        } else {
@@ -11284,7 +11302,8 @@ static void handle_response_invite(struct sip_pvt *p, int resp, char *rest, stru
        }
 
        if (ast_test_flag(&p->flags[0], SIP_ALREADYGONE)) { /* This call is already gone */
-               ast_log(LOG_DEBUG, "Got response on call that is already terminated: %s (ignoring)\n", p->callid);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Got response on call that is already terminated: %s (ignoring)\n", p->callid);
                return;
        }
 
@@ -11602,9 +11621,11 @@ static int handle_response_register(struct sip_pvt *p, int resp, char *rest, str
                r->regtime = time(NULL);                /* Reset time of last succesful registration */
                manager_event(EVENT_FLAG_SYSTEM, "Registry", "ChannelDriver: SIP\r\nDomain: %s\r\nStatus: %s\r\n", r->hostname, regstate2str(r->regstate));
                r->regattempts = 0;
-               ast_log(LOG_DEBUG, "Registration successful\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Registration successful\n");
                if (r->timeout > -1) {
-                       ast_log(LOG_DEBUG, "Cancelling timeout %d\n", r->timeout);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Cancelling timeout %d\n", r->timeout);
                        ast_sched_del(sched, r->timeout);
                }
                r->timeout=-1;
@@ -11883,7 +11904,8 @@ static void handle_response(struct sip_pvt *p, int resp, char *rest, struct sip_
                        if (sipmethod == SIP_INVITE)
                                handle_response_invite(p, resp, rest, req, seqno);
                        else {
-                               ast_log(LOG_DEBUG, "Got 491 on %s, unspported. Call ID %s\n", sip_methods[sipmethod].text, p->callid);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Got 491 on %s, unspported. Call ID %s\n", sip_methods[sipmethod].text, p->callid);
                                ast_set_flag(&p->flags[0], SIP_NEEDDESTROY);    
                        }
                        break;
@@ -11944,7 +11966,8 @@ static void handle_response(struct sip_pvt *p, int resp, char *rest, struct sip_
                                        is yet another failure of not having a layer 2 (again, YAY
                                         IETF for thinking ahead).  So we treat this as a call
                                         forward and hope we end up at the right place... */
-                                       ast_log(LOG_DEBUG, "Hairpin detected, setting up call forward for what it's worth\n");
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Hairpin detected, setting up call forward for what it's worth\n");
                                        if (p->owner)
                                                ast_string_field_build(p->owner, call_forward,
                                                                       "Local/%s@%s", p->username, p->context);
@@ -12010,7 +12033,8 @@ static void handle_response(struct sip_pvt *p, int resp, char *rest, struct sip_
                        if (sipmethod == SIP_INVITE) {
                                handle_response_invite(p, resp, rest, req, seqno);
                        } else if (sipmethod == SIP_CANCEL) {
-                               ast_log(LOG_DEBUG, "Got 200 OK on CANCEL\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Got 200 OK on CANCEL\n");
 
                                /* Wait for 487, then destroy */
                        } else if (sipmethod == SIP_NOTIFY) {
@@ -12235,10 +12259,14 @@ static int sip_park(struct ast_channel *chan1, struct ast_channel *chan2, struct
        }
        ast_channel_unlock(transferer);
        if (!transferer || !transferee) {
-               if (!transferer)
-                       ast_log(LOG_DEBUG, "No transferer channel, giving up parking\n");
-               if (!transferee)
-                       ast_log(LOG_DEBUG, "No transferee channel, giving up parking\n");
+               if (!transferer) { 
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "No transferer channel, giving up parking\n");
+               }
+               if (!transferee) {
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "No transferee channel, giving up parking\n");
+               }
                return -1;
        }
        if ((d = ast_calloc(1, sizeof(*d)))) {
@@ -12874,7 +12902,8 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
                                }
                        } else {
                                p->jointcapability = p->capability;
-                               ast_log(LOG_DEBUG, "Hm....  No sdp for the moment\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Hm....  No sdp for the moment\n");
                        }
                        if (recordhistory) /* This is a response, note what it was for */
                                append_history(p, "ReInv", "Re-invite received");
@@ -13269,7 +13298,8 @@ static int local_attended_transfer(struct sip_pvt *transferer, struct sip_dual *
                append_history(transferer, "Xfer", "Refer succeeded");
                transferer->refer->status = REFER_200OK;
                if (targetcall_pvt->owner) {
-                       ast_log(LOG_DEBUG, "SIP attended transfer: Unlocking channel %s\n", targetcall_pvt->owner->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "SIP attended transfer: Unlocking channel %s\n", targetcall_pvt->owner->name);
                        ast_channel_unlock(targetcall_pvt->owner);
                }
        }
@@ -13397,13 +13427,13 @@ static int handle_request_refer(struct sip_pvt *p, struct sip_request *req, int
                case -2:        /* Syntax error */
                        transmit_response(p, "400 Bad Request (Refer-to missing)", req);
                        append_history(p, "Xfer", "Refer failed. Refer-to missing.");
-                       if (ast_test_flag(req, SIP_PKT_DEBUG))
+                       if (ast_test_flag(req, SIP_PKT_DEBUG) && option_debug)
                                ast_log(LOG_DEBUG, "SIP transfer to black hole can't be handled (no refer-to: )\n");
                        break;
                case -3:
                        transmit_response(p, "603 Declined (Non sip: uri)", req);
                        append_history(p, "Xfer", "Refer failed. Non SIP uri");
-                       if (ast_test_flag(req, SIP_PKT_DEBUG))
+                       if (ast_test_flag(req, SIP_PKT_DEBUG) && option_debug)
                                ast_log(LOG_DEBUG, "SIP transfer to non-SIP uri denied\n");
                        break;
                default:
@@ -13412,7 +13442,7 @@ static int handle_request_refer(struct sip_pvt *p, struct sip_request *req, int
                        append_history(p, "Xfer", "Refer failed. Bad extension.");
                        transmit_notify_with_sipfrag(p, seqno, "404 Not found", TRUE);
                        ast_clear_flag(&p->flags[0], SIP_GOTREFER);     
-                       if (ast_test_flag(req, SIP_PKT_DEBUG))
+                       if (ast_test_flag(req, SIP_PKT_DEBUG) && option_debug)
                                ast_log(LOG_DEBUG, "SIP transfer to bad extension: %s\n", p->refer->refer_to);
                        break;
                } 
@@ -13770,13 +13800,16 @@ static int handle_request_subscribe(struct sip_pvt *p, struct sip_request *req,
                        /* For transfers, this could happen, but since we haven't seen it happening, let us just refuse this */
                        transmit_response(p, "403 Forbidden (within dialog)", req);
                        /* Do not destroy session, since we will break the call if we do */
-                       ast_log(LOG_DEBUG, "Got a subscription within the context of another call, can't handle that - %s (Method %s)\n", p->callid, sip_methods[p->initreq.method].text);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Got a subscription within the context of another call, can't handle that - %s (Method %s)\n", p->callid, sip_methods[p->initreq.method].text);
                        return 0;
                } else if (ast_test_flag(req, SIP_PKT_DEBUG)) {
-                       if (resubscribe)
-                               ast_log(LOG_DEBUG, "Got a re-subscribe on existing subscription %s\n", p->callid);
-                       else
-                               ast_log(LOG_DEBUG, "Got a new subscription %s (possibly with auth)\n", p->callid);
+                       if (option_debug) {
+                               if (resubscribe)
+                                       ast_log(LOG_DEBUG, "Got a re-subscribe on existing subscription %s\n", p->callid);
+                               else
+                                       ast_log(LOG_DEBUG, "Got a new subscription %s (possibly with auth)\n", p->callid);
+                       }
                }
        }
 
@@ -15041,7 +15074,8 @@ static struct sip_auth *add_realm_authentication(struct sip_auth *authlist, char
        if (ast_strlen_zero(configuration))
                return authlist;
 
-       ast_log(LOG_DEBUG, "Auth config ::  %s\n", configuration);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Auth config ::  %s\n", configuration);
 
        ast_copy_string(authcopy, configuration, sizeof(authcopy));
        stringp = authcopy;
index 232bfd1..57fb071 100644 (file)
@@ -2297,7 +2297,8 @@ static void *skinny_ss(void *data)
                                timeout = matchdigittimeout;
                        }
                } else if (res == 0) {
-                       ast_log(LOG_DEBUG, "Not enough digits (and no ambiguous match)...\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Not enough digits (and no ambiguous match)...\n");
                        transmit_tone(s, SKINNY_REORDER);
                        ast_hangup(c);
                        return NULL;
@@ -2384,7 +2385,8 @@ static int skinny_hangup(struct ast_channel *ast)
        struct skinnysession *s;
 
        if (!sub) {
-               ast_log(LOG_DEBUG, "Asked to hangup channel not connected\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Asked to hangup channel not connected\n");
                return 0;
        }
        l = sub->parent;
@@ -2487,7 +2489,8 @@ static struct ast_frame *skinny_rtp_read(struct skinny_subchannel *sub)
                /* We already hold the channel lock */
                if (f->frametype == AST_FRAME_VOICE) {
                        if (f->subclass != ast->nativeformats) {
-                               ast_log(LOG_DEBUG, "Oooh, format changed to %d\n", f->subclass);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Oooh, format changed to %d\n", f->subclass);
                                ast->nativeformats = f->subclass;
                                ast_set_read_format(ast, ast->readformat);
                                ast_set_write_format(ast, ast->writeformat);
@@ -3161,7 +3164,8 @@ static int handle_stimulus_message(struct skinny_req *req, struct skinnysession
                        ast_setstate(sub->owner, AST_STATE_UP);
                } else {
                        if (sub && sub->owner) {
-                               ast_log(LOG_DEBUG, "Current subchannel [%s] already has owner\n", sub->owner->name);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Current subchannel [%s] already has owner\n", sub->owner->name);
                        } else {
                                c = skinny_new(l, AST_STATE_DOWN);
                                if(c) {
@@ -3237,7 +3241,8 @@ static int handle_offhook_message(struct skinny_req *req, struct skinnysession *
                ast_setstate(sub->owner, AST_STATE_UP);
        } else {
                if (sub && sub->owner) {
-                       ast_log(LOG_DEBUG, "Current sub [%s] already has owner\n", sub->owner->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Current sub [%s] already has owner\n", sub->owner->name);
                } else {
                        c = skinny_new(l, AST_STATE_DOWN);
                        if(c) {
index e0d2308..da1d482 100644 (file)
@@ -975,7 +975,8 @@ static void swap_subs(struct zt_pvt *p, int a, int b)
        int tinthreeway;
        struct ast_channel *towner;
 
-       ast_log(LOG_DEBUG, "Swapping %d and %d\n", a, b);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Swapping %d and %d\n", a, b);
 
        tchan = p->subs[a].chan;
        towner = p->subs[a].owner;
@@ -1095,7 +1096,8 @@ static int unalloc_sub(struct zt_pvt *p, int x)
                ast_log(LOG_WARNING, "Trying to unalloc the real channel %d?!?\n", p->channel);
                return -1;
        }
-       ast_log(LOG_DEBUG, "Released sub %d of channel %d\n", x, p->channel);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Released sub %d of channel %d\n", x, p->channel);
        if (p->subs[x].zfd > -1) {
                zt_close(p->subs[x].zfd);
        }
@@ -1150,7 +1152,8 @@ static int zt_digit_begin(struct ast_channel *chan, char digit)
                                ast_log(LOG_WARNING, "Unable to grab PRI on span %d\n", pvt->span);
                } else if (strlen(pvt->dialdest) < sizeof(pvt->dialdest) - 1) {
                        int res;
-                       ast_log(LOG_DEBUG, "Queueing digit '%c' since setup_ack not yet received\n", digit);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Queueing digit '%c' since setup_ack not yet received\n", digit);
                        res = strlen(pvt->dialdest);
                        pvt->dialdest[res++] = digit;
                        pvt->dialdest[res] = '\0';
@@ -1174,7 +1177,8 @@ static int zt_digit_begin(struct ast_channel *chan, char digit)
                else
                        pvt->dialing = 1;
        } else {
-               ast_log(LOG_DEBUG, "Started VLDTMF digit '%c'\n", digit);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Started VLDTMF digit '%c'\n", digit);
                pvt->dialing = 1;
                pvt->begindigit = digit;
        }
@@ -1209,7 +1213,8 @@ static int zt_digit_end(struct ast_channel *chan, char digit)
 
        if (pvt->begindigit) {
                x = -1;
-               ast_log(LOG_DEBUG, "Ending VLDTMF digit '%c'\n", digit);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Ending VLDTMF digit '%c'\n", digit);
                res = ioctl(pvt->subs[SUB_REAL].zfd, ZT_SENDTONE, &x);
                pvt->dialing = 0;
                pvt->begindigit = 0;
@@ -1383,7 +1388,8 @@ static int conf_add(struct zt_pvt *p, struct zt_subchannel *c, int index, int sl
                p->confno = zi.confno;
        }
        memcpy(&c->curconf, &zi, sizeof(c->curconf));
-       ast_log(LOG_DEBUG, "Added %d to conference %d/%d\n", c->zfd, c->curconf.confmode, c->curconf.confno);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Added %d to conference %d/%d\n", c->zfd, c->curconf.confmode, c->curconf.confno);
        return 0;
 }
 
@@ -1415,7 +1421,8 @@ static int conf_del(struct zt_pvt *p, struct zt_subchannel *c, int index)
                ast_log(LOG_WARNING, "Failed to drop %d from conference %d/%d\n", c->zfd, c->curconf.confmode, c->curconf.confno);
                return -1;
        }
-       ast_log(LOG_DEBUG, "Removed %d from conference %d/%d\n", c->zfd, c->curconf.confmode, c->curconf.confno);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Removed %d from conference %d/%d\n", c->zfd, c->curconf.confmode, c->curconf.confno);
        memcpy(&c->curconf, &zi, sizeof(c->curconf));
        return 0;
 }
@@ -1529,7 +1536,8 @@ static int update_conf(struct zt_pvt *p)
                   Kill it. */
                p->confno = -1;
        }
-       ast_log(LOG_DEBUG, "Updated conferencing on %d, with %d conference users\n", p->channel, needconf);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Updated conferencing on %d, with %d conference users\n", p->channel, needconf);
        return 0;
 }
 
@@ -1540,11 +1548,13 @@ static void zt_enable_ec(struct zt_pvt *p)
        if (!p)
                return;
        if (p->echocanon) {
-               ast_log(LOG_DEBUG, "Echo cancellation already on\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Echo cancellation already on\n");
                return;
        }
        if (p->digital) {
-               ast_log(LOG_DEBUG, "Echo cancellation isn't required on digital connection\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Echo cancellation isn't required on digital connection\n");
                return;
        }
        if (p->echocancel) {
@@ -1560,10 +1570,13 @@ static void zt_enable_ec(struct zt_pvt *p)
                        ast_log(LOG_WARNING, "Unable to enable echo cancellation on channel %d\n", p->channel);
                else {
                        p->echocanon = 1;
-                       ast_log(LOG_DEBUG, "Enabled echo cancellation on channel %d\n", p->channel);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Enabled echo cancellation on channel %d\n", p->channel);
                }
-       } else
-               ast_log(LOG_DEBUG, "No echo cancellation requested\n");
+       } else {
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "No echo cancellation requested\n");
+       }
 }
 
 static void zt_train_ec(struct zt_pvt *p)
@@ -1576,10 +1589,13 @@ static void zt_train_ec(struct zt_pvt *p)
                if (res)
                        ast_log(LOG_WARNING, "Unable to request echo training on channel %d\n", p->channel);
                else {
-                       ast_log(LOG_DEBUG, "Engaged echo training on channel %d\n", p->channel);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Engaged echo training on channel %d\n", p->channel);
                }
-       } else
-               ast_log(LOG_DEBUG, "No echo training requested\n");
+       } else {
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "No echo training requested\n");
+       }
 }
 
 static void zt_disable_ec(struct zt_pvt *p)
@@ -1591,8 +1607,10 @@ static void zt_disable_ec(struct zt_pvt *p)
                res = ioctl(p->subs[SUB_REAL].zfd, ZT_ECHOCANCEL, &x);
                if (res)
                        ast_log(LOG_WARNING, "Unable to disable echo cancellation on channel %d\n", p->channel);
-               else
-                       ast_log(LOG_DEBUG, "disabled echo cancellation on channel %d\n", p->channel);
+               else {
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "disabled echo cancellation on channel %d\n", p->channel);
+               }
        }
        p->echocanon = 0;
 }
@@ -1674,7 +1692,8 @@ static int set_actual_txgain(int fd, int chan, float gain, int law)
        g.chan = chan;
        res = ioctl(fd, ZT_GETGAINS, &g);
        if (res) {
-               ast_log(LOG_DEBUG, "Failed to read gains: %s\n", strerror(errno));
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Failed to read gains: %s\n", strerror(errno));
                return res;
        }
 
@@ -1692,7 +1711,8 @@ static int set_actual_rxgain(int fd, int chan, float gain, int law)
        g.chan = chan;
        res = ioctl(fd, ZT_GETGAINS, &g);
        if (res) {
-               ast_log(LOG_DEBUG, "Failed to read gains: %s\n", strerror(errno));
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Failed to read gains: %s\n", strerror(errno));
                return res;
        }
 
@@ -1977,7 +1997,8 @@ static int zt_call(struct ast_channel *ast, char *rdest, int timeout)
                        if (c) {
                                p->dop.op = ZT_DIAL_OP_REPLACE;
                                snprintf(p->dop.dialstr, sizeof(p->dop.dialstr), "Tw%s", c);
-                               ast_log(LOG_DEBUG, "FXO: setup deferred dialstring: %s\n", c);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "FXO: setup deferred dialstring: %s\n", c);
                        } else {
                                p->dop.dialstr[0] = '\0';
                        }
@@ -2069,7 +2090,8 @@ static int zt_call(struct ast_channel *ast, char *rdest, int timeout)
 #ifdef HAVE_PRI
                }
 #endif
-               ast_log(LOG_DEBUG, "Dialing '%s'\n", c);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Dialing '%s'\n", c);
                p->dop.op = ZT_DIAL_OP_REPLACE;
 
                c += p->stripmsd;
@@ -2144,8 +2166,10 @@ static int zt_call(struct ast_channel *ast, char *rdest, int timeout)
                                ast_mutex_unlock(&p->lock);
                                return -1;
                        }
-               } else
-                       ast_log(LOG_DEBUG, "Deferring dialing...\n");
+               } else {
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Deferring dialing...\n");
+               }
                p->dialing = 1;
                if (ast_strlen_zero(c))
                        p->dialednone = 1;
@@ -2161,7 +2185,8 @@ static int zt_call(struct ast_channel *ast, char *rdest, int timeout)
                p->dialdest[0] = '\0';
                break;
        default:
-               ast_log(LOG_DEBUG, "not yet implemented\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "not yet implemented\n");
                ast_mutex_unlock(&p->lock);
                return -1;
        }
@@ -2258,10 +2283,13 @@ static int zt_call(struct ast_channel *ast, char *rdest, int timeout)
                }
                if (p->bearer || (mysig == SIG_FXSKS)) {
                        if (p->bearer) {
-                               ast_log(LOG_DEBUG, "Oooh, I have a bearer on %d (%d:%d)\n", PVT_TO_CHANNEL(p->bearer), p->bearer->logicalspan, p->bearer->channel);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Oooh, I have a bearer on %d (%d:%d)\n", PVT_TO_CHANNEL(p->bearer), p->bearer->logicalspan, p->bearer->channel);
                                p->bearer->call = p->call;
-                       } else
-                               ast_log(LOG_DEBUG, "I'm being setup with no bearer right now...\n");
+                       } else {
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "I'm being setup with no bearer right now...\n");
+                       }
                        pri_set_crv(p->pri->pri, p->call, p->channel, 0);
                }
                p->digital = IS_DIGITAL(ast->transfercapability);
@@ -2442,21 +2470,24 @@ static int zap_send_keypad_facility_exec(struct ast_channel *chan, void *data)
        char *digits = (char *) data;
 
        if (ast_strlen_zero(digits)) {
-               ast_log(LOG_DEBUG, "No digit string sent to application!\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "No digit string sent to application!\n");
                return -1;
        }
 
        p = (struct zt_pvt *)chan->tech_pvt;
 
        if (!p) {
-               ast_log(LOG_DEBUG, "Unable to find technology private\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Unable to find technology private\n");
                return -1;
        }
 
        ast_mutex_lock(&p->lock);
 
        if (!p->pri || !p->call) {
-               ast_log(LOG_DEBUG, "Unable to find pri or call on channel!\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Unable to find pri or call on channel!\n");
                ast_mutex_unlock(&p->lock);
                return -1;
        }
@@ -2465,7 +2496,8 @@ static int zap_send_keypad_facility_exec(struct ast_channel *chan, void *data)
                pri_keypad_facility(p->pri->pri, p->call, digits);
                pri_rel(p->pri);
        } else {
-               ast_log(LOG_DEBUG, "Unable to grab pri to send keypad facility!\n");
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Unable to grab pri to send keypad facility!\n");
                ast_mutex_unlock(&p->lock);
                return -1;
        }
@@ -2598,8 +2630,9 @@ static int zt_hangup(struct ast_channel *ast)
        if (p->exten)
                p->exten[0] = '\0';
 
-       ast_log(LOG_DEBUG, "Hangup: channel: %d index = %d, normal = %d, callwait = %d, thirdcall = %d\n",
-               p->channel, index, p->subs[SUB_REAL].zfd, p->subs[SUB_CALLWAIT].zfd, p->subs[SUB_THREEWAY].zfd);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Hangup: channel: %d index = %d, normal = %d, callwait = %d, thirdcall = %d\n",
+                       p->channel, index, p->subs[SUB_REAL].zfd, p->subs[SUB_CALLWAIT].zfd, p->subs[SUB_THREEWAY].zfd);
        p->ignoredtmf = 0;
        
        if (index > -1) {
@@ -2616,27 +2649,32 @@ static int zt_hangup(struct ast_channel *ast)
                zt_setlinear(p->subs[index].zfd, 0);
                if (index == SUB_REAL) {
                        if ((p->subs[SUB_CALLWAIT].zfd > -1) && (p->subs[SUB_THREEWAY].zfd > -1)) {
-                               ast_log(LOG_DEBUG, "Normal call hung up with both three way call and a call waiting call in place?\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Normal call hung up with both three way call and a call waiting call in place?\n");
                                if (p->subs[SUB_CALLWAIT].inthreeway) {
                                        /* We had flipped over to answer a callwait and now it's gone */
-                                       ast_log(LOG_DEBUG, "We were flipped over to the callwait, moving back and unowning.\n");
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "We were flipped over to the callwait, moving back and unowning.\n");
                                        /* Move to the call-wait, but un-own us until they flip back. */
                                        swap_subs(p, SUB_CALLWAIT, SUB_REAL);
                                        unalloc_sub(p, SUB_CALLWAIT);
                                        p->owner = NULL;
                                } else {
                                        /* The three way hung up, but we still have a call wait */
-                                       ast_log(LOG_DEBUG, "We were in the threeway and have a callwait still.  Ditching the threeway.\n");
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "We were in the threeway and have a callwait still.  Ditching the threeway.\n");
                                        swap_subs(p, SUB_THREEWAY, SUB_REAL);
                                        unalloc_sub(p, SUB_THREEWAY);
                                        if (p->subs[SUB_REAL].inthreeway) {
                                                /* This was part of a three way call.  Immediately make way for
                                                   another call */
-                                               ast_log(LOG_DEBUG, "Call was complete, setting owner to former third call\n");
+                                               if (option_debug)
+                                                       ast_log(LOG_DEBUG, "Call was complete, setting owner to former third call\n");
                                                p->owner = p->subs[SUB_REAL].owner;
                                        } else {
                                                /* This call hasn't been completed yet...  Set owner to NULL */
-                                               ast_log(LOG_DEBUG, "Call was incomplete, setting owner to NULL\n");
+                                               if (option_debug)
+                                                       ast_log(LOG_DEBUG, "Call was incomplete, setting owner to NULL\n");
                                                p->owner = NULL;
                                        }
                                        p->subs[SUB_REAL].inthreeway = 0;
@@ -2656,11 +2694,13 @@ static int zt_hangup(struct ast_channel *ast)
                                if (p->subs[SUB_REAL].inthreeway) {
                                        /* This was part of a three way call.  Immediately make way for
                                           another call */
-                                       ast_log(LOG_DEBUG, "Call was complete, setting owner to former third call\n");
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Call was complete, setting owner to former third call\n");
                                        p->owner = p->subs[SUB_REAL].owner;
                                } else {
                                        /* This call hasn't been completed yet...  Set owner to NULL */
-                                       ast_log(LOG_DEBUG, "Call was incomplete, setting owner to NULL\n");
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Call was incomplete, setting owner to NULL\n");
                                        p->owner = NULL;
                                }
                                p->subs[SUB_REAL].inthreeway = 0;
@@ -2756,7 +2796,8 @@ static int zt_hangup(struct ast_channel *ast)
                        if (p->call && (!p->bearer || (p->bearer->call == p->call))) {
                                if (!pri_grab(p, p->pri)) {
                                        if (p->alreadyhungup) {
-                                               ast_log(LOG_DEBUG, "Already hungup...  Calling hangup once, and clearing call\n");
+                                               if (option_debug)
+                                                       ast_log(LOG_DEBUG, "Already hungup...  Calling hangup once, and clearing call\n");
 
 #ifdef SUPPORT_USERUSER
                                                pri_call_set_useruser(p->call, useruser);
@@ -2769,7 +2810,8 @@ static int zt_hangup(struct ast_channel *ast)
                                        } else {
                                                const char *cause = pbx_builtin_getvar_helper(ast,"PRI_CAUSE");
                                                int icause = ast->hangupcause ? ast->hangupcause : -1;
-                                               ast_log(LOG_DEBUG, "Not yet hungup...  Calling hangup once with icause, and clearing call\n");
+                                               if (option_debug)
+                                                       ast_log(LOG_DEBUG, "Not yet hungup...  Calling hangup once with icause, and clearing call\n");
 
 #ifdef SUPPORT_USERUSER
                                                pri_call_set_useruser(p->call, useruser);
@@ -2793,7 +2835,8 @@ static int zt_hangup(struct ast_channel *ast)
                                }
                        } else {
                                if (p->bearer)
-                                       ast_log(LOG_DEBUG, "Bearer call is %p, while ours is still %p\n", p->bearer->call, p->call);
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Bearer call is %p, while ours is still %p\n", p->bearer->call, p->call);
                                p->call = NULL;
                                res = 0;
                        }
@@ -2811,7 +2854,8 @@ static int zt_hangup(struct ast_channel *ast)
                        res = ioctl(p->subs[SUB_REAL].zfd, ZT_GET_PARAMS, &par);
                        if (!res) {
 #if 0
-                               ast_log(LOG_DEBUG, "Hanging up channel %d, offhook = %d\n", p->channel, par.rxisoffhook);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Hanging up channel %d, offhook = %d\n", p->channel, par.rxisoffhook);
 #endif
                                /* If they're off hook, try playing congestion */
                                if ((par.rxisoffhook) && (!(p->radio || (p->oprmode < 0))))
@@ -2856,7 +2900,8 @@ static int zt_hangup(struct ast_channel *ast)
                }
 #ifdef HAVE_PRI
                if (p->bearer) {
-                       ast_log(LOG_DEBUG, "Freeing up bearer channel %d\n", p->bearer->channel);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Freeing up bearer channel %d\n", p->bearer->channel);
                        /* Free up the bearer channel as well, and
                           don't use its file descriptor anymore */
                        update_conf(p->bearer);
@@ -2940,7 +2985,8 @@ static int zt_answer(struct ast_channel *ast)
        case SIG_FXOGS:
        case SIG_FXOKS:
                /* Pick up the line */
-               ast_log(LOG_DEBUG, "Took %s off hook\n", ast->name);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Took %s off hook\n", ast->name);
                if (p->hanguponpolarityswitch) {
                        gettimeofday(&p->polaritydelaytv, NULL);
                }
@@ -2949,7 +2995,8 @@ static int zt_answer(struct ast_channel *ast)
                p->dialing = 0;
                if ((index == SUB_REAL) && p->subs[SUB_THREEWAY].inthreeway) {
                        if (oldstate == AST_STATE_RINGING) {
-                               ast_log(LOG_DEBUG, "Finally swapping real and threeway\n");
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Finally swapping real and threeway\n");
                                tone_zone_play_tone(p->subs[SUB_THREEWAY].zfd, -1);
                                swap_subs(p, SUB_THREEWAY, SUB_REAL);
                                p->owner = p->subs[SUB_REAL].owner;
@@ -3020,7 +3067,8 @@ static int zt_setoption(struct ast_channel *chan, int option, void *data, int da
                        ast_log(LOG_WARNING, "No index in TXGAIN?\n");
                        return -1;
                }
-               ast_log(LOG_DEBUG, "Setting actual tx gain on %s to %f\n", chan->name, p->txgain + (float) *scp);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Setting actual tx gain on %s to %f\n", chan->name, p->txgain + (float) *scp);
                return set_actual_txgain(p->subs[index].zfd, 0, p->txgain + (float) *scp, p->law);
        case AST_OPTION_RXGAIN:
                scp = (signed char *) data;
@@ -3029,7 +3077,8 @@ static int zt_setoption(struct ast_channel *chan, int option, void *data, int da
                        ast_log(LOG_WARNING, "No index in RXGAIN?\n");
                        return -1;
                }
-               ast_log(LOG_DEBUG, "Setting actual rx gain on %s to %f\n", chan->name, p->rxgain + (float) *scp);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Setting actual rx gain on %s to %f\n", chan->name, p->rxgain + (float) *scp);
                return set_actual_rxgain(p->subs[index].zfd, 0, p->rxgain + (float) *scp, p->law);
        case AST_OPTION_TONE_VERIFY:
                if (!p->dsp)
@@ -3037,15 +3086,18 @@ static int zt_setoption(struct ast_channel *chan, int option, void *data, int da
                cp = (char *) data;
                switch (*cp) {
                case 1:
-                       ast_log(LOG_DEBUG, "Set option TONE VERIFY, mode: MUTECONF(1) on %s\n",chan->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Set option TONE VERIFY, mode: MUTECONF(1) on %s\n",chan->name);
                        ast_dsp_digitmode(p->dsp,DSP_DIGITMODE_MUTECONF | p->dtmfrelax);  /* set mute mode if desired */
                        break;
                case 2:
-                       ast_log(LOG_DEBUG, "Set option TONE VERIFY, mode: MUTECONF/MAX(2) on %s\n",chan->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Set option TONE VERIFY, mode: MUTECONF/MAX(2) on %s\n",chan->name);
                        ast_dsp_digitmode(p->dsp,DSP_DIGITMODE_MUTECONF | DSP_DIGITMODE_MUTEMAX | p->dtmfrelax);  /* set mute mode if desired */
                        break;
                default:
-                       ast_log(LOG_DEBUG, "Set option TONE VERIFY, mode: OFF(0) on %s\n",chan->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Set option TONE VERIFY, mode: OFF(0) on %s\n",chan->name);
                        ast_dsp_digitmode(p->dsp,DSP_DIGITMODE_DTMF | p->dtmfrelax);  /* set mute mode if desired */
                        break;
                }
@@ -3055,14 +3107,16 @@ static int zt_setoption(struct ast_channel *chan, int option, void *data, int da
                cp = (char *) data;
                p->mate = 0;
                if (!*cp) { /* turn it off */
-                       ast_log(LOG_DEBUG, "Set option TDD MODE, value: OFF(0) on %s\n",chan->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Set option TDD MODE, value: OFF(0) on %s\n",chan->name);
                        if (p->tdd)
                                tdd_free(p->tdd);
                        p->tdd = 0;
                        break;
                }
-               ast_log(LOG_DEBUG, "Set option TDD MODE, value: %s(%d) on %s\n",
-                       (*cp == 2) ? "MATE" : "ON", (int) *cp, chan->name);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Set option TDD MODE, value: %s(%d) on %s\n",
+                               (*cp == 2) ? "MATE" : "ON", (int) *cp, chan->name);
                zt_disable_ec(p);
                /* otherwise, turn it on */
                if (!p->didtdd) { /* if havent done it yet */
@@ -3091,20 +3145,23 @@ static int zt_setoption(struct ast_channel *chan, int option, void *data, int da
                                fds[0].revents = 0;
                                res = poll(fds, 1, -1);
                                if (!res) {
-                                       ast_log(LOG_DEBUG, "poll (for write) ret. 0 on channel %d\n", p->channel);
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "poll (for write) ret. 0 on channel %d\n", p->channel);
                                        continue;
                                }
                                /* if got exception */
                                if (fds[0].revents & POLLPRI)
                                        return -1;
                                if (!(fds[0].revents & POLLOUT)) {
-                                       ast_log(LOG_DEBUG, "write fd not ready on channel %d\n", p->channel);
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "write fd not ready on channel %d\n", p->channel);
                                        continue;
                                }
                                res = write(fd, buf, size);
                                if (res != size) {
                                        if (res == -1) return -1;
-                                       ast_log(LOG_DEBUG, "Write returned %d (%s) on channel %d\n", res, strerror(errno), p->channel);
+                                       if (option_debug)
+                                               ast_log(LOG_DEBUG, "Write returned %d (%s) on channel %d\n", res, strerror(errno), p->channel);
                                        break;
                                }
                                len -= size;
@@ -3127,18 +3184,21 @@ static int zt_setoption(struct ast_channel *chan, int option, void *data, int da
                if (!p->dsp)
                        break;
                cp = (char *) data;
-               ast_log(LOG_DEBUG, "Set option RELAX DTMF, value: %s(%d) on %s\n",
-                       *cp ? "ON" : "OFF", (int) *cp, chan->name);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Set option RELAX DTMF, value: %s(%d) on %s\n",
+                               *cp ? "ON" : "OFF", (int) *cp, chan->name);
                ast_dsp_digitmode(p->dsp, ((*cp) ? DSP_DIGITMODE_RELAXDTMF : DSP_DIGITMODE_DTMF) | p->dtmfrelax);
                break;
        case AST_OPTION_AUDIO_MODE:  /* Set AUDIO mode (or not) */
                cp = (char *) data;
                if (!*cp) {             
-                       ast_log(LOG_DEBUG, "Set option AUDIO MODE, value: OFF(0) on %s\n", chan->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Set option AUDIO MODE, value: OFF(0) on %s\n", chan->name);
                        x = 0;
                        zt_disable_ec(p);
                } else {                
-                       ast_log(LOG_DEBUG, "Set option AUDIO MODE, value: ON(1) on %s\n", chan->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Set option AUDIO MODE, value: ON(1) on %s\n", chan->name);
                        x = 1;
                }
                if (ioctl(p->subs[SUB_REAL].zfd, ZT_AUDIOMODE, &x) == -1)
@@ -3157,16 +3217,19 @@ static int zt_setoption(struct ast_channel *chan, int option, void *data, int da
                        pp->oprmode = oprmode->mode;
                        p->oprmode = -oprmode->mode;
                }
-               ast_log(LOG_DEBUG, "Set Operator Services mode, value: %d on %s/%s\n",
-                       oprmode->mode, chan->name,oprmode->peer->name);;
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Set Operator Services mode, value: %d on %s/%s\n",
+                               oprmode->mode, chan->name,oprmode->peer->name);
                break;
        case AST_OPTION_ECHOCAN:
                cp = (char *) data;
                if (*cp) {
-                       ast_log(LOG_DEBUG, "Enabling echo cancelation on %s\n", chan->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Enabling echo cancelation on %s\n", chan->name);
                        zt_enable_ec(p);
                } else {
-                       ast_log(LOG_DEBUG, "Disabling echo cancelation on %s\n", chan->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Disabling echo cancelation on %s\n", chan->name);
                        zt_disable_ec(p);
                }
                break;
@@ -3217,7 +3280,8 @@ static void zt_unlink(struct zt_pvt *slave, struct zt_pvt *master, int needlock)
                if (master->slaves[x]) {
                        if (!slave || (master->slaves[x] == slave)) {
                                /* Take slave out of the conference */
-                               ast_log(LOG_DEBUG, "Unlinking slave %d from %d\n", master->slaves[x]->channel, master->channel);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "Unlinking slave %d from %d\n", master->slaves[x]->channel, master->channel);
                                conf_del(master, &master->slaves[x]->subs[SUB_REAL], SUB_REAL);
                                conf_del(master->slaves[x], &master->subs[SUB_REAL], SUB_REAL);
                                master->slaves[x]->master = NULL;
@@ -3273,7 +3337,8 @@ static void zt_link(struct zt_pvt *slave, struct zt_pvt *master) {
                ast_log(LOG_WARNING, "Replacing master %d with new master, %d\n", slave->master->channel, master->channel);
        slave->master = master;
        
-       ast_log(LOG_DEBUG, "Making %d slave to master %d at %d\n", slave->channel, master->channel, x);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Making %d slave to master %d at %d\n", slave->channel, master->channel, x);
 }
 
 static void disable_dtmf_detect(struct zt_pvt *p)
@@ -3436,8 +3501,9 @@ static enum ast_bridge_result zt_bridge(struct ast_channel *c0, struct ast_chann
                        nothingok = 0;
                }
        }
-       ast_log(LOG_DEBUG, "master: %d, slave: %d, nothingok: %d\n",
-               master ? master->channel : 0, slave ? slave->channel : 0, nothingok);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "master: %d, slave: %d, nothingok: %d\n",
+                       master ? master->channel : 0, slave ? slave->channel : 0, nothingok);
        if (master && slave) {
                /* Stop any tones, or play ringtone as appropriate.  If they're bridged
                   in an active threeway call with a channel that is ringing, we should
@@ -3447,11 +3513,13 @@ static enum ast_bridge_result zt_bridge(struct ast_channel *c0, struct ast_chann
                    p1->subs[SUB_REAL].owner && 
                    p1->subs[SUB_REAL].inthreeway && 
                    (p1->subs[SUB_REAL].owner->_state == AST_STATE_RINGING)) {
-                       ast_log(LOG_DEBUG, "Playing ringback on %s since %s is in a ringing three-way\n", c0->name, c1->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Playing ringback on %s since %s is in a ringing three-way\n", c0->name, c1->name);
                        tone_zone_play_tone(p0->subs[oi0].zfd, ZT_TONE_RINGTONE);
                        os1 = p1->subs[SUB_REAL].owner->_state;
                } else {
-                       ast_log(LOG_DEBUG, "Stopping tones on %d/%d talking to %d/%d\n", p0->channel, oi0, p1->channel, oi1);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Stopping tones on %d/%d talking to %d/%d\n", p0->channel, oi0, p1->channel, oi1);
                        tone_zone_play_tone(p0->subs[oi0].zfd, -1);
                }
                if ((oi0 == SUB_THREEWAY) && 
@@ -3459,11 +3527,13 @@ static enum ast_bridge_result zt_bridge(struct ast_channel *c0, struct ast_chann
                    p0->subs[SUB_REAL].owner && 
                    p0->subs[SUB_REAL].inthreeway && 
                    (p0->subs[SUB_REAL].owner->_state == AST_STATE_RINGING)) {
-                       ast_log(LOG_DEBUG, "Playing ringback on %s since %s is in a ringing three-way\n", c1->name, c0->name);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Playing ringback on %s since %s is in a ringing three-way\n", c1->name, c0->name);
                        tone_zone_play_tone(p1->subs[oi1].zfd, ZT_TONE_RINGTONE);
                        os0 = p0->subs[SUB_REAL].owner->_state;
                } else {
-                       ast_log(LOG_DEBUG, "Stopping tones on %d/%d talking to %d/%d\n", p1->channel, oi1, p0->channel, oi0);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Stopping tones on %d/%d talking to %d/%d\n", p1->channel, oi1, p0->channel, oi0);
                        tone_zone_play_tone(p1->subs[oi0].zfd, -1);
                }
                if ((oi0 == SUB_REAL) && (oi1 == SUB_REAL)) {
@@ -3536,8 +3606,9 @@ static enum ast_bridge_result zt_bridge(struct ast_channel *c0, struct ast_chann
                    (t1 != p1->subs[SUB_REAL].inthreeway) ||
                    (oi0 != i0) ||
                    (oi1 != i1)) {
-                       ast_log(LOG_DEBUG, "Something changed out on %d/%d to %d/%d, returning -3 to restart\n",
-                               op0->channel, oi0, op1->channel, oi1);
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Something changed out on %d/%d to %d/%d, returning -3 to restart\n",
+                                       op0->channel, oi0, op1->channel, oi1);
                        res = AST_BRIDGE_RETRY;
                        goto return_from_bridge;
                }
@@ -3555,7 +3626,8 @@ static enum ast_bridge_result zt_bridge(struct ast_channel *c0, struct ast_chann
 
                who = ast_waitfor_n(priority ? c0_priority : c1_priority, 2, &timeoutms);
                if (!who) {
-                       ast_log(LOG_DEBUG, "Ooh, empty read...\n");
+                       if (option_debug)
+                               ast_log(LOG_DEBUG, "Ooh, empty read...\n");
                        continue;
                }
                f = ast_read(who);
@@ -3606,7 +3678,8 @@ static int zt_fixup(struct ast_channel *oldchan, struct ast_channel *newchan)
        struct zt_pvt *p = newchan->tech_pvt;
        int x;
        ast_mutex_lock(&p->lock);
-       ast_log(LOG_DEBUG, "New owner for channel %d is %s\n", p->channel, newchan->name);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "New owner for channel %d is %s\n", p->channel, newchan->name);
        if (p->owner == oldchan) {
                p->owner = newchan;
        }
@@ -3718,8 +3791,9 @@ static int attempt_transfer(struct zt_pvt *p)
                /* Tell the caller not to hangup */
                return 1;
        } else {
-               ast_log(LOG_DEBUG, "Neither %s nor %s are in a bridge, nothing to transfer\n",
-                                       p->subs[SUB_REAL].owner->name, p->subs[SUB_THREEWAY].owner->name);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Neither %s nor %s are in a bridge, nothing to transfer\n",
+                                               p->subs[SUB_REAL].owner->name, p->subs[SUB_THREEWAY].owner->name);
                p->subs[SUB_THREEWAY].owner->_softhangup |= AST_SOFTHANGUP_DEV;
                return -1;
        }
@@ -3795,11 +3869,13 @@ static struct ast_frame *zt_handle_event(struct ast_channel *ast)
        } else
                res = zt_get_event(p->subs[index].zfd);
 
-       ast_log(LOG_DEBUG, "Got event %s(%d) on channel %d (index %d)\n", event2str(res), res, p->channel, index);
+       if (option_debug)
+               ast_log(LOG_DEBUG, "Got event %s(%d) on channel %d (index %d)\n", event2str(res), res, p->channel, index);
 
        if (res & (ZT_EVENT_PULSEDIGIT | ZT_EVENT_DTMFUP)) {
                p->pulsedial =  (res & ZT_EVENT_PULSEDIGIT) ? 1 : 0;
-               ast_log(LOG_DEBUG, "Detected %sdigit '%c'\n", p->pulsedial ? "pulse ": "", res & 0xff);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "Detected %sdigit '%c'\n", p->pulsedial ? "pulse ": "", res & 0xff);
 #ifdef HAVE_PRI
                if (!p->proceeding && p->sig == SIG_PRI && p->pri && p->pri->overlapdial) {
                        /* absorb event */
@@ -3816,7 +3892,8 @@ static struct ast_frame *zt_handle_event(struct ast_channel *ast)
        }
 
        if (res & ZT_EVENT_DTMFDOWN) {
-               ast_log(LOG_DEBUG, "DTMF Down '%c'\n", res & 0xff);
+               if (option_debug)
+                       ast_log(LOG_DEBUG, "DTMF Down '%c'\n", res & 0xff);
                /* Mute conference */
                zt_confmute(p, 1);
                p->subs[index].f.frametype = AST_FRAME_DTMF_BEGIN;
@@ -3843,7 +3920,8 @@ static struct ast_frame *zt_handle_event(struct ast_channel *ast)
                        if (p->inalarm) break;
                        if ((p->radio || (p->oprmode < 0))) break;
                        if (ioctl(p->subs[index].zfd,ZT_DIALING,&x) == -1) {
-                               ast_log(LOG_DEBUG, "ZT_DIALING ioctl failed on %s\n",ast->name);
+                               if (option_debug)
+                                       ast_log(LOG_DEBUG, "ZT_DIALING ioctl failed on %s\n",ast->name);
                                return NULL;
                        }
                        if (!x) { /* if not still dialing in driver */
@@ -3870,7 +3948,8 @@ static struct ast_frame *zt_handle_event(struct ast_channel *ast)
                                        }
                                        if (ast->_state == AST_STATE_DIALING) {
                                                if ((p->callprogress & 1) && CANPROGRESSDETECT(p) && p->dsp && p->outgoing) {
-                                                       ast_log(LOG_DEBUG, "Done dialing, but waiting for progress detection before doing more...\n");
+                                                       if (option_debug)
+                                                               ast_log(LOG_DEBUG, "Done dialing, but waiting for progress detection before doing more...\n");
                                                } else if (p->confirmanswer || (!p->dialednone && ((mysig == SIG_EM) || (mysig == SIG_EM_E1) ||  (mysig == SIG_EMWINK) || (mysig == SIG_FEATD) || (mysig == SIG_FEATDMF_TA) || (mysig == SIG_FEATDMF) || (mysig == SIG_E911) || (mysig == SIG_FGC_CAMA) || (mysig == SIG_FGC_CAMAMF) || (mysig == SIG_FEATB) || (mysig == SIG_SF) || (mysig == SIG_SFWINK) || (mysig == SIG_SF_FEATD) || (mysig == SIG_SF_FEATDMF) || (mysig == SIG_SF_FEATB)))) {
                                                        ast_setstate(ast, AST_STATE_RINGING);
                                                } else if (!p->answeronpolarityswitch) {
@@ -3988,14 +4067,16 @@ static struct ast_frame *zt_handle_event(struct ast_channel *ast)
                                                        return NULL;
                                                }
                                                mssinceflash = ast_tvdiff_ms(ast_tvnow(), p->flashtime);
-                                               ast_log(LOG_DEBUG, "Last flash was %d ms ago\n", mssinceflash);
+                                               if (option_debug)
+                                                       ast_log(LOG_DEBUG, "Last flash was %d ms ago\n", mssinceflash);
                                                if (mssinceflash < MIN_MS_SINCE_FLASH) {
                                                        /* It hasn't been long enough since the last flashook.  This is probably a bounce on 
                                                           hanging up.  Hangup both channels now */
                                             &nb