Title: Voice Routing
1Voice Routing
- Prof. Anirudha Sahoo
- KReSIT
- IIT Bombay
2Outline
- Primer on Voice over IP (VOIP)
- Introduction to and current state of voice
routing - Telephony Routing over IP (TRIP)
- Telephony Gateway REgistration Protocol (TGREP)
- E.164 Number (ENUM)
- VOIP issues in NAT/Firewall
3Voice Over IP (VOIP)
- Transmission of digitized voice in packet network
(e.g. IP, ATM, Frame Relay) - Enables telephone conversation to be carried over
IP network (in part or end-to-end) - Provides a toll bypass path for telephone calls
- Enables Telephony providers to provide cheaper
service
4VOIP System
PBX
PBX
(A typical PSTN system)
(A typical VOIP system)
5VOIP System (cont.)
IP Network
CPE router
CPE router
LAN
LAN
SIP proxy
Soft phone
IP phone
IP phone
(Another VOIP system)
6Outline
- Primer on Voice over IP (VOIP)
- Introduction to and current state of voice
routing - Telephony Routing over IP (TRIP)
- Telephony Gateway REgistration Protocol (TGREP)
- E.164 Number (ENUM)
- VOIP issues in NAT/Firewall
7What is voice routing?
- The method of exchanging telephony route
information between voice routing elements so
that telephone calls can be made over IP network - Basically it enables local voice gateways to
obtain the IP address of the remote voice
gateway(s) which can complete a given phone call
8Static voice routing
- The routing information is obtained out of band
and configured statically - An example of static routing on Cisco voice
gateway - dial-peer voice 108 voip
- destination-pattern 1408T
- session target ipv4172.292.1.1
9Limitations of Static routing
- Cannot react to the changes in routes quickly
- No dynamic information about resources at the
remote gateway - In the case where multiple routes exist choosing
successful route at a particular time is not
possible
10Current State of voice routing
- Lots of configuration is static routing because
of its simplicity. - Limited dynamism within a domain (zone)
- Use Gatekeepers in a H323 network
- Gatekeepers can provide some dynamic resource
based call routing - Between two zones (or admin domains) the routes
are exchanged statically
11Routing in H323 network
GK
IP
Gateway
Gateway
(Single Zone)
12Routing in H323 network
Single Zone
13Routing in H323 network (single Zone)
- Gateways register H323 ID or phone numbers with
the gatekeeper. - Thus the GKs have the knowledge of which phone
number can be terminated on which gateway. - Gateways do not need to know where to send a
call just need to get that info from GK
14Routing in H323 network (multiple zones)
15Routing in H323 network (multiple zones)
- Config on the GW_1 - ECV-2600-17
- h323-gateway voip id gk-zone1.test.com ipaddr
10.52.218.47 1718 - Config on the GW_2 - ECV-2600-16
- h323-gateway voip id gk-zone2.test.com ipaddr
10.52.218.46 1718
16Routing in H323 network (multiple zones)
- Config on the GK_1 ECV-2600-15 (zone 1)
- gatekeeper zone local gk-zone1.test.com
test.com 10.52.218.47 - zone remote gk-zone2.test.com test.com
10.52.218.46 1719 - zone prefix gk-zone2.test.com 16..
- zone prefix gk-zone1.test.com 17..
gw-priority 10 gw_1
17Routing in H323 network (multiple zones)
- Config on the GK_2 ECV-2600-14 (zone 2)
- gatekeeper zone local gk-zone2.test.com
test.com 10.52.218.46 - zone remote gk-zone1.test.com test.com
10.52.218.47 1719 - zone prefix gk-zone2.test.com 16.. gw-priority
10 gw_2 - zone prefix gk-zone1.test.com 17..
18Routing in H323 network (multiple zones)
- So the routes between two zones are configured
statically through configuration - No way of knowing whether the endpoint
(resources) is available -
19Routing in SIP network
- Within the same domain SIP gets the route from
the location service - Currently SIP routes are installed statically
through DNS setup (between domains) - sipuser_at_example.com is resolved to
- order pref flags service regexp
replacement - IN NAPTR 50 50 "s" "SIPSD2T" ""
_sips._tcp.example.com. - IN NAPTR 90 50 "s" "SIPD2T" ""
_sip._tcp.example.com - IN NAPTR 100 50 "s" "SIPD2U" ""
_sip._udp.example.com.
20Resource reporting in VOIP network
- Available resources is another aspect of voice
routing, because the signaling entity (e.g. GK)
can make better decisions based on it - Given two routes to the same destination, the one
with more available resources would have more
chance of completing a call - H323 provides limited (dynamic) resource
reporting via RAI messages - V4 has more flexible mechanism
- SIP does not have any mechanism to report
resources dynamically -
21Resource reporting in H323
- Gateways use RAI message to report resources to
GK - almostOutOfResources field in RAI is used for the
purpose - V4 introduces capacity field to report resources
quantitatively
22Resource reporting in SIP
- No way of reporting resources to the SIP proxy
dynamically - But if information about resources is obtained
out-of-band, SIP provides mechanism to
incorporate that into routing decision - order and preference are used to prefer one
route over the other
23Current Limitations in voice routing
- Voice routes have to be configured statically
(out of band) between domains (zones) - No standard way of propagating routes between SIP
and H323 network. - No way of dynamically reporting resources to the
voice signaling node
24Outline
- Primer on Voice over IP (VOIP)
- Introduction to and current state of voice
routing - Telephony Routing over IP (TRIP)
- Telephony Gateway REgistration Protocol (TGREP)
- E.164 Number (ENUM)
- VOIP issues in NAT/Firewall
25Telephony Routing over IP (TRIP)
- Addresses the problem of dynamically getting
voice routing information - Given a phone number TRIP enables local voice
gateway to find the IP address of remote gateway
capable of completing a call to that phone number - However, many factors influence the decision of
which gateway to choose - Calling party may be using signaling not
supported by all the gateways - Gateway capacity may be considered
- Service providers on the gateways may be
considered
26TRIP
- TRIP is designed after BGP so provides support
for a rich policy based routing - An ITSP may want to advertise some routes and
suppress some other routes to its neighboring
ITSP - An ITSP can have policy to route some calls to
its own gateway and some to business partner
gateways. - A telephony domain under one administration is
known as ITAD - Main component in an ITAD is the Location Server
(LS) which has access to the TRIB
27TRIP
- LS use TRIP protocol to distribute telephone
routes across ITADs. - TRIP is an application layer protocol whereas BGP
is a network layer protocol - It is possible that TRIP may run between two
ITSPs which are not adjacent networks. But in BGP
the speakers are usually adjacent to each other - TRIP between two speakers in different ITADs is
E-TRIP and that in the same ITAD is I-TRIP
28TRIP Architecture
LS
TGREP
E-TRIP
TGREP
TGREP
LS
I-TRIP
TGREP
LS
ITAD1
ITAD2
29TRIP Routes
- A combination of
- Destination address(es)
- Application protocol (e.g. SIP, H323)
- Many other attributes
- NexthopServer
- RoutedPath
- LocalPref
- TRIP routes are advertised between a pair of LSs
in UPDATE message - An LS may modify a route before advertising it to
its neighbor (based on policy)
30TRIP Routes
- To advertise a route, an UPDATE message with
ReachableRoute attribute (along with other
attributes) will be sent by an LS - To indicate unavailability of a previously
advertised route an UPDATE message with
WithdrawRoute attribute - A TRIP LS processes three types of routes
- External route received from external peer
- Internal route received from an internal LS in
the same ITAD - Local route locally injected into TRIP (may be
by configuration or by route distribution from
another protocol)
31TRIP Routing Information Base (TRIB)
Loc-TRIB
Adj-TRIBs-In (Internal LSs)
Adj-TRIBs-out
Ext-TRIB
Adj-TRIBs-In (External LSs)
Local Routes
32TRIB
- Adj-TRIBs-In contains unprocessed routes
received from Internal and external peers - Routes from each internal and external peer are
stored independently - Ext-TRIB Route selection algorithm run on all
external routes and local routes and selects the
best rout for a given destination and stored in
Ext-TRIB - One Ext-TRIB per LS
- Loc-TRIB contains local TRIP routing
information that LS has selected by applying its
local policies to Adj-TRIB-In (internal) and
Ext-TRIB - Adj-TRIBs-out stores information that the local
LS has selected for advertisement to its external
peers - Aggregation may be applied here
33Route Propagation
LS1
22
TGREP
LS2
E-TRIP
TGREP
22
TGREP
22
GW1
I-TRIP
TGREP
LS3
ITAD1
ITAD2
34TRIP Route Format
Address family
Application Protocol
Length
Address
35TRIP Attributes
- NexthopServer indicates the next hop that the
voice signaling protocol for the destination
should be sent to - Advertisement Path the ITADs through which
routing information carried in an advertisement
has passed - Used to detect looping
- RoutedPath identifies the ITADs through which
voice signals sent using this route would pass - LocalPref Intradomain attribute used to inform
other LSs of the local LSs preference for a
given route.
36Advantages
- TRIP can be used to dynamically advertise
telephony routes across domains - It is voice signaling protocol agnostic
- Can be used in SIP as well as H323 networks
- Hence can be used to exchange routes between H323
and SIP networks
37Current Status
- No commercial product available from leading
vendors - No provider is currently using TRIP for voice
routing - Open source version available from vovida
(www.vovida.org)
38Outline
- Primer on Voice over IP (VOIP)
- Introduction to and current state of voice
routing - Telephony Routing over IP (TRIP)
- Telephony Gateway REgistration Protocol (TGREP)
- E.164 Number (ENUM)
- VOIP issues in NAT/Firewall
39TGREP
- A route registration protocol for telephony
destinations - One way of injecting (originating) routes into a
voice routing system - Along with TRIP provides a complete dynamic
routing solution in a VOIP system - Shares a lot of similarity with the TRIP protocol
- Same format for messages
- Subset of attributes (along with some new
attributes) used in TRIP - Addresses the dynamic resource reporting problem
in current H323 and SIP network
40TGREP Architecture
PSTN
A G G R E G A T I O N
TGREP Session management
PSTN
TGREP
TRIP LS
PSTN
TGREP Receiver
LS/Proxy
41TGREP Attributes
- TotalCircuitCapacity total number of circuits
available for terminating calls through this
advertised route - Represents potentially achievable upper bound on
the number of calls which can be terminated on
this route in total - Relatively static attribute
- AvailableCircuits number of PSTN circuits that
are currently available on a route to complete
calls - A dynamic attribute
42TGREP Attributes
- CallSuccess provides information about the
number of normally terminated calls out of total
number of attempted calls. - Used by LS to keep track of failures in reaching
certain telephony destinations through a gateway - Trunkgroup A set of trunks grouped together to
terminate calls to a particular destination - Enables providers to route calls to destinations
through preferred trunks
43TGREP Attributes
- Carrier used to represent the list of carriers
that gateway can complete calls to - Enables providers to route calls to destinations
through preferred carriers - May group trunks belonging to a provider and
identify that as a carrier
44TGREP Address Family
- Introduces new address families
- Some attributes (e.g. AvailableCircuits) more
naturally fit with trunkgroup than prefixes - Some attributes (e.g. AvailableCircuits) can be
specified more precisely for trunkgroups rather
than prefixes. - The attributes trunkgroup and carrier can be used
as address family - Enables providers to do carrier-sensitive routing
45Current Status
- Standard is in a draft state
- Expected to become an RFC in 6 months
- Cisco voice gateways have the draft
implementation available today - No service provider is currently using it in
their network
46Outline
- Primer on Voice over IP (VOIP)
- Introduction to and current state of voice
routing - Telephony Routing over IP (TRIP)
- Telephony Gateway REgistration Protocol (TGREP)
- E.164 Number (ENUM)
- VOIP issues in NAT/Firewall
47ENUM
- Enables use of DNS for telephony (E.164) numbers.
- A specification for identifying available
services connected to a E.164 number - A new domain e164.arpa has been introduced to
provide infrastructure in DNS for storage of e164
numbers - Is the way to globally advertise the services
through which an e.164 number can be reached (it
need not always be a physical phone device
anymore) - Enables users to specify different ways to reach
them
48ENUM Example
- Uses NAPTR records in DNS
- ORIGIN 3.8.0.0.6.9.2.3.6.1.4.4.e164.arpa.
-
- NAPTR 10 100 "u" "E2Usip" "!.!sipinfo_at_exam
ple.com!" . - NAPTR 10 101 "u" "E2Uh323" "!.!h323info_at_ex
ample.com!" . - NAPTR 10 102 "u" "E2Umsg" !.!mailtoinfo_at_ex
ample.com!" .
49ENUM Call Flow
1. Alice dials Bobs phone number 44123456.
SIP INVITE sent to the SIP proxy 2. SIP Proxy
queries 6.5.4.3.2.1.4.4.e164.arpa to the DNS
server 3. DNS server sends response SIPE2U
sipbob_at_10.0.0.1 4. SIP proxy sends the call to
SIP proxy at 10.0.0.1 5. SIP proxy at 10.0.0.1
completes the call to Bobs IP phone.
DNS Server
2
4
10.0.0.1
5
Bob
Alice
50Current State of ENUM
- Product commercially available
- Cisco voice gateways, Cisco SIP proxy, Neustar
and NetZero - European telecoms seems to be ahead of others
- Mostly in an experimental phase
- More widespread VOIP deployment is needed to make
this a reality
51Outline
- Primer on Voice over IP (VOIP)
- Introduction to and current state of voice
routing - Telephony Routing over IP (TRIP)
- Telephony Gateway REgistration Protocol (TGREP)
- E.164 Number (ENUM)
- VOIP issues in NAT/Firewall
52VOIP issues in NAT/Firewalls
- VOIP is one of many IP applications that has
problem traversing NAT and firewalls - When ports are assigned dynamically (not
well-known as with TCP, http), applications have
problem with NAT/Firewalls - In H.323, call setup message contains address and
port information in the payload. So even if NAT
changes the IP address and port in the packet
itself, the called party will use the private IP
in the payload and hence the application fails
53VOIP issues in NAT/Firewalls
- H.323 and SIP exchange address and port
information about data channel (RTP channels)
within the control messages. - If H.323 is using slow start, H.245 port
information is conveyed in the h225 channel. - Firewall needs to monitor H.225 channel for H.245
port (because there cannot be any static rule
that can allow this H.245 connection while
blocking other undesired TCP connection)
54Solutions to NAT/Firewall Issues
- Proxy placed at the border between two domains
(private and public IP) - Proxy terminates sessions with both the hosts and
relays application signaling message as well as
RTP media streams transparently between the two
hosts - Have ALG (Application Level Gateway) embedded
- ALG examines and modifies application payload
content to allow VOIP traffic traverse the
NAT/firewall - Most common commercial solution
- ALG-enabled NAT/firewalls are quite expensive
55Solutions to NAT/Firewall Issues
- Have a new type of firewall that dynamically
opens pinholes to let a VOIP call go through it - Module called Firewall Control Proxy (FCP) placed
in the signaling path between private and public
domains and monitors the call setup signals and
commands the firewall to allow RTP streams
destined to the appropriate IP addresses to pass
through
56References
- Cisco Proxy Server -http//www.cisco.com/en/US/
products/sw/voicesw/ps2157/ - Understanding H323 gatekeepers
-http//www.cisco.com/warp/public/788/voip/underst
and-gatekeepers.html - Basic two zones gateway-to-gatekeeper
configuration -http//www.cisco.com/en/US/tech/tk
652/tk701/technologies_configuration_example09186a
00800a9a56.shtmlintro
57References
- Telephony Routing over IP RFC 3219
- Voice over Internet Protocol (VOIP) B. Goode,
Proceedings of the IEEE Vol. 90, No. 9, September
2002. - A Telephony Gateway REgistration Protocol
(TGREP) Internet draft, http//www.ietf.org/int
ernet-drafts/draft-ietf-iptel-tgrep-03.txt - The E.164 to Uniform Resource Identifiers (URI)
P. Faltstrom et. al., RFC 3761