I currently have three Asterisk servers in my environment. None of them speak to each other just yet. The idea is to install Kamailio and be able to load balance/distribute SIP calls to any of the three asterisk boxes. If an entire box plug gets pulled, the operation continues. If a Kamailio box gets the plug pulled (and due to limited resources, I plan at first to run kamailio on all three of the asterisk boxes), the operation will continue.
Does anyone have good documentation or insight in order to facilitate this sort of setup?
Thanks.
Hello,
On 10/05/08 17:46, John D wrote:
I currently have three Asterisk servers in my environment. None of them speak to each other just yet. The idea is to install Kamailio and be able to load balance/distribute SIP calls to any of the three asterisk boxes. If an entire box plug gets pulled, the operation continues. If a Kamailio box gets the plug pulled (and due to limited resources, I plan at first to run kamailio on all three of the asterisk boxes), the operation will continue.
Does anyone have good documentation or insight in order to facilitate this sort of setup?
the best is to look at dispatcher module to see if it fits your needs. It is a tiny module, easy to use, able to do load balancing and failover.
http://www.kamailio.org/docs/modules/1.4.x/dispatcher.html
Cheers, Daniel
Hi, I'm wondering about how people are managing the subscriber and other application data in a large environment? What are people using to share data among the servers behind the dispatcher? Shared database? db replication? A central location for collecting accounting records? ( I know people don't usually rely on proxy's accounting records but i'd still like to collect that information)
Also, What is the best way to update the location information on server that was offline for sometime?
Thanks.
On Tuesday 10 February 2009, Zahid Mehmood wrote:
I'm wondering about how people are managing the subscriber and
other application data in a large environment? What are people using to share data among the servers behind the dispatcher? Shared database? db replication?
Hi Zahid,
some people use a shared DB, e.g. mysql cluster. Some also implement some database partioning on top of normal mysql in their server. DB replication is also frequently used, to place your read/only data (auth, groups..) on local host to minimize network overhead.
A central location for collecting accounting records? ( I know people don't usually rely on proxy's accounting records but i'd still like to collect that information)
Accounting data can be easily aggregated over many servers in one DB, as each call is normally unique for the whole system.
Also, What is the best way to update the location information on server that was offline for sometime?
If one of your DBs was offline for some time, then you need to wait until the registration is expired for read access, but continue to write to it. When the registration expire time is over, then you can start to read again.
Cheers,
Henning
Thanks for your reply.
May I trouble you and others on the list to share the deciding factors (pros & cons) for choosing the option that you did.
I'm trying to get a better understanding circumstances in which you may choose one over the other.
What, if any, special considerations are there for the presence part?
Thanks.
Hello,
On 02/10/2009 07:55 PM, Zahid Mehmood wrote:
Thanks for your reply.
May I trouble you and others on the list to share the deciding factors (pros & cons) for choosing the option that you did.
the benefit of a cluster is that it was designed for such cases. The drawback is that MySQL version still is pretty early stage. However, there are success stories and production environments with the cluster in place.
I am particularly going for user partitioning. It does not make full service unavailable if one db node is down. When partitioning is very important to group users by probability to talk inside the group.
As example, put all IT guys in the same node, they are very likely to talk in between a lot to solve issues. Of course, such distribution can be considered on geographic location if you deal with branch offices, a.s.o.
Each node is replicated for HA and failover - active-active or active-standby, depending on needs.
The communication between nodes is another part. Depending on number of nodes, you can have static binding of users and nodes or a proxy node that just gives back the node of one user. So you look for user on local node and if not found ask the proxy node.
I am designing and implementing the platform mainly based on customer expertise. If they feel more comfortable with a cluster, that is. Practically they are the ones that have to manage the system in a day by day manner and integrate with third party components.
I'm trying to get a better understanding circumstances in which you may choose one over the other.
What, if any, special considerations are there for the presence part?
Presence has more sip traffic, requires more memory to store and aggregate the presence documents. Therefore I recommend you have dedicated nodes as presence servers. It helps a lot in scaling and ensuring service availability for basic telephony (registration and call routing).
Cheers, Daniel
On Tuesday 10 February 2009, Zahid Mehmood wrote:
Thanks for your reply.
May I trouble you and others on the list to share the deciding factors (pros & cons) for choosing the option that you did.
I'm trying to get a better understanding circumstances in which you may choose one over the other.
Hi Zahid,
during the time we implemented our solution mysql cluster was not that mature, so we decided to use custom partioning. Now the things looking better with this software. And as Daniel said, there are some people that use this successful in production. If you implemented a home grown solution then you can tailor then especially to your needs, a general system like mysql cluster is way more complex, but you save work in implementation and QA.
Cheers,
Henning