[Asterisk-cvs] asterisk app.c,1.12,1.13
anthm at lists.digium.com
anthm at lists.digium.com
Fri May 7 16:30:07 CDT 2004
Update of /usr/cvsroot/asterisk
In directory mongoose.digium.com:/tmp/cvs-serv17955
Modified Files:
app.c
Log Message:
Created API call ast_dtmf_stream
int ast_dtmf_stream(struct ast_channel *chan,struct ast_channel *peer,char *digits,int between)
changed app_senddtmf.c to use this new call
added D() parameter to app_dial to allow post connect dtmf stream to be sent using above call
-Tony
Index: app.c
===================================================================
RCS file: /usr/cvsroot/asterisk/app.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- app.c 3 May 2004 04:37:03 -0000 1.12
+++ app.c 7 May 2004 20:39:14 -0000 1.13
@@ -259,3 +259,48 @@
}
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);
+
+ 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;
+}
More information about the svn-commits
mailing list