[Freeswitch-users] Loopback and bypass_media
Phillip Jones
pjintheusa at gmail.com
Thu Aug 13 15:59:19 PDT 2009
Rupa / all,
Just a quick follow up to this.
This is appears to a timing issue. If I try and do a "uuid_media off +
uuid" in "api_after_bridge" it fails with "CHAN_NOT_IMPLEMENTED"
and the call is dropped.
If appears to be trying to do a SIP reinvite on the loopback channel
which is of course just about to / has disappear/ed.
So I tried this, after the call is established, at the commend line, I
do "show calls" and using the uuid shown, type "uuid_media off uuid".
The SIP REINVITE is issued and works.
I think the switch_ivr_nomedia function in switch_ivr_c is getting the
loopback uuid when it calls "other_uuid =
switch_channel_get_variable(channel, SWITCH_BRIDGE_VARIABLE)"
That's why the SIP REINVITE fails.
So... in api_after_bridge I issue:
"sched_api", "+3 none uuid_media off " + uuid. This calls the
switch_ivr_nomedia function 3 seconds after the calls bridge is
established.
And it works, Not nice - not scalable or production ready - but the
SIP-REINVITE is successful and at least now I understand what is going
on.
Make sense?
Thanks
Phil
On Wed, Aug 12, 2009 at 12:21 PM, Rupa Schomaker<rupa at rupa.com> wrote:
> On Wed, Aug 12, 2009 at 10:22 AM, Phillip Jones<pjintheusa at gmail.com> wrote:
>> Hi there,
>>
>>>> application="originate" data="(sofia/foo/bar|sofia/baz/bar),(sofia/foo/yum|sofia/baz/yum)"
>>
>> I agree. However, perhaps the ideal is not to specify the carriers at
>> this level, as carriers are added and removed fairly often as costings
>> change. So it would be nice to have some sort of proxy that resolves
>> to a list of carriers:
>>
>> application="originate" data="sofia/MyCarriers/bar,sofia/MyCarriers/yum"
>
>> <MyCarriers>
>> <action application="carrier" data="sofia/foo"/>
>> <action application="carrier" data="sofia/baz"/>
>> <action application="carrier" data="sofia/etc"/>
>> </MyCarriers>
>>
>>
>> or something similar. This would achieve the same as loopback in this
>> use case but without dangers of looping? Complicated stuff though.
>
> Well, that is all done by mod_lcr. I was simplifying to narrow down
> to just originate.
>
> First we need to see if this is worth pursuing over fixing (modifying,
> whatever) loopback to handle bypass media. If it is, then I'll modify
> mod_lcr to deal with the situation in question (comma or pipe sep list
> of numbers to call. mod_lcr would then group as appropriate).
>
> Right now, my bridge is setup in a small javascript script that builds
> the appropriate dialstring (using loopback for external calls, user/
> for internal calls) and then when doing the loopback call to mod_lcr
> to get the dialstring with all providers in the right order.
>
>>>>Perhaps have an on answer hook that tries to enable bypass media (re-invite) after the call is setup?
>>
>> That's a good idea - I will look into that.
>>
>>
>> Thanks again.
>>
>>
>> Phillip
>
> Let us know how it works for you...
>
> --
> -Rupa
>
> _______________________________________________
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
More information about the FreeSWITCH-users
mailing list