Don&#39;t we have a PIN validation routine in mod_voicemail? Alternatively, one could write a semi-generic PIN validation Lua script relatively easily. If no one does it prior to me getting to chapter 7 of the FS book re-write then I will consider doing it as an example script.<br>
<br>-MC<br><br><div class="gmail_quote">On Wed, Sep 19, 2012 at 2:12 PM, Ken Rice <span dir="ltr">&lt;<a href="mailto:krice@freeswitch.org" target="_blank">krice@freeswitch.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
If its extremely heavily loaded why not write an application to handle the<br>
pin collection and validation<br>
<br>
K<br>
<div class="im"><br>
<br>
On 9/19/12 3:31 PM, &quot;Emrah&quot; &lt;<a href="mailto:lists@kavun.ch">lists@kavun.ch</a>&gt; wrote:<br>
<br>
&gt; My example is far from being the best. Correct me if I am wrong, but abusing<br>
</div>&gt; of the logic I am using can heavily load the dialplan processing...<br>
<div class="HOEnZb"><div class="h5">&gt; MFC&#39;s idea to execute an extension sounds pretty sexy.<br>
&gt;<br>
&gt; Can my example have undesirable side effects? Obviously the var name can be<br>
&gt; something more unique.<br>
&gt;<br>
&gt; Cheers<br>
&gt; On Sep 19, 2012, at 4:19 PM, Emrah &lt;<a href="mailto:lists@kavun.ch">lists@kavun.ch</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; You are correct indeed.<br>
&gt;&gt; This was just to get an idea. If I want data from an external source, there<br>
&gt;&gt; are plenty of dialplan options, including ${api func()} to be a little<br>
&gt;&gt; suicidal. :P<br>
&gt;&gt; We can pretty much fall back on LUA, Perl, IVR, so on and so forth for<br>
&gt;&gt; anything and everything.<br>
&gt;&gt; For the purpose of my test case, my example seems to fit the bill and does<br>
&gt;&gt; the job.<br>
&gt;&gt;<br>
&gt;&gt; Cheers,<br>
&gt;&gt; Emrah<br>
&gt;&gt; On Sep 19, 2012, at 3:57 PM, Stanislav Sinyagin &lt;<a href="mailto:ssinyagin@yahoo.com">ssinyagin@yahoo.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; Emrah, I think an IVR menu would be much easier to handle and to maintain<br>
&gt;&gt;&gt; than what you;re trying to do.<br>
&gt;&gt;&gt; Or write a Lua script, then you&#39;re even more flexible in all the checkups.<br>
&gt;&gt;&gt; You can also look up the PIN in some external database instead of having it<br>
&gt;&gt;&gt; statically coded in XML<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; From: Emrah &lt;<a href="mailto:lists@kavun.ch">lists@kavun.ch</a>&gt;<br>
&gt;&gt;&gt; To: FreeSWITCH Users Help &lt;<a href="mailto:freeswitch-users@lists.freeswitch.org">freeswitch-users@lists.freeswitch.org</a>&gt;<br>
&gt;&gt;&gt; Sent: Wednesday, September 19, 2012 8:20 PM<br>
&gt;&gt;&gt; Subject: Re: [Freeswitch-users] How to force FS to execute?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; There is a valid case to me, and here it is Sir. :)<br>
&gt;&gt;&gt; &lt;extension name=&quot;pin test&quot;&gt;<br>
&gt;&gt;&gt; &lt;condition field=&quot;${pin}&quot; expression=&quot;^1234$&quot; break=&quot;on-true&quot;&gt;<br>
&gt;&gt;&gt; &lt;action application=&quot;log&quot; data=&quot;INFO Pin is ${pin}&quot; /&gt;<br>
&gt;&gt;&gt; &lt;action application=&quot;transfer&quot; data=&quot;3000 XML local&quot; /&gt;<br>
&gt;&gt;&gt; &lt;/condition&gt;<br>
&gt;&gt;&gt; &lt;condition field=&quot;${pin}&quot; expression=&quot;^\d{4}&quot; break=&quot;never&quot;&gt;<br>
&gt;&gt;&gt; &lt;action application=&quot;playback&quot; data=&quot;conference/conf-bad-pin.wav&quot; /&gt;<br>
&gt;&gt;&gt; &lt;action application=&quot;unset&quot; data=&quot;pin&quot; /&gt;<br>
&gt;&gt;&gt; &lt;/condition&gt;<br>
&gt;&gt;&gt; &lt;condition field=&quot;destination_number&quot; expression=&quot;^111$&quot; break=&quot;never&quot;&gt;<br>
&gt;&gt;&gt; &lt;action application=&quot;answer&quot;/&gt;<br>
&gt;&gt;&gt; &lt;action application=&quot;sleep&quot; data=&quot;1000&quot;/&gt;<br>
&gt;&gt;&gt; &lt;action application=&quot;read&quot; data=&quot;4 4 conference/conf-pin.wav pin 10000 #,*&quot;<br>
&gt;&gt;&gt; /&gt;<br>
&gt;&gt;&gt; &lt;action application=&quot;transfer&quot; data=&quot;111 XML local&quot; /&gt;<br>
&gt;&gt;&gt; &lt;/condition&gt;<br>
&gt;&gt;&gt; &lt;/extension&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I think I&#39;m starting to get the hang of this thing!<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; E<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Sep 19, 2012, at 12:22 PM, Michael Collins &lt;<a href="mailto:msc@freeswitch.org">msc@freeswitch.org</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; There is no valid case not to use transfer (or even execute_extension) in<br>
&gt;&gt;&gt;&gt; this scenario. Create a new file: conf/dialplan/check_pin.xml:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &lt;include&gt;<br>
&gt;&gt;&gt;&gt; &lt;context name=&quot;utility&quot;&gt;<br>
&gt;&gt;&gt;&gt;   &lt;extension name=&quot;Check PIN&quot;&gt;<br>
&gt;&gt;&gt;&gt;     &lt;condition field=&quot;destination_number&quot; expression=&quot;^check_pin$&quot;/&gt;<br>
&gt;&gt;&gt;&gt;     &lt;condition field=&quot;${pin}&quot; expression=&quot;^1234$&quot;&gt;<br>
&gt;&gt;&gt;&gt;       &lt;action application=&quot;transfer&quot; data =&quot;3000 XML local&quot; /&gt;<br>
&gt;&gt;&gt;&gt;       &lt;anti-action application=&quot;hangup&quot; data=&quot;Login Failed&quot;/&gt;<br>
&gt;&gt;&gt;&gt;     &lt;/condition&gt;<br>
&gt;&gt;&gt;&gt;   &lt;/extension&gt;<br>
&gt;&gt;&gt;&gt; &lt;/context&gt;<br>
&gt;&gt;&gt;&gt; &lt;/include&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Then just do this in your original extension that has the read app (note I<br>
&gt;&gt;&gt;&gt; changed the name of the extension for clarity):<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &lt;extension name=&quot;Get PIN from caller&quot;&gt;<br>
&gt;&gt;&gt;&gt; &lt;condition field=&quot;destination_number&quot; expression=&quot;^111$&quot; break=&quot;never&quot;&gt;<br>
&gt;&gt;&gt;&gt;   &lt;action application=&quot;answer&quot;/&gt;<br>
&gt;&gt;&gt;&gt;   &lt;action application=&quot;sleep&quot; data=&quot;1000&quot;/&gt;<br>
&gt;&gt;&gt;&gt;   &lt;action application=&quot;read&quot; data=&quot;4 4<br>
&gt;&gt;&gt;&gt; $${base_dir}/sounds/en/us/callie/conference/8000/conf-pin.wav pin 10000<br>
&gt;&gt;&gt;&gt; #,*&quot;/&gt;<br>
&gt;&gt;&gt;&gt;   &lt;action application=&quot;log&quot; data=&quot;INFO user entered &#39;${pin}&#39;&quot;/&gt;<br>
&gt;&gt;&gt;&gt;   &lt;action application=&quot;transfer&quot; data=&quot;check_pin XML utility&quot;/&gt;<br>
&gt;&gt;&gt;&gt; &lt;/condition&gt;<br>
&gt;&gt;&gt;&gt; &lt;/extension&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; That&#39;s all there is to it. If this method seems weird, or unusual, or<br>
&gt;&gt;&gt;&gt; abstract then too bad! :) It&#39;s a great way to keep things relatively simple<br>
&gt;&gt;&gt;&gt; while ensuring a level of security.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; -MC<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Wed, Sep 19, 2012 at 8:46 AM, Emrah &lt;<a href="mailto:lists@kavun.ch">lists@kavun.ch</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt; Naming an extension won&#39;t help for my transfer purpose.<br>
&gt;&gt;&gt;&gt; What I think  I will do is use the same 1 extension idea, but verify the<br>
&gt;&gt;&gt;&gt; existance of ${pin} before executing the read instruction.<br>
&gt;&gt;&gt;&gt; This way if ${pin} exists, it will execute one set of instructions, if it<br>
&gt;&gt;&gt;&gt; doesn&#39;t, it will execute the read app. Following the read app would just be<br>
&gt;&gt;&gt;&gt; an action to transfer the user to the same context and destination_number.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I hope what I tried to explain makes sense.<br>
&gt;&gt;&gt;&gt; On Sep 19, 2012, at 10:40 AM, Ken Rice &lt;<a href="mailto:krice@freeswitch.org">krice@freeswitch.org</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; You can call an extension whatever you want... It doesn&#39;t have to be a<br>
&gt;&gt;&gt;&gt;&gt; number... But using the separate context allows you to keep the<br>
&gt;&gt;&gt;&gt;&gt; destination<br>
&gt;&gt;&gt;&gt;&gt; number field in the CDR something same like that actual destination<br>
&gt;&gt;&gt;&gt;&gt; number...<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; On 9/19/12 7:25 AM, &quot;Emrah&quot; &lt;<a href="mailto:lists@kavun.ch">lists@kavun.ch</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; Is there a way to address an extension without assigning it to a<br>
&gt;&gt;&gt;&gt;&gt;&gt; destination_number? I don&#39;t want the extension to be reachable directly<br>
&gt;&gt;&gt;&gt;&gt;&gt; and<br>
&gt;&gt;&gt;&gt;&gt;&gt; would gladly avoid creating a dedicated context.<br>
&gt;&gt;&gt;&gt;&gt;&gt; Can I transfer a call to an extension that doesn&#39;t have a<br>
&gt;&gt;&gt;&gt;&gt;&gt; destination_number?<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; Best,<br>
&gt;&gt;&gt;&gt;&gt;&gt; Emrah<br>
&gt;&gt;&gt;&gt;&gt;&gt; On Sep 19, 2012, at 7:10 AM, Emrah &lt;<a href="mailto:lists@kavun.ch">lists@kavun.ch</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Easy indeed, but I wanted to avoid it thinking there was some other<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; alternative.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Thanks for your quick response, will use it.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Cheers,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Emrah<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; On Sep 19, 2012, at 12:50 AM, Ken Rice &lt;<a href="mailto:krice@freeswitch.org">krice@freeswitch.org</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; This is easy to handle... Do it as 2 different extensions and after you<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; collect the PIN, use the transfer application to transfer the call to a<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; pin<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; validating extension... Problem fixed with a very simple solution<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; On 9/18/12 11:42 PM, &quot;Emrah&quot; &lt;<a href="mailto:lists@kavun.ch">lists@kavun.ch</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Please bypass the inline=&quot;true&quot;Š A fantasy of mine.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; On Sep 19, 2012, at 12:32 AM, Emrah &lt;<a href="mailto:lists@kavun.ch">lists@kavun.ch</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Hi all,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; My example below cannot work because FS does not store the value of<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; ${pin}<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; until the call goes into execution state. While keeping it simple,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; what<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; would<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; be your take on this? Is there a way to instruct FS to start<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; executing at<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; some point and discovering the dialplan along the way?<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &lt;extension name=&quot;pin test&quot;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &lt;condition field=&quot;destination_number&quot; expression=&quot;^111$&quot;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; break=&quot;never&quot;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &lt;action application=&quot;answer&quot;/&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &lt;action application=&quot;sleep&quot; data=&quot;1000&quot;/&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &lt;action application=&quot;read&quot; data=&quot;4 4<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; $${base_dir}/sounds/en/us/callie/conference/8000/conf-pin.wav pin<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; 10000<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; #,*&quot;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; inline=&quot;true&quot; /&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &lt;/condition&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &lt;condition field=&quot;${pin}&quot; expression=&quot;^1234$&quot;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &lt;action application=&quot;transfer&quot; data =&quot;3000 XML local&quot; /&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &lt;/condition&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &lt;condition field=&quot;${pin}&quot; expression=&quot;^\d{4}$&quot;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &lt;action application=&quot;hangup&quot; /&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &lt;/condition&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &lt;/extension&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Thanks and all the best, as always.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Emrah<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; ______________________________________________________________________<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; ___<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Professional FreeSWITCH Consulting Services:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Official FreeSWITCH Sites<br>
&gt;&gt;&gt;&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;&gt;&gt;&gt; <a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; FreeSWITCH-users mailing list<br>
&gt;&gt;&gt;&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;&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;&gt;&gt;&gt; UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-use" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-use</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; rs<br>
&gt;&gt;&gt;&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;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Ken<br>
&gt;&gt;&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;&gt;&gt; <a href="http://www.ClueCon.com" target="_blank">http://www.ClueCon.com</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://www.OSTAG.org" target="_blank">http://www.OSTAG.org</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://irc.freenode.net" target="_blank">irc.freenode.net</a> #freeswitch<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; _______________________________________________________________________<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; __<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Professional FreeSWITCH Consulting Services:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Official FreeSWITCH Sites<br>
&gt;&gt;&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;&gt;&gt; <a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; FreeSWITCH-users mailing list<br>
&gt;&gt;&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;&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;&gt;&gt;<br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-user" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-user</a>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
s<br>
</div></div><div class="HOEnZb"><div class="h5">&gt;&gt;&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;&gt;<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; Professional FreeSWITCH Consulting Services:<br>
&gt;&gt;&gt;&gt;&gt;&gt; <a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; Official FreeSWITCH Sites<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; <a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>
&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><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; 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;<br>
&gt;&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt;&gt; Ken<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; <a href="http://www.ClueCon.com" target="_blank">http://www.ClueCon.com</a><br>
&gt;&gt;&gt;&gt;&gt; <a href="http://www.OSTAG.org" target="_blank">http://www.OSTAG.org</a><br>
&gt;&gt;&gt;&gt;&gt; <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;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; _________________________________________________________________________<br>
&gt;&gt;&gt;&gt;&gt; Professional FreeSWITCH Consulting Services:<br>
&gt;&gt;&gt;&gt;&gt; <a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
&gt;&gt;&gt;&gt;&gt; <a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
&gt;&gt;&gt;&gt;&gt; <a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Official FreeSWITCH Sites<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; <a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>
&gt;&gt;&gt;&gt;&gt; <a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><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; 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;&gt;<br>
&gt;&gt;&gt;&gt; _________________________________________________________________________<br>
&gt;&gt;&gt;&gt; Professional FreeSWITCH Consulting Services:<br>
&gt;&gt;&gt;&gt; <a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
&gt;&gt;&gt;&gt; <a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
&gt;&gt;&gt;&gt; <a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Official FreeSWITCH Sites<br>
&gt;&gt;&gt;&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt;&gt;&gt;&gt; <a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>
&gt;&gt;&gt;&gt; <a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><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; 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;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt; Michael S Collins<br>
&gt;&gt;&gt;&gt; Twitter: @mercutioviz<br>
&gt;&gt;&gt;&gt; <a href="http://www.FreeSWITCH.org" target="_blank">http://www.FreeSWITCH.org</a><br>
&gt;&gt;&gt;&gt; <a href="http://www.ClueCon.com" target="_blank">http://www.ClueCon.com</a><br>
&gt;&gt;&gt;&gt; <a href="http://www.OSTAG.org" target="_blank">http://www.OSTAG.org</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; _________________________________________________________________________<br>
&gt;&gt;&gt;&gt; Professional FreeSWITCH Consulting Services:<br>
&gt;&gt;&gt;&gt; <a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
&gt;&gt;&gt;&gt; <a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
&gt;&gt;&gt;&gt; <a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Official FreeSWITCH Sites<br>
&gt;&gt;&gt;&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt;&gt;&gt;&gt; <a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>
&gt;&gt;&gt;&gt; <a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><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; 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;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _________________________________________________________________________<br>
&gt;&gt;&gt; Professional FreeSWITCH Consulting Services:<br>
&gt;&gt;&gt; <a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
&gt;&gt;&gt; <a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
&gt;&gt;&gt; <a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Official FreeSWITCH Sites<br>
&gt;&gt;&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt;&gt;&gt; <a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>
&gt;&gt;&gt; <a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><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;&gt; _________________________________________________________________________<br>
&gt;&gt;&gt; Professional FreeSWITCH Consulting Services:<br>
&gt;&gt;&gt; <a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
&gt;&gt;&gt; <a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
&gt;&gt;&gt; <a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Official FreeSWITCH Sites<br>
&gt;&gt;&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt;&gt;&gt; <a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>
&gt;&gt;&gt; <a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><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;<br>
&gt;<br>
&gt;<br>
&gt; _________________________________________________________________________<br>
&gt; Professional FreeSWITCH Consulting Services:<br>
&gt; <a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
&gt; <a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
&gt;<br>
&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
&gt; <a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>
&gt;<br>
&gt; Official FreeSWITCH Sites<br>
&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt; <a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>
&gt; <a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><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>
<br>
--<br>
Ken<br>
<a href="http://www.FreeSWITCH.org" target="_blank">http://www.FreeSWITCH.org</a><br>
<a href="http://www.ClueCon.com" target="_blank">http://www.ClueCon.com</a><br>
<a href="http://www.OSTAG.org" target="_blank">http://www.OSTAG.org</a><br>
<a href="http://irc.freenode.net" target="_blank">irc.freenode.net</a> #freeswitch<br>
<br>
<br>
<br>
_________________________________________________________________________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
<br>
FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
<a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>
<a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><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><br clear="all"><br>-- <br>Michael S Collins<br>Twitter: @mercutioviz<br><a href="http://www.FreeSWITCH.org" target="_blank">http://www.FreeSWITCH.org</a><br><a href="http://www.ClueCon.com" target="_blank">http://www.ClueCon.com</a><br>
<a href="http://www.OSTAG.org" target="_blank">http://www.OSTAG.org</a><br><br><br>