<div dir="ltr"><div>Hi Sina,<br><br>Were you able to figure this one out? Also, I didn&#39;t see anywhere in this thread what the outbound leg would be connected to. For example, when you call out to the caller ID number received on the initial call, what will the other leg be connected to? Do you have a user or an IVR or what? Just curious. You can&#39;t make an outbound call without connecting that leg to something. <br><br></div>-MC<br><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jan 2, 2015 at 4:22 PM, Sina Owolabi <span dir="ltr">&lt;<a href="mailto:notify.sina@gmail.com" target="_blank">notify.sina@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">Hi Avi<br>
<br>
I&#39;m really sorry to bother you offlist again, but I am really, really stumped.<br>
This is my first time with lua or any kind of coding and I am<br>
scrambling to make amends for that.<br>
<br>
Could you please help me with some kind of example script I can use for this?<br>
<br>
On Thu, Jan 1, 2015 at 2:09 PM, Avi Marcus &lt;<a href="mailto:avi@avimarcus.net">avi@avimarcus.net</a>&gt; wrote:<br>
&gt; Once you hangup, unless you have zombie exec, the call ends and it won&#39;t<br>
&gt; transfer nor execute the lua script.<br>
&gt;<br>
&gt; Also, if you have the lua do the hangup, it can directly access all the<br>
&gt; channel variables itself.<br>
&gt;<br>
&gt; Alternatively, you can set a hangup hook and pass everything:<br>
&gt; &lt;action application=&quot;set&quot; data=&quot;api_hangup_hook=lua callback.lua<br>
&gt; ${effective_caller_id_number} ${destination_number}&quot;/&gt;<br>
&gt;<br>
&gt; -Avi<br>
&gt;<br>
&gt; On Thu, Jan 1, 2015 at 2:12 PM, Sina Owolabi &lt;<a href="mailto:notify.sina@gmail.com">notify.sina@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Avi,<br>
&gt;&gt;<br>
&gt;&gt; thanks and happy new year!<br>
&gt;&gt; I&#39;m trying to  using a public extension to receive the call, hangup<br>
&gt;&gt; and transfer to the extension that is actually doing the lua&#39;ing (so<br>
&gt;&gt; to speak):<br>
&gt;&gt;<br>
&gt;&gt; &lt;extension name=&quot;callback-caller1&quot;&gt;<br>
&gt;&gt;     &lt;condition field=&quot;${caller_id_number}&quot;<br>
&gt;&gt; expression=&quot;^0(\d{10})$&quot;require-nested=&quot;false&quot;&gt;<br>
&gt;&gt;        &lt;action application=&quot;set&quot;<br>
&gt;&gt; data=&quot;effective_caller_id_number=+123${1}&quot;/&gt;<br>
&gt;&gt;        &lt;action application=&quot;set&quot;<br>
&gt;&gt; data=&quot;effective_caller_id_name=+123${1}&quot;/&gt;<br>
&gt;&gt;     &lt;/condition&gt;<br>
&gt;&gt;     &lt;condition field=&quot;destination_number&quot; expression=&quot;^0123456(7)(8)$&quot;&gt;<br>
&gt;&gt;       &lt;action application=&quot;ring_ready&quot; /&gt;<br>
&gt;&gt;       &lt;action application=&quot;sleep&quot; data=&quot;3000&quot;/&gt;<br>
&gt;&gt;       &lt;action application=&quot;set&quot; data=&quot;ringback=%(2000, 4000, 440.0,<br>
&gt;&gt; 480.0)&quot;/&gt;<br>
&gt;&gt;       &lt;action application=&quot;hangup&quot; /&gt;<br>
&gt;&gt;       &lt;action application=&quot;transfer&quot; data=&quot;1213 XML default&quot;/&gt;<br>
&gt;&gt;    &lt;/condition&gt;<br>
&gt;&gt;<br>
&gt;&gt; &lt;extension name=&quot;1213&quot;&gt;<br>
&gt;&gt;      &lt;condition field=&quot;destination_number&quot; expression=&quot;^1213$&quot;&gt;<br>
&gt;&gt;         &lt;action application=&quot;lua&quot; data=&quot;callback.lua<br>
&gt;&gt; ${effective_caller_id_number} ${destination_number}&quot;/&gt;<br>
&gt;&gt;      &lt;/condition<br>
&gt;&gt;<br>
&gt;&gt; Please is this the proper way to collect data from the first leg to<br>
&gt;&gt; pass to the lua script?<br>
&gt;&gt;<br>
&gt;&gt; On Wed, Dec 31, 2014 at 6:36 PM, Avi Marcus &lt;<a href="mailto:avi@avimarcus.net">avi@avimarcus.net</a>&gt; wrote:<br>
&gt;&gt; &gt; I&#39;ve used a lua script to grab the information (and make sure it&#39;s a<br>
&gt;&gt; &gt; valid<br>
&gt;&gt; &gt; callback), hangup, and then run:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; freeswitch.msleep(2000); --wait 2 seconds to make sure their side will<br>
&gt;&gt; &gt; actually have the call over<br>
&gt;&gt; &gt; api = freeswitch.API()<br>
&gt;&gt; &gt; api:execute(&quot;originate&quot;, your-dialstring)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; -Avi<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Wed, Dec 31, 2014 at 11:37 AM, Sina Owolabi &lt;<a href="mailto:notify.sina@gmail.com">notify.sina@gmail.com</a>&gt;<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Hi List!<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; FreeSWITCHNewbie here.<br>
&gt;&gt; &gt;&gt; Please can I have some guidance on how to setup call back?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I would like to be able to dial the DID attached to the SIP trunk<br>
&gt;&gt; &gt;&gt; Freeswitch is registered to, and then have freeSWITCH hang up the call<br>
&gt;&gt; &gt;&gt; and dial the caller id number back through any other SIP trunk<br>
&gt;&gt; &gt;&gt; FreeSWITCH Is registered with, but with the origination number set to<br>
&gt;&gt; &gt;&gt; the DID that the first call came through in the first place.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Please is this possible just through the dial plan?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Thanks for any help!<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br></blockquote></div><br></div></div></div></div>