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@iptego.de To: SER LIST sergrp@hotmail.com CC: serusers@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("%@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@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@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