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