[Freeswitch-users] ESL Outbound: how to bridge media?

Stephen Wilde wstephen80 at gmail.com
Wed Feb 16 00:46:36 MSK 2011


When legB answers there is also no audio.

If I do the bridge after legB answers the call (instead of when
"origination" has ended), then the audio is ok and the legA can ear the legB
also if legA is in "pre_answer" state.

Now I have found one problem: the "BACKGROUND_JOB" event related to "bgapi
uuid_bridge ..." contains: "-ERR Invalid uuid" but both uuid's are correct
so probably is due to the state of channels.

With the same uuid's, the uuid_bridge after the legB answer works fine.

Stephen


On Tue, Feb 15, 2011 at 9:53 PM, Anthony Minessale <
anthony.minessale at gmail.com> wrote:

> I meant when you have no audio, and you wait until leg b answers. what
> happens then?
>
>
> If you have leg A inbound and you send it to park.
> then you originate outbound to b leg to park
> wait for park event on b leg
> then you uuid_bridge them
>
> also you can sendmsg with application = intercept app_arg = uuid of B
>
>
> On Tue, Feb 15, 2011 at 12:08 PM, Stephen Wilde <wstephen80 at gmail.com>
> wrote:
> > LegA is an incoming call, legB is an outgoing call.
> > The dialplan is:
> >     <extension name="myhandler">
> >       <condition field="destination_number" expression="^xxxx$">
> >         <action application="set"
> data="dialstring=sofia/external/yyyy at zzzz
> > />
> >         <action application="socket" data="127.0.0.1:8084 async full"/>
> >       </condition>
> >     </extension>
> > When the legB answer the call, I receive the "CHANNEL_ANSWER" event on
> legB
> > and I send the "answer" to legA (I have already done a uuid_bridge when
> > originate has ended).
> > The audio continue to be mute in both direction.
> > The "uuid_bridge" works only if I call it after received "CHANNEL_ANSWER"
> in
> > legB or after I send "answer" to legA.
> > It's not enough to do a "pre_answer".
> > Stephen
> >
> > On Tue, Feb 15, 2011 at 6:15 PM, Anthony Minessale
> > <anthony.minessale at gmail.com> wrote:
> >>
> >> What happens once they answer?
> >>
> >> This is not one of those attempts to speed up click to call by calling
> >> them both at once is it?
> >>
> >>
> >> On Tue, Feb 15, 2011 at 10:29 AM, Stephen Wilde <wstephen80 at gmail.com>
> >> wrote:
> >> > Ok, I have tried with "pre_answer" to the inbound channel (that will
> be
> >> > the
> >> > first uuid in the "uuid_bridge") but with same result: no audio from
> >> > outbound (in progressing media state) to inbound (in progressing media
> >> > state
> >> > due to my pre_answer).
> >> > Here the sequence of events:
> >> > [ERROR] newacme.cpp:193 mycallback() Connected!
> >> > [ERROR] newacme.cpp:113 Originate() bgapi originate
> >> >
> >> >
> [origination_uuid=61e00b94-f4d3-4ac4-bcf5-8fba02a18de6]sofia/external/xxxx at yyyy
> >> > &park()
> >> > [ERROR] newacme.cpp:115 Originate() Job-ID:
> >> > eee79d97-dbf8-49d4-9bf9-578ef75f73ea
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_UUID]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_OUTGOING]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_ORIGINATE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_STATE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_CALLSTATE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_STATE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_STATE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CALL_UPDATE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> [CODEC]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> [CODEC]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_CALLSTATE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_PROGRESS_MEDIA]
> >> > [ERROR] newacme.cpp:250 mycallback() Executing 'pre_answer' on INBOUND
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_STATE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_EXECUTE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_PARK]
> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> > [CHANNEL_EXECUTE]
> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> > [CHANNEL_CALLSTATE]
> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> > [CHANNEL_PROGRESS_MEDIA]
> >> > [ERROR] newacme.cpp:127 BridgeTo() bgapi uuid_bridge
> >> > 902e2cd4-10ee-4938-97cf-c9eb2ac969f8
> >> > 61e00b94-f4d3-4ac4-bcf5-8fba02a18de6
> >> > [ERROR] newacme.cpp:129 BridgeTo() Job-ID:
> >> > 7a66a5c7-721c-47f4-aff2-373ec20123c8
> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CALL_UPDATE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_CALLSTATE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_ANSWER]
> >> > [ERROR] newacme.cpp:255 mycallback() Executing 'answer' on INBOUND
> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> > [CHANNEL_EXECUTE]
> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> > [CHANNEL_CALLSTATE]
> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> > [CHANNEL_ANSWER]
> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_CALLSTATE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_HANGUP]
> >> > [ERROR] newacme.cpp:260 mycallback() Executing 'hangup' on INBOUND
> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> > [CHANNEL_EXECUTE]
> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> > [CHANNEL_CALLSTATE]
> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> > [CHANNEL_HANGUP]
> >> > [ERROR] newacme.cpp:272 mycallback() Executing 'hangup' on OUTBOUND
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_UNPARK]
> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_STATE]
> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> > [CHANNEL_UNPARK]
> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> > [CHANNEL_STATE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_STATE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_HANGUP_COMPLETE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_DESTROY]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_CALLSTATE]
> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> > [CHANNEL_STATE]
> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> > [CHANNEL_STATE]
> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> > [CHANNEL_HANGUP_COMPLETE]
> >> > [ERROR] newacme.cpp:290 mycallback() End.
> >> >
> >> >
> >> > On Tue, Feb 15, 2011 at 5:09 PM, Anthony Minessale
> >> > <anthony.minessale at gmail.com> wrote:
> >> >>
> >> >> Well you can't bridge 2 unanswered channels together.
> >> >> You need at least one of them to have been pre_answered and that
> >> >> should be the first uuid in the list.
> >> >>
> >> >>
> >> >> On Tue, Feb 15, 2011 at 3:48 AM, Stephen Wilde <wstephen80 at gmail.com
> >
> >> >> wrote:
> >> >> > I have tried to wait originate completition but the "uuid_bridge"
> >> >> > doesn't
> >> >> > works also in this case.
> >> >> > It seems that works only when at least one leg is answered so it's
> >> >> > not
> >> >> > possible to do the "uuid_bridge" during progressing phase also if
> the
> >> >> > originate has ended (I don't set the ignore_early_media).
> >> >> > My application is this: http://pastebin.freeswitch.org/15387
> >> >> > The application:
> >> >> > 1. receive a call with an "inbound_uuid"
> >> >> > 2. create a new "outbound_uuid"
> >> >> > 3. do a "bgapi originate" using the new "outbound_uuid"
> >> >> > 4. when the called phone is ringing, receive a
> >> >> > "CHANNEL_PROGRESS_MEDIA"
> >> >> > event on "outbound_uuid" and do a "pre_answer" on "inbound_uuid"
> >> >> > 5. receive a "CHANNEL_PROGRESS_MEDIA" on "inbound_uuid"
> >> >> > 6. receive a job completition event related to the "originate" so
> >> >> > issue
> >> >> > an
> >> >> > "uuid_bridge inbound_uuid outbound_uuid"
> >> >> > 7. when a job completition event related to "uuid_bridge" is
> >> >> > received,
> >> >> > no
> >> >> > audio flow from outbound to inbound channel
> >> >> > 8. when outbound answer the call, the application answer also the
> >> >> > inbound
> >> >> > call but no audio flow in both directions
> >> >> > If I do the uuid_bridge after legB answer, then all is ok
> (obviously
> >> >> > with no
> >> >> > audio during progressing phase).
> >> >> >
> >> >> > The log of my application is:
> >> >> > [ERROR] newacme.cpp:46 mycallback() Connected!
> >> >> > [ERROR] newacme.cpp:65 mycallback() Inbound uuid =
> >> >> > 8b2c39db-1ad9-489c-b72f-a92d4087bf99
> >> >> > [ERROR] newacme.cpp:68 mycallback() create_uuid:
> >> >> > 394167aa-2811-4fcd-95c9-85576bdd9a7a
> >> >> > [ERROR] newacme.cpp:89 mycallback() bgapi originate
> >> >> >
> >> >> >
> >> >> >
> [origination_uuid=394167aa-2811-4fcd-95c9-85576bdd9a7a]sofia/external/xxxx at yyyy
> >> >> > &park()
> >> >> > [ERROR] newacme.cpp:91 mycallback() Job-ID:
> >> >> > 1c654ac2-c22d-418f-9fad-bb6b6b35aeff
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_UUID]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_OUTGOING]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_ORIGINATE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_STATE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_CALLSTATE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_STATE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_STATE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CALL_UPDATE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CODEC]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CODEC]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_CALLSTATE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_PROGRESS_MEDIA]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_STATE]
> >> >> > [ERROR] newacme.cpp:112 mycallback() Got an event: [BACKGROUND_JOB]
> -
> >> >> > [1c654ac2-c22d-418f-9fad-bb6b6b35aeff]
> >> >> > [ERROR] newacme.cpp:119 mycallback() bgapi uuid_bridge
> >> >> > 8b2c39db-1ad9-489c-b72f-a92d4087bf99
> >> >> > 394167aa-2811-4fcd-95c9-85576bdd9a7a
> >> >> > [ERROR] newacme.cpp:123 mycallback() Job-ID:
> >> >> > 0d43cffe-fdc6-4a13-97e6-aeee199c45d5
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_EXECUTE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_PARK]
> >> >> > [ERROR] newacme.cpp:112 mycallback() Got an event: [BACKGROUND_JOB]
> -
> >> >> > [0d43cffe-fdc6-4a13-97e6-aeee199c45d5]
> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] -
> >> >> > [CHANNEL_EXECUTE]
> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] -
> >> >> > [CHANNEL_CALLSTATE]
> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] -
> >> >> > [CHANNEL_PROGRESS_MEDIA]
> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] -
> >> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CALL_UPDATE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_CALLSTATE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_ANSWER]
> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] -
> >> >> > [CHANNEL_EXECUTE]
> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] -
> >> >> > [CHANNEL_CALLSTATE]
> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] -
> >> >> > [CHANNEL_ANSWER]
> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] -
> >> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_CALLSTATE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_HANGUP]
> >> >> > [ERROR] newacme.cpp:160 mycallback() hangup
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_UNPARK]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_STATE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_STATE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_HANGUP_COMPLETE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_DESTROY]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_CALLSTATE]
> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] -
> >> >> > [CHANNEL_STATE]
> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] -
> >> >> > [CHANNEL_EXECUTE]
> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] -
> >> >> > [CHANNEL_CALLSTATE]
> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] -
> >> >> > [CHANNEL_HANGUP]
> >> >> > [ERROR] newacme.cpp:171 mycallback() hangup
> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] -
> >> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] -
> >> >> > [CHANNEL_UNPARK]
> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] -
> >> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] -
> >> >> > [CHANNEL_STATE]
> >> >> > [ERROR] newacme.cpp:184 mycallback() End.
> >> >> >
> >> >> > Stephen
> >> >> >
> >> >> > On Tue, Feb 15, 2011 at 1:14 AM, Anthony Minessale
> >> >> > <anthony.minessale at gmail.com> wrote:
> >> >> >>
> >> >> >> if you do originate without ignore_early_media=true set it will
> end
> >> >> >> the soonest possible where it's suitable for a bridge.
> >> >> >> so that is the best bet to wait for originate to end.
> >> >> >>
> >> >> >>
> >> >> >> On Mon, Feb 14, 2011 at 6:11 PM, Stephen Wilde
> >> >> >> <wstephen80 at gmail.com>
> >> >> >> wrote:
> >> >> >> > Ok, now I'm doing bridge when I receive "CHANNEL_ANSWER" or
> >> >> >> > "CHANNEL_PROGRESS_MEDIA" on outbound leg but you say that I have
> >> >> >> > wait
> >> >> >> > that
> >> >> >> > "originate has ended": you mean that I have to wait for
> >> >> >> > "BACKGROUND_JOB"
> >> >> >> > event related to my "bgapi originate ... &park"?
> >> >> >> > I'm already doing "uuid_bridge <inbound_uuid> <outbound_uuid>".
> >> >> >> > I'll try also with intercept and inline originate. Thank you!
> >> >> >> > Stephen
> >> >> >> >
> >> >> >> > On Tue, Feb 15, 2011 at 12:53 AM, Anthony Minessale
> >> >> >> > <anthony.minessale at gmail.com> wrote:
> >> >> >> >>
> >> >> >> >> you need to make sure originate has ended on the outbound leg
> >> >> >> >> before
> >> >> >> >> you use it in a bridge etc.
> >> >> >> >> you also need to supply the inbound leg first in uuid_bridge if
> >> >> >> >> that
> >> >> >> >> is something you want to do.
> >> >> >> >>
> >> >> >> >> Easier would be to originate the B leg to park inline and tell
> A
> >> >> >> >> leg
> >> >> >> >> to execute intercept on the B leg uuid.
> >> >> >> >>
> >> >> >> >>
> >> >> >> >>
> >> >> >> >> On Mon, Feb 14, 2011 at 5:44 PM, Stephen Wilde
> >> >> >> >> <wstephen80 at gmail.com>
> >> >> >> >> wrote:
> >> >> >> >> > Sorry but I have missed something.
> >> >> >> >> > I know that I can solve this problem directly in dialplan
> with
> >> >> >> >> > a
> >> >> >> >> > bridge
> >> >> >> >> > but
> >> >> >> >> > what I'm doing is an "Freeswitch ESL learning" because I have
> >> >> >> >> > to
> >> >> >> >> > port
> >> >> >> >> > some
> >> >> >> >> > application in Freeswitch and I'm learning how to implement
> >> >> >> >> > some
> >> >> >> >> > functionality.
> >> >> >> >> > For me it's important to take control of both
> inbound/outbound
> >> >> >> >> > in
> >> >> >> >> > full
> >> >> >> >> > async
> >> >> >> >> > way and I have the necessity to do the complete call control.
> >> >> >> >> > I'm not sure but to me it seems that with a normal bridge I
> >> >> >> >> > lose
> >> >> >> >> > the
> >> >> >> >> > control
> >> >> >> >> > of two sessions, for example, an outbound answer is
> propagated
> >> >> >> >> > by
> >> >> >> >> > bridge
> >> >> >> >> > application as inbound answer.
> >> >> >> >> > What I want to do is an audio bridging so my application can
> >> >> >> >> > take
> >> >> >> >> > control of
> >> >> >> >> > "signaling bridging".
> >> >> >> >> >
> >> >> >> >> > I'm wrong? There are other way to do that?
> >> >> >> >> > Stephen
> >> >> >> >> > On Tue, Feb 15, 2011 at 12:19 AM, Michael Collins
> >> >> >> >> > <msc at freeswitch.org>
> >> >> >> >> > wrote:
> >> >> >> >> >>
> >> >> >> >> >> My head is spinning after reading this email. :)
> >> >> >> >> >> It sounds like you just need a simple bridge from the
> incoming
> >> >> >> >> >> leg
> >> >> >> >> >> to
> >> >> >> >> >> the
> >> >> >> >> >> outgoing leg. Can you pre_answer the A leg then execute a
> good
> >> >> >> >> >> old-fashioned
> >> >> >> >> >> bridge to the b-leg?
> >> >> >> >> >> -MC
> >> >> >> >> >> On Mon, Feb 14, 2011 at 4:57 PM, Stephen Wilde
> >> >> >> >> >> <wstephen80 at gmail.com>
> >> >> >> >> >> wrote:
> >> >> >> >> >>>
> >> >> >> >> >>> The problem I have is to propagate the audio coming from an
> >> >> >> >> >>> "originated"
> >> >> >> >> >>> outbound session to the inbound session when the outbound
> is
> >> >> >> >> >>> in
> >> >> >> >> >>> the
> >> >> >> >> >>> PROGRESS
> >> >> >> >> >>> MEDIA phase.
> >> >> >> >> >>> When my application receives the "CHANNEL_PROGRESS_MEDIA"
> >> >> >> >> >>> event
> >> >> >> >> >>> from
> >> >> >> >> >>> outbound session I can do a "pre_answer" on inbound session
> >> >> >> >> >>> but
> >> >> >> >> >>> I'm
> >> >> >> >> >>> not
> >> >> >> >> >>> capable to do an audio bridge.
> >> >> >> >> >>> I have tried with "uuid_bridge <outbound_uuid>
> >> >> >> >> >>> <inbound_uuid>"
> >> >> >> >> >>> with
> >> >> >> >> >>> no
> >> >> >> >> >>> result probably because this api requires that at least one
> >> >> >> >> >>> session
> >> >> >> >> >>> must be
> >> >> >> >> >>> answered.
> >> >> >> >> >>> I don't want to answer to the inbound session to propagate
> >> >> >> >> >>> the
> >> >> >> >> >>> outbound
> >> >> >> >> >>> progressing media but I want to answer to inbound only on
> >> >> >> >> >>> outbound
> >> >> >> >> >>> answer.
> >> >> >> >> >>> Any way to do that?
> >> >> >> >> >>> Stephen
> >> >> >> >> >>> _______________________________________________
> >> >> >> >> >>> 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
> >> >> >> >> >>>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >> _______________________________________________
> >> >> >> >> >> 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
> >> >> >> >> >>
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> > _______________________________________________
> >> >> >> >> > 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
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >>
> >> >> >> >>
> >> >> >> >>
> >> >> >> >> --
> >> >> >> >> Anthony Minessale II
> >> >> >> >>
> >> >> >> >> FreeSWITCH http://www.freeswitch.org/
> >> >> >> >> ClueCon http://www.cluecon.com/
> >> >> >> >> Twitter: http://twitter.com/FreeSWITCH_wire
> >> >> >> >>
> >> >> >> >> AIM: anthm
> >> >> >> >> MSN:anthony_minessale at hotmail.com
> >> >> >> >> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
> >> >> >> >> IRC: irc.freenode.net #freeswitch
> >> >> >> >>
> >> >> >> >> FreeSWITCH Developer Conference
> >> >> >> >> sip:888 at conference.freeswitch.org
> >> >> >> >> googletalk:conf+888 at conference.freeswitch.org
> >> >> >> >> pstn:+19193869900
> >> >> >> >>
> >> >> >> >> _______________________________________________
> >> >> >> >> 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
> >> >> >> >
> >> >> >> >
> >> >> >> > _______________________________________________
> >> >> >> > 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
> >> >> >> >
> >> >> >> >
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >> --
> >> >> >> Anthony Minessale II
> >> >> >>
> >> >> >> FreeSWITCH http://www.freeswitch.org/
> >> >> >> ClueCon http://www.cluecon.com/
> >> >> >> Twitter: http://twitter.com/FreeSWITCH_wire
> >> >> >>
> >> >> >> AIM: anthm
> >> >> >> MSN:anthony_minessale at hotmail.com
> >> >> >> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
> >> >> >> IRC: irc.freenode.net #freeswitch
> >> >> >>
> >> >> >> FreeSWITCH Developer Conference
> >> >> >> sip:888 at conference.freeswitch.org
> >> >> >> googletalk:conf+888 at conference.freeswitch.org
> >> >> >> pstn:+19193869900
> >> >> >>
> >> >> >> _______________________________________________
> >> >> >> 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
> >> >> >
> >> >> >
> >> >> > _______________________________________________
> >> >> > 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
> >> >> >
> >> >> >
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >> Anthony Minessale II
> >> >>
> >> >> FreeSWITCH http://www.freeswitch.org/
> >> >> ClueCon http://www.cluecon.com/
> >> >> Twitter: http://twitter.com/FreeSWITCH_wire
> >> >>
> >> >> AIM: anthm
> >> >> MSN:anthony_minessale at hotmail.com
> >> >> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
> >> >> IRC: irc.freenode.net #freeswitch
> >> >>
> >> >> FreeSWITCH Developer Conference
> >> >> sip:888 at conference.freeswitch.org
> >> >> googletalk:conf+888 at conference.freeswitch.org
> >> >> pstn:+19193869900
> >> >>
> >> >> _______________________________________________
> >> >> 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
> >> >
> >> >
> >> > _______________________________________________
> >> > 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
> >> >
> >> >
> >>
> >>
> >>
> >> --
> >> Anthony Minessale II
> >>
> >> FreeSWITCH http://www.freeswitch.org/
> >> ClueCon http://www.cluecon.com/
> >> Twitter: http://twitter.com/FreeSWITCH_wire
> >>
> >> AIM: anthm
> >> MSN:anthony_minessale at hotmail.com
> >> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
> >> IRC: irc.freenode.net #freeswitch
> >>
> >> FreeSWITCH Developer Conference
> >> sip:888 at conference.freeswitch.org
> >> googletalk:conf+888 at conference.freeswitch.org
> >> pstn:+19193869900
> >>
> >> _______________________________________________
> >> 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
> >
> >
> > _______________________________________________
> > 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
> >
> >
>
>
>
> --
> Anthony Minessale II
>
> FreeSWITCH http://www.freeswitch.org/
> ClueCon http://www.cluecon.com/
> Twitter: http://twitter.com/FreeSWITCH_wire
>
> AIM: anthm
> MSN:anthony_minessale at hotmail.com
> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
> IRC: irc.freenode.net #freeswitch
>
> FreeSWITCH Developer Conference
> sip:888 at conference.freeswitch.org
> googletalk:conf+888 at conference.freeswitch.org
> pstn:+19193869900
>
> _______________________________________________
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20110215/44eba6cb/attachment-0001.html 


More information about the FreeSWITCH-users mailing list