I have tried to wait originate completition but the "uuid_bridge" doesn't works also in this case.<div><br><div>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).</div>
<div><br></div><div>My application is this: <a href="http://pastebin.freeswitch.org/15387">http://pastebin.freeswitch.org/15387</a></div><div><br></div><div>The application:</div><div><br></div><div>1. receive a call with an "inbound_uuid"</div>
<div><br></div><div>2. create a new "outbound_uuid"</div><div><br></div><div>3. do a "bgapi originate" using the new "outbound_uuid"</div><div><br></div><div>4. when the called phone is ringing, receive a "CHANNEL_PROGRESS_MEDIA" event on "outbound_uuid" and do a "pre_answer" on "inbound_uuid"</div>
<div><br></div><div>5. receive a "CHANNEL_PROGRESS_MEDIA" on "inbound_uuid"</div><div><br></div><div>6. receive a job completition event related to the "originate" so issue an "uuid_bridge inbound_uuid outbound_uuid"</div>
<div><br></div><div>7. when a job completition event related to "uuid_bridge" is received, no audio flow from outbound to inbound channel</div><div><br></div><div>8. when outbound answer the call, the application answer also the inbound call but no audio flow in both directions</div>
<div><br></div><div>If I do the uuid_bridge after legB answer, then all is ok (obviously with no audio during progressing phase). </div><div><br></div><div><br></div><div>The log of my application is:</div><div><br></div>
<div><div>[ERROR] newacme.cpp:46 mycallback() Connected!</div><div>[ERROR] newacme.cpp:65 mycallback() Inbound uuid = 8b2c39db-1ad9-489c-b72f-a92d4087bf99</div><div>[ERROR] newacme.cpp:68 mycallback() create_uuid: 394167aa-2811-4fcd-95c9-85576bdd9a7a</div>
<div>[ERROR] newacme.cpp:89 mycallback() bgapi originate [origination_uuid=394167aa-2811-4fcd-95c9-85576bdd9a7a]sofia/external/xxxx@yyyy &park()</div><div>[ERROR] newacme.cpp:91 mycallback() Job-ID: 1c654ac2-c22d-418f-9fad-bb6b6b35aeff</div>
<div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_UUID]</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_OUTGOING]</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_ORIGINATE]</div>
<div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_STATE]</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_CALLSTATE]</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_STATE]</div>
<div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_STATE]</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CALL_UPDATE]</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CODEC]</div>
<div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CODEC]</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_CALLSTATE]</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_PROGRESS_MEDIA]</div>
<div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_STATE]</div><div>[ERROR] newacme.cpp:112 mycallback() Got an event: [BACKGROUND_JOB] - [1c654ac2-c22d-418f-9fad-bb6b6b35aeff]</div><div>[ERROR] newacme.cpp:119 mycallback() bgapi uuid_bridge 8b2c39db-1ad9-489c-b72f-a92d4087bf99 394167aa-2811-4fcd-95c9-85576bdd9a7a</div>
<div>[ERROR] newacme.cpp:123 mycallback() Job-ID: 0d43cffe-fdc6-4a13-97e6-aeee199c45d5</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_EXECUTE]</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_PARK]</div>
<div>[ERROR] newacme.cpp:112 mycallback() Got an event: [BACKGROUND_JOB] - [0d43cffe-fdc6-4a13-97e6-aeee199c45d5]</div><div>[ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] - [CHANNEL_EXECUTE]</div><div>[ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] - [CHANNEL_CALLSTATE]</div>
<div>[ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] - [CHANNEL_PROGRESS_MEDIA]</div><div>[ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] - [CHANNEL_EXECUTE_COMPLETE]</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CALL_UPDATE]</div>
<div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_CALLSTATE]</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_ANSWER]</div><div>[ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] - [CHANNEL_EXECUTE]</div>
<div>[ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] - [CHANNEL_CALLSTATE]</div><div>[ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] - [CHANNEL_ANSWER]</div><div>[ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] - [CHANNEL_EXECUTE_COMPLETE]</div>
<div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_CALLSTATE]</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_HANGUP]</div><div>[ERROR] newacme.cpp:160 mycallback() hangup</div>
<div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_UNPARK]</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_EXECUTE_COMPLETE]</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_STATE]</div>
<div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_STATE]</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_HANGUP_COMPLETE]</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_DESTROY]</div>
<div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_CALLSTATE]</div><div>[ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND] - [CHANNEL_STATE]</div><div>[ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] - [CHANNEL_EXECUTE]</div>
<div>[ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] - [CHANNEL_CALLSTATE]</div><div>[ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] - [CHANNEL_HANGUP]</div><div>[ERROR] newacme.cpp:171 mycallback() hangup</div>
<div>[ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] - [CHANNEL_EXECUTE_COMPLETE]</div><div>[ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] - [CHANNEL_UNPARK]</div><div>[ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] - [CHANNEL_EXECUTE_COMPLETE]</div>
<div>[ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND] - [CHANNEL_STATE]</div><div>[ERROR] newacme.cpp:184 mycallback() End.</div></div><div><br></div><div><br></div><div>Stephen</div><div><br></div><div><br><div class="gmail_quote">
On Tue, Feb 15, 2011 at 1:14 AM, Anthony Minessale <span dir="ltr"><<a href="mailto:anthony.minessale@gmail.com">anthony.minessale@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
if you do originate without ignore_early_media=true set it will end<br>
the soonest possible where it's suitable for a bridge.<br>
so that is the best bet to wait for originate to end.<br>
<div><div></div><div class="h5"><br>
<br>
On Mon, Feb 14, 2011 at 6:11 PM, Stephen Wilde <<a href="mailto:wstephen80@gmail.com">wstephen80@gmail.com</a>> wrote:<br>
> Ok, now I'm doing bridge when I receive "CHANNEL_ANSWER" or<br>
> "CHANNEL_PROGRESS_MEDIA" on outbound leg but you say that I have wait that<br>
> "originate has ended": you mean that I have to wait for "BACKGROUND_JOB"<br>
> event related to my "bgapi originate ... &park"?<br>
> I'm already doing "uuid_bridge <inbound_uuid> <outbound_uuid>".<br>
> I'll try also with intercept and inline originate. Thank you!<br>
> Stephen<br>
><br>
> On Tue, Feb 15, 2011 at 12:53 AM, Anthony Minessale<br>
> <<a href="mailto:anthony.minessale@gmail.com">anthony.minessale@gmail.com</a>> wrote:<br>
>><br>
>> you need to make sure originate has ended on the outbound leg before<br>
>> you use it in a bridge etc.<br>
>> you also need to supply the inbound leg first in uuid_bridge if that<br>
>> is something you want to do.<br>
>><br>
>> Easier would be to originate the B leg to park inline and tell A leg<br>
>> to execute intercept on the B leg uuid.<br>
>><br>
>><br>
>><br>
>> On Mon, Feb 14, 2011 at 5:44 PM, Stephen Wilde <<a href="mailto:wstephen80@gmail.com">wstephen80@gmail.com</a>><br>
>> wrote:<br>
>> > Sorry but I have missed something.<br>
>> > I know that I can solve this problem directly in dialplan with a bridge<br>
>> > but<br>
>> > what I'm doing is an "Freeswitch ESL learning" because I have to port<br>
>> > some<br>
>> > application in Freeswitch and I'm learning how to implement some<br>
>> > functionality.<br>
>> > For me it's important to take control of both inbound/outbound in full<br>
>> > async<br>
>> > way and I have the necessity to do the complete call control.<br>
>> > I'm not sure but to me it seems that with a normal bridge I lose the<br>
>> > control<br>
>> > of two sessions, for example, an outbound answer is propagated by bridge<br>
>> > application as inbound answer.<br>
>> > What I want to do is an audio bridging so my application can take<br>
>> > control of<br>
>> > "signaling bridging".<br>
>> ><br>
>> > I'm wrong? There are other way to do that?<br>
>> > Stephen<br>
>> > On Tue, Feb 15, 2011 at 12:19 AM, Michael Collins <<a href="mailto:msc@freeswitch.org">msc@freeswitch.org</a>><br>
>> > wrote:<br>
>> >><br>
>> >> My head is spinning after reading this email. :)<br>
>> >> It sounds like you just need a simple bridge from the incoming leg to<br>
>> >> the<br>
>> >> outgoing leg. Can you pre_answer the A leg then execute a good<br>
>> >> old-fashioned<br>
>> >> bridge to the b-leg?<br>
>> >> -MC<br>
>> >> On Mon, Feb 14, 2011 at 4:57 PM, Stephen Wilde <<a href="mailto:wstephen80@gmail.com">wstephen80@gmail.com</a>><br>
>> >> wrote:<br>
>> >>><br>
>> >>> The problem I have is to propagate the audio coming from an<br>
>> >>> "originated"<br>
>> >>> outbound session to the inbound session when the outbound is in the<br>
>> >>> PROGRESS<br>
>> >>> MEDIA phase.<br>
>> >>> When my application receives the "CHANNEL_PROGRESS_MEDIA" event from<br>
>> >>> outbound session I can do a "pre_answer" on inbound session but I'm<br>
>> >>> not<br>
>> >>> capable to do an audio bridge.<br>
>> >>> I have tried with "uuid_bridge <outbound_uuid> <inbound_uuid>" with no<br>
>> >>> result probably because this api requires that at least one session<br>
>> >>> must be<br>
>> >>> answered.<br>
>> >>> I don't want to answer to the inbound session to propagate the<br>
>> >>> outbound<br>
>> >>> progressing media but I want to answer to inbound only on outbound<br>
>> >>> answer.<br>
>> >>> Any way to do that?<br>
>> >>> Stephen<br>
>> >>> _______________________________________________<br>
>> >>> FreeSWITCH-users mailing list<br>
>> >>> <a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
>> >>> <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
>> >>><br>
>> >>> UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
>> >>> <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
>> >>><br>
>> >><br>
>> >><br>
>> >> _______________________________________________<br>
>> >> FreeSWITCH-users mailing list<br>
>> >> <a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
>> >> <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
>> >><br>
>> >> UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
>> >> <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
>> >><br>
>> ><br>
>> ><br>
>> > _______________________________________________<br>
>> > FreeSWITCH-users mailing list<br>
>> > <a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
>> > <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
>> > UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
>> > <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
>> ><br>
>> ><br>
>><br>
>><br>
>><br>
>> --<br>
>> Anthony Minessale II<br>
>><br>
>> FreeSWITCH <a href="http://www.freeswitch.org/" target="_blank">http://www.freeswitch.org/</a><br>
>> ClueCon <a href="http://www.cluecon.com/" target="_blank">http://www.cluecon.com/</a><br>
>> Twitter: <a href="http://twitter.com/FreeSWITCH_wire" target="_blank">http://twitter.com/FreeSWITCH_wire</a><br>
>><br>
>> AIM: anthm<br>
>> <a href="mailto:MSN%3Aanthony_minessale@hotmail.com">MSN:anthony_minessale@hotmail.com</a><br>
>> GTALK/JABBER/<a href="mailto:PAYPAL%3Aanthony.minessale@gmail.com">PAYPAL:anthony.minessale@gmail.com</a><br>
>> IRC: <a href="http://irc.freenode.net" target="_blank">irc.freenode.net</a> #freeswitch<br>
>><br>
>> FreeSWITCH Developer Conference<br>
>> <a href="mailto:sip%3A888@conference.freeswitch.org">sip:888@conference.freeswitch.org</a><br>
>> <a href="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org">googletalk:conf+888@conference.freeswitch.org</a><br>
>> pstn:+19193869900<br>
>><br>
>> _______________________________________________<br>
>> FreeSWITCH-users mailing list<br>
>> <a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
>> <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
>> UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
>> <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
><br>
><br>
> _______________________________________________<br>
> FreeSWITCH-users mailing list<br>
> <a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
> <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
> UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
> <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
><br>
><br>
<br>
<br>
<br>
--<br>
Anthony Minessale II<br>
<br>
FreeSWITCH <a href="http://www.freeswitch.org/" target="_blank">http://www.freeswitch.org/</a><br>
ClueCon <a href="http://www.cluecon.com/" target="_blank">http://www.cluecon.com/</a><br>
Twitter: <a href="http://twitter.com/FreeSWITCH_wire" target="_blank">http://twitter.com/FreeSWITCH_wire</a><br>
<br>
AIM: anthm<br>
<a href="mailto:MSN%3Aanthony_minessale@hotmail.com">MSN:anthony_minessale@hotmail.com</a><br>
GTALK/JABBER/<a href="mailto:PAYPAL%3Aanthony.minessale@gmail.com">PAYPAL:anthony.minessale@gmail.com</a><br>
IRC: <a href="http://irc.freenode.net" target="_blank">irc.freenode.net</a> #freeswitch<br>
<br>
FreeSWITCH Developer Conference<br>
<a href="mailto:sip%3A888@conference.freeswitch.org">sip:888@conference.freeswitch.org</a><br>
<a href="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org">googletalk:conf+888@conference.freeswitch.org</a><br>
pstn:+19193869900<br>
<br>
_______________________________________________<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
</div></div></blockquote></div><br></div></div>