How to Convert from MeetMe to Confbridge Guide

In this guide, we are going to teach you how to convert your asterisk MeetMe dialplan into Confbridge. I have had clients request this on several occasions, and have needed to do it for myself at times, so I figured I would post this guide to help anyone else who needs to go through the same thing. It could also be called a “ConfBridge Cheat Sheet” or a “MeetMe Cheat Sheet”.

Table of Contents

Overview

So why would anyone want to use Confbridge instead of MeetMe? In Asterisk, there are 2 major conference modules, app_meetme and app_confbridge. app_meetme is the older of the two, and it has a few advantages, mainly that it’s simple and been around for a while so there’s plenty of examples on the internet that use it. However, it is dependent on the dahdi kernel module, which means every time you update your kernel, you have to recompile dahdi as well. Also, it’s less flexible than confbridge.

So let’s get to it, we won’t cover every edge case or possible use, however we will try to cover as much as is reasonable.

Creating a new Conference:

MeetMe:
[macro-newmeetme]
exten => s,1,Set(__CNUM=${RAND(50000,99999)}) ;TIP keep the range away from your extensions so you can use it as an extension
same => 2,Set(__CNUM=$[${CNUM}+1])
same => 3,MeetMeCount(${CNUM},count)
same => n,GotoIf($[${count}>0]?2) ;Check to see if this conference exists (already has people)
same => n,MeetMe(${CNUM}) ;be sure to set relevant options you want

Confbridge:
[macro-newconfbridge]
exten => s,1,Set(__CNUM=${RAND(50000,99999)})
same => 2,Set(__CNUM=$[${CNUM}+1])
same => 3,GotoIf($[${GROUP_COUNT(${CNUM}@conference)}>0]?2)
same => n,Set(GROUP(conference)=${CNUM}) ;use groups to keep track of member counts
same => n,ConfBridge(${CNUM}) ;note this will use the default bridge defined in confbridge.conf

Join a conference:

[join-meetme]
exten => _XXXXX,1,MeetMe(${EXTEN}) ;extension is the conference number

[join-confbridge]
exten => _XXXXX,1,Set(GROUP(conference)=${EXTEN}) ;extension is the conference number
same => n,ConfBridge(${EXTEN})

Get number of agents in a conference:

We already showed you this, but we’ll keep it here also for reference.

MeetMe:
same => n,MeetMeCount(${CNUM},count) ;creates
same => n,NoOp(There are ${count} members in conference ${CNUM})

Confbridge:
same => n,NoOp(There are ${GROUP_COUNT(${CNUM}@conference)} members in conference: ${CNUM})

Record the conference:

MeetMe
On the MeetMe line, add the “r” flag to the options:
same => n,MeetMe(${CNUM,r)

ConfBridge
Set the bridge option, “record_conference” equal to “yes”:
same => n,Set(CONFBRIDGE(bridge,record_conference)=yes)

Setting the recording filename:

Default directory is ${ASTSPOOLDIR} defined in asterisk.conf, however MeetMe could also be ${ASTSPOOLDIR}/meetme.
You can also specify an absolute path

MeetMe:
same => n,Set(MEETME_RECORDINGFILE=meetme-${CNUM}.wav) ;you can also specify an absolute path
same => n,MeetMe(${CNUM},r) ;r flag records the conference

Confbridge:
same => n,Set(CONFBRIDGE(bridge,record_file)=confbridge-${CNUM}.wav)
same => n,Set(CONFBRIDGE(bridge,record_conference)=yes)

That’s all the time we have for now, if this helped you, please +1 it with Google, you can also bookmark us to checkback later. I will be adding more information soon, most importantly, setting up the confbridge.conf file, creating menus, and working with more of the options.

Tagged with: , , , ,
Posted in Asterisk, Tips n Tricks
3 comments on “How to Convert from MeetMe to Confbridge Guide
  1. Nisar Ahmad Cheema says:

    Can You please guide me how is it possible to barge in confbridg

  2. There is a much easier way to dynamically create or join a conference with MeetMe(), requiring a single number and a single dialplan line.

    ; Dial 999 to dynamically create or join a conference :
    ; c – Announce user(s) count on joining a conference
    ; I – Announce user join/leave without review
    ; x – Leave the conference when the last marked user leaves
    ; d – Dynamically add conference
    ; s – Present menu (user or admin) when * is received (send to menu)
    ; M( class ) – Enable music on hold when the conference has a single caller
    exten => 999,1,MeetMe(,cIxdsM)

    ; Alternatively, if you prefer PIN-protected conferences :
    ; D – Dynamically add conference, prompting for a PIN
    exten => 999,1,MeetMe(,cIxDsM)

    Currently looking to get something as smooth with ConfBridge

Leave a Reply

Your email address will not be published. Required fields are marked *

*