<div>Answer on event CHANNEL_CALLSTATE and channel call state RINGING.</div><br clear="all">Hynek<br><br>
<br><br><div class="gmail_quote">On Tue, Oct 25, 2011 at 3:49 PM, Nuwan Wijerathne <span dir="ltr">&lt;<a href="mailto:NuwanW@unifybusiness.co.uk">NuwanW@unifybusiness.co.uk</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div lang="EN-GB" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Hi,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> Thanks for the reply. Yes my application is listening on the port and I’m receiving events. However when I try to execute “answer” application it’s not working. I’m trying to execute “answer” application when I receive “CHANNEL_CREATE” event on inbound calls. Please see code below. Could you Please advise<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">using System;<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">using System.Collections.Generic;<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">using System.Linq;<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">using System.Text;<u></u><u></u></span></p><p class="MsoNormal">

<span style="font-size:11.0pt;color:#1F497D">using System.Threading;<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">using System.IO;<u></u><u></u></span></p><p class="MsoNormal">

<span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">namespace ESLTest<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">{<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">    public class Test<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">    {<u></u><u></u></span></p><p class="MsoNormal">

<span style="font-size:11.0pt;color:#1F497D">        private Dictionary&lt;string, Call&gt; CallsTable;<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">        <u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">        private Thread ThreadReader;<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">        <u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">        private ESLconnection eslConnection;<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">        private const int CONNECTED = 1;<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">        private const string server = &quot;localhost&quot;;<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">        private const string port = &quot;8021&quot;;<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">        private const string password = &quot;ClueCon&quot;;<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">        <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">        public Test()<u></u><u></u></span></p><p class="MsoNormal">

<span style="font-size:11.0pt;color:#1F497D">        {<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">            CallsTable = new Dictionary&lt;string, Call&gt;();<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">            Connect();<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">        }<u></u><u></u></span></p><p class="MsoNormal">

<span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">        private void Connect()<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">        {<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">            eslConnection = new ESLconnection(server, port, password);<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">            if (eslConnection.Connected().Equals( CONNECTED))<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">            {<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                Console.WriteLine(&quot;Conneected to FreeSwitch&quot;);<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                ThreadReader = new Thread(new ThreadStart(Read));<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                ThreadReader.Start();<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">            }<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">            else<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">            {<u></u><u></u></span></p><p class="MsoNormal">

<span style="font-size:11.0pt;color:#1F497D">                Console.WriteLine(&quot;Conneection Failure&quot;);<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">            }<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">        }<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">        private void Read()<u></u><u></u></span></p><p class="MsoNormal">

<span style="font-size:11.0pt;color:#1F497D">        {<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">            ESLevent eventHandle = eslConnection.SendRecv(&quot;event plain ALL&quot;);<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">            if (eventHandle == null)<u></u><u></u></span></p><p class="MsoNormal">

<span style="font-size:11.0pt;color:#1F497D">            {<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                Console.WriteLine(&quot;Error subscribing to all events&quot;);<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                return;<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">            }<u></u><u></u></span></p><p class="MsoNormal">

<span style="font-size:11.0pt;color:#1F497D">            else<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">            {<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                Console.WriteLine(&quot;Subscribed to all events&quot;);<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">            }<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">            while (true)<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">            {<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                eventHandle = eslConnection.RecvEvent();<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                string CallID = eventHandle.GetHeader(&quot;Unique-ID&quot;);<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                if (eventHandle.getType() == &quot;CHANNEL_CREATE&quot;)<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                {<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                    //Inbound call<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                    if (eventHandle.GetHeader(&quot;Call-Direction&quot;) == &quot;inbound&quot;)<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                    {<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                        CallsTable.Add(CallID, new Call(CallID));<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                        eslConnection.Execute(&quot;answer&quot;, null, null);<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                        Console.WriteLine(string.Format(&quot;{0} : Inbound CallID : {1}&quot;, eventHandle.getType(), CallID));<u></u><u></u></span></p><p class="MsoNormal">

<span style="font-size:11.0pt;color:#1F497D">                    }<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                }<u></u><u></u></span></p><p class="MsoNormal">
<span style="font-size:11.0pt;color:#1F497D">           }<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">    }<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">}<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Dialplan entry as follows,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p><p class="MsoNormal">

<span style="font-size:11.0pt;color:#1F497D">                &lt;extension name=&quot;intercept&quot;&gt;<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                     &lt;condition field=&quot;destination_number&quot; expression=&quot;^9$&quot;&gt;<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                            &lt;action application=&quot;socket&quot; data=&quot;<a href="http://127.0.0.1:8021" target="_blank">127.0.0.1:8021</a> async full&quot;/&gt;<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                    &lt;/condition&gt;<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">                &lt;/extension&gt;<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Thank you,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p>

<p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt">From:</span></b><span lang="EN-US" style="font-size:10.0pt"> <a href="mailto:freeswitch-users-bounces@lists.freeswitch.org" target="_blank">freeswitch-users-bounces@lists.freeswitch.org</a> [mailto:<a href="mailto:freeswitch-users-bounces@lists.freeswitch.org" target="_blank">freeswitch-users-bounces@lists.freeswitch.org</a>] <b>On Behalf Of </b>Michael Collins<br>

<b>Sent:</b> 24 October 2011 18:14<br><b>To:</b> FreeSWITCH Users Help<br><b>Subject:</b> Re: [Freeswitch-users] event socket<u></u><u></u></span></p><div><div></div><div class="h5"><p class="MsoNormal"><u></u> <u></u></p>

<p class="MsoNormal">Please confirm: are you sending the call to the &quot;socket&quot; application in your dialplan? If so, then your ESL app needs to be listening on the TCP port specified. See the examples here: <a href="http://wiki.freeswitch.org/wiki/Event_Socket_Outbound#Examples" target="_blank">http://wiki.freeswitch.org/wiki/Event_Socket_Outbound#Examples</a><u></u><u></u></p>

<div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">-MC<u></u><u></u></p><div><p class="MsoNormal">On Mon, Oct 24, 2011 at 8:50 AM, Nuwan Wijerathne &lt;<a href="mailto:NuwanW@unifybusiness.co.uk" target="_blank">NuwanW@unifybusiness.co.uk</a>&gt; wrote:<u></u><u></u></p>

<div><div><p class="MsoNormal">Hi,<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">I’m trying to build an IVR application around freeswtich. I’m using freeswitch event socket in C#. I’m intercepting inbound calls in the dial plan and sending them to my application via outbound socket. Could someone please explain how to execute “answer” application through event socket. <u></u><u></u></p>

<p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Eg – I’m sending the command as below and it’s not working.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">ESLConnection eslConnection = new ESLConnection(server, port, password)<u></u><u></u></p>

<p class="MsoNormal">ESLEvent eventHandle = eslConnection.SendRecv(“event plain ALL”);<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">eventHandle = eslConnection.RecvEvent();<u></u><u></u></p>

<p class="MsoNormal">string uniqueCallID = evenHandle.GetHeader(“Unique-ID”);<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal"><b><span style="color:#953735">eslConnection.Execute(“answer”, string.Empty, UniqueCallID);</span></b><u></u><u></u></p>

<p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">I believe I’m doing something wrong as I can’t find required information. Could someone please let me know where to find more information about freeswitch event socket in .Net. (Google not giving me required information)<u></u><u></u></p>

<p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Thank you,<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p></div></div><p class="MsoNormal" style="margin-bottom:12.0pt"><br><br>FreeSWITCH-users mailing list<br>

<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">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><u></u><u></u></p>

</div><p class="MsoNormal"><u></u> <u></u></p></div></div></div></div></div><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></blockquote></div><br>