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