[Serusers] SER pre-release - Presence and NOTIFY

Bogdan Pintea pintea at iptego.de
Sun Nov 12 15:05:08 CET 2006


If I got it right, your problem is that your SER acting like a proxy
does not "feel" it is responsible for the NOTIFY originated at your SER
acting like a presence server and tries to route it by RURI, which is in
this case a private IP, leading to routing failure.

I also figure that your proxy server is bound to a public IP - otherwise
the proxy would correctly handle the forwarding - and you have (some)
clients behind NAT.

In this case, the best solution might not be fixing the RURI the way you
want*.

With the latest (prerelease) version of SER you could try a solution like:
- handle the NAT case at the SER that is contacted first by your clients
- your proxy; check iptel's site for how to do this; what's most
important is that the REGISTER leaves from proxy to presence server
having the "received" RURI parameter attached.
- presence server attaches "back" this parameter to NOTIFY's RURI
(<<modparam("registrar", "received_to_uri", 1)>>).
- instruct SER proxy to forward the NOTIFY based on this "received"
parameter (<<xlset_destination("%@ruri.params[\"received\"]")>>).
[this is a genuine new Ottendorf feature**; find it in 'avp' module].


Hth,
Bogdan.


* because:
SER simply inserts into RURI the binding address for the AOR - and this
is the correct thing to do.
This AOR (sip:444 at sip.xx.com) is what the subscriber inserted into the
To header at registering time.
The binding address (sip:444 at 10.1.1.1:12321) is what the subscriber
inserted into Contact header at registering time.

Most of the clients don't even ask you want to insert as Contact (and
well they do) and simply put their IPs there or the gateway's IP if STUN
capable.

Unless you run yet another registrar on the proxy, SER would still not
know where to forward the NOTIFY.
In case you do, both proxy and presence servers would lookup the binding
for AOR, which is performance unwise; moreover in case of multiple
bindings for an AOR you might  end up staring n^2 transactions on the
proxy and n NOTIFYs received by subscriber.

** current implementation remained broken: you need to apply the patch
for bug #125.

SER LIST wrote:
> Hi, I have SER Proxy and PRESENCE running on different machines.
> REGISTERS are being forwarded by SER Proxy to PRESENCE and PRESENCE is
> storing the location information in "location" db.
>
> What I am seeing is that when the PRESENCE Server sends NOTIFYs to
> watchers, it sends them to the SER PROXY (destination IP Is that of
> SER PROXY) but the URI in NOTIFY is that of the watchers LOCATION
> INFO. Is this correct? I would like the NOTIFY URI to contain the SIP
> DOMAIN and not the contact info.
>
> e.g. user 444 registers with SER PROXY (sip.xx.com). It is registering
> from 10.1.1.1:12321 (location info).  SER PROXY sends the REGISTER TO
> Presence server which stores this info in location database (location
> is 444 at 10.1.1.1:12321). Now when Presence Server sends NOTIFY, it
> sends it to the SER PROXY IP BUT the NOTIFY URI IS:
>
> NOTIFY sip:444 at 10.1.1.1:12321 SIP/2.0
>
> How can I have the NOTIFY URI to be :
>
> NOTIFY sip:444 at sip.xx.com SIP/2.0
>
>
> Any suggestions would be higlhy appreciated.
>
> _________________________________________________________________
> Ready for the world's first international mobile film festival
> celebrating the creative potential of today's youth? Check out Mobile
> Jam Fest for your a chance to WIN $10,000! www.mobilejamfest.com
>
> _______________________________________________
> Serusers mailing list
> Serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
>


-- 
Bogdan Pintea

iptego GmbH  -  VoIP Security
http://www.iptego.de




More information about the sr-users mailing list