[Freeswitch-users] Central FreeSWITCH nodes management with Mod_XML_Curl vs Mod_Lua

Avi Marcus avi at avimarcus.net
Wed Jul 18 15:32:52 MSD 2012


Caching the entire response and xml curl don't usually go together...

If it's something unchanging, then do it in static XML.
To serve that over the network from a central location, see:
http://wiki.freeswitch.org/wiki/Mod_xml_curl#Storing_Static_Dialplans

Although you'd still have to trigger a reloadxml when that changes.
-Avi


On Wed, Jul 18, 2012 at 2:27 PM, Ben Langfeld <ben at langfeld.co.uk> wrote:

> Does mod_xml_curl not support caching? If so, you could reduce load on
> your web servers by setting the correct response headers and avoid having
> to return a payload, or even FS making a request in the first place. In the
> case of failure, FS could fall back to its cache.
>
> Regards,
> Ben Langfeld
>
>
> On 18 July 2012 09:53, Eugene Azuka <eugeneazuka at gmail.com> wrote:
>
>> Thank you FreeSWITCH experts:
>>
>> Michael Collins, Kristian Kielhofner, Vik Killa,  Gabriel Gunderson.
>>
>> Thanks you all, i appreciate your comments.
>>
>> Gabriel Gunderson, Anyone who has practical experience of FreeSWITCH and
>> able to reply and give meaningful comment/solution to help request, to me
>> that person an experts. So you are an expert.  :)
>>
>>
>> Regards
>>
>> Eugene
>>
>>
>>
>>
>>
>> On Tue, Jul 17, 2012 at 11:41 PM, <
>> freeswitch-users-request at lists.freeswitch.org> wrote:
>>
>>> Send FreeSWITCH-users mailing list submissions to
>>>         freeswitch-users at lists.freeswitch.org
>>>
>>> To subscribe or unsubscribe via the World Wide Web, visit
>>>         http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>> or, via email, send a message with subject or body 'help' to
>>>         freeswitch-users-request at lists.freeswitch.org
>>>
>>> You can reach the person managing the list at
>>>         freeswitch-users-owner at lists.freeswitch.org
>>>
>>> When replying, please edit your Subject line so it is more specific
>>> than "Re: Contents of FreeSWITCH-users digest..."
>>>
>>> Today's Topics:
>>>
>>>    1. how to get leg_delay_start to work for bridge     enterprise
>>> (Mario G)
>>>    2. Re: Username in SUBSCRIBE Request URI (Duvid Rottenberg)
>>>    3. Central FreeSWITCH nodes management with  Mod_XML_Curl vs
>>>       Mod_Lua (Eugene Azuka)
>>>    4. Re: Central FreeSWITCH nodes management with Mod_XML_Curl vs
>>>       Mod_Lua (Vik Killa)
>>>    5. Re: Central FreeSWITCH nodes management with Mod_XML_Curl vs
>>>       Mod_Lua (Michael Collins)
>>>    6. Looking for dial plan examples for FS and SPA3102 router
>>>       (Todd Bailey)
>>>    7. Re: Central FreeSWITCH nodes management with Mod_XML_Curl vs
>>>       Mod_Lua (Gabriel Gunderson)
>>>
>>>
>>> ---------- Forwarded message ----------
>>> From: Mario G <mario_fs at mgtech.com>
>>> To: FreeSWITCH Users Help <freeswitch-users at lists.freeswitch.org>
>>> Cc:
>>> Date: Tue, 17 Jul 2012 09:54:51 -0700
>>> Subject: [Freeswitch-users] how to get leg_delay_start to work for
>>> bridge enterprise
>>> I am try to delay the second target by 20 seconds. I used [..] and {..}
>>> but no dice. The wiki has them both for enterprise, can someone shed light
>>> on what's wrong, thanks. Main is supposed to ring, 20 secs later the second
>>> target is added while main keeps going, all timeout after a total of 43
>>> secs.
>>> Mario G
>>>
>>> <action application="bridge" data=
>>> "<originate_timeout=43,origination_caller_id_number=${caller_id_number},origination_caller_id_name=${caller_id_name}>${group_call(main@
>>> ${domain_name}+E)}:_:{leg_delay_start=20}sofia/gateway/${dial_gateway}/19161234567"
>>> />
>>>
>>>
>>> ---------- Forwarded message ----------
>>> From: Duvid Rottenberg <adrottenberg at gmail.com>
>>> To: FreeSWITCH Users Help <freeswitch-users at lists.freeswitch.org>
>>> Cc:
>>> Date: Tue, 17 Jul 2012 14:01:20 -0400
>>> Subject: Re: [Freeswitch-users] Username in SUBSCRIBE Request URI
>>> Apparently this is not currently possible. I have submitted a patch on
>>> JIRA to add a new parameter to the subscriptions section named
>>> user-in-register, when set to true the username will be included in the
>>> request-uri. If/when this patch is approved I will update the wiki.
>>>
>>> On Fri, Jul 13, 2012 at 1:34 PM, Duvid Rottenberg <
>>> adrottenberg at gmail.com> wrote:
>>>
>>>> I am using embedded freeswitch as a softphone client and I am trying to
>>>> subscribe to call-info on the server, (see config below) but the server is
>>>> responding with a 481 Call/Transaction Does not exist.
>>>> I compared the freeswitch SIP messages with SIP messages sent by a
>>>> polycom phone for this feature and  I noticed that freeswitch doesn't send
>>>> the username in the request line. I think that this is causing the 481
>>>> response.
>>>>
>>>> Polycom Version:
>>>> SUBSCRIBE sip:user at server:5060;transport=udp SIP/2.0
>>>> Freeswitch:
>>>> SUBSCRIBE sip:server:5060;transport=udp SIP/2.0
>>>>
>>>> Below is my gateway configuration
>>>> <gateway name='1'>
>>>>     <param name='realm' value='SIP_SERVER' />
>>>>     <param name='username' value='SIP_USERNAME' />
>>>>     <param name='password' value='SIP_PASSWORD' />
>>>>     <param name='register' value='true' />
>>>>     <param name='extension' value='SIP_USERNAME' />
>>>>     <param name='extension-in-contact' value='true' />
>>>>     <subscriptions name='x'>
>>>>         <subscription event='call-info'>
>>>>             <param name='retry-seconds' value='40'/>
>>>>             <param name='expire-seconds' value='3600'/>
>>>>             <param name='content-type' value=''/>
>>>>         </subscription>
>>>>     </subscriptions>
>>>> </gateway>
>>>>
>>>> Is there any way to tell freeswitch to include the username in the
>>>> request line?
>>>>
>>>> Thank You,
>>>> Duvid Rottenberg
>>>>
>>>
>>>
>>>
>>> ---------- Forwarded message ----------
>>> From: Eugene Azuka <eugeneazuka at gmail.com>
>>> To: freeswitch-users at lists.freeswitch.org
>>> Cc:
>>> Date: Tue, 17 Jul 2012 17:33:56 +0100
>>> Subject: [Freeswitch-users] Central FreeSWITCH nodes management with
>>> Mod_XML_Curl vs Mod_Lua
>>> Hi FreeSWITCH experts,
>>>
>>> My question is as regards performance and which is the best option.
>>>
>>> I am trying to scale and manage multiple nodes of FreeSWITCH centrally
>>> from my external web server/site using Mod_XML_Curl, But someone more
>>> experience than me says otherwise that Mod_XML_Curl may not be the best
>>> option: Here is his statement below:
>>>
>>> *" The thing I don't like about mod_xml_curl is that to scale it you
>>> have to scale the web server with more listeners. If you run out of
>>> listeners your ability to answer new calls fails. If the web server crashes
>>> your ability to handle calls is gone.*
>>> *
>>> *
>>> *Instead, I use Lua which is embedded into FreeSWITCH as the XML
>>> handler. The Lua reads the info from the database and hands it off to
>>> FreeSWITCH. This approach is not dependent on a service that can fail, or
>>> that can run out of listeners. "*
>>>
>>>
>>> What do you experts think about this comment above?
>>>
>>> Wouldn't Lua reading directly from database still face some of the
>>> issues i may be running from using mod_xml_curl, like database crashing,
>>> slow reading from database?
>>>
>>> Unlike using mod_xml_curl whereby i can optimise my code to make use of
>>> memcached or radis to reduce some calls to database, can i still do such
>>> with mod_lua?
>>>
>>>
>>> So what do experts think, should i go with Mod_Lua approach just as he
>>> said above or should i continue with using Mod_XML_Curl?
>>>
>>> You opinion will be appreciated.
>>>
>>> Regards
>>>
>>> Eugene
>>>
>>>
>>>
>>>
>>>
>>>
>>> ---------- Forwarded message ----------
>>> From: Vik Killa <vipkilla at gmail.com>
>>> To: FreeSWITCH Users Help <freeswitch-users at lists.freeswitch.org>
>>> Cc:
>>> Date: Tue, 17 Jul 2012 15:30:53 -0400
>>> Subject: Re: [Freeswitch-users] Central FreeSWITCH nodes management with
>>> Mod_XML_Curl vs Mod_Lua
>>> I dont understand what they meant by 'listeners'
>>> AFAIK if the web server process is running it will always return the XML
>>>
>>>
>>>
>>>
>>> ---------- Forwarded message ----------
>>> From: Michael Collins <msc at freeswitch.org>
>>> To: FreeSWITCH Users Help <freeswitch-users at lists.freeswitch.org>
>>> Cc:
>>> Date: Tue, 17 Jul 2012 13:56:11 -0700
>>> Subject: Re: [Freeswitch-users] Central FreeSWITCH nodes management with
>>> Mod_XML_Curl vs Mod_Lua
>>>
>>>
>>> On Tue, Jul 17, 2012 at 12:30 PM, Vik Killa <vipkilla at gmail.com> wrote:
>>>
>>>> I dont understand what they meant by 'listeners'
>>>> AFAIK if the web server process is running it will always return the XML
>>>>
>>>
>>> Last time I checked, there were one or two websites out there that could
>>> handle thousands of requests per second. The web has given birth to tools
>>> that allow for many, many concurrent requests. The LAMP stack on a beefy
>>> machine can do quite a lot of traffic. Furthermore, MySQL/Postgres/et al
>>> all have backup/redundancy/HA options built in, as does Apache/HTTP. It
>>> seems to me that you could scale farther and have more redundancy using
>>> these time-tested tools. Just my $0.02.
>>>
>>> -MC
>>>
>>> P.S. - Don't get me wrong - I really like Lua. I just don't know if it's
>>> really a "better" solution to this problem.
>>>
>>>
>>> ---------- Forwarded message ----------
>>> From: Todd Bailey <toddb at toddbailey.net>
>>> To: freeswitch <freeswitch-users at lists.freeswitch.org>
>>> Cc:
>>> Date: Tue, 17 Jul 2012 15:37:51 -0700
>>> Subject: [Freeswitch-users] Looking for dial plan examples for FS and
>>> SPA3102 router
>>> Hi All,
>>>
>>>
>>> I'm having issues getting a dial plan to work on FS and a Cisco SPA 3102
>>> router.
>>>
>>> when I dial 0, 1 or 9 plus a 10 number, I get to the router's dial tone
>>> but I have to reenter the number I want to connect to.
>>>
>>> The expected action is to only need to enter the number to dial one
>>>
>>> Can some one provide dial plan and/or other config file example on how
>>> to resolve this issue?
>>>
>>> here is what I have so far:
>>>
>>> /usr/local/freeswitch/conf/dialplan/default.xml
>>>
>>> <!-- Dial any 10 digit number (2223334444) or 1+10 number (12223334444)
>>> or 9 + 10 number here -->
>>>
>>>     <extension name="external">
>>>
>>>     <condition field="destination_number"
>>> expression="^(1{0,1,9}\d{10})$">
>>>
>>>       <action application="set"
>>> data="effective_caller_id_number=12223334444"/>
>>>       <!-- If your provider does not provide ringback (180 or 183) you
>>> may simulate ringback by uncommenting the following line. -->
>>>       <!-- action application="ringback" /-->
>>>       <!-- <action application="bridge"
>>> data="sofia/gateway/voicepulse/$1"/> -->
>>>       <!-- <action application="bridge"
>>> data="sofia/internal/${destination_number}@192.168.1.5:5061"/>   -->
>>>            <action application="bridge"
>>> data="sofia/internal/$1 at 192.168.1.5:5061" />
>>>      </condition>
>>>    </extension>
>>>
>>>
>>> /usr/local/freeswitch/conf/dialplan/default/00_spa3102.xml
>>>
>>> <include>
>>>   <extension name="To PSTN">
>>>     <condition field="destination_number" expression="(.*)">
>>>       <action application="bridge"
>>> data="sofia/internal/${destination_number}@192.168.1.5:5061" />
>>>     </condition>
>>>   </extension>
>>> </include>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> ---------- Forwarded message ----------
>>> From: Gabriel Gunderson <gabe at gundy.org>
>>> To: FreeSWITCH Users Help <freeswitch-users at lists.freeswitch.org>
>>> Cc:
>>> Date: Tue, 17 Jul 2012 16:40:41 -0600
>>> Subject: Re: [Freeswitch-users] Central FreeSWITCH nodes management with
>>> Mod_XML_Curl vs Mod_Lua
>>> Comments inline:
>>>
>>> On Tue, Jul 17, 2012 at 10:33 AM, Eugene Azuka <eugeneazuka at gmail.com>
>>> wrote:
>>> > " The thing I don't like about mod_xml_curl is that to scale it you
>>> have to
>>> > scale the web server with more listeners. If you run out of listeners
>>> your
>>> > ability to answer new calls fails. If the web server crashes your
>>> ability to
>>> > handle calls is gone.
>>>
>>> Scaling web servers is an easy, well known and a common problem to
>>> solve. Yes, you have to make sure you have the resources, but this it
>>> true of any technology out there.
>>>
>>>
>>> > Instead, I use Lua which is embedded into FreeSWITCH as the XML
>>> handler. The
>>> > Lua reads the info from the database and hands it off to FreeSWITCH.
>>> This
>>> > approach is not dependent on a service that can fail, or that can run
>>> out of
>>> > listeners. "
>>>
>>> This is a great approach, but I don't think the logic is sound. Lua
>>> (if it's doing anything fancy) will run out of resources that it
>>> depends on -- memory, database connections, sockets etc.
>>>
>>> If one accepts that they'll have to build out to *really* scale
>>> something, they'll also come to appreciate the fact that they can move
>>> the HTTP stack to another box when needed (or 50 other boxen if
>>> required).  The Lua (or any other embedded language) is pretty well
>>> tied to that same box.
>>>
>>> In the end, it probably doesn't matter. If you end up scaling to the
>>> ends of the Earth, you'll have to rewrite it anyway. Just give thanks
>>> that you've found FreeSWITCH and it was flexible enough to give you
>>> the amazing configurability needed to build it in anyway you like :)
>>>
>>>
>>> > What do you experts think about this comment above?
>>>
>>> There are experts on this list now?! Awesome ;)
>>>
>>>
>>> > Wouldn't Lua reading directly from database still face some of the
>>> issues i
>>> > may be running from using mod_xml_curl, like database crashing, slow
>>> reading
>>> > from database?
>>>
>>> Yep, see above.
>>>
>>>
>>>
>>> > Unlike using mod_xml_curl whereby i can optimise my code to make use of
>>> > memcached or radis to reduce some calls to database, can i still do
>>> such
>>> > with mod_lua?
>>>
>>> If you want and Lua supports it.
>>>
>>>
>>> > So what do experts think, should i go with Mod_Lua approach just as he
>>> said
>>> > above or should i continue with using Mod_XML_Curl?
>>>
>>> Your choice! Happy hacking!
>>>
>>>
>>> Best,
>>> Gabe
>>>
>>>
>>>
>>> _______________________________________________
>>> FreeSWITCH-users mailing list
>>> FreeSWITCH-users at 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 at freeswitch.org
>> http://www.freeswitchsolutions.com
>>
>> 
>> 
>>
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org
>> http://wiki.freeswitch.org
>> http://www.cluecon.com
>>
>> Join Us At ClueCon - Aug 7-9, 2012
>>
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at 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 at freeswitch.org
> http://www.freeswitchsolutions.com
>
> 
> 
>
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://wiki.freeswitch.org
> http://www.cluecon.com
>
> Join Us At ClueCon - Aug 7-9, 2012
>
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20120718/4532648e/attachment-0001.html 


Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-users mailing list