[asterisk-users] how to join calls - not barge?

Matthew Jordan mjordan at digium.com
Wed Feb 13 08:39:08 CST 2013


On 02/12/2013 06:48 PM, sean darcy wrote:
> On 02/12/2013 05:37 PM, Rusty Newton wrote:
>> ---- Original Message -----
>>> From: "sean darcy" <seandarcy2 at gmail.com>
>>
>>>
>>> Can I throw A and B into a confbridge and then add C?  Create a new
>>> channel that grabs the A <-> B channel? Or is there a more straight
>>> forward way to do this?
>>>
>>
>> The Asterisk Definitive guide has some good info on what you can do
>> with ConfBridge. That might work for you. See "Advanced
>> Conferencing"[1] and "Conferencing with ConfBridge()"[2]
>>
>> Also, there is the Shared Line Appearance stuff in Asterisk[3]. That's
>> a bit more confusing, but may help you as well. I'd recommend playing
>> with both to really see if they work for your needs.
>>
>>
>> [1] http://ofps.oreilly.com/titles/9781449332426/asterisk-SysAdmin.html
>> [2]
>> http://ofps.oreilly.com/titles/9781449332426/asterisk-DP-Deeper.html#confbridgeConferencing
>>
>> [3]
>> http://ofps.oreilly.com/titles/9781449332426/asterisk-DeviceStates.html#SLA
>>
>>
>>
> Thanks.
> 
> confBridge could work here, but how do I throw an existing bridge into
> the confbridge? That is, if A <-> B exists, how do I trigger the entry
> into confbridge. Once there, it's pretty easy to see how C would join.

Assuming you have something like:

exten => s,1,Dial(SIP/B)

Such that SIP/A and SIP/B are in a bridge formed by the Dial
application, you would first need to break that bridge and move each
channel into the ConfBridge. One possible approach without resorting to
AMI would be something like this:

; Entry point for SIP/C

exten => c,1,ChannelRedirect(SIP/A,default,goto_confbridge,1)
same => n,Goto(default,goto_confbridge,1)

; Entry point for SIP/A

exten => a,1,Dial(SIP/B,,F(default,goto_confbridge,1)

; Extension that drops any channel into the multi-party bridge

exten => goto_confbridge,1,NoOp()
same => n,ConfBridge(1234)

This is obviously an example - you'd have to get the actual channel name
for SIP/A; you'd want to check whether or not the caller was hung up
when the called party gets shunted off into the goto_confbridge
extension (since it will happen unilaterally when the caller is removed
from the bridge), etc.

> maybe EVERY call is done with confbridge. Would that cause some other
> problem?

That would work, but ConfBridge doesn't have support for some two-party
concepts, such as Hold. It depends on your use cases whether or not that
would be acceptable.

> I don't necessarily have DAHDI, so the SLA stuff wouldn't work. Just as
> well, since my head hurt reading about it.
> 

As an aside, we are working in Asterisk 12 to make this kind of scenario
much easier. The work being done now should allow you to seamlessly
transition from two-party to multi-party bridges (and back) without
having to do dialplan shenanigans.

Matt

-- 
Matthew Jordan
Digium, Inc. | Engineering Manager
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at: http://digium.com & http://asterisk.org





More information about the asterisk-users mailing list