Asterisk 10 and app_confbridge

I mentioned in my blog that we would work on getting app_confbridge working with Asterisk 10, so if you are using Asterisk 10 you should now be able to try this out and get some testing going to help flush out any issues getting this running since it was not done prior to final release of FreePBX 2.10.

What I did:

This initial port was a simple attempt to use the same conferencing module and configuration options as is currently available and map those to the new Asterisk 10 ConfBridge application. I did not take advantage of any additional functionality provided in the new application.

What you need to do:

FIrst you need to be running Asterisk 10 and make sure the Core and Conferences FreePBX modules are up-to-date. Next, you need to go into Advanced Settings and choose “app_confbridge” for your “Conference Room App” under the “Dialplan and Operational” section. After pressing the Apply Config button your dialplan should be configured properly. You do need to make sure that you have app_confbridge loaded.

All the user and bridge settings we configure are done through the CONFBRIDGE() dialplan function for those settings we take advantage of. If you would like to try out other settings that we are not configuring, you can use the confbridge_custom.conf file and create a 'default_user" or “default_bridge” setting where you could add those and they should apply for all rooms and/or users. We have “hardcoded” the user and admin menus in the module though we did it in such a way that if you happen to want to change them, you could create a very simple module that defined what you wanted in place of what we have done. You may be able to use the confbridge_custom.conf file as well, I have not played with the application enough to determine what would happen if you redefined the menus there. They may override what we do or the may not…

Overall what I did is a short term bandaid to take advantage of the new Asterisk 10 application and try to get some exposure. in 2.11 we plan on rewriting the conference module to properly take advantage of it and add much more flexibility. However, in the mean time, we do want at least legacy compatibility so we will try to be responsive to any bugs that are reported.

Hmm… I did get this pop up on the FreePBX notices in the last day on my ast10 and ast 1.8 systems. Is it related?

retrieve_conf failed to sym link: /etc/asterisk/confbridge.conf from conferences/etc (Already exists, not a link) This can result in FATAL failures to your PBX. If the target file exists and not identical, the symlink will not occur and you should rename the target file to allow the automatic sym link to occur and remove this error, unless this is an intentional customization.

it means you need to get rid of the /etc/asterisk/confbridge.conf file that is there because the conferencing module needs to supply that.

It is in the standard format that we do with space for included custom files, etc.

Okay.

mv /etc/asterisk/confbridge.conf /etc/asterisk/confbridge.conf.old

Done.

Thank you Philippe.

Philippe-

I’m not sure this is EXACTLY where I should ask about this, but…

What work is being done currently to ensure all features and functionality work? Such as playing the User Announcement pre-joining, which mentions how many people are on a bridge. Playing MOH for if a single user exists and none else have joined. User and Admin PIN numbers. And most importantly for some applications, User Join and Leave sounds which play to all active parties when additional users join or leave, in order to make active members in the bridge aware?

All those functions work in my 1.8.10.0 Ast implementation aside from the last, and I was curious if there were any suggestions in place to make this work? My last attempt at amending the functions.inc.php file with the two necessary lines resulted in my entire FreePBX GUI to fail to load in a browser…

ChewableFritter,

All I did was try to map the meetme options to what looked like the correct ConfBridge options. So if things are not working the same it’s one of two things (or both). Either the new application does not work quite like the old one, or I missed something.

The crux of the changes are in the code below. For some of them, I stuck with the way we currently do things so as not stray too far from what people are used to.

Here is the crux of what we have mapped:

[php]

<?php $options = str_split($roomoptions); foreach ($options as $opt) { switch ($opt) { case 'w': if ($user_type != 'admin') { $ext->add($contextname, $roomnum, '', new ext_set('CONFBRIDGE(user,wait_marked)','yes')); $ext->add($contextname, $roomnum, '', new ext_set('CONFBRIDGE(user,end_marked)','yes')); } break; case 'q': $ext->add($contextname, $roomnum, '', new ext_set('CONFBRIDGE(user,quiet)','yes')); break; case 'c': $ext->add($contextname, $roomnum, '', new ext_set('CONFBRIDGE(user,announce_user_count)','yes')); break; case 'i': case 'I': $ext->add($contextname, $roomnum, '', new ext_set('CONFBRIDGE(user,announce_join_leave)','yes')); break; case 'o': $ext->add($contextname, $roomnum, '', new ext_set('CONFBRIDGE(user,dsp_drop_silence)','yes')); break; case 'T': $ext->add($contextname, $roomnum, '', new ext_set('CONFBRIDGE(user,talk_detection_events)','yes')); break; case 'M': $ext->add($contextname, $roomnum, '', new ext_set('CONFBRIDGE(user,music_on_hold_when_empty)','yes')); break; case 's': if ($user_type == 'admin') { $ext->add($contextname, $roomnum, '', new ext_set('MENU_PROFILE','admin_menu')); } else { $ext->add($contextname, $roomnum, '', new ext_set('MENU_PROFILE','user_menu')); } break; case 'r': // Set by sub-record-check break; case 'm': if ($user_type != 'admin') { $ext->add($contextname, $roomnum, '', new ext_set('CONFBRIDGE(user,startmuted)','yes')); } break; } } [/php] So if you can follow that, and you feel something isn't right or missing, feel free to file a ticket explaining what you thing needs to happen and we'll happily look at it.