Code cleanup
authorJames Golovich <james@gnuinter.net>
Fri, 7 May 2004 21:14:55 +0000 (21:14 +0000)
committerJames Golovich <james@gnuinter.net>
Fri, 7 May 2004 21:14:55 +0000 (21:14 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2919 65c4cc65-6c06-0410-ace0-fbb531ad65f3

app.c
apps/app_dial.c
include/asterisk/app.h

diff --git a/app.c b/app.c
index c12767b..f9cd46b 100755 (executable)
--- a/app.c
+++ b/app.c
@@ -260,47 +260,46 @@ int ast_app_messagecount(const char *mailbox, int *newmsgs, int *oldmsgs)
        return 0;
 }
 
-int ast_dtmf_stream(struct ast_channel *chan,struct ast_channel *peer,char *digits,int between) {
-  char *ptr=NULL;
-  int res=0;
-  struct ast_frame f;
-  if(!between)
-    between = 100;
-  
-  if(peer)
-    res = ast_autoservice_start(peer);
+int ast_dtmf_stream(struct ast_channel *chan,struct ast_channel *peer,char *digits,int between) 
+{
+       char *ptr=NULL;
+       int res=0;
+       struct ast_frame f;
+       if (!between)
+               between = 100;
 
-  if (!res) {
-    res = ast_waitfor(chan,100);
-    if(res > -1) {
-      for(ptr=digits;*ptr;*ptr++) {
-       if(*ptr == 'w') {
-         res = ast_safe_sleep(chan, 500);
-         if(res) 
-           break;
-         continue;
-       }
-       memset(&f, 0, sizeof(f));
-       f.frametype = AST_FRAME_DTMF;
-       f.subclass = *ptr;
-       f.src = "ast_dtmf_stream";
-       if (strchr("0123456789*#abcdABCD",*ptr)==NULL) {
-         ast_log(LOG_WARNING, "Illegal DTMF character '%c' in string. (0-9*#aAbBcCdD allowed)\n",*ptr);
-       } 
-       else {
-         res = ast_write(chan, &f);
-         if (res) 
-           break;
-         /* pause between digits */
-         res = ast_safe_sleep(chan,between);
-         if (res) 
-           break;
-       }
-      }
-    }
-    if(peer)
-      res = ast_autoservice_stop(peer);
-  }
+       if (peer)
+               res = ast_autoservice_start(peer);
 
-  return res;
+       if (!res) {
+               res = ast_waitfor(chan,100);
+               if (res > -1) {
+                       for (ptr=digits;*ptr;*ptr++) {
+                               if (*ptr == 'w') {
+                                       res = ast_safe_sleep(chan, 500);
+                                       if (res) 
+                                               break;
+                                       continue;
+                               }
+                               memset(&f, 0, sizeof(f));
+                               f.frametype = AST_FRAME_DTMF;
+                               f.subclass = *ptr;
+                               f.src = "ast_dtmf_stream";
+                               if (strchr("0123456789*#abcdABCD",*ptr)==NULL) {
+                                       ast_log(LOG_WARNING, "Illegal DTMF character '%c' in string. (0-9*#aAbBcCdD allowed)\n",*ptr);
+                               } else {
+                                       res = ast_write(chan, &f);
+                                       if (res) 
+                                               break;
+                                       /* pause between digits */
+                                       res = ast_safe_sleep(chan,between);
+                                       if (res) 
+                                               break;
+                               }
+                       }
+               }
+               if (peer)
+                       res = ast_autoservice_stop(peer);
+       }
+       return res;
 }
index 2f0c828..983e0e9 100755 (executable)
@@ -25,6 +25,7 @@
 #include <asterisk/musiconhold.h>
 #include <asterisk/callerid.h>
 #include <asterisk/utils.h>
+#include <asterisk/app.h>
 #include <stdlib.h>
 #include <errno.h>
 #include <unistd.h>
@@ -467,96 +468,92 @@ static int dial_exec(struct ast_channel *chan, void *data)
 
                /* DTMF SCRIPT*/
                if ((sdtmfptr = strstr(transfer, "D("))) {
-                 strncpy(sdtmfdata, sdtmfptr + 2, sizeof(sdtmfdata) - 1);
-                 /* Overwrite with X's what was the sdtmf info */
-                 while(*sdtmfptr && (*sdtmfptr != ')')) 
-                   *(sdtmfptr++) = 'X';
-                 if (*sdtmfptr)
-                   *sdtmfptr = 'X';
-                 /* Now find the end  */
-                 sdtmfptr = strchr(sdtmfdata, ')');
-                 if (sdtmfptr)
-                   *sdtmfptr = '\0';
-                 else {
-                   ast_log(LOG_WARNING, "D( Data lacking trailing ')'\n");
-                 }
+                       strncpy(sdtmfdata, sdtmfptr + 2, sizeof(sdtmfdata) - 1);
+                       /* Overwrite with X's what was the sdtmf info */
+                       while (*sdtmfptr && (*sdtmfptr != ')')) 
+                               *(sdtmfptr++) = 'X';
+                       if (*sdtmfptr)
+                               *sdtmfptr = 'X';
+                       /* Now find the end  */
+                       sdtmfptr = strchr(sdtmfdata, ')');
+                       if (sdtmfptr)
+                               *sdtmfptr = '\0';
+                       else 
+                               ast_log(LOG_WARNING, "D( Data lacking trailing ')'\n");
                }
                
                /* XXX LIMIT SUPPORT */
                if ((limitptr = strstr(transfer, "L("))) {
-                 strncpy(limitdata, limitptr + 2, sizeof(limitdata) - 1);
-                 /* Overwrite with X's what was the limit info */
-                 while(*limitptr && (*limitptr != ')')) 
-                   *(limitptr++) = 'X';
-                 if (*limitptr)
-                   *limitptr = 'X';
-                 /* Now find the end */
-                 limitptr = strchr(limitdata, ')');
-                 if (limitptr)
-                   *limitptr = '\0';
-                 else {
-                   ast_log(LOG_WARNING, "Limit Data lacking trailing ')'\n");
-                 }
-
-                 var = pbx_builtin_getvar_helper(chan,"LIMIT_PLAYAUDIO_CALLER");
-                 play_to_caller = var ? ast_true(var) : 1;
-                 
-                 var = pbx_builtin_getvar_helper(chan,"LIMIT_PLAYAUDIO_CALLEE");
-                 play_to_callee = var ? ast_true(var) : 0;
-                 
-                 if(! play_to_caller && ! play_to_callee)
-                   play_to_caller=1;
-                 
-                 var = pbx_builtin_getvar_helper(chan,"LIMIT_WARNING_FILE");
-                 warning_sound = var ? var : "timeleft";
-                 
-                 var = pbx_builtin_getvar_helper(chan,"LIMIT_TIMEOUT_FILE");
-                 end_sound = var ? var : NULL;
+                       strncpy(limitdata, limitptr + 2, sizeof(limitdata) - 1);
+                       /* Overwrite with X's what was the limit info */
+                       while(*limitptr && (*limitptr != ')')) 
+                               *(limitptr++) = 'X';
+                       if (*limitptr)
+                               *limitptr = 'X';
+                       /* Now find the end */
+                       limitptr = strchr(limitdata, ')');
+                       if (limitptr)
+                               *limitptr = '\0';
+                       else
+                               ast_log(LOG_WARNING, "Limit Data lacking trailing ')'\n");
+
+                       var = pbx_builtin_getvar_helper(chan,"LIMIT_PLAYAUDIO_CALLER");
+                       play_to_caller = var ? ast_true(var) : 1;
                  
-                 var = pbx_builtin_getvar_helper(chan,"LIMIT_CONNECT_FILE");
-                 start_sound = var ? var : NULL;
+                       var = pbx_builtin_getvar_helper(chan,"LIMIT_PLAYAUDIO_CALLEE");
+                       play_to_callee = var ? ast_true(var) : 0;
                  
-                 var=stack=limitdata;
-
-                 var = strsep(&stack, ":");
-                 if(var) {
-                   timelimit = atol(var);
-                   playargs++;
-                   var = strsep(&stack, ":");
-                   if(var) {
-                     play_warning = atol(var);
-                     playargs++;
-                     var = strsep(&stack, ":");
-                     if(var) {
-                       warning_freq = atol(var);
-                       playargs++;
-                     }
-                   }
-                 }
+                       if (!play_to_caller && !play_to_callee)
+                               play_to_caller=1;
                  
-                 if(! timelimit) {
-                   timelimit=play_to_caller=play_to_callee=play_warning=warning_freq=0;
-                   warning_sound=NULL;
-                 }
-                 /* undo effect of S(x) in case they are both used */
-                 calldurationlimit=0; 
-                 /* more efficient do it like S(x) does since no advanced opts*/
-                 if(! play_warning && ! start_sound && ! end_sound && timelimit) { 
-                   calldurationlimit=timelimit/1000;
-                   timelimit=play_to_caller=play_to_callee=play_warning=warning_freq=0;
-                 }
-                 else if (option_verbose > 2) {
-                   ast_verbose(VERBOSE_PREFIX_3"Limit Data:\n");
-                   ast_verbose(VERBOSE_PREFIX_3"timelimit=%ld\n",timelimit);
-                   ast_verbose(VERBOSE_PREFIX_3"play_warning=%ld\n",play_warning);
-                   ast_verbose(VERBOSE_PREFIX_3"play_to_caller=%s\n",play_to_caller ? "yes" : "no");
-                   ast_verbose(VERBOSE_PREFIX_3"play_to_callee=%s\n",play_to_callee ? "yes" : "no");
-                   ast_verbose(VERBOSE_PREFIX_3"warning_freq=%ld\n",warning_freq);
-                   ast_verbose(VERBOSE_PREFIX_3"start_sound=%s\n",start_sound ? start_sound : "UNDEF");
-                   ast_verbose(VERBOSE_PREFIX_3"warning_sound=%s\n",warning_sound ? warning_sound : "UNDEF");
-                   ast_verbose(VERBOSE_PREFIX_3"end_sound=%s\n",end_sound ? end_sound : "UNDEF");
-                 }
+                       var = pbx_builtin_getvar_helper(chan,"LIMIT_WARNING_FILE");
+                       warning_sound = var ? var : "timeleft";
+
+                       var = pbx_builtin_getvar_helper(chan,"LIMIT_TIMEOUT_FILE");
+                       end_sound = var ? var : NULL;
+
+                       var = pbx_builtin_getvar_helper(chan,"LIMIT_CONNECT_FILE");
+                       start_sound = var ? var : NULL;
+
+                       var=stack=limitdata;
+
+                       var = strsep(&stack, ":");
+                       if (var) {
+                               timelimit = atol(var);
+                               playargs++;
+                               var = strsep(&stack, ":");
+                               if (var) {
+                                       play_warning = atol(var);
+                                       playargs++;
+                                       var = strsep(&stack, ":");
+                                       if(var) {
+                                               warning_freq = atol(var);
+                                               playargs++;
+                                       }
+                               }
+                       }
                  
+                       if (!timelimit) {
+                               timelimit=play_to_caller=play_to_callee=play_warning=warning_freq=0;
+                               warning_sound=NULL;
+                       }
+                       /* undo effect of S(x) in case they are both used */
+                       calldurationlimit=0; 
+                       /* more efficient do it like S(x) does since no advanced opts*/
+                       if (!play_warning && !start_sound && !end_sound && timelimit) { 
+                               calldurationlimit=timelimit/1000;
+                               timelimit=play_to_caller=play_to_callee=play_warning=warning_freq=0;
+                       } else if (option_verbose > 2) {
+                               ast_verbose(VERBOSE_PREFIX_3"Limit Data:\n");
+                               ast_verbose(VERBOSE_PREFIX_3"timelimit=%ld\n",timelimit);
+                               ast_verbose(VERBOSE_PREFIX_3"play_warning=%ld\n",play_warning);
+                               ast_verbose(VERBOSE_PREFIX_3"play_to_caller=%s\n",play_to_caller ? "yes" : "no");
+                               ast_verbose(VERBOSE_PREFIX_3"play_to_callee=%s\n",play_to_callee ? "yes" : "no");
+                               ast_verbose(VERBOSE_PREFIX_3"warning_freq=%ld\n",warning_freq);
+                               ast_verbose(VERBOSE_PREFIX_3"start_sound=%s\n",start_sound ? start_sound : "UNDEF");
+                               ast_verbose(VERBOSE_PREFIX_3"warning_sound=%s\n",warning_sound ? warning_sound : "UNDEF");
+                               ast_verbose(VERBOSE_PREFIX_3"end_sound=%s\n",end_sound ? end_sound : "UNDEF");
+                       }
                }
                
                /* XXX ANNOUNCE SUPPORT */
@@ -845,40 +842,37 @@ static int dial_exec(struct ast_channel *chan, void *data)
                        
                        // Ok, done. stop autoservice
                        res = ast_autoservice_stop(chan);
-               }
-               else 
-                 res = 0;
-
-               if(!res) {
-                 if (calldurationlimit > 0) {
-                   time(&now);
-                   chan->whentohangup = now + calldurationlimit;
-                 }
+               } else
+                       res = 0;
 
