SIP Proxy - Kamailio/Opens* load-balancing - simple example please?
Hi - I know this has come up several times and I see several examples even on the old wiki - but I've never used a SIP proxy before, and I don't understand most of the configuration in the examples. Here's what I believe is a fairly common use case: 1) I have inbound calls via various carriers. Some only support an IP endpoint (so DNS won't work) and some don't support 302 redirects, so I can't use a stateless FS endpoint either, so I need a sip proxy. 2) I need a SIP proxy that will route calls to various FreeSWITCH endpoints. (Preferably, it should route registration too (or manage registration list itself?)) 3) I need the ability to pull freeswitch nodes out of the routing (waiting for them to drain is fine, I don't need failover of live calls) to perform maintenance, and then add them back to the routing. 4) I should be able to have this proxy on a floating IP that I can move *this *too, *without downtime*, for maintenance work. I think this is mostly handled by the <https://wiki.freeswitch.org/wiki/OpenSIPS_configuration_for_2_or_more_FreeSWITCH_installs> examples <http://wiki.freeswitch.org/wiki/SBC_Setup> I <https://wiki.freeswitch.org/wiki/Enterprise_deployment_OpenSIPS> found <http://www.opensips.org/Documentation/Tutorials-OpenSIPSFreeSwitchIntegration> - but the opensips configuration files are hundreds of lines that I don't understand. If it's just routing calls to a backend, shouldn't that be possible in a small numbers of lines that are more understandable? I imagine someone can probably just point me to a tutorial/working code that I can use. Several have been shared but I don't recall any one being particularly simple... Also, most of them tell you about compiling code. FS has been released in packages - has opensips? That might cut off many steps from an updated tutorial. Thanks! -Avi Marcus
Hi Avi, Albeit slightly old (nevertheless still relevant), here is a kamailio guide for freeswitch that might give you some inspiration: http://kb.asipto.com/freeswitch:kamailio-3.3.x-freeswitch-1.2.x-sbc. HTH, Ben
On 2 Feb 2015, at 09:55, Avi Marcus <avi@avimarcus.net> wrote:
Hi - I know this has come up several times and I see several examples even on the old wiki - but I've never used a SIP proxy before, and I don't understand most of the configuration in the examples.
Here's what I believe is a fairly common use case:
1) I have inbound calls via various carriers. Some only support an IP endpoint (so DNS won't work) and some don't support 302 redirects, so I can't use a stateless FS endpoint either, so I need a sip proxy.
2) I need a SIP proxy that will route calls to various FreeSWITCH endpoints. (Preferably, it should route registration too (or manage registration list itself?))
3) I need the ability to pull freeswitch nodes out of the routing (waiting for them to drain is fine, I don't need failover of live calls) to perform maintenance, and then add them back to the routing.
4) I should be able to have this proxy on a floating IP that I can move this too, without downtime, for maintenance work.
I think this is mostly handled by the examples I found - but the opensips configuration files are hundreds of lines that I don't understand. If it's just routing calls to a backend, shouldn't that be possible in a small numbers of lines that are more understandable?
I imagine someone can probably just point me to a tutorial/working code that I can use. Several have been shared but I don't recall any one being particularly simple... Also, most of them tell you about compiling code. FS has been released in packages - has opensips? That might cut off many steps from an updated tutorial.
Thanks!
-Avi Marcus _________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
Check out the configs from 2600hz camp (both older opensips to their newer kamalio setup). It's not true load balancing, just round robin or linear hunting. Both opensips and kamalio have a (3rd party) gui as well. There are also cli based commands through opensipsctl and the kamailio variant to remove media servers from the pool, bring them back in, etc... The gui's helps there as well. You will still need to dive in to docs pages for either proxy to understand what some of the config is doing as simply dumping 2600hz configs may not work for your setup, but it was a great starting point for us. From: 0x6e6562@gmail.com Date: Mon, 2 Feb 2015 17:07:36 +0100 To: freeswitch-users@lists.freeswitch.org Subject: Re: [Freeswitch-users] SIP Proxy - Kamailio/Opens* load-balancing - simple example please? Hi Avi, Albeit slightly old (nevertheless still relevant), here is a kamailio guide for freeswitch that might give you some inspiration: http://kb.asipto.com/freeswitch:kamailio-3.3.x-freeswitch-1.2.x-sbc. HTH, Ben On 2 Feb 2015, at 09:55, Avi Marcus <avi@avimarcus.net> wrote: Hi - I know this has come up several times and I see several examples even on the old wiki - but I've never used a SIP proxy before, and I don't understand most of the configuration in the examples. Here's what I believe is a fairly common use case: 1) I have inbound calls via various carriers. Some only support an IP endpoint (so DNS won't work) and some don't support 302 redirects, so I can't use a stateless FS endpoint either, so I need a sip proxy. 2) I need a SIP proxy that will route calls to various FreeSWITCH endpoints.(Preferably, it should route registration too (or manage registration list itself?)) 3) I need the ability to pull freeswitch nodes out of the routing (waiting for them to drain is fine, I don't need failover of live calls) to perform maintenance, and then add them back to the routing. 4) I should be able to have this proxy on a floating IP that I can move this too, without downtime, for maintenance work. I think this is mostly handled by the examples I found - but the opensips configuration files are hundreds of lines that I don't understand. If it's just routing calls to a backend, shouldn't that be possible in a small numbers of lines that are more understandable? I imagine someone can probably just point me to a tutorial/working code that I can use. Several have been shared but I don't recall any one being particularly simple... Also, most of them tell you about compiling code. FS has been released in packages - has opensips? That might cut off many steps from an updated tutorial. Thanks! -Avi Marcus _________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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 Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
Avi, I understand your reluctance, as I've been down this path too. Admittedly OpenSIPS and Kamailio both have a pretty steep learning curve even when compared to FS. The trick to remember is that your config in either OpenSIPS or Kamailio are SIP message base, because first and foremost both operate on an individual SIP message basis, and it's only via the tm module that you get transactional SIP awareness, and limited dialog awareness with the dialog module. But believe me that it's well worth the time spent to learn these systems, as they are highly powerful and you may find you want to do a lot more than just what you outlined, but you'll also have the power to implement that as well. As for more stateful load balancing, there is the loadbalance module which can track capabilities that you define on your entries, as the dispatcher module is basically just a fire-and-forget without any actual load management. -- Yossi Neiman On 02/02/2015 02:55 AM, Avi Marcus wrote:
Hi - I know this has come up several times and I see several examples even on the old wiki - but I've never used a SIP proxy before, and I don't understand most of the configuration in the examples.
Here's what I believe is a fairly common use case:
1) I have inbound calls via various carriers. Some only support an IP endpoint (so DNS won't work) and some don't support 302 redirects, so I can't use a stateless FS endpoint either, so I need a sip proxy.
2) I need a SIP proxy that will route calls to various FreeSWITCH endpoints. (Preferably, it should route registration too (or manage registration list itself?))
3) I need the ability to pull freeswitch nodes out of the routing (waiting for them to drain is fine, I don't need failover of live calls) to perform maintenance, and then add them back to the routing.
4) I should be able to have this proxy on a floating IP that I can move /this /too, /without downtime/, for maintenance work.
I think this is mostly handled by the <https://wiki.freeswitch.org/wiki/OpenSIPS_configuration_for_2_or_more_FreeSWITCH_installs> examples <http://wiki.freeswitch.org/wiki/SBC_Setup> I <https://wiki.freeswitch.org/wiki/Enterprise_deployment_OpenSIPS> found <http://www.opensips.org/Documentation/Tutorials-OpenSIPSFreeSwitchIntegration> - but the opensips configuration files are hundreds of lines that I don't understand. If it's just routing calls to a backend, shouldn't that be possible in a small numbers of lines that are more understandable?
I imagine someone can probably just point me to a tutorial/working code that I can use. Several have been shared but I don't recall any one being particularly simple... Also, most of them tell you about compiling code. FS has been released in packages - has opensips? That might cut off many steps from an updated tutorial.
Thanks!
-Avi Marcus
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
If you want to have a sip proxy on board then you have to learn how sip works. You can set up opensips and the example script will work as a simple sip proxy. But to get exactly what you want you have to learn what each module does and how it change the packets. I can recomend you to start from book called Building Telephony Systems with OpenSIPS 1.6. 2015-02-03 23:27 GMT+06:00 I put the Who? in Mishehu <mishehu@freeswitch.org
:
Avi,
I understand your reluctance, as I've been down this path too. Admittedly OpenSIPS and Kamailio both have a pretty steep learning curve even when compared to FS. The trick to remember is that your config in either OpenSIPS or Kamailio are SIP message base, because first and foremost both operate on an individual SIP message basis, and it's only via the tm module that you get transactional SIP awareness, and limited dialog awareness with the dialog module. But believe me that it's well worth the time spent to learn these systems, as they are highly powerful and you may find you want to do a lot more than just what you outlined, but you'll also have the power to implement that as well.
As for more stateful load balancing, there is the loadbalance module which can track capabilities that you define on your entries, as the dispatcher module is basically just a fire-and-forget without any actual load management.
-- Yossi Neiman
On 02/02/2015 02:55 AM, Avi Marcus wrote:
Hi - I know this has come up several times and I see several examples even on the old wiki - but I've never used a SIP proxy before, and I don't understand most of the configuration in the examples.
Here's what I believe is a fairly common use case:
1) I have inbound calls via various carriers. Some only support an IP endpoint (so DNS won't work) and some don't support 302 redirects, so I can't use a stateless FS endpoint either, so I need a sip proxy.
2) I need a SIP proxy that will route calls to various FreeSWITCH endpoints. (Preferably, it should route registration too (or manage registration list itself?))
3) I need the ability to pull freeswitch nodes out of the routing (waiting for them to drain is fine, I don't need failover of live calls) to perform maintenance, and then add them back to the routing.
4) I should be able to have this proxy on a floating IP that I can move *this *too, *without downtime*, for maintenance work.
I think this is mostly handled by the <https://wiki.freeswitch.org/wiki/OpenSIPS_configuration_for_2_or_more_FreeSWITCH_installs> examples <http://wiki.freeswitch.org/wiki/SBC_Setup> I <https://wiki.freeswitch.org/wiki/Enterprise_deployment_OpenSIPS> found <http://www.opensips.org/Documentation/Tutorials-OpenSIPSFreeSwitchIntegration> - but the opensips configuration files are hundreds of lines that I don't understand. If it's just routing calls to a backend, shouldn't that be possible in a small numbers of lines that are more understandable?
I imagine someone can probably just point me to a tutorial/working code that I can use. Several have been shared but I don't recall any one being particularly simple... Also, most of them tell you about compiling code. FS has been released in packages - has opensips? That might cut off many steps from an updated tutorial.
Thanks!
-Avi Marcus
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.orghttp://www.freeswitchsolutions.com
Official FreeSWITCH Siteshttp://www.freeswitch.orghttp://confluence.freeswitch.orghttp://www.cluecon....
FreeSWITCH-users mailing listFreeSWITCH-users@lists.freeswitch.orghttp://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-usershttp://www.frees...
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
-- Kamil Nigmatullin Tel: 77272323748 mob: 7 (707) 2517003 Skype: kamil.nigmatullin
On 03/02/15 18:27, I put the Who? in Mishehu wrote:
[...] the dispatcher module is basically just a fire-and-forget without any actual load management.
Dispatcher module in kamailio can do selection of the destination based on least number of active calls across the destinations belonging to same group (in other words, selecting the freeswitch server with the least number of active calls). Its there for couple of years, respectively the dispatching algorithm 10: - http://kamailio.org/docs/modules/4.2.x/modules/dispatcher.html#dispatcher.f.... It has an internal lightweight active call tracking system, so it doesn't depend on other heavy modules for that, keeping the load balancer system very performant. Cheers, Daniel -- Daniel-Constantin Mierla http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda Kamailio World Conference, May 27-29, 2015 Berlin, Germany - http://www.kamailioworld.com
Following on from my original response, which was just a link to an existing example. Here are some answers which are a bit Kamailio-centric: On Mon, Feb 2, 2015 at 8:55 AM, Avi Marcus <avi@avimarcus.net> wrote:
1) I have inbound calls via various carriers. Some only support an IP endpoint (so DNS won't work) and some don't support 302 redirects, so I can't use a stateless FS endpoint either, so I need a sip proxy.
Do you want avoid using FS as a back to hack user agent?
2) I need a SIP proxy that will route calls to various FreeSWITCH endpoints. (Preferably, it should route registration too (or manage registration list itself?))
Kamailio is a SIP registrar, so you can implement registration with it alone. But it can forward the REGISTER to FS if that suits you better.
3) I need the ability to pull freeswitch nodes out of the routing (waiting for them to drain is fine, I don't need failover of live calls) to perform maintenance, and then add them back to the routing.
You could potentially use the dispatcher module in Kamailio for this. The dispatcher does have a reload command that you can invoke actively, or you could leave it up to dispatcher to detect that an FS node has been taken offline. It depends on the specific semantics you want to support.
4) I should be able to have this proxy on a floating IP that I can move this too, without downtime, for maintenance work.
Depending on your OS, you could use a CARP device for your SIP listen IP - this might allow you to take a node offline.
Unless you're looking at extremely high scale (several hundred to thousands CPS) or tens - hundreds of thousands of call (yes, really) why not just use another FreeSWITCH instance in bypass_media? On decent hardware FreeSWITCH can easily manage a simple call routing config in bypass_media into hundreds of CPS and several thousands calls. This can provide everything you've mentioned (and more) with many additional advantages including not needing to learn SIP in and out to make a SER-ish configuration useful. On Mon, Feb 2, 2015 at 3:55 AM, Avi Marcus <avi@avimarcus.net> wrote:
Hi - I know this has come up several times and I see several examples even on the old wiki - but I've never used a SIP proxy before, and I don't understand most of the configuration in the examples.
Here's what I believe is a fairly common use case:
1) I have inbound calls via various carriers. Some only support an IP endpoint (so DNS won't work) and some don't support 302 redirects, so I can't use a stateless FS endpoint either, so I need a sip proxy.
2) I need a SIP proxy that will route calls to various FreeSWITCH endpoints. (Preferably, it should route registration too (or manage registration list itself?))
3) I need the ability to pull freeswitch nodes out of the routing (waiting for them to drain is fine, I don't need failover of live calls) to perform maintenance, and then add them back to the routing.
4) I should be able to have this proxy on a floating IP that I can move this too, without downtime, for maintenance work.
I think this is mostly handled by the examples I found - but the opensips configuration files are hundreds of lines that I don't understand. If it's just routing calls to a backend, shouldn't that be possible in a small numbers of lines that are more understandable?
I imagine someone can probably just point me to a tutorial/working code that I can use. Several have been shared but I don't recall any one being particularly simple... Also, most of them tell you about compiling code. FS has been released in packages - has opensips? That might cut off many steps from an updated tutorial.
Thanks!
-Avi Marcus
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
-- Kristian Kielhofner
The sip proxy is nice at handling the unwanted high CPS from attacks that the Sofia sip stack is incapable of dealing with. Plus the proxy can send those unwanted requests to the bit bucket instead of replying like FS will do. Chris
On Feb 5, 2015, at 12:33, Kristian Kielhofner <kris@kriskinc.com> wrote:
Unless you're looking at extremely high scale (several hundred to thousands CPS) or tens - hundreds of thousands of call (yes, really) why not just use another FreeSWITCH instance in bypass_media? On decent hardware FreeSWITCH can easily manage a simple call routing config in bypass_media into hundreds of CPS and several thousands calls.
This can provide everything you've mentioned (and more) with many additional advantages including not needing to learn SIP in and out to make a SER-ish configuration useful.
On Mon, Feb 2, 2015 at 3:55 AM, Avi Marcus <avi@avimarcus.net> wrote: Hi - I know this has come up several times and I see several examples even on the old wiki - but I've never used a SIP proxy before, and I don't understand most of the configuration in the examples.
Here's what I believe is a fairly common use case:
1) I have inbound calls via various carriers. Some only support an IP endpoint (so DNS won't work) and some don't support 302 redirects, so I can't use a stateless FS endpoint either, so I need a sip proxy.
2) I need a SIP proxy that will route calls to various FreeSWITCH endpoints. (Preferably, it should route registration too (or manage registration list itself?))
3) I need the ability to pull freeswitch nodes out of the routing (waiting for them to drain is fine, I don't need failover of live calls) to perform maintenance, and then add them back to the routing.
4) I should be able to have this proxy on a floating IP that I can move this too, without downtime, for maintenance work.
I think this is mostly handled by the examples I found - but the opensips configuration files are hundreds of lines that I don't understand. If it's just routing calls to a backend, shouldn't that be possible in a small numbers of lines that are more understandable?
I imagine someone can probably just point me to a tutorial/working code that I can use. Several have been shared but I don't recall any one being particularly simple... Also, most of them tell you about compiling code. FS has been released in packages - has opensips? That might cut off many steps from an updated tutorial.
Thanks!
-Avi Marcus
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
-- Kristian Kielhofner
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
I thought there used to exist a config wizard that you could go thru and check all the options you wanted and it would spit out a working config for Kamailio... or was I dreaming? On Thu, Feb 5, 2015 at 11:44 AM, <cmrienzo@gmail.com> wrote:
The sip proxy is nice at handling the unwanted high CPS from attacks that the Sofia sip stack is incapable of dealing with. Plus the proxy can send those unwanted requests to the bit bucket instead of replying like FS will do.
Chris
On Feb 5, 2015, at 12:33, Kristian Kielhofner <kris@kriskinc.com> wrote:
Unless you're looking at extremely high scale (several hundred to thousands CPS) or tens - hundreds of thousands of call (yes, really) why not just use another FreeSWITCH instance in bypass_media? On decent hardware FreeSWITCH can easily manage a simple call routing config in bypass_media into hundreds of CPS and several thousands calls.
This can provide everything you've mentioned (and more) with many additional advantages including not needing to learn SIP in and out to make a SER-ish configuration useful.
On Mon, Feb 2, 2015 at 3:55 AM, Avi Marcus <avi@avimarcus.net> wrote: Hi - I know this has come up several times and I see several examples even on the old wiki - but I've never used a SIP proxy before, and I don't understand most of the configuration in the examples.
Here's what I believe is a fairly common use case:
1) I have inbound calls via various carriers. Some only support an IP endpoint (so DNS won't work) and some don't support 302 redirects, so I can't use a stateless FS endpoint either, so I need a sip proxy.
2) I need a SIP proxy that will route calls to various FreeSWITCH endpoints. (Preferably, it should route registration too (or manage registration list itself?))
3) I need the ability to pull freeswitch nodes out of the routing (waiting for them to drain is fine, I don't need failover of live calls) to perform maintenance, and then add them back to the routing.
4) I should be able to have this proxy on a floating IP that I can move this too, without downtime, for maintenance work.
I think this is mostly handled by the examples I found - but the opensips configuration files are hundreds of lines that I don't understand. If it's just routing calls to a backend, shouldn't that be possible in a small numbers of lines that are more understandable?
I imagine someone can probably just point me to a tutorial/working code that I can use. Several have been shared but I don't recall any one being particularly simple... Also, most of them tell you about compiling code. FS has been released in packages - has opensips? That might cut off many steps from an updated tutorial.
Thanks!
-Avi Marcus
Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
-- Kristian Kielhofner
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
-- *Brian West* brian@freeswitch.org *Twitter: @FreeSWITCH , @briankwest* http://www.freeswitchbook.com http://www.freeswitchcookbook.com *T:*+19184209001 | *F:*+19184209002 | *M:*+1918424WEST (9378) *iNUM:*+883 5100 1420 9001 | *ISN:*410*543 | *Skype:*briankwest
On Thu, Feb 5, 2015 at 9:47 AM, Brian West <brian@freeswitch.org> wrote:
I thought there used to exist a config wizard that you could go thru and check all the options you wanted and it would spit out a working config for Kamailio... or was I dreaming?
There is this: https://www.sipwise.com/products/ I've never used it and I'm suspicious of anything that uses "SIP" and "wise" in the same sentence but you never know. ;) -MC
On 05/02/15 18:56, Michael Collins wrote:
On Thu, Feb 5, 2015 at 9:47 AM, Brian West <brian@freeswitch.org <mailto:brian@freeswitch.org>> wrote:
I thought there used to exist a config wizard that you could go thru and check all the options you wanted and it would spit out a working config for Kamailio... or was I dreaming?
There is this: https://www.sipwise.com/products/
I've never used it and I'm suspicious of anything that uses "SIP" and "wise" in the same sentence but you never know. ;)
The wizard was mainly during the openser times and for a bit after rename to kamailio - used to be at http://wizard.sipwise.com/wizard/ - no longer available. Anyhow, it was targeting to build a basic configuration file suitable for a VoIP operator (authentication, accounting, nat traversal, ..., but no load balancing). All these features are now provided in default kamailio.cfg with options to enable/disable them via defines. Cheers, Daniel -- Daniel-Constantin Mierla http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda Kamailio World Conference, May 27-29, 2015 Berlin, Germany - http://www.kamailioworld.com
Kristian: Indeed, that would be easier! However, that doesn't seem to solve the ability to do maintenance on that box (I was planning to have opensips share with one of the FS instances). Is recover call table from a shared sql DB reliable for that situation, or any other way to make it stateless...? -Avi On Thu, Feb 5, 2015 at 7:33 PM, Kristian Kielhofner <kris@kriskinc.com> wrote:
Unless you're looking at extremely high scale (several hundred to thousands CPS) or tens - hundreds of thousands of call (yes, really) why not just use another FreeSWITCH instance in bypass_media? On decent hardware FreeSWITCH can easily manage a simple call routing config in bypass_media into hundreds of CPS and several thousands calls.
This can provide everything you've mentioned (and more) with many additional advantages including not needing to learn SIP in and out to make a SER-ish configuration useful.
On Mon, Feb 2, 2015 at 3:55 AM, Avi Marcus <avi@avimarcus.net> wrote:
Hi - I know this has come up several times and I see several examples even on the old wiki - but I've never used a SIP proxy before, and I don't understand most of the configuration in the examples.
Here's what I believe is a fairly common use case:
1) I have inbound calls via various carriers. Some only support an IP endpoint (so DNS won't work) and some don't support 302 redirects, so I can't use a stateless FS endpoint either, so I need a sip proxy.
2) I need a SIP proxy that will route calls to various FreeSWITCH endpoints. (Preferably, it should route registration too (or manage registration list itself?))
3) I need the ability to pull freeswitch nodes out of the routing (waiting for them to drain is fine, I don't need failover of live calls) to perform maintenance, and then add them back to the routing.
4) I should be able to have this proxy on a floating IP that I can move this too, without downtime, for maintenance work.
I think this is mostly handled by the examples I found - but the opensips configuration files are hundreds of lines that I don't understand. If it's just routing calls to a backend, shouldn't that be possible in a small numbers of lines that are more understandable?
I imagine someone can probably just point me to a tutorial/working code that I can use. Several have been shared but I don't recall any one being particularly simple... Also, most of them tell you about compiling code. FS has been released in packages - has opensips? That might cut off many steps from an updated tutorial.
Thanks!
-Avi Marcus
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
-- Kristian Kielhofner
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
There is no way to make a sip user agent stateless. recovery may be an option.
On Feb 5, 2015, at 1:59 PM, Avi Marcus <avi@avimarcus.net> wrote:
Kristian: Indeed, that would be easier! However, that doesn't seem to solve the ability to do maintenance on that box (I was planning to have opensips share with one of the FS instances).
Is recover call table from a shared sql DB reliable for that situation, or any other way to make it stateless...?
-Avi
On Thu, Feb 5, 2015 at 7:33 PM, Kristian Kielhofner <kris@kriskinc.com <mailto:kris@kriskinc.com>> wrote: Unless you're looking at extremely high scale (several hundred to thousands CPS) or tens - hundreds of thousands of call (yes, really) why not just use another FreeSWITCH instance in bypass_media? On decent hardware FreeSWITCH can easily manage a simple call routing config in bypass_media into hundreds of CPS and several thousands calls.
This can provide everything you've mentioned (and more) with many additional advantages including not needing to learn SIP in and out to make a SER-ish configuration useful.
On Mon, Feb 2, 2015 at 3:55 AM, Avi Marcus <avi@avimarcus.net <mailto:avi@avimarcus.net>> wrote:
Hi - I know this has come up several times and I see several examples even on the old wiki - but I've never used a SIP proxy before, and I don't understand most of the configuration in the examples.
Here's what I believe is a fairly common use case:
1) I have inbound calls via various carriers. Some only support an IP endpoint (so DNS won't work) and some don't support 302 redirects, so I can't use a stateless FS endpoint either, so I need a sip proxy.
2) I need a SIP proxy that will route calls to various FreeSWITCH endpoints. (Preferably, it should route registration too (or manage registration list itself?))
3) I need the ability to pull freeswitch nodes out of the routing (waiting for them to drain is fine, I don't need failover of live calls) to perform maintenance, and then add them back to the routing.
4) I should be able to have this proxy on a floating IP that I can move this too, without downtime, for maintenance work.
I think this is mostly handled by the examples I found - but the opensips configuration files are hundreds of lines that I don't understand. If it's just routing calls to a backend, shouldn't that be possible in a small numbers of lines that are more understandable?
I imagine someone can probably just point me to a tutorial/working code that I can use. Several have been shared but I don't recall any one being particularly simple... Also, most of them tell you about compiling code. FS has been released in packages - has opensips? That might cut off many steps from an updated tutorial.
Hello, dispatcher module in kamailio includes a sample configuration file, quite simple, but ready to use (with re-routing on failure): - http://kamailio.org/docs/modules/4.2.x/modules/dispatcher.html#dispatcher.ex... It does round robin distribution for calls (algorithm 4), but you can change the algorithm to be call load distribution (algorithm 8, which selects least loaded freeswitch based on active calls). You have the option to manage the list of active freeswitch addresses via rpc commands (xmlrpc, jsonrpc) or command line (via kamctl). Kamailio with dispatcher module works perfectly on shared IP deployments (ucarp, vrrp), being the most common installation I do for a SIP load balancer. Note that if you forward the REGISTER requests, then you have to add Path header (see path module in kamailio). Also, perhaps you have to do the selection of freeswitch based on a different algorithm, in case you want registrations from same user to land to same freeswitch. Cheers, Daniel On 02/02/15 09:55, Avi Marcus wrote:
Hi - I know this has come up several times and I see several examples even on the old wiki - but I've never used a SIP proxy before, and I don't understand most of the configuration in the examples.
Here's what I believe is a fairly common use case:
1) I have inbound calls via various carriers. Some only support an IP endpoint (so DNS won't work) and some don't support 302 redirects, so I can't use a stateless FS endpoint either, so I need a sip proxy.
2) I need a SIP proxy that will route calls to various FreeSWITCH endpoints. (Preferably, it should route registration too (or manage registration list itself?))
3) I need the ability to pull freeswitch nodes out of the routing (waiting for them to drain is fine, I don't need failover of live calls) to perform maintenance, and then add them back to the routing.
4) I should be able to have this proxy on a floating IP that I can move /this /too, /without downtime/, for maintenance work.
I think this is mostly handled by the <https://wiki.freeswitch.org/wiki/OpenSIPS_configuration_for_2_or_more_FreeSWITCH_installs> examples <http://wiki.freeswitch.org/wiki/SBC_Setup> I <https://wiki.freeswitch.org/wiki/Enterprise_deployment_OpenSIPS> found <http://www.opensips.org/Documentation/Tutorials-OpenSIPSFreeSwitchIntegration> - but the opensips configuration files are hundreds of lines that I don't understand. If it's just routing calls to a backend, shouldn't that be possible in a small numbers of lines that are more understandable?
I imagine someone can probably just point me to a tutorial/working code that I can use. Several have been shared but I don't recall any one being particularly simple... Also, most of them tell you about compiling code. FS has been released in packages - has opensips? That might cut off many steps from an updated tutorial.
Thanks!
-- Daniel-Constantin Mierla http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda Kamailio World Conference, May 27-29, 2015 Berlin, Germany - http://www.kamailioworld.com
participants (11)
-
Avi Marcus
-
Ben Hood
-
Brian West
-
cmrienzo@gmail.com
-
Daniel-Constantin Mierla
-
DP .
-
I put the Who? in Mishehu
-
Kamil Nigmatullin
-
Kristian Kielhofner
-
Michael Collins
-
Michael Jerris