[asterisk-bugs] [JIRA] (ASTERISK-25678) app_confbridge: Add list concise command

Richard Mudgett (JIRA) noreply at issues.asterisk.org
Mon Jan 11 17:46:32 CST 2016


    [ https://issues.asterisk.org/jira/browse/ASTERISK-25678?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=228953#comment-228953 ] 

Richard Mudgett edited comment on ASTERISK-25678 at 1/11/16 5:45 PM:
---------------------------------------------------------------------

This was partly a straw-man, but also to solve a problem that I have.  I'll add concise to all the comparable code points as well, should i expose the entire struct, eg: menus, etc?  What about flags, should those get their own unique columns?

These commands haven't been well documented in the past.

Re: AMI/ARI, I'm open to also enhancing them, but like I said previously, the user didn't hold the talking/not-talking state, so unless you cached the previous talk/no-talking event I didn't see a way to fetch the current state.

Things like ConfBridgeList are not well constrained for a read-only capability of just polling these things.  I'd much prefer that but would need some help/pointers to expose this.

With the talker state, it shouldn't be that hard to add that to the ConfBridgeList I guess, but having a working hack was my primary goal so I can migrate away from meetme.  I'm also a bit bummed with the way the users time in conf was done in meetme and the channel start time is the best proxy I can find. 

Some of it may be the way we're actually using MeetMe/ConfBridge with a dedicated exten per user for their bridges that is part of our unified dialplan.  

eg: meetme
{noformat}
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
{noformat}

eg: confbridge
{noformat}
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
{noformat}

as we use all dynamic conferences, I can switch a database flag and convert people from Meetme <-> ConfBridge automatically it just switches the macro used.

I'll add the talking flag to the ConfBridgeList AMI, you're certainly right there.


was (Author: jaredmauch):
This was partly a straw-man, but also to solve a problem that I have.  I'll add concise to all the comparable code points as well, should i expose the entire struct, eg: menus, etc?  What about flags, should those get their own unique columns?

These commands haven't been well documented in the past.

Re: AMI/ARI, I'm open to also enhancing them, but like I said previously, the user didn't hold the talking/not-talking state, so unless you cached the previous talk/no-talking event I didn't see a way to fetch the current state.

Things like ConfBridgeList are not well constrained for a read-only capability of just polling these things.  I'd much prefer that but would need some help/pointers to expose this.

With the talker state, it shouldn't be that hard to add that to the ConfBridgeList I guess, but having a working hack was my primary goal so I can migrate away from meetme.  I'm also a bit bummed with the way the users time in conf was done in meetme and the channel start time is the best proxy I can find. 

Some of it may be the way we're actually using MeetMe/ConfBridge with a dedicated exten per user for their bridges that is part of our unified dialplan.  

eg: meetme
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

eg: confbridge
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

as we use all dynamic conferences, I can switch a database flag and convert people from Meetme <-> ConfBridge automatically it just switches the macro used.

I'll add the talking flag to the ConfBridgeList AMI, you're certainly right there.

> app_confbridge: Add list concise command
> ----------------------------------------
>
>                 Key: ASTERISK-25678
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-25678
>             Project: Asterisk
>          Issue Type: Improvement
>      Security Level: None
>          Components: Applications/app_confbridge
>            Reporter: jaredmauch
>            Severity: Minor
>         Attachments: app_confbridge.concise.patch
>
>
> In preparing to migrate from MeetMe to Confbridge we needed some "comfort" capabilities to emulate some of the meetme cli commands used.
> This introduces a confbridge list 1234 concise style command that is helpful for machines to read the input.  This is mostly prototype code that allows us to see the talker in the CLI (for hunting noisy lines).
> I'm not wedded to anything specific except two things:
> 1) I prefer the channel name to be first
> 2) I need the talker information, without tracking all the event state.
> My code certainly isn't perfect but I've tested it and it works.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list