Voice Routing Prof. Anirudha Sahoo KReSIT IIT Bombay

Download Report

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