Howdy all,
First time posting, but a bit of a big issue I’ve taken notice to today. When trying to create a ConfBridge conference room through the “Conferences” section on FreePBX, it generates a few additional artifacts that negatively affect Asterisk’s function. After digging in the extensions_additional.conf file, I noticed the following:
exten => STARTMEETME,n,ConfBridge(${MEETME_ROOMNUM},${MM_OS}<${PIN}) where “${MM_OS}” should actually be “${MEETME_OPTS}”.
Additionally, running Asterisk CLI while joining a ConfBridge room, it issues a few Warnings and Errors.
[Feb 18 08:24:46] ERROR[25495]: pbx.c:3652 ast_func_read: Function MEETME_INFO not registered
[Feb 18 08:24:46] WARNING[25495]: func_logic.c:192 acf_if: Syntax IF(<expr>?[<true>][:<false>]) (expr must be non-null, and either <true> or <false> must be non-null)
[Feb 18 08:24:46] WARNING[25495]: func_logic.c:193 acf_if: In this case, <expr>='', <true>='', and <false>='conf-101-101-20120218-082446-1329582286.71'
-- Executing [recconf@sub-record-check:1] Set("SIP/501-00000029", "__CALLFILENAME=") in new stack
[Feb 18 08:24:46] ERROR[25495]: pbx.c:3652 ast_func_read: Function MEETME_INFO not registered
[Feb 18 08:24:46] WARNING[25495]: ast_expr2.fl:468 ast_yyerror: ast_yyerror(): syntax error: syntax error, unexpected $end, expecting '-' or '!' or '(' or '<token>'; Input:
!
^
[Feb 18 08:24:46] WARNING[25495]: ast_expr2.fl:472 ast_yyerror: If you have questions, please refer to https://wiki.asterisk.org/wiki/display/AST/Channel+Variables
-- Executing [recconf@sub-record-check:2] ExecIf("SIP/501-00000029", "0?Set(DB(RECCONF/101)=)") in new stack
-- Executing [recconf@sub-record-check:3] Set("SIP/501-00000029", "MEETME_RECORDINGFILE=/var/spool/asterisk/monitor/2012/02/18/") in new stack
-- Executing [recconf@sub-record-check:4] Set("SIP/501-00000029", "MEETME_RECORDINGFORMAT=wav") in new stack
[Feb 18 08:24:46] WARNING[25495]: pbx.c:4099 pbx_substitute_variables_helper_full: Error in extension logic (missing ']')
[Feb 18 08:24:46] WARNING[25495]: ast_expr2.fl:468 ast_yyerror: ast_yyerror(): syntax error: syntax error, unexpected $end, expecting '-' or '!' or '(' or '<token>'; Input:
"never"!="always?Return(
^
[Feb 18 08:24:46] WARNING[25495]: ast_expr2.fl:472 ast_yyerror: If you have questions, please refer to https://wiki.asterisk.org/wiki/display/AST/Channel+Variables
-- Executing [recconf@sub-record-check:5] ExecIf("SIP/501-00000029", "0") in new stack
[Feb 18 08:24:46] WARNING[25495]: app_exec.c:231 execif_exec: Deprecated syntax found. Please upgrade to using ExecIf(<expr>?(null)((null)))
The generated ext-meetme from PBX is the following:
include => ext-meetme-custom
exten => STARTMEETME,1,ExecIf($["${MEETME_MUSIC}" != ""]?Set(CHANNEL(musicclass)=${MEETME_MUSI$
exten => STARTMEETME,n,Set(GROUP(meetme)=${MEETME_ROOMNUM})
exten => STARTMEETME,n,GotoIf($[${MAX_PARTICIPANTS} > 0 && ${GROUP_COUNT(${MEETME_ROOMNUM}@mee$
exten => STARTMEETME,n,ConfBridge(${MEETME_ROOMNUM},${MM_OS},${PIN})
exten => STARTMEETME,n,Hangup
exten => MEETMEFULL,1,Playback(im-sorry&conf-full&goodbye)
exten => MEETMEFULL,n,Hangup
exten => h,1,Hangup
exten => 101,1,Macro(user-callerid,)
exten => 101,n,Set(MEETME_ROOMNUM=101)
exten => 101,n,Set(MAX_PARTICIPANTS=0)
exten => 101,n,Set(MEETME_MUSIC=Beats)
exten => 101,n,Gosub(sub-record-check,s,1(conf,101,never))
exten => 101,n,GotoIf($["${DIALSTATUS}" = "ANSWER"]?READPIN)
exten => 101,n,Answer
exten => 101,n,Wait(1)
exten => 101,n,Set(PINCOUNT=0)
exten => 101,n(READPIN),Read(PIN,enter-conf-pin-number,,,,)
exten => 101,n,GotoIf($[x${PIN} = x101]?USER)
exten => 101,n,Set(PINCOUNT=$[${PINCOUNT}+1])
exten => 101,n,GotoIf($[${PINCOUNT}>3]?h)
exten => 101,n,Playback(conf-invalidpin)
exten => 101,n,Goto(READPIN)
exten => 101,n(USER),Set(MEETME_OPTS=cMm)
exten => 101,n,Goto(STARTMEETME,1)
Whereas I had perfect success building my own in extensions_override_freepbx.conf:
include => ext-meetme-custom
exten => STARTMEETME,1,ExecIf($["${MEETME_MUSIC}" != ""]?Set(CHANNEL(musicclass)=${MEETME_MUSIC}))
exten => STARTMEETME,n,Set(GROUP(meetme)=${MEETME_ROOMNUM})
exten => STARTMEETME,n,GotoIf($[${MAX_PARTICIPANTS} > 0 && ${GROUP_COUNT(${MEETME_ROOMNUM}@meetme)}>${MAX_PARTICIPANTS}]?MEETMEFULL,1)
exten => STARTMEETME,n,ConfBridge(${MEETME_ROOMNUM},${MEETME_OPTS},${PIN})
exten => STARTMEETME,n,Hangup
exten => MEETMEFULL,1,Playback(im-sorry&conf-full&goodbye)
exten => MEETMEFULL,n,Hangup
exten => h,1,Hangup
exten => 101,1,Macro(user-callerid,)
exten => 101,n,Set(MEETME_ROOMNUM=101)
exten => 101,n,Set(MAX_PARTICIPANTS=0)
exten => 101,n,Set(MEETME_MUSIC=Beats)
exten => 101,n,GotoIf($["${DIALSTATUS}" = "ANSWER"]?READPIN)
exten => 101,n,Set(CONFBRIDGE_JOIN_SOUND=confbridge-join)
exten => 101,n,Set(CONFBRIDGE_LEAVE_SOUND=confbridge-leave)
exten => 101,n,Answer
exten => 101,n,Wait(1)
exten => 101,n(USER),Set(MEETME_OPTS=cMm)
exten => 101,n,Goto(STARTMEETME,1)
Any and all help is appreciated. I’m no PHP professional, but I get the feeling there may be some foul play in the conferences module PHP.
Thank you!