I have tried to wait originate completition but the &quot;uuid_bridge&quot; doesn&#39;t works also in this case.<div><br><div>It seems that works only when at least one leg is answered so it&#39;s not possible to do the &quot;uuid_bridge&quot; during progressing phase also if the originate has ended (I don&#39;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 &quot;inbound_uuid&quot;</div>
<div><br></div><div>2. create a new &quot;outbound_uuid&quot;</div><div><br></div><div>3. do a &quot;bgapi originate&quot; using the new &quot;outbound_uuid&quot;</div><div><br></div><div>4. when the called phone is ringing, receive a &quot;CHANNEL_PROGRESS_MEDIA&quot; event on &quot;outbound_uuid&quot; and do a &quot;pre_answer&quot; on &quot;inbound_uuid&quot;</div>
<div><br></div><div>5. receive a &quot;CHANNEL_PROGRESS_MEDIA&quot; on &quot;inbound_uuid&quot;</div><div><br></div><div>6. receive a job completition event related to the &quot;originate&quot; so issue an &quot;uuid_bridge inbound_uuid outbound_uuid&quot;</div>
<div><br></div><div>7. when a job completition event related to &quot;uuid_bridge&quot; 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 &amp;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">&lt;<a href="mailto:anthony.minessale@gmail.com">anthony.minessale@gmail.com</a>&gt;</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&#39;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 &lt;<a href="mailto:wstephen80@gmail.com">wstephen80@gmail.com</a>&gt; wrote:<br>
&gt; Ok, now I&#39;m doing bridge when I receive &quot;CHANNEL_ANSWER&quot; or<br>
&gt; &quot;CHANNEL_PROGRESS_MEDIA&quot; on outbound leg but you say that I have wait that<br>
&gt; &quot;originate has ended&quot;: you mean that I have to wait for &quot;BACKGROUND_JOB&quot;<br>
&gt; event related to my &quot;bgapi originate ... &amp;park&quot;?<br>
&gt; I&#39;m already doing &quot;uuid_bridge &lt;inbound_uuid&gt; &lt;outbound_uuid&gt;&quot;.<br>
&gt; I&#39;ll try also with intercept and inline originate. Thank you!<br>
&gt; Stephen<br>
&gt;<br>
&gt; On Tue, Feb 15, 2011 at 12:53 AM, Anthony Minessale<br>
&gt; &lt;<a href="mailto:anthony.minessale@gmail.com">anthony.minessale@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; you need to make sure originate has ended on the outbound leg before<br>
&gt;&gt; you use it in a bridge etc.<br>
&gt;&gt; you also need to supply the inbound leg first in uuid_bridge if that<br>
&gt;&gt; is something you want to do.<br>
&gt;&gt;<br>
&gt;&gt; Easier would be to originate the B leg to park inline and tell A leg<br>
&gt;&gt; to execute intercept on the B leg uuid.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Mon, Feb 14, 2011 at 5:44 PM, Stephen Wilde &lt;<a href="mailto:wstephen80@gmail.com">wstephen80@gmail.com</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt; &gt; Sorry but I have missed something.<br>
&gt;&gt; &gt; I know that I can solve this problem directly in dialplan with a bridge<br>
&gt;&gt; &gt; but<br>
&gt;&gt; &gt; what I&#39;m doing is an &quot;Freeswitch ESL learning&quot; because I have to port<br>
&gt;&gt; &gt; some<br>
&gt;&gt; &gt; application in Freeswitch and I&#39;m learning how to implement some<br>
&gt;&gt; &gt; functionality.<br>
&gt;&gt; &gt; For me it&#39;s important to take control of both inbound/outbound in full<br>
&gt;&gt; &gt; async<br>
&gt;&gt; &gt; way and I have the necessity to do the complete call control.<br>
&gt;&gt; &gt; I&#39;m not sure but to me it seems that with a normal bridge I lose the<br>
&gt;&gt; &gt; control<br>
&gt;&gt; &gt; of two sessions, for example, an outbound answer is propagated by bridge<br>
&gt;&gt; &gt; application as inbound answer.<br>
&gt;&gt; &gt; What I want to do is an audio bridging so my application can take<br>
&gt;&gt; &gt; control of<br>
&gt;&gt; &gt; &quot;signaling bridging&quot;.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I&#39;m wrong? There are other way to do that?<br>
&gt;&gt; &gt; Stephen<br>
&gt;&gt; &gt; On Tue, Feb 15, 2011 at 12:19 AM, Michael Collins &lt;<a href="mailto:msc@freeswitch.org">msc@freeswitch.org</a>&gt;<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; My head is spinning after reading this email. :)<br>
&gt;&gt; &gt;&gt; It sounds like you just need a simple bridge from the incoming leg to<br>
&gt;&gt; &gt;&gt; the<br>
&gt;&gt; &gt;&gt; outgoing leg. Can you pre_answer the A leg then execute a good<br>
&gt;&gt; &gt;&gt; old-fashioned<br>
&gt;&gt; &gt;&gt; bridge to the b-leg?<br>
&gt;&gt; &gt;&gt; -MC<br>
&gt;&gt; &gt;&gt; On Mon, Feb 14, 2011 at 4:57 PM, Stephen Wilde &lt;<a href="mailto:wstephen80@gmail.com">wstephen80@gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt; wrote:<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; The problem I have is to propagate the audio coming from an<br>
&gt;&gt; &gt;&gt;&gt; &quot;originated&quot;<br>
&gt;&gt; &gt;&gt;&gt; outbound session to the inbound session when the outbound is in the<br>
&gt;&gt; &gt;&gt;&gt; PROGRESS<br>
&gt;&gt; &gt;&gt;&gt; MEDIA phase.<br>
&gt;&gt; &gt;&gt;&gt; When my application receives the &quot;CHANNEL_PROGRESS_MEDIA&quot; event from<br>
&gt;&gt; &gt;&gt;&gt; outbound session I can do a &quot;pre_answer&quot; on inbound session but I&#39;m<br>
&gt;&gt; &gt;&gt;&gt; not<br>
&gt;&gt; &gt;&gt;&gt; capable to do an audio bridge.<br>
&gt;&gt; &gt;&gt;&gt; I have tried with &quot;uuid_bridge &lt;outbound_uuid&gt; &lt;inbound_uuid&gt;&quot; with no<br>
&gt;&gt; &gt;&gt;&gt; result probably because this api requires that at least one session<br>
&gt;&gt; &gt;&gt;&gt; must be<br>
&gt;&gt; &gt;&gt;&gt; answered.<br>
&gt;&gt; &gt;&gt;&gt; I don&#39;t want to answer to the inbound session to propagate the<br>
&gt;&gt; &gt;&gt;&gt; outbound<br>
&gt;&gt; &gt;&gt;&gt; progressing media but I want to answer to inbound only on outbound<br>
&gt;&gt; &gt;&gt;&gt; answer.<br>
&gt;&gt; &gt;&gt;&gt; Any way to do that?<br>
&gt;&gt; &gt;&gt;&gt; Stephen<br>
&gt;&gt; &gt;&gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt;&gt; FreeSWITCH-users mailing list<br>
&gt;&gt; &gt;&gt;&gt; <a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
&gt;&gt; &gt;&gt;&gt; <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
&gt;&gt; &gt;&gt;&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; FreeSWITCH-users mailing list<br>
&gt;&gt; &gt;&gt; <a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
&gt;&gt; &gt;&gt; <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
&gt;&gt; &gt;&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; FreeSWITCH-users mailing list<br>
&gt;&gt; &gt; <a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
&gt;&gt; &gt; <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
&gt;&gt; &gt; UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
&gt;&gt; &gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Anthony Minessale II<br>
&gt;&gt;<br>
&gt;&gt; FreeSWITCH <a href="http://www.freeswitch.org/" target="_blank">http://www.freeswitch.org/</a><br>
&gt;&gt; ClueCon <a href="http://www.cluecon.com/" target="_blank">http://www.cluecon.com/</a><br>
&gt;&gt; Twitter: <a href="http://twitter.com/FreeSWITCH_wire" target="_blank">http://twitter.com/FreeSWITCH_wire</a><br>
&gt;&gt;<br>
&gt;&gt; AIM: anthm<br>
&gt;&gt; <a href="mailto:MSN%3Aanthony_minessale@hotmail.com">MSN:anthony_minessale@hotmail.com</a><br>
&gt;&gt; GTALK/JABBER/<a href="mailto:PAYPAL%3Aanthony.minessale@gmail.com">PAYPAL:anthony.minessale@gmail.com</a><br>
&gt;&gt; IRC: <a href="http://irc.freenode.net" target="_blank">irc.freenode.net</a> #freeswitch<br>
&gt;&gt;<br>
&gt;&gt; FreeSWITCH Developer Conference<br>
&gt;&gt; <a href="mailto:sip%3A888@conference.freeswitch.org">sip:888@conference.freeswitch.org</a><br>
&gt;&gt; <a href="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org">googletalk:conf+888@conference.freeswitch.org</a><br>
&gt;&gt; pstn:+19193869900<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; FreeSWITCH-users mailing list<br>
&gt;&gt; <a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
&gt;&gt; <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
&gt;&gt; UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
&gt;&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; FreeSWITCH-users mailing list<br>
&gt; <a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
&gt; <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
&gt; UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt;<br>
&gt;<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>