Impromptu Conferencing

Home » Asterisk Users » Impromptu Conferencing
Asterisk Users 10 Comments

Dear list,

we would really like to be able to “invite a third and fourth party
to our current one-on-one call. At the moment, we have to agree to dial into MeetMe 10 minutes later, then make calls to the third parties, and hope it all works out.

I have found a couple of examples on the Internet for converting channels into conferences, but I could not get any of them working.

Does anyone have a working example they would be willing to share?


10 thoughts on - Impromptu Conferencing

  • With our Polycom 501 phones we can put a third and fourth party on our two-way call without using the meetme app. You just hit the “conference”
    button on the phone during a call and add your third person and do the same for your fourth person.

    —–Original Message—

  • also sprach Administrator TOOTAI [2012.11.08.0954 +0100]:

    The scenario is usually that we are in a discussion and need a third party. I suppose I can tell the initial correspondent “I will now transfer you to a conference room, enter this PIN when asked”, then hang up, dial the next, and do the same.

    What I would like to do is to convert the current channel into a conference room, go on hold and dial a third party, and when I come back to the conference room, I bring along the third party.

    Put differently: I don’t really want my correspondents to have to do anything, just wait and listen to MOH.

  • also sprach Administrator TOOTAI [2012.11.08.1018 +0100]:

    Yeah, except I want Asterisk to handle that, not my phone (which might lose reception or run out of battery etc.).

  • Martin,

    I understand that having the feature in the PBX makes it uniform to all phones, makes it available to all users, etc.

    But it is not easy to do this inside the dialplan: the biggest problem is that you basically miss any kind of GUI to handle a set of steps that can each require a decision, to tell Asterisk what to do e.g. if the third person is busy and sends you to voicemail, having just a dialpad in your hands, with no visual feedback …

    Having complex functions in Asterisk is than linked with instruction sets for users (that should memorize them) in form of strange dialing sequences..

    The best way to handle your idea is probably done through some kind of application to be used during calls..


  • The feature can be enabled on outbound and inbound calls by connecting both channels of a connected call to a conference room after the connection is made. This accomplishes your need to not do anything vs. giving the called person instructions, transferring the call to a conference room and then dialing into it immediately. For example, if the conference room is 999 for phone 999, and phone 999 uses the context [all-outbound-for-999] for outbound calls and [all-inbound-for-999], then:

    ; outbound dialing through a conference room exten => _NXXNXXXXXX,1,MeetMeCount(999,COUNT-999);
    exten => _NXXNXXXXXX,2,GotoIf($[“${COUNT-999}”>=”1”]?10);
    exten => _NXXNXXXXXX,3,Set(CALLERID(num)U50000999);
    exten => _NXXNXXXXXX,4,Set(CALLERID(name)=Phone 999);
    exten => _NXXNXXXXXX,5,Dial(${TRUNK}/${EXTEN},99,G(6));
    exten => _NXXNXXXXXX,6,MeetMe(999,FAqx);
    exten => _NXXNXXXXXX,7,MeetMe(999,Fqx);

    ; bypass the conference room for multiple outbound calls exten => _NXXNXXXXXX,10,Set(CALLERID(num)U50000999);
    exten => _NXXNXXXXXX,11,Set(CALLERID(name)=Phone 999);
    exten => _NXXNXXXXXX,12,Dial(${TRUNK}/${EXTEN});

    ; inbound extension through a conference room exten => 999,1,MeetMeCount(999,COUNT-999);
    exten => 999,2,GotoIf($[“${COUNT-999}”>=”1”]?10);
    exten => 999,3,Dial(SIP/99,999,G(6));
    exten => 999,4,Hangup;
    exten => 999,6,MeetMe(999,FAqx);
    exten => 999,7,MeetMe(999,Fqx);

    ; bypass the conference room for multiple inbound calls exten => 999,10,Dial(SIP/999);

  • also sprach Brandon B. [2012.12.03.0132 +0100]:

    This is an interesting approach, but I am still not sure how to add the third party. Sure, I can call them up and tell them to dial a number, but I’d really rather be able to just “switch them in”.

    What would need to be done for a user to e.g. suspend the conference, dial another number and finally merge the channels? Do I need the manager API for that, like this:


  • The third party has to dial into the system at some point. You can only switch in existing calls, so your idea is nonsense to me because you haven’t specified how else the third party is in or gets a channel into the system.

    The simplest solution would be to have the third party dial into or be connected into conference room 999. The first two parties are already in the conference. The conference room 999 could be available by dialling 8999:

    exten => 8999,1,MeetMeCount(999,COUNT-999);
    exten => 8999,2,GotoIf($[“${COUNT-999}”=”0”]?10);
    exten => 8999,3,MeetMe(999,Fqx);

    exten => 8999,10,Hangup;

    Anybody who can dial 8999 in the above context will join the conference.

    What would need to be done for a user to e.g. suspend the

    Suspending the conference would mean that phone 999 puts the call on hold, and then does one of the following: (a) dials a third party and then transfers the connected third party call into the conference room, (b) uses the conference feature of their phone to connect a third party to their channel already in the conference room or (c) invites a third party to dial a number which connects them to conference room 999.

    Do I need the manager API for that, like this:

    Sure, that will work in theory.

    Look into the Bridge command which is available inside a dialplan using extensions.conf. You can take a call which will end up in a conference room and before that call joins the conference room it will find* other calls in the system meant to be in the conference room, bridge those other calls into a conference room, and finally join the conference room. In this case the third party call initiates the conference. Alternatively, in the example above, the conference room always is used so the third party just needs to join it.

    Good Luck.

    * finding calls is not possible unless you make them findable