Hi,
How does a SIP proxy
server decide to forward a REGISTER request to REGISTRAR and a SUBSCRIBE request
to Presence Server?
For clarification
pls. consider following example (and let me know if I
am interpreting
anything wrongly
in this
description) :
A SIP UA is visiting
"visited.com" domain. The "visited.com" admin has
configured
this UA with "proxy.visited.com:5060" as the outgoing proxy. The UA wants
to
register with the REGISTRAR its new contact. (pls.
Ignore mobility issues
here).
The SIP UA sends following
REGISTER request to "proxy.visited.com:5060",
bobspc.visited.com - >
proxy.visited.com
REGISTER
sip:biloxi.com SIP/2.0
Via: SIP/2.0/UDP bobspc.visited.com:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
To: Bob <sip:[EMAIL PROTECTED]>
From: Bob <sip:[EMAIL PROTECTED]>;tag=456248
Call-ID: 843817637684230@998sdasdh09
CSeq: 1826 REGISTER
Contact: <sip:[EMAIL PROTECTED]>
Expires: 7200
Content-Length: 0
Via: SIP/2.0/UDP bobspc.visited.com:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
To: Bob <sip:[EMAIL PROTECTED]>
From: Bob <sip:[EMAIL PROTECTED]>;tag=456248
Call-ID: 843817637684230@998sdasdh09
CSeq: 1826 REGISTER
Contact: <sip:[EMAIL PROTECTED]>
Expires: 7200
Content-Length: 0
Now, as per
RFC3263,
1)
"proxy.visited.com" is not responsible for "biloxi.com"
domain.
So it performs a
NAPTR query for TARGET "biloxi.com",
It returns, say, one
NAPTR SIP+D2U record "_sip._udp.biloxi.com".
2)
Then
"proxy.visited.com" performs an SRV query for
"_sip._udp.biloxi.com",
it returns, say, one
SRV record "proxy.biloxi.com" and port 5070.
3) Then
"proxy.visited.com" performs an A record query for
"proxy.biloxi.com",
it returns, say,
a.b.c.d.
So
"proxy.visited.com" sends above request, (without any modifications),
to
a.b.c.d at port 5070
using UDP.
Now,
"proxy.biloxi.com" receives the above request. It is responsible
for
"biloxi.com" domain.
The REGISTRAR for biloxi.com domain is
say
"registrar.biloxi.com". "proxy.biloxi.com" must decide to send above
request
to
"registrar.biloxi.com".
RFC3261, section
16.5 allows "proxy.biloxi.com", to use any abstract
location service to
find the destination for the request.
Q : Is it true that,
in order to find the destination, "proxy.biloxi.com" is
required to look
into SIP request, and see if it is REGISTER, then query
abstract location
service for
REGISTRAR, if it is SUBSCRIBE, then instead
query for PRESENCE
SERVER. So destination is queried based on SIP method?
Is this what is
expected?
thanks in
advance,
= Kedar
=
