Figure 20.4 Discovery and call routing in (a) the trapezoid model for CS SIP and (b) in the
P2P SIP model using DHTs in an overlay network
CS SIP Model
The caller in Figure 20.4a must first determine the outgoing SIP proxy (we
don’t show the registrar here for simplicity) by issuing first a DNS SRV request
to get a list of outgoing SIP proxies. After deciding which proxy in the list to
use (for load balancing), a second DNS A record query will return the IP
address of the chosen outbound SIP proxy. The SIP UA of the caller will now
send an INVITEto the outbound proxy.
The outbound proxy will now make three or four DNS queries to find the IP
address of the inbound proxy:
- An ENUM NAPTR query the URI of the SIP service
- An SRV query to determine a list of incoming SIP proxies
- An A query to determine the IP address of the incoming SIP proxy
The outbound proxy can now forward the INVITEto the inbound proxy.
The inbound proxy will check its own location database (DB) and send the
invite to the calling party. This concludes the discovery and routing process in
the CS SIP example.
SIP UA OutboundProxy InboundProxy SIP UA
DNS
Location
DNS DB
SRV & A
queries
ENUM
NAPTR, SRV
& A queries
DB query
INVITE INVITE INVITE
a
Caller Called
DHT
SIP
DHT
SIP
DHT
SIP
DHT
SIP
Location
INVITE
1
2 3 4
5
6
6
b
Caller Called
API
Peer-to-Peer SIP 347