For your setup, profile replication between the two boxes should
suffice, with the following usage by and large:
* modparam("dialog", "profiles_with_value", "concurrent/b")
* set_dlg_profile("concurrent/b");
* opensipsctl fifo profile_get_values concurrent/b
It should work without problems on 2.2 as well. Please let me know if
you run into any sort of issues.
Regards,
Liviu Chircu
OpenSIPS Developer
http://www.opensips-solutions.com
On 12.05.2017 12:01, John Quick wrote:
Hello Liviu,
Thanks for responding to my query.
The setup we have is active-active. The cluster size is 2.
The requirement is to be able to count, and limit, the total number of calls
made by each user account.
So if a particular user is allowed to make a total of 15 concurrent calls, this
limit needs to be enforced as soon as the total number of calls through *both*
servers exceeds 15.
I have no need to replicate dialogs and can most certainly omit the modparam
lines that initiate dialog replication.
However, I now wonder if my method of testing is valid?
I was thinking that "opensipsctl fifo profile_get_values concurrent" would show
me values for both servers as soon as a call was established on either server.
We might be able to upgrade to v2.3 if it is essential, but we had standardised
deployment and server builds using debian packages from the repository "deb
http://apt.opensips.org jessie 2.2-releases". Version 2.2 was the most up-to-date
stable release when we started this project and it is still a supported version. I can
see that a complex backport is not desireable for the developers but please can you help
us to at least work around the known issues if possible.
Regards
John Quick
Smartvox Limited
Hi, John!
First of all, this is a known issue [1] with the 2.2 clusterer, where
you cannot use both replication mechanisms of dialog concurrently. This
has been fixed in 2.3 and above, and required a significant code
refactoring, which is unlikely to get backported soon.
Secondly, what you are trying to do is unlikely to solve your problem
even with 2.3+, as the dialog replication mechanism __already__
broadcasts the profiles of each box throughout its cluster.
Consequently, reusing the same cluster id to share the profiles between
boxes (yet again) will effectively double the value of each profile. If
I correctly understand your intention, simply enabling dialog
replication (profile included) will solve your problem. Please correct
me if I'm wrong.
The documentation could use some improvements in order to reflect the
following (I will take care of this):
* dialog replication allows you to have "hot backups". Profiles are
included. Recommended cluster size: 2
* profile replication is meant to be used in
active-active-...-active setups, in order to easily achieve whatever
platform-wide limitations you may think of. The OpenSIPS cluster size
can grow indefinitely here.
Some food for thought: currently in OpenSIPS 2.3+, although merging the
above two concepts will work, the profiles are likely to be counted more
than once, and your limits will hit faster. The clusterer needs more
love in order to support "profile sharing between highly available
clusters".
Best regards,
[1]: https://github.com/OpenSIPS/opensips/issues/938
Liviu Chircu
OpenSIPS Developer
http://www.opensips-solutions.com
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users