Transcript Voice Routing Prof. Anirudha Sahoo KReSIT IIT Bombay
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 1 May 2020
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-to end) • Provides a toll bypass path for telephone calls • Enables Telephony providers to provide cheaper service 1 May 2020
IIT Bombay
3
VOIP System
PSTN gateway IP Network PSTN Network gatekeeper PBX PSTN gateway PBX 1 May 2020
IIT Bombay
4
VOIP System (cont.)
CPE router IP Network CPE router LAN SIP proxy PSTN Gateway PSTN IP phone 1 May 2020 Soft phone (Another VOIP system)
IIT Bombay
LAN 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 1 May 2020
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 1 May 2020
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
1 May 2020
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 1 May 2020
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 1 May 2020
IIT Bombay
10
Routing in H323 network
GK 1 May 2020 Gateway IP Gateway
(Single Zone) IIT Bombay
11
Routing in H323 network
1 May 2020
Single Zone 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 1 May 2020
IIT Bombay
13
Routing in H323 network (multiple zones)
1 May 2020
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
1 May 2020
IIT Bombay
15
1)
Routing in H323 network (multiple zones)
• Config on the “GK_1 ECV-2600-15” (zone
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
1 May 2020
IIT Bombay
16
2)
Routing in H323 network (multiple zones)
• Config on the “GK_2 ECV-2600-14” (zone
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..
1 May 2020
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 1 May 2020
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:[email protected] 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.
1 May 2020
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 1 May 2020
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 1 May 2020
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 1 May 2020
IIT Bombay
22
Current Limitations in voice
(zones)
routing
• Voice routes have to be configured statically (out of band) between domains • No standard way of propagating routes between SIP and H323 network.
• No way of dynamically reporting resources to the voice signaling node 1 May 2020
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 1 May 2020
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 1 May 2020
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 1 May 2020
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 1 May 2020
IIT Bombay
27
1 May 2020
TRIP Architecture
TGREP
LS E-TRIP
TGREP TGREP
I-TRIP LS
TGREP
LS ITAD1 IIT Bombay ITAD2
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) 1 May 2020
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) 1 May 2020
IIT Bombay
30
TRIP Routing Information Base (TRIB)
Loc-TRIB Decision Process Adj-TRIBs-In (Internal LSs) Ext-TRIB Adj-TRIBs-out
1 May 2020
Adj-TRIBs-In (External LSs) 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 1 May 2020
IIT Bombay
32
Route Propagation
LS1
TGREP
22 LS2 E-TRIP
TGREP
22
GW1 TGREP
I-TRIP
TGREP 22 GW1
22
22 LS1
LS3 ITAD1
1 May 2020
IIT Bombay ITAD2
33
1 May 2020
TRIP Route Format
Address family Length 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.
1 May 2020
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 1 May 2020
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) 1 May 2020
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 1 May 2020
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 1 May 2020
IIT Bombay
39
TGREP Architecture
PSTN PSTN PSTN
1 May 2020 TGREP TGREP Session management A G G R E G A T I O N
TGREP Receiver TRIP LS LS/Proxy 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 1 May 2020
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 1 May 2020
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 1 May 2020
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 1 May 2020
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 1 May 2020
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 1 May 2020
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 1 May 2020
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:[email protected]!" . NAPTR 10 101 "u" "E2U+h323" "!^.*$!h323:[email protected]!" . NAPTR 10 102 "u" "E2U+msg" !^.*$!mailto:[email protected]!" . 1 May 2020
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
to the DNS server 3. DNS server sends response SIP+E2U sip:[email protected]
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
DNS Server
4
10.0.0.1
5 1
1 May 2020
Alice IIT Bombay Bob
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 1 May 2020
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 1 May 2020
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 1 May 2020
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) 1 May 2020
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 1 May 2020
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 1 May 2020
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 1 May 2020
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-iptel tgrep-03.txt
• “The E.164 to Uniform Resource Identifiers (URI) ” – P. Faltstrom et. al., RFC 3761 1 May 2020
IIT Bombay
57