<br><br><div class="gmail_quote">On Tue, Aug 16, 2011 at 8:21 PM, 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;">
supplying full or not will not change performance it just controls<br>
weather or not each socket has full control to do other event socket<br>
commands besides ones that relate to the specific channel.<br>
<br>
myevents is probably a touch more efficient than filtering on<br>
unique-id but its negligible.<br>
<br>
The best way to gain performance is to limit the number of events you<br>
subscribe to, to the bare necessity.<br></blockquote><div><br><br>understand, thanks for your response.<br><br>T.<br><br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div><div></div><div class="h5"><br>
<br>
<br>
On Tue, Aug 16, 2011 at 7:44 AM, Tihomir Culjaga &lt;<a href="mailto:tculjaga@gmail.com">tculjaga@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt; On Mon, Aug 15, 2011 at 6:30 PM, 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 must have something setup strangely cos it would definitely reduce<br>
&gt;&gt; your overall cps to use ESL but not down to 2 CPS.<br>
&gt;&gt;<br>
&gt;&gt; Did you look over the server stats like top etc and look for any<br>
&gt;&gt; misconfiguration?<br>
&gt;&gt;<br>
&gt; Hello Anthony, thanks for your response....<br>
&gt;<br>
&gt; yay, i found the cause .... testserver and FS were running on the same<br>
&gt; server. The server had just 1GB of RAM and of course ... by forking<br>
&gt; testserver (on 8 CPS) took all the remaining RAM ending to write into swap<br>
&gt; ... this triggered a domino effect on the entire server becoming less and<br>
&gt; less responsive as testserver started to run from swap!!!... yay .. really<br>
&gt; bad... didn&#39;t see it happen until i started nmon ... top/htop didn&#39;t make it<br>
&gt; in time to show this issue..<br>
&gt;<br>
&gt; anyhow, i moved testserver to another machine reaching 35 CPS ... really<br>
&gt; nice indeed.<br>
&gt;<br>
&gt;<br>
&gt; now, having a referent point (testserver) im trying to reach that 35 CPS<br>
&gt; with a java application.<br>
&gt;<br>
&gt; yes, i notices few issues :=)<br>
&gt;<br>
&gt; please check: <a href="http://pastebin.freeswitch.org/17052" target="_blank">http://pastebin.freeswitch.org/17052</a><br>
&gt;<br>
&gt;<br>
&gt; ------------------------------------snipp-----------------------------------<br>
&gt;<br>
&gt; Control: full<br>
&gt;<br>
&gt;<br>
&gt; // here i subscribe to all events ... well not good idea but its a start<br>
&gt; events plain all<br>
&gt;<br>
&gt; Content-Type: command/reply<br>
&gt; Reply-Text: +OK event listener enabled plain<br>
&gt;<br>
&gt; //and here i do a filter per uuid<br>
&gt; filter Unique-ID f7a7b97b-df96-41f3-a6a3-fdf24350a45c<br>
&gt;<br>
&gt; Content-Type: command/reply<br>
&gt; Reply-Text: +OK filter added.<br>
&gt; [Unique-ID]=[f7a7b97b-df96-41f3-a6a3-fdf24350a45c]<br>
&gt;<br>
&gt; linger<br>
&gt;<br>
&gt; Content-Type: command/reply<br>
&gt; Reply-Text: +OK will linger<br>
&gt;<br>
&gt;<br>
&gt; // here i send answer in sync mode ( i could change it into async)<br>
&gt; sendmsg<br>
&gt; call-command: execute<br>
&gt; execute-app-name: answer<br>
&gt; event-lock: true<br>
&gt;<br>
&gt; Content-Type: command/reply<br>
&gt; Reply-Text: +OK<br>
&gt;<br>
&gt; Content-Length: 1805<br>
&gt; Content-Type: text/event-plain<br>
&gt;<br>
&gt;<br>
&gt; --------------------------------------------------------------------------------<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; so my questions:<br>
&gt;<br>
&gt; if i use &lt;action application=&quot;socket&quot; data=&quot;<a href="http://192.168.254.99:8084" target="_blank">192.168.254.99:8084</a> async<br>
&gt; full&quot;/&gt; and if i subscribe to &quot;myevents&quot; i don&#39;t need to set a filter on<br>
&gt; uuid and i could gain performance.<br>
&gt; if i use &lt;action application=&quot;socket&quot; data=&quot;<a href="http://192.168.254.99:8084" target="_blank">192.168.254.99:8084</a> async&quot;/&gt;  i<br>
&gt; will be getting events for the call in question only... so no special<br>
&gt; filters needed and i could limit the number of events im subscribing<br>
&gt;<br>
&gt;<br>
&gt; what is a better approach in a matter of performance ?<br>
&gt; What do i loose/gain by using async full vs async mode ?<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Thanks for your answer,<br>
&gt; Tihomir.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Thu, Aug 11, 2011 at 6:56 PM, Tihomir Culjaga &lt;<a href="mailto:tculjaga@gmail.com">tculjaga@gmail.com</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt; &gt; is there any other method than esl to controll calls on FS from an<br>
&gt;&gt; &gt; eternal<br>
&gt;&gt; &gt; application?<br>
&gt;&gt; &gt; will mod_curl or mod_xml_curl get better performance?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; T.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Fri, Aug 12, 2011 at 1:33 AM, Tihomir Culjaga &lt;<a href="mailto:tculjaga@gmail.com">tculjaga@gmail.com</a>&gt;<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Hi Anthony, thanks for your response ...<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; this is what i have:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;         esl_filter(&amp;handle, &quot;unique-id&quot;,<br>
&gt;&gt; &gt;&gt; esl_event_get_header(handle.info_event, &quot;caller-unique-id&quot;));<br>
&gt;&gt; &gt;&gt;         esl_events(&amp;handle, ESL_EVENT_TYPE_PLAIN, &quot;CHANNEL_DATA<br>
&gt;&gt; &gt;&gt; CHANNEL_EXECUTE_COMPLETE CHANNEL_HANGUP&quot;);<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; what do you suggest i put there ?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; is the inbound method less costly ?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I modified testserver.c just a bit...<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; #include &lt;sys/types.h&gt;  /* include this before any other sys headers */<br>
&gt;&gt; &gt;&gt; #include &lt;sys/wait.h&gt;   /* header for waitpid() and various macros */<br>
&gt;&gt; &gt;&gt; #include &lt;signal.h&gt;     /* header for signal functions */<br>
&gt;&gt; &gt;&gt; #include &lt;stdio.h&gt;      /* header for fprintf() */<br>
&gt;&gt; &gt;&gt; #include &lt;unistd.h&gt;     /* header for fork() */<br>
&gt;&gt; &gt;&gt; #include &lt;stdlib.h&gt;<br>
&gt;&gt; &gt;&gt; #include &lt;esl.h&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; void sig_chld(int);     /* prototype for our SIGCHLD handler */<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; static void mycallback(esl_socket_t server_sock, esl_socket_t<br>
&gt;&gt; &gt;&gt; client_sock,<br>
&gt;&gt; &gt;&gt; struct sockaddr_in *addr)<br>
&gt;&gt; &gt;&gt; {<br>
&gt;&gt; &gt;&gt;         esl_handle_t handle = {{0}};<br>
&gt;&gt; &gt;&gt;         int done = 0;<br>
&gt;&gt; &gt;&gt;         esl_status_t status;<br>
&gt;&gt; &gt;&gt;         time_t exp = 0;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;         if (fork() != 0) {<br>
&gt;&gt; &gt;&gt;                 close(client_sock);<br>
&gt;&gt; &gt;&gt;                 return;<br>
&gt;&gt; &gt;&gt;         }<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;         esl_attach_handle(&amp;handle, client_sock, addr);<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;         esl_log(ESL_LOG_INFO, &quot;Connected! %d\n&quot;, handle.sock);<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;         esl_filter(&amp;handle, &quot;unique-id&quot;,<br>
&gt;&gt; &gt;&gt; esl_event_get_header(handle.info_event, &quot;caller-unique-id&quot;));<br>
&gt;&gt; &gt;&gt;         esl_events(&amp;handle, ESL_EVENT_TYPE_PLAIN, &quot;CHANNEL_DATA<br>
&gt;&gt; &gt;&gt; CHANNEL_EXECUTE_COMPLETE CHANNEL_HANGUP&quot;);<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;         esl_send_recv(&amp;handle, &quot;linger&quot;);<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;         esl_execute(&amp;handle, &quot;answer&quot;, NULL, NULL);<br>
&gt;&gt; &gt;&gt;         //esl_execute(&amp;handle, &quot;conference&quot;, &quot;3000@default&quot;, NULL);<br>
&gt;&gt; &gt;&gt;         esl_execute(&amp;handle, &quot;playback&quot;,<br>
&gt;&gt; &gt;&gt; &quot;/home/tculjaga/myWavFile.wav&quot;,<br>
&gt;&gt; &gt;&gt; NULL);<br>
&gt;&gt; &gt;&gt;         //esl_execute(&amp;handle, &quot;sleep&quot;, &quot;1000&quot;, NULL);<br>
&gt;&gt; &gt;&gt;         //esl_execute(&amp;handle, &quot;hangup&quot;, NULL, NULL);<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;         while((status = esl_recv_timed(&amp;handle, 1000)) != ESL_FAIL) {<br>
&gt;&gt; &gt;&gt;                 if (done) {<br>
&gt;&gt; &gt;&gt;                         if (time(NULL) &gt;= exp) {<br>
&gt;&gt; &gt;&gt;                                 break;<br>
&gt;&gt; &gt;&gt;                         }<br>
&gt;&gt; &gt;&gt;                 } else if (status == ESL_SUCCESS) {<br>
&gt;&gt; &gt;&gt;                         const char *type =<br>
&gt;&gt; &gt;&gt; esl_event_get_header(handle.last_event, &quot;content-type&quot;);<br>
&gt;&gt; &gt;&gt;                         if (type &amp;&amp; !strcasecmp(type,<br>
&gt;&gt; &gt;&gt; &quot;text/disconnect-notice&quot;)) {<br>
&gt;&gt; &gt;&gt;                                 const char *dispo =<br>
&gt;&gt; &gt;&gt; esl_event_get_header(handle.last_event, &quot;content-disposition&quot;);<br>
&gt;&gt; &gt;&gt;                                 esl_log(ESL_LOG_INFO, &quot;Got a<br>
&gt;&gt; &gt;&gt; disconnection<br>
&gt;&gt; &gt;&gt; notice dispostion: [%s]\n&quot;, dispo ? dispo : &quot;&quot;);<br>
&gt;&gt; &gt;&gt;                                 if (!strcmp(dispo, &quot;linger&quot;)) {<br>
&gt;&gt; &gt;&gt;                                         done = 1;<br>
&gt;&gt; &gt;&gt;                                         esl_log(ESL_LOG_INFO, &quot;Waiting<br>
&gt;&gt; &gt;&gt; 5<br>
&gt;&gt; &gt;&gt; seconds for any remaining events.\n&quot;);<br>
&gt;&gt; &gt;&gt;                                         exp = time(NULL) + 5;<br>
&gt;&gt; &gt;&gt;                                 }<br>
&gt;&gt; &gt;&gt;                         }<br>
&gt;&gt; &gt;&gt;                 }<br>
&gt;&gt; &gt;&gt;         }<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;         esl_log(ESL_LOG_INFO, &quot;Disconnected! %d\n&quot;, handle.sock);<br>
&gt;&gt; &gt;&gt;         esl_disconnect(&amp;handle);<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;         close(client_sock);<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;         _exit(0);<br>
&gt;&gt; &gt;&gt; }<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; /*<br>
&gt;&gt; &gt;&gt;  * The signal handler function -- only gets called when a SIGCHLD<br>
&gt;&gt; &gt;&gt;  * is received, ie when a child terminates<br>
&gt;&gt; &gt;&gt;  */<br>
&gt;&gt; &gt;&gt; void sig_chld(int signo)<br>
&gt;&gt; &gt;&gt; {<br>
&gt;&gt; &gt;&gt;     int status;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;     /* Wait for any child without blocking */<br>
&gt;&gt; &gt;&gt;     if (waitpid(-1, &amp;status, WNOHANG) &lt; 0)<br>
&gt;&gt; &gt;&gt;     {<br>
&gt;&gt; &gt;&gt;         /*<br>
&gt;&gt; &gt;&gt;          * calling standard I/O functions like fprintf() in a<br>
&gt;&gt; &gt;&gt;          * signal handler is not recommended, but probably OK<br>
&gt;&gt; &gt;&gt;          * in toy programs like this one.<br>
&gt;&gt; &gt;&gt;          */<br>
&gt;&gt; &gt;&gt;         fprintf(stderr, &quot;waitpid failed\n&quot;);<br>
&gt;&gt; &gt;&gt;         return;<br>
&gt;&gt; &gt;&gt;     }<br>
&gt;&gt; &gt;&gt; }<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; int main(void)<br>
&gt;&gt; &gt;&gt; {<br>
&gt;&gt; &gt;&gt;         struct sigaction act;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;         /* Assign sig_chld as our SIGCHLD handler */<br>
&gt;&gt; &gt;&gt;         act.sa_handler = sig_chld;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;         /* We don&#39;t want to block any other signals in this example */<br>
&gt;&gt; &gt;&gt;         sigemptyset(&amp;act.sa_mask);<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;         /*<br>
&gt;&gt; &gt;&gt;          * We&#39;re only interested in children that have terminated, not<br>
&gt;&gt; &gt;&gt; ones<br>
&gt;&gt; &gt;&gt;          * which have been stopped (eg user pressing control-Z at<br>
&gt;&gt; &gt;&gt; terminal)<br>
&gt;&gt; &gt;&gt;          */<br>
&gt;&gt; &gt;&gt;         act.sa_flags = SA_NOCLDSTOP;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;         /*<br>
&gt;&gt; &gt;&gt;          * Make these values effective. If we were writing a real<br>
&gt;&gt; &gt;&gt;          * application, we would probably save the old value instead of<br>
&gt;&gt; &gt;&gt;          * passing NULL.<br>
&gt;&gt; &gt;&gt;          */<br>
&gt;&gt; &gt;&gt; /*      if (sigaction(SIGCHLD, &amp;act, NULL) &lt; 0)<br>
&gt;&gt; &gt;&gt;         {<br>
&gt;&gt; &gt;&gt;                 fprintf(stderr, &quot;sigaction failed\n&quot;);<br>
&gt;&gt; &gt;&gt;                 return 1;<br>
&gt;&gt; &gt;&gt;         }<br>
&gt;&gt; &gt;&gt; */<br>
&gt;&gt; &gt;&gt;         signal(SIGCHLD, SIG_IGN);<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;         esl_global_set_default_logger(0);<br>
&gt;&gt; &gt;&gt;         esl_listen(&quot;localhost&quot;, 8088, mycallback);<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;         return 0;<br>
&gt;&gt; &gt;&gt; }<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; On Thu, Aug 11, 2011 at 9:59 PM, Anthony Minessale<br>
&gt;&gt; &gt;&gt; &lt;<a href="mailto:anthony.minessale@gmail.com">anthony.minessale@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; try removing the filter and event subscriptions<br>
&gt;&gt; &gt;&gt;&gt; it&#39;s costly to consume all of the events especially at 75cps.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; On Thu, Aug 11, 2011 at 5:23 AM, Tihomir Culjaga &lt;<a href="mailto:tculjaga@gmail.com">tculjaga@gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt;&gt; wrote:<br>
&gt;&gt; &gt;&gt;&gt; &gt; hello,<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; im wondering how much performance do we loose when using ESL instead<br>
&gt;&gt; &gt;&gt;&gt; &gt; of<br>
&gt;&gt; &gt;&gt;&gt; &gt; running it via dialplan?<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; without ESL with a fine tuned FS and a short dialplan ( answer,<br>
&gt;&gt; &gt;&gt;&gt; &gt; playback<br>
&gt;&gt; &gt;&gt;&gt; &gt; like 20 seconds file, hangup ) im able to service 75 CPS. On the<br>
&gt;&gt; &gt;&gt;&gt; &gt; same<br>
&gt;&gt; &gt;&gt;&gt; &gt; FS,<br>
&gt;&gt; &gt;&gt;&gt; &gt; when i use ESL to answer the call, playback the same file and<br>
&gt;&gt; &gt;&gt;&gt; &gt; hangup,<br>
&gt;&gt; &gt;&gt;&gt; &gt; im not<br>
&gt;&gt; &gt;&gt;&gt; &gt; able to run more than 2 CPS... this is a huge impact and i really<br>
&gt;&gt; &gt;&gt;&gt; &gt; can&#39;t<br>
&gt;&gt; &gt;&gt;&gt; &gt; believe it.<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; I&#39;m using event-socket outbound e.g.:<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; &lt;action application=&quot;socket&quot; data=&quot;<a href="http://127.0.0.1:8088" target="_blank">127.0.0.1:8088</a> async full&quot;/&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; my extension looks like:<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; &lt;extension name=&quot;ESL_C&quot;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;   &lt;condition field=&quot;destination_number&quot; expression=&quot;^(6666)$&quot;&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;     &lt;action application=&quot;socket&quot; data=&quot;<a href="http://127.0.0.1:8088" target="_blank">127.0.0.1:8088</a> async full&quot;/&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;     &lt;action application=&quot;sleep&quot; data=&quot;1000&quot;/&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;     &lt;action application=&quot;hangup&quot;/&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;   &lt;/condition&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; &lt;/extension&gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; im using testserver from lib/esl/ and i just removed the conference<br>
&gt;&gt; &gt;&gt;&gt; &gt; command<br>
&gt;&gt; &gt;&gt;&gt; &gt; and added the playback one.... also i moved the esl_debug lvl to 0<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; anyhow, FS cannot run more than 2 CPS compared to 75 CPS when the<br>
&gt;&gt; &gt;&gt;&gt; &gt; playback<br>
&gt;&gt; &gt;&gt;&gt; &gt; is done from the dialplan.<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; Please, can someone give me a clue on what is going on?<br>
&gt;&gt; &gt;&gt;&gt; &gt; Maybe im doing something wrong?<br>
&gt;&gt; &gt;&gt;&gt; &gt; how to get maximum FS performance using ESL ?<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; Regards,<br>
&gt;&gt; &gt;&gt;&gt; &gt; Tihomir.<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt;&gt; &gt; Join us at ClueCon 2011, Aug 9-11, Chicago<br>
&gt;&gt; &gt;&gt;&gt; &gt; <a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a> 877-7-4ACLUE<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt; FreeSWITCH-users mailing list<br>
&gt;&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; &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; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&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; &gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; --<br>
&gt;&gt; &gt;&gt;&gt; Anthony Minessale II<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; FreeSWITCH <a href="http://www.freeswitch.org/" target="_blank">http://www.freeswitch.org/</a><br>
&gt;&gt; &gt;&gt;&gt; ClueCon <a href="http://www.cluecon.com/" target="_blank">http://www.cluecon.com/</a><br>
&gt;&gt; &gt;&gt;&gt; Twitter: <a href="http://twitter.com/FreeSWITCH_wire" target="_blank">http://twitter.com/FreeSWITCH_wire</a><br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; AIM: anthm<br>
&gt;&gt; &gt;&gt;&gt; <a href="mailto:MSN%3Aanthony_minessale@hotmail.com">MSN:anthony_minessale@hotmail.com</a><br>
&gt;&gt; &gt;&gt;&gt; GTALK/JABBER/<a href="mailto:PAYPAL%3Aanthony.minessale@gmail.com">PAYPAL:anthony.minessale@gmail.com</a><br>
&gt;&gt; &gt;&gt;&gt; IRC: <a href="http://irc.freenode.net" target="_blank">irc.freenode.net</a> #freeswitch<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; FreeSWITCH Developer Conference<br>
&gt;&gt; &gt;&gt;&gt; <a href="mailto:sip%3A888@conference.freeswitch.org">sip:888@conference.freeswitch.org</a><br>
&gt;&gt; &gt;&gt;&gt; <a href="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org">googletalk:conf+888@conference.freeswitch.org</a><br>
&gt;&gt; &gt;&gt;&gt; pstn:<a href="tel:%2B19193869900" value="+19193869900">+19193869900</a><br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt;&gt; Join us at ClueCon 2011, Aug 9-11, Chicago<br>
&gt;&gt; &gt;&gt;&gt; <a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a> 877-7-4ACLUE<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;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; Join us at ClueCon 2011, Aug 9-11, Chicago<br>
&gt;&gt; &gt; <a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a> 877-7-4ACLUE<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:<a href="tel:%2B19193869900" value="+19193869900">+19193869900</a><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:<a href="tel:%2B19193869900" value="+19193869900">+19193869900</a><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>