Hi, Right now, I am working on getting freeswitch configured for our call-center with more than 1000 agents. There are several areas where we need the dialplan to be configurable based on some user detail in the database. Therefore, the dialplan needs to be some-what dynamic based-on inputs from the database. I would like to know from other implementation as to the most scalable way of doing high performance dynamic dialplan that is super scalable. There are three ways I can think of: 1. Static dialplan using customized freeswitch mod to access postgres for data pros: best performance cons: harder to program 2. Static dialplan using lua to access postgres for data pros: easy to program, maybe-performance is better than curl cons: need to search through all the extensions to find one dialplan, performance is slower than the first one. 3. curl-based dialplan using Java Servlet and HTTP pros: easy to program, freeswitch only gets one extension and no extension search cons: performance is slow than the other two Is this a correct analysis? If from a pure performance's perspective, how much performance can a customized mod gains in comparison to lua? For a production system that needs to be highly scalable, what do you recommend? Thank you very much for any input to our critical design decision. Doug
If you want an extremely high performance you write your own dialplan module... Its not that hard... Or option 1 is the more high performance way to fo... Curl with a serverlet will scale to a point but I doubt it will get to where you need in the long run Static and do what you need, but how scalable is lua is unknown at this point (someone should post some info on that) and its known that java script doesn¹t scale that well for large installs K From: Doug Blacksone <dougblackstone@gmail.com> Reply-To: <freeswitch-users@lists.freeswitch.org> Date: Mon, 9 Feb 2009 11:21:49 +0800 To: <freeswitch-users@lists.freeswitch.org> Subject: [Freeswitch-users] Dynamic Dialplan Hi, Right now, I am working on getting freeswitch configured for our call-center with more than 1000 agents. There are several areas where we need the dialplan to be configurable based on some user detail in the database. Therefore, the dialplan needs to be some-what dynamic based-on inputs from the database. I would like to know from other implementation as to the most scalable way of doing high performance dynamic dialplan that is super scalable. There are three ways I can think of: 1. Static dialplan using customized freeswitch mod to access postgres for data pros: best performance cons: harder to program 2. Static dialplan using lua to access postgres for data pros: easy to program, maybe-performance is better than curl cons: need to search through all the extensions to find one dialplan, performance is slower than the first one. 3. curl-based dialplan using Java Servlet and HTTP pros: easy to program, freeswitch only gets one extension and no extension search cons: performance is slow than the other two Is this a correct analysis? If from a pure performance's perspective, how much performance can a customized mod gains in comparison to lua? For a production system that needs to be highly scalable, what do you recommend? Thank you very much for any input to our critical design decision. Doug _______________________________________________ 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
Doug, Ken is right on this one. I know there are some guys on the list (like Ken) that could help you write a module. It's probably the best way to go (if you're going to have all agents running off of one or two boxes). If you're going to spread the agents / calls around on multiple boxes or use a combo of OpenSIPS / OpenSer / pick your flavor ... and FS then using xml_curl will work fine. We've got that working today and it's been acceptable. SDR
Also depending on what your Timeframe is like there is a distributed queue mechanism with skills based routing on the way... From: Shelby Ramsey <sicfslist@gmail.com> Reply-To: <freeswitch-users@lists.freeswitch.org> Date: Sun, 8 Feb 2009 22:20:22 -0600 To: <freeswitch-users@lists.freeswitch.org> Subject: Re: [Freeswitch-users] Dynamic Dialplan Doug, Ken is right on this one. I know there are some guys on the list (like Ken) that could help you write a module. It's probably the best way to go (if you're going to have all agents running off of one or two boxes). If you're going to spread the agents / calls around on multiple boxes or use a combo of OpenSIPS / OpenSer / pick your flavor ... and FS then using xml_curl will work fine. We've got that working today and it's been acceptable. SDR _______________________________________________ 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
On Sun, Feb 08, 2009 at 10:50:31PM -0600, Ken Rice wrote:
Also depending on what your Timeframe is like there is a distributed queue mechanism with skills based routing on the way...
It even managed to route 2 calls in a row this week ;) Still a ways off from anything production grade tho. Andrew
On Mon, Feb 9, 2009 at 10:16 AM, Andrew Thompson <andrew@hijacked.us> wrote:
On Sun, Feb 08, 2009 at 10:50:31PM -0600, Ken Rice wrote:
Also depending on what your Timeframe is like there is a distributed queue mechanism with skills based routing on the way...
It even managed to route 2 calls in a row this week ;) Still a ways off from anything production grade tho.
Bravo, bravo! -- wasim h. baig | principal consultant | convergence pk | +92 300 8508070 | peace be upon you ...
Everything you can do in a static dialplan you can do via curl as well. Multiple extensions, search/conditions are allowed. Don't sell the curl short, it's very powerful and can get the ball rolling. On Sun, Feb 8, 2009 at 21:21, Doug Blacksone <dougblackstone@gmail.com> wrote:
Hi,
Right now, I am working on getting freeswitch configured for our call-center with more than 1000 agents. There are several areas where we need the dialplan to be configurable based on some user detail in the database. Therefore, the dialplan needs to be some-what dynamic based-on inputs from the database.
I would like to know from other implementation as to the most scalable way of doing high performance dynamic dialplan that is super scalable.
There are three ways I can think of:
1. Static dialplan using customized freeswitch mod to access postgres for data pros: best performance cons: harder to program
2. Static dialplan using lua to access postgres for data pros: easy to program, maybe-performance is better than curl cons: need to search through all the extensions to find one dialplan, performance is slower than the first one.
3. curl-based dialplan using Java Servlet and HTTP pros: easy to program, freeswitch only gets one extension and no extension search cons: performance is slow than the other two
Is this a correct analysis? If from a pure performance's perspective, how much performance can a customized mod gains in comparison to lua?
For a production system that needs to be highly scalable, what do you recommend?
Thank you very much for any input to our critical design decision.
Doug
Option 3 does not have slow performance, Java apps can be highly scalable high performance when written right, this is a serious strong typed language unlike lua and javascript. I actually tested such solution against MySql cluster with 500 calls/m load script, scaled just fine. Contact me off list if you need professional help with that. Doug Blacksone wrote:
Hi,
Right now, I am working on getting freeswitch configured for our call-center with more than 1000 agents. There are several areas where we need the dialplan to be configurable based on some user detail in the database. Therefore, the dialplan needs to be some-what dynamic based-on inputs from the database.
I would like to know from other implementation as to the most scalable way of doing high performance dynamic dialplan that is super scalable.
There are three ways I can think of:
1. Static dialplan using customized freeswitch mod to access postgres for data pros: best performance cons: harder to program
2. Static dialplan using lua to access postgres for data pros: easy to program, maybe-performance is better than curl cons: need to search through all the extensions to find one dialplan, performance is slower than the first one.
3. curl-based dialplan using Java Servlet and HTTP pros: easy to program, freeswitch only gets one extension and no extension search cons: performance is slow than the other two
Is this a correct analysis? If from a pure performance's perspective, how much performance can a customized mod gains in comparison to lua?
For a production system that needs to be highly scalable, what do you recommend?
Thank you very much for any input to our critical design decision.
Doug
------------------------------------------------------------------------
_______________________________________________ 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
hint: when you have "harder to program" under cons: that's usually how you find the right choice ;) On Mon, Feb 9, 2009 at 8:01 AM, pauld <pauld@versafon.com> wrote:
Option 3 does not have slow performance, Java apps can be highly scalable high performance when written right, this is a serious strong typed language unlike lua and javascript. I actually tested such solution against MySql cluster with 500 calls/m load script, scaled just fine. Contact me off list if you need professional help with that.
Doug Blacksone wrote:
Hi,
Right now, I am working on getting freeswitch configured for our call-center with more than 1000 agents. There are several areas where we need the dialplan to be configurable based on some user detail in the database. Therefore, the dialplan needs to be some-what dynamic based-on inputs from the database.
I would like to know from other implementation as to the most scalable way of doing high performance dynamic dialplan that is super scalable.
There are three ways I can think of:
1. Static dialplan using customized freeswitch mod to access postgres for data pros: best performance cons: harder to program
2. Static dialplan using lua to access postgres for data pros: easy to program, maybe-performance is better than curl cons: need to search through all the extensions to find one dialplan, performance is slower than the first one.
3. curl-based dialplan using Java Servlet and HTTP pros: easy to program, freeswitch only gets one extension and no extension search cons: performance is slow than the other two
Is this a correct analysis? If from a pure performance's perspective, how much performance can a customized mod gains in comparison to lua?
For a production system that needs to be highly scalable, what do you recommend?
Thank you very much for any input to our critical design decision.
Doug
------------------------------------------------------------------------
_______________________________________________ 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
_______________________________________________ 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
-- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
Just my 2c: If you use curl with lighttpd and custom built fastcgi "C" responder (it is really simple with fcgi libs - even I can do it :-) performance could be not that bad. Like I wrote in the past it can handle about 2000 reguest per second (including SQL query wiht simple "postprocessing"). Best regards, kokoska.rokoska Doug Blacksone napsal(a):
Hi,
Right now, I am working on getting freeswitch configured for our call-center with more than 1000 agents. There are several areas where we need the dialplan to be configurable based on some user detail in the database. Therefore, the dialplan needs to be some-what dynamic based-on inputs from the database.
I would like to know from other implementation as to the most scalable way of doing high performance dynamic dialplan that is super scalable.
There are three ways I can think of:
1. Static dialplan using customized freeswitch mod to access postgres for data pros: best performance cons: harder to program
2. Static dialplan using lua to access postgres for data pros: easy to program, maybe-performance is better than curl cons: need to search through all the extensions to find one dialplan, performance is slower than the first one.
3. curl-based dialplan using Java Servlet and HTTP pros: easy to program, freeswitch only gets one extension and no extension search cons: performance is slow than the other two
Is this a correct analysis? If from a pure performance's perspective, how much performance can a customized mod gains in comparison to lua?
For a production system that needs to be highly scalable, what do you recommend?
Thank you very much for any input to our critical design decision.
Doug
------------------------------------------------------------------------
_______________________________________________ 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
kokoska rokoska wrote:
Just my 2c:
If you use curl with lighttpd and custom built fastcgi "C" responder (it is really simple with fcgi libs - even I can do it :-) performance could be not that bad. hmmm, mod_xml_curl using C, interesting thought.. all of the complexities of writing your own module without the nice structured FS API... although, as a benefit, i guess you do get a little extra latency ;-) </sarcasm> -Ray
Raymond Chandler napsal(a):
kokoska rokoska wrote:
Just my 2c:
If you use curl with lighttpd and custom built fastcgi "C" responder (it is really simple with fcgi libs - even I can do it :-) performance could be not that bad. hmmm, mod_xml_curl using C, interesting thought..
May be not the best way, but very simple. Well, it depends on what you have to do, but "directory" serving based on DB queries (this what I'm using it for) is very simple - just few lines of code.
all of the complexities of writing your own module without the nice structured FS API...
I should say I have no idea how hard is to write custom FreeSWITCH module (may be I should try it :-), but the FS code is very nice!
although, as a benefit, i guess you do get a little extra latency ;-) </sarcasm>
:-) Yes, you are right. And as a bonus some CPU utilization... Like I wrote above, I didn't say it is faster, but IMO it is very simple and not as slow as it looks (when using apache + php + apc). Best regards, kokoska.rokoska
That's why I chose mod_xml_curl as a demo for the xml_hook api. It's not only a demo, it's rather functional =D You have 2 choices other than using the stuff we already have in tree. 1) write a custom dialplan module, this module gets a single callback function a dialplan_hunt function that has the session and the caller profile. you can see from mod_enum or mod_dialplan_xml how this can be used to make your own module that looks in a db and returns instructions to FS on the fly. 2) write a custom xml_hook and use it with mod_dialplan_xml, this type of module embeds itself into the xml lookups so when something tries to find something in the xml registry, your function is called and you can do your db lookups and generate the xml returned as binary xml obj built from a result of the query. This is more powerfule because it allows you to pre-empt any xml lookups so you can deliver directory, config, dialplan, phrase macros, etc mod_xml_curl is an example of #2, it turns the xml_req into a url req and feeds the xml returned over the http socket into an xml object and returns it as the result in place of the static contents of the xml file. On Mon, Feb 9, 2009 at 12:03 PM, kokoska rokoska <kokoska.rokoska@post.cz>wrote:
Raymond Chandler napsal(a):
kokoska rokoska wrote:
Just my 2c:
If you use curl with lighttpd and custom built fastcgi "C" responder (it is really simple with fcgi libs - even I can do it :-) performance could be not that bad. hmmm, mod_xml_curl using C, interesting thought..
May be not the best way, but very simple. Well, it depends on what you have to do, but "directory" serving based on DB queries (this what I'm using it for) is very simple - just few lines of code.
all of the complexities of writing your own module without the nice structured FS API...
I should say I have no idea how hard is to write custom FreeSWITCH module (may be I should try it :-), but the FS code is very nice!
although, as a benefit, i guess you do get a little extra latency ;-) </sarcasm>
:-) Yes, you are right. And as a bonus some CPU utilization...
Like I wrote above, I didn't say it is faster, but IMO it is very simple and not as slow as it looks (when using apache + php + apc).
Best regards,
kokoska.rokoska
_______________________________________________ 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
-- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
Anthony Minessale napsal(a):
That's why I chose mod_xml_curl as a demo for the xml_hook api. It's not only a demo, it's rather functional =D
:-))
You have 2 choices other than using the stuff we already have in tree.
1) write a custom dialplan module, this module gets a single callback function a dialplan_hunt function that has the session and the caller profile. you can see from mod_enum or mod_dialplan_xml how this can be used to make your own module that looks in a db and returns instructions to FS on the fly.
I try to look at it.
2) write a custom xml_hook and use it with mod_dialplan_xml, this type of module embeds itself into the xml lookups so when something tries to find something in the xml registry, your function is called and you can do your db lookups and generate the xml returned as binary xml obj built from a result of the query. This is more powerfule because it allows you to pre-empt any xml lookups so you can deliver directory, config, dialplan, phrase macros, etc
Super tip, Anthony! Thank you very much. In case of directory it can dramatically increase maximu of registers per second.
mod_xml_curl is an example of #2, it turns the xml_req into a url req and feeds the xml returned over the http socket into an xml object and returns it as the result in place of the static contents of the xml file.
Well I will look deep into mod_xml_curl to see how it is done and than (may be :-) will introduce new module mod_db_directory :-) Thanks once more, Anthony, for very valuable info! Best regards, kokoska.rokoska
What about a mod_perl XML binding like the example here? http://wiki.freeswitch.org/wiki/Mod_perl and http://wiki.freeswitch.org/wiki/Mod_perl_and_Generating_XML Would this be faster than a setup like mod_curl_xml -> lighttpd -> FastCGI/Perl ? I guess it would depend on if mod_perl in FreeSWITCH spawns new interpreter per request or if it uses one interpreter instance with multiple threads to execute pre-loaded perl. Anyone know if this is the case? Regards, -Adam -----Original Message----- From: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of kokoska rokoska Sent: Monday, February 09, 2009 1:03 PM To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Dynamic Dialplan Raymond Chandler napsal(a):
kokoska rokoska wrote:
Just my 2c:
If you use curl with lighttpd and custom built fastcgi "C" responder (it is really simple with fcgi libs - even I can do it :-) performance could be not that bad. hmmm, mod_xml_curl using C, interesting thought..
May be not the best way, but very simple. Well, it depends on what you have to do, but "directory" serving based on DB queries (this what I'm using it for) is very simple - just few lines of code.
all of the complexities of writing your own module without the nice structured FS API...
I should say I have no idea how hard is to write custom FreeSWITCH module (may be I should try it :-), but the FS code is very nice!
although, as a benefit, i guess you do get a little extra latency ;-) </sarcasm>
:-) Yes, you are right. And as a bonus some CPU utilization... Like I wrote above, I didn't say it is faster, but IMO it is very simple and not as slow as it looks (when using apache + php + apc). Best regards, kokoska.rokoska _______________________________________________ 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
oh yeah, i forgot about those too. python,perl and lua can all do that. On Tue, Feb 10, 2009 at 1:01 PM, Adam Long <ajlong@worldlink.net> wrote:
What about a mod_perl XML binding like the example here? http://wiki.freeswitch.org/wiki/Mod_perl and http://wiki.freeswitch.org/wiki/Mod_perl_and_Generating_XML
Would this be faster than a setup like
mod_curl_xml -> lighttpd -> FastCGI/Perl ?
I guess it would depend on if mod_perl in FreeSWITCH spawns new interpreter per request or if it uses one interpreter instance with multiple threads to execute pre-loaded perl.
Anyone know if this is the case?
Regards, -Adam
-----Original Message----- From: freeswitch-users-bounces@lists.freeswitch.org [mailto: freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of kokoska rokoska Sent: Monday, February 09, 2009 1:03 PM To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Dynamic Dialplan
Raymond Chandler napsal(a):
kokoska rokoska wrote:
Just my 2c:
If you use curl with lighttpd and custom built fastcgi "C" responder (it is really simple with fcgi libs - even I can do it :-) performance could be not that bad. hmmm, mod_xml_curl using C, interesting thought..
May be not the best way, but very simple. Well, it depends on what you have to do, but "directory" serving based on DB queries (this what I'm using it for) is very simple - just few lines of code.
all of the complexities of writing your own module without the nice structured FS API...
I should say I have no idea how hard is to write custom FreeSWITCH module (may be I should try it :-), but the FS code is very nice!
although, as a benefit, i guess you do get a little extra latency ;-) </sarcasm>
:-) Yes, you are right. And as a bonus some CPU utilization...
Like I wrote above, I didn't say it is faster, but IMO it is very simple and not as slow as it looks (when using apache + php + apc).
Best regards,
kokoska.rokoska
_______________________________________________ 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
_______________________________________________ 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
-- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
There sure are lots of options J Does the perl implementation use a single persistent embedded interpreter or does it spawn a new interpreter per request? Things like persistent database handles come to mind. Performance would be drastically impacted if it were to spawn new interpreter per request. Any ideas? Regards, -Adam From: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of Anthony Minessale Sent: Tuesday, February 10, 2009 5:33 PM To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Dynamic Dialplan oh yeah, i forgot about those too. python,perl and lua can all do that. On Tue, Feb 10, 2009 at 1:01 PM, Adam Long <ajlong@worldlink.net> wrote: What about a mod_perl XML binding like the example here? http://wiki.freeswitch.org/wiki/Mod_perl and http://wiki.freeswitch.org/wiki/Mod_perl_and_Generating_XML Would this be faster than a setup like mod_curl_xml -> lighttpd -> FastCGI/Perl ? I guess it would depend on if mod_perl in FreeSWITCH spawns new interpreter per request or if it uses one interpreter instance with multiple threads to execute pre-loaded perl. Anyone know if this is the case? Regards, -Adam -----Original Message----- From: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of kokoska rokoska Sent: Monday, February 09, 2009 1:03 PM To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Dynamic Dialplan Raymond Chandler napsal(a):
kokoska rokoska wrote:
Just my 2c:
If you use curl with lighttpd and custom built fastcgi "C" responder (it is really simple with fcgi libs - even I can do it :-) performance could be not that bad. hmmm, mod_xml_curl using C, interesting thought..
May be not the best way, but very simple. Well, it depends on what you have to do, but "directory" serving based on DB queries (this what I'm using it for) is very simple - just few lines of code.
all of the complexities of writing your own module without the nice structured FS API...
I should say I have no idea how hard is to write custom FreeSWITCH module (may be I should try it :-), but the FS code is very nice!
although, as a benefit, i guess you do get a little extra latency ;-) </sarcasm>
:-) Yes, you are right. And as a bonus some CPU utilization... Like I wrote above, I didn't say it is faster, but IMO it is very simple and not as slow as it looks (when using apache + php + apc). Best regards, kokoska.rokoska _______________________________________________ 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 _______________________________________________ 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 -- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_minessale@hotmail.com <mailto:MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com <mailto:PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <mailto:sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org <mailto:googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
Adam Long wrote:
There sure are lots of options J
Does the perl implementation use a single persistent embedded interpreter or does it spawn a new interpreter per request?
Things like persistent database handles come to mind.
Performance would be drastically impacted if it were to spawn new interpreter per request.
Any ideas?
Regards,
-Adam
*From:* freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] *On Behalf Of *Anthony Minessale *Sent:* Tuesday, February 10, 2009 5:33 PM *To:* freeswitch-users@lists.freeswitch.org *Subject:* Re: [Freeswitch-users] Dynamic Dialplan
oh yeah, i forgot about those too. python,perl and lua can all do that.
On Tue, Feb 10, 2009 at 1:01 PM, Adam Long <ajlong@worldlink.net <mailto:ajlong@worldlink.net>> wrote:
What about a mod_perl XML binding like the example here? http://wiki.freeswitch.org/wiki/Mod_perl and http://wiki.freeswitch.org/wiki/Mod_perl_and_Generating_XML
Would this be faster than a setup like
mod_curl_xml -> lighttpd -> FastCGI/Perl ?
I guess it would depend on if mod_perl in FreeSWITCH spawns new interpreter per request or if it uses one interpreter instance with multiple threads to execute pre-loaded perl.
Anyone know if this is the case?
Regards, -Adam
-----Original Message----- From: freeswitch-users-bounces@lists.freeswitch.org <mailto:freeswitch-users-bounces@lists.freeswitch.org> [mailto:freeswitch-users-bounces@lists.freeswitch.org <mailto:freeswitch-users-bounces@lists.freeswitch.org>] On Behalf Of kokoska rokoska Sent: Monday, February 09, 2009 1:03 PM To: freeswitch-users@lists.freeswitch.org <mailto:freeswitch-users@lists.freeswitch.org> Subject: Re: [Freeswitch-users] Dynamic Dialplan
Raymond Chandler napsal(a):
kokoska rokoska wrote:
Just my 2c:
If you use curl with lighttpd and custom built fastcgi "C" responder (it is really simple with fcgi libs - even I can do it :-) performance could be not that bad. hmmm, mod_xml_curl using C, interesting thought..
May be not the best way, but very simple. Well, it depends on what you have to do, but "directory" serving based on DB queries (this what I'm using it for) is very simple - just few lines of code.
all of the complexities of writing your own module without the nice structured FS API...
I should say I have no idea how hard is to write custom FreeSWITCH module (may be I should try it :-), but the FS code is very nice!
although, as a benefit, i guess you do get a little extra latency ;-) </sarcasm>
:-) Yes, you are right. And as a bonus some CPU utilization...
Like I wrote above, I didn't say it is faster, but IMO it is very simple and not as slow as it looks (when using apache + php + apc).
Best regards,
kokoska.rokoska
_______________________________________________ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org <mailto: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
_______________________________________________ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org <mailto: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
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/
AIM: anthm MSN:anthony_minessale@hotmail.com <mailto:MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com <mailto:PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net <http://irc.freenode.net> #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <mailto:sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 <http://iax:guest@conference.freeswitch.org/888> googletalk:conf+888@conference.freeswitch.org <mailto:googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
------------------------------------------------------------------------
_______________________________________________ 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
Perl is the language i'm using. and is working exactly as i expect. Chav
Adam Long wrote:
What about a mod_perl XML binding like the example here? http://wiki.freeswitch.org/wiki/Mod_perl and http://wiki.freeswitch.org/wiki/Mod_perl_and_Generating_XML
Would this be faster than a setup like
mod_curl_xml -> lighttpd -> FastCGI/Perl ?
I guess it would depend on if mod_perl in FreeSWITCH spawns new interpreter per request or if it uses one interpreter instance with multiple threads to execute pre-loaded perl.
Anyone know if this is the case?
Regards, -Adam
-----Original Message----- From: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of kokoska rokoska Sent: Monday, February 09, 2009 1:03 PM To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] Dynamic Dialplan
Raymond Chandler napsal(a):
kokoska rokoska wrote:
Just my 2c:
If you use curl with lighttpd and custom built fastcgi "C" responder (it is really simple with fcgi libs - even I can do it :-) performance could be not that bad.
hmmm, mod_xml_curl using C, interesting thought..
May be not the best way, but very simple. Well, it depends on what you have to do, but "directory" serving based on DB queries (this what I'm using it for) is very simple - just few lines of code.
all of the complexities of writing your own module without the nice structured FS API...
I should say I have no idea how hard is to write custom FreeSWITCH module (may be I should try it :-), but the FS code is very nice!
although, as a benefit, i guess you do get a little extra latency ;-) </sarcasm>
:-) Yes, you are right. And as a bonus some CPU utilization...
Like I wrote above, I didn't say it is faster, but IMO it is very simple and not as slow as it looks (when using apache + php + apc).
Best regards,
kokoska.rokoska
_______________________________________________ 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
_______________________________________________ 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
I'm developing something similar and now on testing mode. xml works just fine. The key is FCGI and web server. i think this week i made a progress in the right direction. will report the progress promptly when done. If you need hand pls drop an e-mail i do not mind sharing. and if it works for you i'll come with kind of how to instructions if anybody else is interested. Regards Chav
participants (13)
-
Adam Long
-
Andrew Thompson
-
Anthony Minessale
-
Chav Paskov
-
Doug Blacksone
-
Ken Rice
-
Ken Rice
-
kokoska rokoska
-
pauld
-
Raymond Chandler
-
Shelby Ramsey
-
SP
-
Wasim Baig