-                 if(strlen(sdtmfdata)) 
-                   res = ast_dtmf_stream(peer,chan,sdtmfdata,0);
+               if (!res) {
+                       if (calldurationlimit > 0) {
+                               time(&now);
+                               chan->whentohangup = now + calldurationlimit;
+                       }
+                       if (!ast_strlen_zero(sdtmfdata)) 
+                               res = ast_dtmf_stream(peer,chan,sdtmfdata,0);
                }
                
-               if(!res) {
-                 memset(&config,0,sizeof(struct ast_bridge_config));
-                 config.play_to_caller=play_to_caller;
-                 config.play_to_callee=play_to_callee;
-                 config.allowredirect_in = allowredir_in;
-                 config.allowredirect_out = allowredir_out;
-                 config.allowdisconnect = allowdisconnect;
-                 config.timelimit = timelimit;
-                 config.play_warning = play_warning;
-                 config.warning_freq = warning_freq;
-                 config.warning_sound = warning_sound;
-                 config.end_sound = end_sound;
-                 config.start_sound = start_sound;
-                 res = ast_bridge_call(chan,peer,&config);
-               }
-               else 
-                 res = -1;
+               if (!res) {
+                       memset(&config,0,sizeof(struct ast_bridge_config));
+                       config.play_to_caller=play_to_caller;
+                       config.play_to_callee=play_to_callee;
+                       config.allowredirect_in = allowredir_in;
+                       config.allowredirect_out = allowredir_out;
+                       config.allowdisconnect = allowdisconnect;
+                       config.timelimit = timelimit;
+                       config.play_warning = play_warning;
+                       config.warning_freq = warning_freq;
+                       config.warning_sound = warning_sound;
+                       config.end_sound = end_sound;
+                       config.start_sound = start_sound;
+                       res = ast_bridge_call(chan,peer,&config);
+               } else 
+                       res = -1;
                
                if (res != AST_PBX_NO_HANGUP_PEER)
-                 ast_hangup(peer);
+                       ast_hangup(peer);
        }       
 out:
        hanguptree(outgoing, NULL);
index efdf770..6771b80 100755 (executable)
@@ -48,8 +48,8 @@ extern int ast_app_messagecount(const char *mailbox, int *newmsgs, int *oldmsgs)
 //! Safely spawn an external program while closingn file descriptors
 extern int ast_safe_system(const char *s);
 
-// send DTMF to chan (optionally entertain peer)  
-int ast_dtmf_stream(struct ast_channel *chan,struct ast_channel *peer,char *digits,int between);
+//! Send DTMF to chan (optionally entertain peer)  
+int ast_dtmf_stream(struct ast_channel *chan, struct ast_channel *peer, char *digits, int between);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }