[asterisk-users] how to join calls - not barge?
sean darcy
seandarcy2 at gmail.com
Wed Feb 13 10:38:12 CST 2013
On 02/13/2013 09:39 AM, Matthew Jordan wrote:
> 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
>
Thanks. Very helpful.
sean
More information about the asterisk-users
mailing list