[Asterisk-Dev] A problem of MixMonitor

Chih-Wei Huang cwhuang at citron.com.tw
Wed Nov 2 02:18:00 MST 2005


I'm so SORRY that I forgot to change the subject of my previous email.

Chih-Wei Huang wrote:
> I'm trying the new application MixMonitor in 1.2-beta2.
> Unfortunately, it didn't work as I expected.
> 
> My dialplan is like this:
> 
> [macro-checkrec]
> ;
> ;   ${ARG1} - Caller
> ;   ${ARG2} - Callee
> ;
> exten => s,1,Set(RECFILE=${ARG1}-${ARG2}_${UNIQUEID})
> exten => s,2,MixMonitor(${RECFILE},b)
> 
> 
> The console shown the following error messages:
> 
> Nov  2 16:26:36 WARNING[22223]: file.c:978 ast_writefile: No such format 
> '1'
> Nov  2 16:26:36 ERROR[22223]: app_mixmonitor.c:163 mixmonitor_thread: 
> Cannot open /var/spool/asterisk/monitor/900-995_1130919996.1
> 
> 
> I traced app_mixmonitor.c and found the reason.
> In mixmonitor_thread,
> 
> if ((ext = strchr(mixmonitor->filename, '.'))) {
>           *(ext++) = '\0';
> 
> that is, it consider the string after . of filename
> to be an ext. In my above case, it is "1", which won't work surely.
> However, it's not my intention to use "xxxx.1" as the filename.
> It comes from ${UNIQUEID}, which is generated from Asterisk.
> Sadly...
> 
> My suggestion:
> 
> * Find the last occurrence of '.' in filename instead of the first one.
> That is, simply replace strchr by strrchr.
> Then I can workaround by MixMonitor(${RECFILE}.wav,b)
> This is the simplest solution, but it doesn't work if people
> use a filename containing '.' without specifying an ext explicitly
> (like my original dialplan)
> 
> * (Better solution) Let people specify the ext by another argument,
> instead of part of the first argument(filename).
> That is, change the syntax to
> 
> MixMonitor(<file>[|<ext>[|<options>[|<command>]]])
> 
> Since MixMonitor is a very new application, it won't affect too many
> people. I hope.
> 
> 
> BTW, I'm curious why ${UNIQUEID} contains a dot.
> It usually causes troubles. Doesn't it?
> How about change it to _ (underline)?



More information about the asterisk-dev mailing list