[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