Update of /usr/cvsroot/asterisk
In directory mongoose.digium.com:/tmp/cvs-serv2471

Modified Files:
        channel.c 
Log Message:
add AGI 'RECEIVE TEXT' command (bug #4525)


Index: channel.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channel.c,v
retrieving revision 1.205
retrieving revision 1.206
diff -u -d -r1.205 -r1.206
--- channel.c   18 Jun 2005 17:18:02 -0000      1.205
+++ channel.c   21 Jun 2005 01:16:18 -0000      1.206
@@ -1652,6 +1652,40 @@
        }
 }
 
+char *ast_recvtext(struct ast_channel *chan, int timeout)
+{
+       int res,ourto;
+       struct ast_frame *f;
+       char *buf;
+       
+       ourto = timeout;
+       for(;;) {
+               if (ast_check_hangup(chan)) return NULL;
+               res = ast_waitfor(chan,ourto);
+               if (res <= 0) { 
+                       /* if timeout */
+                       return NULL;
+               }
+               ourto = res;
+               f = ast_read(chan);
+               if (f == NULL) return NULL; /* no frame */
+               if ((f->frametype == AST_FRAME_CONTROL) && 
+                       (f->subclass == AST_CONTROL_HANGUP)) return NULL; /* if 
hangup */
+               if (f->frametype == AST_FRAME_TEXT) {
+                       /* if a text frame */
+                       buf = (char *)malloc(strlen((char *)f->data));
+                       if (buf) {
+                               strcpy(buf, (char *)f->data);
+                               ast_frfree(f);
+                               return(buf);
+                       } else {
+                               return NULL;
+                       }
+               }
+               ast_frfree(f);
+       }
+}
+
 int ast_sendtext(struct ast_channel *chan, char *text)
 {
        int res = 0;

_______________________________________________
Asterisk-Cvs mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-cvs

Reply via email to