[asterisk-dev] app_confbridge + USER_OPT_TALKER_DETECT

Jared Mauch jared at puck.Nether.net
Wed May 21 21:19:49 CDT 2014


	Hello,

	I'm trying to finish porting over my app_meetme systems to interact
with app_confbridge in 12.2.0 and I can't see to get the talker detection
data either via CLI or AMI.  I've not tried with ARI yet, but don't see
any clear examples of getting that information out.

	Is this something where having talk_detection_events=yes set
does not promote this?

	I have a macro that does Meetme and one that does Confbridge
that take the same arguemnts, eg:

[macro-confbridge];
exten => s,1,Set(CONF_ARGS=cdsT) ; default options
exten => s,n,Set(CONNECTEDLINE(name)=${ARG4})
exten => s,n,Set(CONNECTEDLINE(num)=${ARG1})
exten => s,n,Set(TIMEOUT(absolute)=86400)  ; Limit call length to 1 day
exten => s,n,ExecIf($["${SKIP_CONF_AUTH}" = "YES"]?Set(AUTH_SKIPPED=1):Authenticate(${ARG2}))
exten => s,n,Set(CONFBRIDGE(user,jitterbuffer)=yes) ; should help a bit
exten => s,n,Set(CONFBRIDGE(user,talk_detection_events)=yes) ; detect talking
exten => s,n,Set(CONFBRIDGE(user,dsp_drop_silence)=yes) ; should help too
exten => s,n,Set(CONFBRIDGE(user,announce_user_count)=yes) ; default yes
exten => s,n,Set(CONFBRIDGE(bridge,video_mode)=follow_talker) ; make it like a hangout .. follow them ..
exten => s,n,Set(CONFBRIDGE(user,announce_join_leave)=${IF($[ ${ARG3} = 1]?yes:no)}) ; if arg3=1 set record name at join
exten => s,n,Set(CONFBRIDGE(bridge,record_conference)=${IF($[ ${ARG5} = 1]?yes:no)}) ; if arg5=1 set record
exten => s,n,Set(CONFBRIDGE(user,music_on_hold_when_empty)=${IF($[ ${ARG7} = 1]?yes:no)}) ; if arg7=1 set hold muzak when empty
exten => s,n,Set(CONFBRIDGE(user,startmuted)=${IF($[ ${ARG8} = 1]?yes:no)}) ; if arg8=1 set muted at start
exten => s,n,Set(CONFBRIDGE(user,quiet)=${IF($[ ${ARG9} = 1]?yes:no)}) ; if arg9=1 set no join/leave sound
exten => s,n,Set(CONFBRIDGE(user,admin)=${IF($[ ${ARG10} = 1]?$yes:no)}) ; if arg10=1 set admin mode
exten => s,n,Set(CONFBRIDGE(bridge,record_file)=/var/spool/asterisk/conf/meetme-conf-rec-${ARG6}-${ARG1}-${UNIQUEID})
exten => s,n,Set(CONFBRIDGE(bridge,internal_sample_rate)=44100) ; 44.1k rate
exten => s,n,Set(CONFBRIDGE(bridge,mixing_interval)=10) ; faster mixing rate
exten => s,n,Confbridge(${ARG1})

Here's an example:

exten => 8675309,1,Macro(confbridge,8675309,1234567,0,Jared Mauch,0,8675309,1,0,0,0)

there's some other stuff like a hangup handler that are not relevant, and that 
"web-initiated" calls can skip the authentication step.  All conferences are dynamic,
but I guess I could put some of the standard bridge/user settings in the confbridge
config if that might address this trouble.

Am I just doing this horribly wrong?

(here's how my standard conf works for reference)

[macro-stdconf];
exten => s,1,Set(CONF_ARGS=cdsT) ; default options
;exten => s,n,Set(CONNECTEDLINE(name)=${ARG4})
;exten => s,n,Set(CONNECTEDLINE(num)=${ARG1})
exten => s,n,Set(TIMEOUT(absolute)=86400)  ; Limit call length to 1 day
exten => s,n,ExecIf($["${SKIP_CONF_AUTH}" = "YES"]?Set(AUTH_SKIPPED=1):Authenticate(${ARG2}))
;               0           1       2    2       2         2   2         2 10
exten => s,n,Set(CONF_ARGS=${IF($[ ${ARG3} = 1]?${CONF_ARGS}I:${CONF_ARGS})}) ; if arg3=1 add I to CONF_ARGS record name at join
exten => s,n,Set(CONF_ARGS=${IF($[ ${ARG5} = 1]?${CONF_ARGS}r:${CONF_ARGS})}) ; if arg5=1 add r to CONF_ARGS record
exten => s,n,Set(CONF_ARGS=${IF($[ ${ARG7} = 1]?${CONF_ARGS}M:${CONF_ARGS})}) ; if arg7=1 add M to CONF_ARGS hold muzak when empty
exten => s,n,Set(CONF_ARGS=${IF($[ ${ARG8} = 1]?${CONF_ARGS}m:${CONF_ARGS})}) ; if arg8=1 add m to CONF_ARGS muted at start
exten => s,n,Set(CONF_ARGS=${IF($[ ${ARG9} = 1]?${CONF_ARGS}q:${CONF_ARGS})}) ; if arg9=1 add q to CONF_ARGS no join/leave sound
exten => s,n,Set(CONF_ARGS=${IF($[ ${ARG10} = 1]?${CONF_ARGS}a:${CONF_ARGS})}) ; if arg10=1 add a to CONF_ARGS admin mode

exten => s,n,Set(MEETME_RECORDINGFILE=/var/spool/asterisk/conf/meetme-conf-rec-${ARG6}-${ARG1}-${UNIQUEID})
exten => s,n,Meetme(${ARG1},${CONF_ARGS})

I'm working on patching app_confbridge to have something like 'meetme list xxx concise' for machine parsing, so that's my ultimate goal.  I also pulled in that CBAnn patch for the leaking reference as I was seeing that as well.

Thanks,

- Jared

-- 
Jared Mauch  | pgp key available via finger from jared at puck.nether.net
clue++;      | http://puck.nether.net/~jared/  My statements are only mine.



More information about the asterisk-dev mailing list