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("%(a)ruri.params[\"received\"]")>>)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@sip.xx.com) is what the subscriber inserted into the
To header at registering time.
The binding address (sip:444@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@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@10.1.1.1:12321 SIP/2.0
How can I have the NOTIFY URI to be :
NOTIFY sip:444@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(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers
--
Bogdan Pintea
iptego GmbH - VoIP Security
http://www.iptego.de