Thanks Bogdan. Although what you described is close to my problem ( I have
no issues with received parameter, etc.) but there are some differences. I
will try to explain in more detail:
1) THe SER Proxy is 0.9.6
2) The Presence Server is the pre-release version
3) All cllients register with SER Proxy and SER Proxy is responsible for
handling all voice calls. For each client that registers with SER Proxy, the
REGISTER is replicated (using t_replicate) to Presence Server. I have a
client behind a NAT. When it registers with the SER Proxy, I see the
following when I do a serctl ul show (Please note that the contact
information shows the PUBLIC IP (or received) and not the Private IP)
<sip:444@70.80.94.164:11352;rinstance=cd44c78b61d6ebe9>;q=0.1;expires=3574
4) When this REGISTER is forwarded to PRESENCE SERVER, I see the following
in the location table on the presence server:
uid=444
aor=sip:444@xxx.sip.com
contact=sip:444@70.80.94.164:11352;rinstance=cd44c78b61d6ebe9
received=NULL
etc.
As you see, the contact information is the same as on SER Proxy.
5) Now, when the PRESENCE server sends a NOTIFY to 444 whenever a presentity
444 is watching changes status, the NOTIFY is sent to the SER PROXY IP, but
the URI is:
(DESTINATION IP ADDRESS IS THAT OF SIP PROXY)
NOTIFY sip:444@70.80.94.164:11352 SIP/2.0
Via: SIP/2.0/UDP PRESENCE_SERVER_IP....
SER PROXY then receives this packet and forwards it directly to the IP
70.80.94.164:11352. Now in most cases, my client receives this NOTIFY and
sends a response back to SER PROXY and it displays the status of the
presentity correctly. But sometimes, due to some unknown reason, my client
does not receive this NOTIFY.
6) What I would like to see/know is whether PRESENCE Server can send a
NOTIFY to the SER PROXY with the following URI:
(DESTINATION IP ADDRESS IS THAT OF SIP PROXY)
NOTIFY sip:444@xxx.sip.com
..
I hope this clarifies the issue.Is there a solution to this?
Thanks in advance.
From: Bogdan Pintea <pintea(a)iptego.de>
To: SER LIST <sergrp(a)hotmail.com>
CC: serusers(a)iptel.org
Subject: Re: [Serusers] SER pre-release - Presence and NOTIFY
Date: Sun, 12 Nov 2006 15:05:08 +0100
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
_________________________________________________________________
Buy, Load, Play. The new Sympatico / MSN Music Store works seamlessly with
Windows Media Player. Just Click PLAY.
http://musicstore.sympatico.msn.ca/content/viewer.aspx?cid=SMS_Sept192006