mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-20 16:50:14 +00:00
tweak prior commit
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3826 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
9
app.c
9
app.c
@@ -437,13 +437,16 @@ int ast_control_streamfile(struct ast_channel *chan, char *file, char *fwd, char
|
|||||||
if (chan)
|
if (chan)
|
||||||
ast_stopstream(chan);
|
ast_stopstream(chan);
|
||||||
|
|
||||||
if (file) {
|
|
||||||
end = strchr(file,':');
|
if(file) {
|
||||||
if (!strcasecmp(end,":end")) {
|
if((end = strchr(file,':'))) {
|
||||||
|
if(!strcasecmp(end,":end")) {
|
||||||
*end = '\0';
|
*end = '\0';
|
||||||
end++;
|
end++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
gettimeofday(&started,NULL);
|
gettimeofday(&started,NULL);
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ static int record_exec(struct ast_channel *chan, void *data)
|
|||||||
char fil[256];
|
char fil[256];
|
||||||
char tmp[256];
|
char tmp[256];
|
||||||
char ext[10];
|
char ext[10];
|
||||||
char * vdata; /* Used so I don't have to typecast every use of *data */
|
char *vdata;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
int j = 0;
|
int j = 0;
|
||||||
|
|
||||||
@@ -78,14 +78,31 @@ static int record_exec(struct ast_channel *chan, void *data)
|
|||||||
int option_skip = 0;
|
int option_skip = 0;
|
||||||
int option_noanswer = 0;
|
int option_noanswer = 0;
|
||||||
int rfmt = 0;
|
int rfmt = 0;
|
||||||
|
int flags;
|
||||||
|
char *end=NULL;
|
||||||
|
char *p=NULL;
|
||||||
|
|
||||||
|
|
||||||
vdata = data; /* explained above */
|
|
||||||
|
|
||||||
/* The next few lines of code parse out the filename and header from the input string */
|
/* The next few lines of code parse out the filename and header from the input string */
|
||||||
if (!vdata) { /* no data implies no filename or anything is present */
|
if (!data) { /* no data implies no filename or anything is present */
|
||||||
ast_log(LOG_WARNING, "Record requires an argument (filename)\n");
|
ast_log(LOG_WARNING, "Record requires an argument (filename)\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
vdata = ast_strdupa(data);
|
||||||
|
|
||||||
|
p = vdata;
|
||||||
|
while(p && (p=strchr(p,':'))) {
|
||||||
|
end=p;
|
||||||
|
if(!strcasecmp(end,":end")) {
|
||||||
|
*end='\0';
|
||||||
|
end++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
p++;
|
||||||
|
end=NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
for (; vdata[i] && (vdata[i] != ':') && (vdata[i] != '|'); i++ ) {
|
for (; vdata[i] && (vdata[i] != ':') && (vdata[i] != '|'); i++ ) {
|
||||||
if ((vdata[i] == '%') && (vdata[i+1] == 'd')) {
|
if ((vdata[i] == '%') && (vdata[i+1] == 'd')) {
|
||||||
@@ -205,7 +222,10 @@ static int record_exec(struct ast_channel *chan, void *data)
|
|||||||
ast_dsp_set_threshold(sildet, 256);
|
ast_dsp_set_threshold(sildet, 256);
|
||||||
}
|
}
|
||||||
|
|
||||||
s = ast_writefile( tmp, ext, NULL, O_CREAT|O_TRUNC|O_WRONLY , 0, 0644);
|
|
||||||
|
flags = end ? O_CREAT|O_APPEND|O_WRONLY : O_CREAT|O_TRUNC|O_WRONLY;
|
||||||
|
s = ast_writefile( tmp, ext, NULL, flags , 0, 0644);
|
||||||
|
|
||||||
|
|
||||||
if (s) {
|
if (s) {
|
||||||
if (maxduration > 0)
|
if (maxduration > 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user