[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1162
  • Last Modified:

Automatic 2 or 3-way conference

Hi all,

I am trying to set up an automatic 3-way conference. Three extensions would form a group, and whenever one of the parties calls the conference number, the other 2 members are automatically called and put into the conference.

Is this even possible? Please help.

Thanks
0
netcmh
Asked:
netcmh
  • 5
  • 4
  • 4
  • +2
1 Solution
 
DrDamnitCommented:
Not possible using the actual dialplan conferencing software MeetMe. If you are an expert PHP programmer, it may be possible using AGI.
0
 
netcmhAuthor Commented:
No I'm not. If anyone has a solution or a method to get me started, I'd be very appreciative.

Thanks
0
 
naulivCommented:
Let's make sure about what you're trying to do...

* You have an Asterisk PBX with 3 users SIP/100, SIP/101 and SIP/102.
* You'd like that if any of these users dial a particular extension, Asterisk will automatically call the other 2 users, and then put all 3 users into a conference call.

Is that what you are looking for ?
0
Fill in the form and get your FREE NFR key NOW!

Veeam is happy to provide a FREE NFR server license to certified engineers, trainers, and bloggers.  It allows for the non‑production use of Veeam Agent for Microsoft Windows. This license is valid for five workstations and two servers.

 
asternicCommented:
Here you have a dialplan snippet that will do the trick. It is kind of raw but it does not need AGI scripts.

GROUPCALL variable should contain the extensions that are part of the group
CTX should be set to the context where you can find those extensions
ROOM is the meetme conference number to use




exten => 1720,1,Answer
exten => 1720,n,Set(GROUPCALL=602!606!604)
exten => 1720,n,Set(CTX=from-internal)
exten => 1720,n,Set(ROOM=5000)
; Do not modify below this line
exten => 1720,n,Set(AUTHORIZED=0)
exten => 1720,n,Set(i=1)
exten => 1720,n,While($[${i}<=${FIELDQTY(GROUPCALL,!)}])
exten => 1720,n,Set(CURRENT_EXTEN=${CUT(GROUPCALL,!,${i})})
exten => 1720,n,ExecIf($["${CALLERID(number)}" = "${CURRENT_EXTEN}"],Set,AUTHORIZED=1)
exten => 1720,n,ExecIf($["${CALLERID(number)}" != "${CURRENT_EXTEN}"],Set,OTHERPARTY="${OTHERPARTY}!${CURRENT_EXTEN}")
exten => 1720,n,Set(i=$[${i}+1])
exten => 1720,n,EndWhile
exten => 1720,n,GotoIf($["${AUTHORIZED}" = "1"]?ok)
exten => 1720,n,Noop(Calling Extension is not in Group, Hangup)
exten => 1720,n,Playback(goodbye)
exten => 1720,n,Hangup
exten => 1720,n(ok),Noop(Calling Extension is in Group, continue)
exten => 1720,n,Set(OTHERPARTY=${OTHERPARTY:1}
exten => 1720,n,Set(i=1)
exten => 1720,n,While($[${i}<=${FIELDQTY(OTHERPARTY,!)}])
exten => 1720,n,Set(CURRENT_EXTEN=${CUT(OTHERPARTY,!,${i})})
exten => 1720,n,System(/usr/sbin/asterisk -rx "originate Local/${CURRENT_EXTEN}@${CTX} application Meetme ${ROOM}")
exten => 1720,n,Set(i=$[${i}+1])
exten => 1720,n,EndWhile
exten => 1720,n,Meetme(${ROOM})
exten => 1720,n,Hangup

Open in new window

0
 
netcmhAuthor Commented:
nauliv: yes, just to let you know however, that these users are physically in 3 different locations

asternic: looks complicated, will go through it.
0
 
asternicCommented:
A little explanation of the diaplan I posted:

GROUPCALL: contains the list of extensions that are part of the group and are allowed to dial that extension to fire the conference. You have to enumerate the extensions separating them with an exclamation mark.

CTX: is the context to dial those extensions, you should be able to reach those extensions from that context in the asterisk dialplan. from-internal is the typical freepbx context.

ROOM: Is the meetme conference number that will be used for the group, It must be defined in meetme.conf

When you dial 1720, it will check if your callerid number is part of the group (in the example it looks for 602, 604 and 606). If the callerid number does not match any of those, it will disconnect the call.
If it matches, it will put you on meetme number ROOM and it will originate two calls to the other members and put those calls in the meetme room too.



0
 
netcmhAuthor Commented:
This would hold true even if the people those extensions are assigned to dial in from different states, right?
0
 
asternicCommented:
If those people have sip accounts registered in your asterisk box, it does not matter where they are located. They appear as local extensions to asterisk.

It they are dialing in from external lines into your system, you can do that too by using their callerids and real phone numbers (not extensions). It should work too providing that you are receiving a proper callerid that is also suitable for being dialed out.

0
 
netcmhAuthor Commented:
Wonderfully explained. Thank you
0
 
dss-techCommented:
Nice script, works very fine!
I have another problem: I need that when one of the extensions leaves the conference all the other ones are automaticalyy hanged up. Is it possible?

Thanks a lot
0
 
asternicCommented:
The only way to have automatically destroyed conferences without using AMI is to use the options for meetme "A" for marking a user, and "x" for destroying the conference when the last marked user exists.

The problem is that you will have to decide what extension is the one that is going to be marked, the dialplan I posted give sthe same meetme call for everyone, you should modify it to pass Ax as meetme options to just one of the extensions, if that extension exists , the conference will be destroyed. So it works only by marking users, not for any of the users.
0
 
dss-techCommented:
asternic,
thank you for the quick answer.

This could not be a problem for me, since I'm using the script to submit messages throug SNOM PA1 paging phones, so that there is one actual originator and the PA1 acts as "clients", meaning that they auto-answer to the conference, but they cannot hang up by themseves. As soon as the "originator" leaves the conference all the partecipants must be hanged up.
0
 
dss-techCommented:
I mean: I would like to have ext 739 and 763 to be joined to my conf and the conf destroyed when I leave.

Should sound something like this:

exten => 1002,1,Answer
exten => 1002,n,Set(GROUPCALL=733!763!739)
exten => 1002,n,Set(CTX=from-internal)
exten => 1002,n,Set(ROOM=5000)
; Do not modify below this line

exten => 1002,n,System(/usr/sbin/asterisk -rx "originate Local/763@${CTX} application Meetme ${ROOM}")
exten => 1002,n,System(/usr/sbin/asterisk -rx "originate Local/739@${CTX} application Meetme ${ROOM}")
exten => 1002,n,Meetme(${ROOM},Ax)
exten => 1002,n,Hangup

But it doesn't work when I hang up the others remain on the conference
0
 
asternicCommented:
Have not tried myself, but try passing x to the Meetme call in the originate line.
0
 
dss-techCommented:
Thanks, that made the trick.

I put x on "silent" participants and xA on originating call ant that works.
Thank you for your help
0

Featured Post

Sign your company up to try the MB 660 headset now

Take control and stay focused in noisy open office environments with the MB 660. By reducing background noise, you can revitalize your office and improve concentration.

  • 5
  • 4
  • 4
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now