Voice Routing Prof. Anirudha Sahoo KReSIT IIT Bombay

advertisement
Voice Routing
Prof. Anirudha Sahoo
KReSIT
IIT Bombay
Outline
• 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
17 July 2016
IIT Bombay
2
Voice 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-toend)
• Provides a toll bypass path for telephone
calls
• Enables Telephony providers to provide
cheaper service
17 July 2016
IIT Bombay
3
VOIP System
PSTN gateway
IP Network
PSTN Network
PSTN gateway
gatekeeper
PBX
PBX
typical
PSTN
system)
(A (A
typical
VOIP
system)
17 July 2016
IIT Bombay
4
VOIP System (cont.)
IP Network
CPE router
LAN
LAN
PSTN Gateway
SIP proxy
IP phone
CPE router
PSTN
Soft phone
17 July 2016
(Another VOIP system)
IIT Bombay
IP phone
5
Outline
• 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
17 July 2016
IIT Bombay
6
What 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
17 July 2016
IIT Bombay
7
Static 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 ipv4:172.292.1.1
17 July 2016
IIT Bombay
8
Limitations 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
17 July 2016
IIT Bombay
9
Current 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
17 July 2016
IIT Bombay
10
Routing in H323 network
GK
IP
Gateway
Gateway
(Single Zone)
17 July 2016
IIT Bombay
11
Routing in H323 network
Single Zone
17 July 2016
IIT Bombay
12
Routing 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
17 July 2016
IIT Bombay
13
Routing in H323 network
(multiple zones)
17 July 2016
IIT Bombay
14
Routing 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
17 July 2016
IIT Bombay
15
Routing 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
17 July 2016
IIT Bombay
16
Routing 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..
17 July 2016
IIT Bombay
17
Routing 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
17 July 2016
IIT Bombay
18
Routing 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)
sip:user@example.com is resolved to
;
order pref flags service regexp replacement
IN NAPTR 50 50 "s" "SIPS+D2T" "" _sips._tcp.example.com.
IN NAPTR 90 50 "s" "SIP+D2T" "" _sip._tcp.example.com
IN NAPTR 100 50 "s" "SIP+D2U" "" _sip._udp.example.com.
17 July 2016
IIT Bombay
19
Resource 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
17 July 2016
IIT Bombay
20
Resource 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
17 July 2016
IIT Bombay
21
Resource 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
17 July 2016
IIT Bombay
22
Current 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
17 July 2016
IIT Bombay
23
Outline
• 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
17 July 2016
IIT Bombay
24
Telephony 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
17 July 2016
IIT Bombay
25
TRIP
• 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
17 July 2016
IIT Bombay
26
TRIP
• 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
17 July 2016
IIT Bombay
27
TRIP Architecture
LS
TGREP
E-TRIP
Si
TGREP
TGREP
Si
I-TRIP
Si
LS
TGREP
Si
LS
ITAD1
17 July 2016
ITAD2
IIT Bombay
28
TRIP 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)
17 July 2016
IIT Bombay
29
TRIP 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)
17 July 2016
IIT Bombay
30
TRIP Routing Information Base
(TRIB)
Loc-TRIB
Decision Process
Adj-TRIBs-In
(Internal LSs)
Ext-TRIB
Adj-TRIBs-In
(External LSs)
17 July 2016
Adj-TRIBs-out
Local Routes
IIT Bombay
31
TRIB
• 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
17 July 2016
IIT Bombay
32
Route Propagation
LS1
TGREP
LS2
E-TRIP
Si
22
22
TGREP
Si
GW1
I-TRIP
22 GW1
TGREP
22
Si
22
TGREP
LS1
Si
LS3
ITAD1
17 July 2016
ITAD2
IIT Bombay
33
TRIP Route Format
Address family
Length
17 July 2016
Application Protocol
Address
IIT Bombay
34
TRIP 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 LS’s preference for a given
route.
17 July 2016
IIT Bombay
35
Advantages
• 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
17 July 2016
IIT Bombay
36
Current 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)
17 July 2016
IIT Bombay
37
Outline
• 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
17 July 2016
IIT Bombay
38
TGREP
• 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
17 July 2016
IIT Bombay
39
TGREP Architecture
PSTN
Si
PSTN
TGREP
Si
PSTN
Si
TGREP
Session
management
A
G
G
R
E
G
A
T
I
O
N
TRIP LS
TGREP Receiver
LS/Proxy
17 July 2016
IIT Bombay
40
TGREP 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
17 July 2016
IIT Bombay
41
TGREP 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
17 July 2016
IIT Bombay
42
TGREP 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
17 July 2016
IIT Bombay
43
TGREP 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
17 July 2016
IIT Bombay
44
Current 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
17 July 2016
IIT Bombay
45
Outline
• 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
17 July 2016
IIT Bombay
46
ENUM
• 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
17 July 2016
IIT Bombay
47
ENUM 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" "E2U+sip"
"!^.*$!sip:info@example.com!" .
NAPTR 10 101 "u" "E2U+h323"
"!^.*$!h323:info@example.com!" .
NAPTR 10 102 "u" "E2U+msg"
!^.*$!mailto:info@example.com!" .
17 July 2016
IIT Bombay
48
ENUM Call Flow
1. Alice dials Bob’s phone number +44123456.
SIP INVITE sent to the SIP proxy
2. SIP Proxy queries 6.5.4.3.2.1.4.4.e164.arpa
DNS Server
to the DNS server
3. DNS server sends response SIP+E2U
sip:bob@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 Bob’s IP phone.
3
2
4
10.0.0.1
1
Bob
Alice
17 July 2016
5
IIT Bombay
49
Current 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
17 July 2016
IIT Bombay
50
Outline
• 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
17 July 2016
IIT Bombay
51
VOIP 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
17 July 2016
IIT Bombay
52
VOIP 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)
17 July 2016
IIT Bombay
53
Solutions 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
17 July 2016
IIT Bombay
54
Solutions 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
17 July 2016
IIT Bombay
55
References
• “Cisco Proxy Server” http://www.cisco.com/en/US/products/sw/voicesw/ps2
157/
• “Understanding H323 gatekeepers” http://www.cisco.com/warp/public/788/voip/understan
d-gatekeepers.html
• “Basic two zones gateway-to-gatekeeper
configuration” http://www.cisco.com/en/US/tech/tk652/tk701/technol
ogies_configuration_example09186a00800a9a56.sht
ml#intro
17 July 2016
IIT Bombay
56
References
• “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/internet-drafts/draft-ietf-ipteltgrep-03.txt
• “The E.164 to Uniform Resource Identifiers (URI) ” –
P. Faltstrom et. al., RFC 3761
17 July 2016
IIT Bombay
57
Download