Revision
17113
Author
gled
Date
2010-03-26 11:51:12 -0500 (Fri, 26 Mar 2010)

Log Message

starting point bkw :)

Modified Paths

Added Paths

Diff

Modified: freeswitch/trunk/contrib/gled/esl2agi/esl2agi.c (17112 => 17113)


--- freeswitch/trunk/contrib/gled/esl2agi/esl2agi.c	2010-03-26 16:23:49 UTC (rev 17112)
+++ freeswitch/trunk/contrib/gled/esl2agi/esl2agi.c	2010-03-26 16:51:12 UTC (rev 17113)
@@ -554,9 +554,17 @@
 		goto end;
 	}
 
-	args = malloc(1024);
-	snprintf(args,1024,"1 %s 1 %s # %s invalid.wav play_get_digits_values \\d+",argv[4] ? argv[4] : "9999", argv[3] ? argv[3] : "2000", argv[2]);
+	size = strlen(argv[2]);
+	if (argv[3])
+		size += strlen(argv[3]);
+	if (argv[4])
+		size += strlen(argv[4]);
 
+	size += 59;
+	args = malloc(size +1);
+
+	snprintf(args,size+1,"1 %s 1 %s # %s invalid.wav play_get_digits_values \\d+*",argv[4] ? argv[4] : "9999", argv[3] ? argv[3] : "2000", argv[2]);
+	fprintf(stderr,"Executing play_and_get_digits %s",args);
 	if (do_execute(eslC,"play_and_get_digits",args,NULL,&reply) < 0 ) {
 		res = -1;
 		goto end;
@@ -569,7 +577,6 @@
 			res = -1;
 			goto end;
 		}
-
 	}
 
 end:
@@ -579,9 +586,9 @@
 		size = safe_int_snprintf_buffer(&buf,"200 result=%d\n\n",res);
 	}
 	else {
-		size = strlen(args) + 10;
+		size = strlen(args) + 12;
 		buf = malloc(size + 1);
-		snprintf(buf,size + 1,"200 result=%s",args);
+		snprintf(buf,size + 1,"200 result=%s\n\n",args);
 	}
 
 	res = write(fd,buf,size);