[OpenSIPS-Users] Distributing Presence

James Lamanna jlamanna at gmail.com
Mon Jan 31 07:20:57 CET 2011


I should probably re-title this "Using Multiple Presence Servers with NAT".
What I want my setup to be is a cluster of opensips instances where
any phone can register to any server and also be able to subscribe to
the presence of any other phone.
What complicates this is that all the phones are behind NAT.
The idea here is to create a registration/presence cluster where any
node can be taken offline at any time, and phones using that node can
re-register to the other available nodes.

I've attempted to use presence in fallback2db mode, but I don't seem
to be having much success. Currently the presence DB is being shared
across 2 instances, but dialog SUBSCRIBE requests are not being
inserted into active_watchers (or they are and are being removed).

My initial thought was to not use fallback2db but propagate PUBLISH
events to all the nodes in the cluster so that the node that each
phone is registered to manages its subscriptions and sends out the
appropriate NOTIFYs, since all phone are behind NAT. For various
reasons, PUBLISH events don't seem to be able to be propagated between
servers (E_tag problems).

If anyone has any other ideas on how to make this work, it would be
much appreciated. Presence/BLF for my phones works great when
everything is on the same opensips instance, but my goal here is not
to have single instances managing a specific group of phones.

Thanks.

-- James


On Sun, Jan 30, 2011 at 10:11 AM, James Lamanna <jlamanna at gmail.com> wrote:
> Hi,
> I'm trying to create an opensips registration cluster that also
> supports distributed presence.
> The idea is that a UA can register to any server and subscribe to
> another UA that may be registered at a different server, along with
> making calls to them, etc..
>
> I already have REGISTER duplication working through the use of the
> path module and t_replicate.
> However, I noticed I cannot use the same approach with PUBLISH
> messages generated by pua_dialoginfo and pua_usrloc.
> The remote server that I replicate to always has the error of "No
> E_Tag match" when calling handle_publish().
> Is there any way to replicate PUBLISH Presence and Dialog events out
> to other opensips instances?
> Or do I need to use shared database tables (and db_mode 3).
>
> Thanks.
>
> -- James
>



More information about the Users mailing list