IPTEL Working Group Manjunath Bangalore, Cisco Systems Internet Draft Rajneesh Kumar, Cisco Systems draft-ietf-iptel-tgrep-03.txt Jonathan Rosenberg, dynamicsoft March 2004 Hussein Salama, Cisco Systems Expiration Date: September 2004 Dhaval N. Shah, Cisco Systems A Telephony Gateway REgistration Protocol (TGREP) Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract This document describes the Telephony Gateway Registration Protocol (TGREP) for registration of telephony prefixes supported by telephony gateways and soft switches. The registration mechanism can also be used to export resource information. The prefix and resource information can then be passed on to a TRIP Location Server, which in turn can propogate that routing information within and between internet telephony administrative domains (ITAD). TGREP shares a lot of similarites with the TRIP Protocol. It has similar procedures and Finite State Machine for session establishment. It also shares the same format for messages and a subset of attributes with TRIP. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 1] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 1. Terminology and Definitions The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [1]. Some other useful definitions are: Circuit: A circuit is a discrete (specific) path between two or more points along which signals can be carried. In this context, a circuit is a physical path, consisting of one or more wires and possibly intermediate switching points. Trunk: In a network, a communication path connecting two switching systems used in the establishment of an end-to-end connection. In selected applications, it may have both its terminations in the same switching system. TrunkGroup: A set of trunks, traffic engineered as a unit, for the establishment of connections within or between switching systems in which all of the paths are interchangeable except where subgrouped. Carrier: A company offering telephone and data communications between points (end-users and/or exchanges). 2. Introduction In typical VoIP networks, Internet Telephony Administrative Domains (ITADs) will deploy numerous gateways for the purposes of geographical diversity, capacity, and redundancy. When a call arrives at the domain, it must be routed to one of those gateways. Frequently, an ITAD will break their network into geographic POPs, with each POP containing some number of gateways, and a proxy server element that fronts those gateways. The proxy server is responsible for managing the access to the POP, and also for determining which of the gateways will receive any given call that arrives at the POP. This configuration is depicted graphically in Figure 1. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 2] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 +---------+ | | | GW | -> +---------+ // // // +---------+ // | | // | GW | // +---------+ // +----------+ // TO PSTN | | / +---------+ | Routing | ---------------> | | -----> -------->| Proxy | | GW | | | -- +---------+ | | -- +----------+ -- --- +---------+ -- | | -- | GW | -- +---------+ --> +---------+ | | | GW | +---------+ Figure 1: Gateway and LS Configuration The decision about which gateway to use depends on many factors, including their availability, remaining call capacity and call success statistics to a particular PSTN destination. For the proxy to do this adequately, it needs to have access to this information in real-time, as it changes. This means there must be some kind of communications between the proxy and the gateways to convey this information. In this document, we specify a protocol for registration of routes (destinations) supported by the gateway to the TRIP Location Server, known as Telephony Gateway REgistration Protocol (TGREP). TGREP Protocol can be considered an auxiliary protocol to TRIP. Routes learnt through TGREP can be injected into and further processed and/or propogated by the TRIP Location Server. TGREP shares a lot of commonality with TRIP in various aspects. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 3] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 Particularly, TGREP and TRIP have the same session establishment procedures, state machine, etc. TGREP also makes use of a similar UPDATE message to propogate the routes supported. It uses Notification, Keepalive and OPEN message in the same essence as TRIP. TGREP defines few new attributes that are needed to specify certain characteristics of gateways, like Available Capacity for a destination. The document aims at specifying all the attributes related to the TGREP session. This document also specifies some new address families which can be useful in advertising the information on the GWs. As a general rule, because of lot of similarities between TRIP and TGREP, frequent reference will be made to the terminologies and formats defined in TRIP RFC[4]. It is suggested that the reader be familiar with the concepts of TRIP like attributes, flags, route types, address families, etc. 3. Defining TGREP TGREP is a route registration protocol for telephony destinations on a gateway. These telephony destinations could be prefixes, trunk groups or Carriers. The Speaker of TGREP resides on the GW and gathers all the information from the GW to relay to the other side. A TGREP Receiver is defined, which receives this information and after certain optional operations like consolidation and aggregation. (defined in Sections 3.10.1 and 3.10.2) hands over the reachability information a to TRIP Location Server. The TGREP speaker establishes a session to the TGREP Receiver using the procedures similar to session establishment in TRIP. The TGREP Speaker is however, in "Send only" mode and the receiver is in the "Receive only" mode. After the session establishment the TGREP speaker sends the reachibility informaton in the UPDATE messages. The UPDATE messages have the same format as in TRIP. However, certain TRIP attributes are not relevant in TGREP; a TGREP speaker MAY ignore them if they are present in a TGREP message. In addition, TGREP defines the new attributes described in this document to be carried in a TGREP UPDATE message. In the rest of the document we specify attributes and address families used in TGREP. We also specify the operations of consolidation and aggregation as they apply to the UPDATEs received from the TGREP Gateway by the TGREP Receiver. A TGREP UPDATE supports the following attributes: 1. WithdrawnRoutes (as defined in TRIP) 2. ReachableRoutes (as defined in TRIP) Bangalore, Kumar, Rosenberg, Salama, Shah [Page 4] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 3. NexthopServer (as defined in TRIP) 4. TotalCircuitCapacity 5. AvailableCircuits 6. CallSuccess 7. Prefix 8. TrunkGroup 9. Carrier 3.1. TotalCircuitCapacity Attribute Mandatory: False. Required Flags: Not well-known. Potential Flags: None. TRIP Type Code: 13 (To be assigned by IANA) The TotalCircuitCapacity identifies the total number of PSTN circuits that are available on a route to complete calls. It is used in conjunction with the AvailableCircuits attribute in gateway selection by the LS. The total number of calls sent to the specified route on the gateway cannot exceed this total circuit capacity under steady state conditions. The TotalCircuitCapacity attribute is used to reflect the administratively provisioned capacity as opposed to the availability at a given point in time as provided by the AvailableCircuits attribute. Because of its relatively static nature, this attribute MAY be propogated beyond the LS that receives it. TotalCircuitCapacity represents the total number of active calls at any instant. This is not expected to change frequently. This can change, for instance, when certain telephony trunks on the gateway are taken out of service for maintenance purposes. 3.1.1. TotalCircuitCapacity Syntax The TotalCircuitCapacity attribute is a 4-octet unsigned numeric value. It represents the total number of circuits available for terminating calls through this advertised route. This attribute represents a potentially achievable upper bound on the number of calls which can be terminated on this route in total. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 5] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 3.1.2. Route Origination and TotalCircuitCapacity Routes MAY be originated containing the TotalCircuitCapacity attribute. 3.1.3. Route Selection and TotalCircuitCapacity The TotalCircuitCapacity attribute MAY be used for route selection. Since one of its primary applications is load balancing, an LS will wish to choose a potentially different route (amongst a set of routes for the same destination), on a call by call basis. This can be modeled as re-running the decision process on the arrival of each call. The aggregation and dissemination rules for routes with this attribute ensure that re-running this selection process never results in propagation of a new route to other peers. 3.1.4. Aggregation and TotalCircuitCapacity An LS MAY aggregate routes to the same prefix which contain a TotalCircuitCapacity attribute. It SHOULD add the values of the individual routes to determine the value for the aggregated route in the same ITAD. 3.1.5. Route Dissemination and TotalCircuitCapacity Since this attribute reflects the static capacity of the gateway's circuit resources, it is not expected to change frequently. Hence the LS receiving this attribute MAY disseminate it to other peers, both internal and external to the ITAD. 3.2. AvailableCircuits Attribute Mandatory: False. Required Flags: Not well-known. Potential Flags: None. TRIP Type Code: 14. (To be assigned by IANA) The AvailableCircuits identifies the number of PSTN circuits that are currently available on a route to complete calls. The number of additional calls sent to that gateway for that route cannot exceed the circuit capacity. If it does, the signaling protocol will likely generate errors, and calls will be rejected. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 6] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 The AvailableCircuits attribute is used ONLY between a gateway and its peer LS responsible for managing that gateway. If it is received in a route, it is not propagated. 3.2.1. AvailableCircuits Syntax The AvailableCircuits attribute is a 4-octet unsigned numeric value. It represents the number of circuits remaining for terminating calls to this route. 3.2.2. Route Origination and AvailableCircuits Routes MAY be originated containing the AvailableCircuits attribute. Since this attribute is highly dynamic, changing with every call, updates MAY be sent as it changes. However, it is RECOMMENDED that measures be taken to help reduce the messaging load from route origination. It is further RECOMMENDED that sufficiently large windows be used to provide a useful aggregated statistic. 3.2.3. Route Selection and AvailableCircuits The AvailableCircuits attribute MAY be used for route selection. Since one of its primary applications is load balancing, an LS will wish to choose a potentially different route (amongst a set of routes for the same prefix) on a call by call basis. This can be modeled as re-running the decision process on the arrival of each call. The aggregation and dissemination rules for routes with this attribute ensure that re-running this selection process never results in propagation of a new route to other peers. 3.2.4. Aggregation and AvailableCircuits Not applicable 3.2.5. Route Dissemination and AvailableCircuits Routes MUST NOT be disseminated with the AvailableCircuits attribute. The attribute is meant to reflect capacity at the originating gateway only. Its highly dynamic nature makes it inappropriate to disseminate in most cases. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 7] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 3.3. CallSuccess Attribute Mandatory: False. Required Flags: Not well-known. Potential Flags: None. TRIP Type Code: 15. (To be assigned by IANA) The CallSuccess attribute is an attribute used ONLY between a gateway and its peer LS responsible for managing that gateway. If it is received in a route, it is not propagated. The CallSuccess attribute provides information about the number of normally terminated calls out of a total number of attempted calls. CallSuccess is to be determined by the gateway based on the Disconnect cause code at call termination. For example, a call that reaches the Alerting stage but does not get connected due to the unavailability of the called party, or the called party being busy, is conventionally considered a successful call. On the other hand, a call that gets disconnected because of a Circuit or Resource being unavailable is conventionally considered a failed call. The exact mapping of disconnect causes to CallSuccess is at the discretion of the gateway reporting the attribute. The CallSuccess attribute is used by the LS to keep track of failures in reaching certain telephony destinations through a gateway(s) and use that information in the gateway selection process to enhance the probability of successful call termination. This information can be used by the LS to consider alternative gateways to terminate calls to those destinations with a better likelihood of success. 3.3.1. CallSuccess Syntax The CallSuccess attribute is comprised of two component fields - each represented as an unsigned 4-octet numeric value. The first component field represents the total number of calls terminated successfully for the advertised destination on a given address family. The second component field represents the total number of attempted calls for the advertised destination within some window of time. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 8] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 3.3.2. Route Origination and CallSuccess Routes MAY be originated containing the CallSuccess attribute. This attribute is expected to get statistically significant with passage of time as more calls are attempted. It is RECOMMENDED that sufficiently large windows be used to provide a useful aggregated statistic. 3.3.3. Route Selection and CallSuccess The CallSuccess attribute MAY be used for route selection. This attribute represents a measure of success of terminating calls to the advertised destination(s). This information MAY be used to select from amongst a set of alternative routes to increase the probability of successful call termination. 3.3.4. Aggregation and CallSuccess Not applicable 3.3.5. Route Dissemination and CallSuccess Routes MUST NOT be disseminated with the CallSuccess attribute. Its potential to change dynamically does not make it suitable to disseminate. 3.4. Prefix Attributes Mandatory: False. Required Flags: Not well-known. Potential Flags: None. TRIP Type Codes: 16 for E164 prefix, 17 for pentadecimal prefix and 18 for decimal prefix (To be assigned by IANA) The Prefix attribute is used to represent the list of prefixes that the respective route can complete calls to. This attribute is intended to be used with the Carrier or Trunkgroup address family (discussed in Section 3.7). Though it is possible that all prefix ranges may be reachable through a given Carrier, administrative issues could make certain ranges preferable to others. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 9] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 3.4.1. Prefix Attribute Syntax The Prefix attribute could be E.164, Decimal or PentaDecimal (refer to TRIP RFC [4]), each of them having it's own type code. The Prefix attribute is encoded as a sequence of prefix values in the attribute value field. The prefixes are listed sequentially with no padding as shown in Figure 2. Each prefix includes a 2-octet length field that represents the length of the address field in octets. The order of prefixes in the attribute is not significant. The presence of Prefix Attribute with the length field of the attribute as 0 signifies that the TGREP GW can terminate ALL prefixes for the given Reachable route(s). 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 . . . 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 +-------------------------------+-----------+----------------------------------+----------- | Length | Prefix1...| Length | Prefix2... +-------------------------------+-----------+----------------------------------+----------- Figure 2: Prefix Format 3.4.2. Route Origination and Prefix Routes MAY be originated containing the Prefix attribute. 3.4.3. Route Selection and Prefix The Prefix attribute MAY be used for route selection. 3.4.4. Aggregation and Prefix Routes with differing Prefix attribute MUST NOT be aggregated. Routes with the same value in the Prefix attribute MAY be aggregated and the same Prefix attribute attached to the aggregated object. 3.4.5. Route Dissemination and Prefix The LS receiving this attribute should disseminate to other peers, both internal and external to the ITAD. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 10] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 3.5. TrunkGroup Attribute Mandatory: False. Required Flags: Not well-known. Potential Flags: None. TRIP Type Code: 20 (To be assigned by IANA) The TrunkGroup attribute is used to represent the list of trunkgroups on the gateway used to complete calls. It enables providers to route calls to destinations through preferred trunks. This attribute is relatively static. 3.5.1. TrunkGroup Syntax The TrunkGroup attribute is a variable length attribute that is composed of a sequence of trunkgroup length-value fields. It indicates that the gateway can complete the call through any trunkgroup (represented by the trunkgroup label) in the sequence. Each trunkgroup is a length-value field (shown in Figure 3 below). The length field is a 1-octet unsigned numeric value. The value field is a variable length alphanumeric field and is also called the trunkgroup label field. The length field represents the size of the trunkgroup label in number of octets. The maximum length is 128 octets. The presence of TrunkGroup attribute with the length field of the attribute as 0 signifies that the TGREP GW can terminate ALL trunkgroup for the given Reachable route(s). 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 ... 7 8 9 0 1 2 3 4 5 ... +---------------+--------------------+---------------+--------------------- | Length | TrunkGroup Label1..| Length | TrunkGroup Label2.. +---------------+--------------------+---------------+--------------------- Figure 3: TrunkGroup Syntax 3.5.2. Route Origination and TrunkGroup Routes MAY be originated containing the TrunkGroupattribute. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 11] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 3.5.3. Route Selection and TrunkGroup The TrunkGroup attribute MAY be used for route selection. Certain trunkgroups MAY be preferred over others based on provider policy. 3.5.4. Aggregation and TrunkGroup Routes with differing TrunkGroup attribute MUST NOT be aggregated. Routes with the same value in the TrunkGroup attribute MAY be aggregated and the same TrunkGroup attribute attached to the aggregated object. 3.5.5. Route Dissemination and TrunkGroup This attribute is not expected to change frequently. Hence, the LS receiving this attribute MAY disseminate it to other peers, internal to ITAD. Routes SHOULD not be disseminated external to the ITAD, with TrunkGroup attribute. 3.6. Carrier Attribute Mandatory: False. Required Flags: Not well-known. Potential Flags: None. TRIP Type Code: 19 (To be assigned by IANA) The Carrier attribute is used to represent the list of carriers that the gateway uses to complete calls. It enables providers to route calls to destinations through preferred carriers. This attribute is relatively static. 3.6.1. Carrier Syntax The Carrier attribute is a variable length attribute that is composed of a sequence of carrier values. It indicates that the route can complete the call to any of the carriers represented in the sequence of carrier values. A Carrier value is an 8-octet ASCII-encoded string obtained by concatenation of a CarrierIdCode and a RegionCode ( defined below ). When the length of the Carrier value is less than 8 octets, it is padded with NULL bytes The CarrierIdCode is the code assigned to a carrier by a regulatory Bangalore, Kumar, Rosenberg, Salama, Shah [Page 12] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 body operating in that region. The RegionCode represents the region where the CarrierIdCode is assigned. The RegionCode is a qualifier that makes the Carrier value globally unique. Regions are currently defined to map to countries. The RegionCode should use E.164 country code used in dialing international telephony destinations. However, regions can evolve in the future to encompass a larger area, beyond a country. For example, if a regulatory body in the European Union that assigns CarrierIds to carriers in the whole of Europe, a corresponding RegionCode would be used. The textual concatenation of CarrierId and RegionCode forms a Carrier. This Carrier is then used as an attribute of the associated destination. When the scope of a CarrierIdCode is known to be unique apriori, the RegionCode is superfluous and MAY be excluded from the Carrier value when advertising in a TGREP UPDATE message. This is possible when the carrier is operating within the same region where the CarrierIdCode was assigned or if the carrier is operating in a controlled environment of networks where CarrierId is privately defined to be unique. The presence of Carrier Attribute with the length field of the attribute as 0 signifies that the TGREP GW can terminate ALL Carriers for the given Reachable route(s). 0 1 2 7 0 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 .....0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 .. +-------------------------------------------------------------+--------------- | Carrier1 | Carrier2 .. +-------------------------------------------------------------+--------------- Figure 4: Carrier Syntax 3.6.2. Route Origination and Carrier Routes MAY be originated containing the Carrier attribute. 3.6.3. Route Selection and Carrier The Carrier attribute MAY be used for route selection. Certain carriers MAY be preferred over others based on provider policy. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 13] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 3.6.4. Aggregation and Carrier Routes with differing Carrier attribute MUST NOT be aggregated. Routes with the same value in the Carrier attribute MAY be aggregated and the same Carrier attribute attached to the aggregated object. 3.6.5. Route Dissemination and Carrier This attribute is not expected to change frequently. Hence, the LS receiving this attribute MAY disseminate it to other peers, both internal and external to the ITAD. 3.7. TrunkGroup and Carrier Address Families When a set of GWs are to managed at the granularity of carriers or trunkgroups then it may be more appropriate for a GW to advertise routes using the Carrier address family or trunkgroup address family respectively. Also, in a TGREP association between the gateway and the LS responsible for managing that gateway, there are some attributes that more naturally fit in as advertised properties of trunkgroups or carriers rather than that of advertised prefixes; for example, the AvailableCircuit information on a particular trunkgroup or a particular carrier. To express this relationship, the existing TRIP address families are inadequate. We need separate address families that can associate certain properties like AvailableCircuits information to trunkgroups or carriers. The primary benefits of this model are as follows: - It allows a service provider to route calls based strictly on the trunkGroups or carriers. - it facilitates more accurate reporting of attributes of a dynamic nature like AvailableCircuits by providing the ability to manage resources at the granularity of a trunkgroup or a carrier. - Gateways can get really large with the ability to provision hundreds or a few thousand circuits and this can increase the potential for traffic that reports dynamic resource information between the gateway and the LS. The model introduced can potentially alleviate this UPDATE traffic hence increasing efficiency and providing a scalable gateway registration model. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 14] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 3.7.1. Address Family Syntax Consider the generic TRIP route format from TRIP[4] shown below. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +---------------+---------------+--------------+----------------+ | Address Family | Application Protocol | +---------------+---------------+--------------+----------------+---- | Length | Address (variable) .... +---------------+---------------+--------------+----------------+---- Figure 5: Generic TRIP Route Format The Address Family field will be used to represent the type of the address associated for this family, which is based on the TrunkGroup or Carrier. The codes for the new address families will be allocated by IANA. The Application Protocol field is same as the one for the Decimal, PentaDecimal and E.164 address families defined in TRIP[4]. The Length field represents the total size of the Address field in bytes. The value in the Address field represents either the TrunkGroup or the Carrier address families and the syntax is as follows: For the TrunkGroup Address Family, the Address field is a variable length alphanumeric field (trunkgroup label), where length is determined by the length field of the route. The maximum value of the length field for this Address Family is 128 bytes. For the Carrier Address Family, the length field represents the length of the Address field in bytes. The Address field is a fixed length field representing Carrier value. A Carrier value is an 8- octet ASCII-encoded string obtained by concatenation of a CarrierIdCode and a RegionCode ( defined below ). When the length of the Carrier value is less than 8 octets, it is padded with NULL bytes The CarrierIdCode is the code assigned to a carrier by a regulatory body operating in that region. The RegionCode represents the region where the CarrierIdCode is assigned. The RegionCode is a qualifier that makes the Carrier value globally unique. Regions are currently defined to map to countries. The RegionCode should use E.164 country code used in dialing international telephony destinations. However, regions can evolve in the future to encompass a larger area, beyond a country. For example, if a regulatory body in the European Union that assigns CarrierIds to carriers in the whole of Europe, a corresponding RegionCode would be used. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 15] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 The textual concatenation of CarrierId and RegionCode forms a Carrier. This is then used as a destination for routing purposes. When the scope of a CarrierIdCode is known to be unique apriori, the RegionCode is superfluous and MAY be excluded from the Carrier value when advertising in a TGREP UPDATE message. This is possible when the carrier is operating within the same region where the CarrierIdCode was assigned or if the carrier is operating in a controlled environment of networks where CarrierId is privately defined to be unique. If a gateway supports any of these address families, it should include that address family as one of the Route types supported in the OPEN message capability negotiation phase. The following attributes are currently defined to be used with all the address families including the TrunkGroup and Carrier address families. - AvailableCircuits Attribute - TotalCircuitCapacity Attribute - CallSuccess Attribute It is recommended that the above three attributes be used by the gateway with the TrunkGroup or Carrier address families, if possible. This will potentially offer a more efficient resource reporting framework, and a scalable model for gateway provisioning. However, when the gateway is not using TrunkGroup or Carrier address family, it MAY use the above attributes with the Decimal, PentaDecimal and E.164 address families. The Prefix, Carrier and TrunkGroup attributes MUST NOT be used with their respective address families. 3.8. Gateway Operation A gateway uses TGREP to advertise its reachability to its domain's Location Server(s) (LS, which are closely coupled with proxies). The gateway operates in TGREP Send Only mode since it is only interested in advertising its reachability, but is not interested in learning about the reachability of other gateways and other domains. Also, the gateway will not create its own call routing database. In this section we describe the operation of TGREP on a gateway. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 16] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 3.8.1. Session Establishment When opening a peering session with a TGREP Receiver, a TGREP gateway follows exactly the same procedures as any other TRIP speaker. The TGREP gateway sends an OPEN message which includes a Send Receive Capability in the Optional Parameters. The Send Receive Capability is set by the gateway to Send Only. The OPEN message also contains the address families supported by the gateway. The remainder of the peer session establishment is identical to TRIP. 3.8.2. UPDATE Messages Once the peer session has been established, the gateway sends UPDATE messages to the TRIP LS with the gateway's entire reachability. The Gateway also sends any attributes associated with the routes. If the gateway's reachability changes at any point in time, the gateway MUST generate UPDATE message(s) with the change. The frequency of successive UPDATE messages MUST follow the same rules specified for TRIP[4]. The TGREP gateway MUST support all mandatory TRIP attributes. If the gateway receives an UPDATE message from the TRIP LS, it MUST silently discard it as specified for TRIP[4]. No further action should be taken. 3.8.3. KEEPALIVE Messages KEEPALIVE messages are periodically exchanged over the peering session between the TGREP gateway and the TRIP LS as specified in Section 4.4 of TRIP RFC[4]. 3.8.4. Error Handling and NOTIFICATION Messages The same procedures used with TRIP, are used with TGREP for error handling and generating NOTIFICATION messages. The only difference is that a TGREP gateway will never generate a NOTIFICATION message in response to an UPDATE message, irrespective of the contents of the UPDATE message. Any UPDATE message is silently discarded. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 17] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 3.8.5. TGREP Finite State Machine When the TGREP finite state machine is in the Established state and an UPDATE message is received, the UPDATE message is silently discarded and the TGREP gateway remains in the Established state. Other than that the TRIP finite state machine and the TGREP finite state machine are identical. 3.8.6. Call Routing Databases A TGREP gateway may maintain simultaneous sessions with more than one TRIP LSs. A TGREP gateway maintains one call routing database per peer TRIP LS. These databases are equivalent to TRIP's Adj-TRIBs-Out, and hence we will call them Adj-TRIB-GWs-Out. An Adj-TRIB-GW-Out contains the gateway's reachability information advertised to its peer TRIP LS. How an Adj-TRIB-GW-Out database gets populated is outside the scope of this draft (possibly by manual configuration). The TGREP gateway does not have databases equivalent to TRIP's Adj- TRIBs-In and Loc-TRIB, because the TGREP gateway does not learn routes from its peer TRIP LSs, and hence it does not run call route selection. 3.8.7. Multiple Address Families As mentioned above, TGREP supports various address families in order to convey the reachibilty of telephony destinations. A TGREP session MUST NOT send UPDATEs of more than one of the following catagories (a) Prefix Address families (E164, Pentadecimal and decimal) (b) Trunkgroup address family (c) Carrier Address family for a given established session. TGREP should specify it's choice address family through the route-type capability in the OPEN message. And route-type specification in the OPEN message violating the above rule should be rejected with a NOTIFICATION message. 3.8.8. Route Selection and Aggregation TRIP's route selection and aggregation operations MUST NOT be implemented by TGREP gateways. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 18] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 3.9. LS/Proxy Behavior As mentioned earlier, TGREP can be considered as a protocol complimentary to TRIP in providing reachability information that can then be further fed into the Location Server. The architecture of an LS/Proxy system is as follows: There exists a TRIP LS application that functions as a speaker in the I-TRIP/E-TRIP network as documented in the TRIP RFC [4]. Then, there is a signaling server fronting a set of gateways and receives routing information on one or more TGREP sessions. This routing information from the gateways is received and processed by a TGREP receiver application. Subsequently, this routing information is presented as candidate routes (possibly as local routes) to the TRIP LS. The interface between these two applications is entirely a local matter. However, before importing these routes into the TRIP LS, certain operations may optionally be performed on these routes. The nature of these operations and the accompanying motivation are described in the subsections below. The order in which the operations are listed represents an implicit logical sequence in which they are applied. The architecture for an LS/Proxy entity is shown in Figure 7 below. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 19] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 +-------------------------------------------------------+ | +-------------------------------+ | | | +-+ +-+ | | | | |A| |C| | | +-----+ | | |g| |o| | | TGREP | | | +-------------+ | |g| |n| +-------------+ | | -- | GW | | | | | |r| |s| | | | | -- +-----+ | | TRIP | | |e| |o| | | | +-- | | LS <----------|g<--|l<--- TGREP |-++-| +-----+ | | | | |a| |i| | Session | | | | | | | (I-TRIP/ | | |t| |d| | Mangement |-++-+-------| GW | | | E-TRIP) | | |i| |a| | | | | +-----+ | | | | |o| |t| | |-+ -+- | +-----------/-+ | |n| |i| +-------------+ | | --- +-----+ | / | | | |o| | | -- | | | / | | | |n| | | | GW | | / | +-+ +-+ | | +-----+ | / | TGREP Receiver | | | / +-------------------------------+ | | / | | / | +-------/-----------------------------------------------+ / LS/Proxy / / / / / +/----------------+ | | | | | | | LS | | | | | | | | | | | +----------------+ +------------------------------------------------------+ Bangalore, Kumar, Rosenberg, Salama, Shah [Page 20] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 | +-------------------------------+ | | | +-+ +-+ | | | | |A| |C| | | +-----+ | | |g| |o| | | TGREP | | | +-------------+ | |g| |n| +-------------+ | | -- | GW | | | | | |r| |s| | | | | -- +-----+ | | TRIP | | |e| |o| | | | +-- | | LS <----------|g<--|l<--- TGREP |-++-| +-----+ | | | | |a| |i| | Session | | | | | | | (I-TRIP/ | | |t| |d| | Mangement |-++-+-------| GW | | | E-TRIP) | | |i| |a| | | | | +-----+ | | | | |o| |t| | |-+ -+- | +-------------+ | |n| |i| +-------------+ | | --- +-----+ | | | | |o| | | -- | | | | | | |n| | | | GW | | | +-+ +-+ | | +-----+ | | TGREP Receiver | | | +-------------------------------+ | | | | | +-------------------------------------------------------+ LS/Proxy Figure 7: LS Architecture for TRIP-GW 3.9.1. Route consolidation The TGREP receiver may receive routing information from one or more gateways. It is possible that multiple routes are available for the same destination. These different alternative routes may be received from the same gateway, or from multiple gateways. It is RECOMMENDED that the set of gateway routes for each destination be consolidated, before presenting a candidate route, to the TRIP LS. The motivation for this operation should be to define a route that can maximally represent the collective routing capabilities of the set of gateways, managed by this TGREP receiver. Let us take an example scenario in order to bring out the motivation for this operation. Let us say, the TGREP receiver maintains peering sessions with gateways A, and B. o Gateway A advertises a route for destination "SIP 408" on the E.164 address family with the Carrier attribute value C1. o Gateway B advertises a route for destination "SIP 408" on the E.164 address family with Carrier attribute value C2. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 21] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 The TGREP receiver that receives these routes can consolidate these constituent routes into a single route for destination "SIP 408" with its Carrier attribute being a union of the the Carrier attribute values of the individual routes, namely, "C1 C2". This operation is refered to as Consolidation. In the above example, it is possible that a route to the destination "SIP 408" through one or more carriers may have been lost if the individual routes were not consolidated. Another example is to consolidate the Prefix attribute from multiple Carrier or Trunkgroup updates received from different gateways for the same destination. Let us say, there are Carrier AF updates from two gateways for Carrier destination X, and the prefix attribute values are {408, 650} from one update and {919, 973} from the other. The prefix values from these two updates can be consolidated into a single Carrier AF route advertisement with prefix value {408, 650, 919, 973}. In general, there is a potential for loss of gateway routing information, when TGREP routes from a set of gateways are not consolidated, when a candidate route is presented to the TRIP LS. The specifics of applying the consolidation operation to different attributes and routes from different address families, is left to the individual TGREP receiver implementations. 3.9.2. Aggregation The set of gateway routes, that are in a consolidated form or otherwise, may be aggregated before importing it to the LS instance that is responsible for I-TRIP/E-TRIP processing. This operation follows the standard aggregation procedures described in the TRIP RFC [4], while adhering to the aggregation rules for each route attribute. 3.9.3. Consolidation v/s Aggregation To highlight the difference between the two operations discussed above, "Consolidation" combines multiple routes for the same route destination, whereas "Aggregation" combines routes for different route destinations that qualify as candidates to be summarized resulting in route information reduction. To take an example, if there are multiple gateways offering routes to an E.164 destination "408" but with possibly different attributes (Eg: Carrier), the LS/Proxy can combine these to form one route for "408" but representing the attribute information collectively. This Bangalore, Kumar, Rosenberg, Salama, Shah [Page 22] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 process is Consolidation If, for example, the LS/Proxy receives routes for 4080, 4081, 4082, ... 4089 from amongst a set of gateways, it could aggregate these different candidate routes to have a summarized route destination "408" with each of the attributes computed using the Aggregation procedures defined in the TRIP RFC. 4. Security Considerations The Security considerations defined in the TRIP RFC [4] apply to TGREP sessions between Gateways and TGREP Receivers 5. IANA Considerations - The Attribute Type Codes for the new attributes: AvailableCircuits, TotalCircuitCapacity, CallSuccess, Prefix, TrunkGroup and Carrier described in Sections 3.1, 3.2, 3.3, 3.4, 3.5 and 3.6 above, respectively, are to be assigned by IANA. - The Address Family Codes for the new address families: TrunkGroup and Carrier described in Section 3.7, are to be assigned by IANA. Both TRIP[4] and TGREP share the same IANA registry for Capabilities, Attributes, Address Families, and Application Protocols 6. Changes since draft-ietf-iptel-tgrep-02.txt - No change in content. Releasing a new revision for renewal of draft 7. Changes since draft-ietf-iptel-tgrep-01.txt - Added a "Security Considerations" Section to the document - Strengthened the text under "LS/Proxy Behavior" regarding Consolidation and Aggregation with additional examples for better clarity - Removed the section "Other Attributes" including its subsection on the "Pricing" attribute - Modified the definition of Carrier in the "Carrier attribute" and "TrunkGroup and Carrier Address Families" sections respectively - Rectified the section number references in the "IANA Considerations" Section Bangalore, Kumar, Rosenberg, Salama, Shah [Page 23] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 - Strengthened the text in the attribute sections regarding dissemination of attributes received on TGREP - Updated the "References" section - Corrected typos, nits, grammatical errors, and language of the text throughout the document based on feedback from the iptel community 8. Changes since draft-ietf-iptel-tgrep-00.txt - Added recommendations for AvailableCircuits and CallSuccess attributes. - Updated Carrier Attribute with ASCII syntax. - Removed thresholding scheme description. - Updated author addresses. 9. Changes since draft-ietf-iptel-trip-gw-00.txt - Changed title of the document to TGREP (Telephony Gateway REgistration Protocol) - Changed name of protocol described in this document to TGREP - Changed Abstract and Introduction sections to position TGREP as an auxiliary protocol to TRIP (as opposed to a "subset" of TRIP) - Modified the section on LS/Proxy Behavior including the diagram - Added an additional example to the Route Consolidation section - Changed the format of Carrier (both as an attribute and as an AF) to accomodate representation of Country codes in association with CICs. - Updated text to allow Carrier attribute in TrunkGroup address family and TrunkGroup attribute in Carrier address family. 10. Changes since -03 - Removed Carrier-Trunkgroup attribute and address family and references to it. - Added Terminology and Definitions section. - Updated CallSuccess attribute. - Added Prefix attribute. - Added Carrier attribute. - Added TrunkGroup attribute. - Added TrunkGroup Address Family. - Added Carrier Address Family. - Added some more references. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 24] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 11. Changes since -02 - Removed the requirements section. - Discussed the motivation for introducing Carrier information into TRIP. - Defined a new attribute for the E.164 address family. - Defined a new address family for CarrierCode-TrunkGroup combination . - Defined new attributes to advertise dynamic gateway characteristics like resource availability, and call success rate. - Added as section to validate the TGREP solution against the requirements in [7]. 12. Changes since -01 - Added requirements. - Added more formal analysis of REGISTER and added analysis of SLP. - Removed circuit capacity attribute. 13. Changes since -00 - Added text to stress the value of this proposal for managing a gateway cluster. - Added attributes for circuit capacity and DSP capacity. - Added section on LS operation, discussing aggregation issue. Authors' Addresses Manjunath Bangalore Cisco Systems Mail Stop SJC-21/2/2 170 W. Tasman Drive San Jose, CA 95134 email: manjax@cisco.com Rajneesh Kumar Cisco Systems Mail Stop SJC-21/2/2 170 W. Tasman Drive San Jose, CA 95134 email: rajneesh@cisco.com Bangalore, Kumar, Rosenberg, Salama, Shah [Page 25] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 Jonathan Rosenberg dynamicsoft 72 Eagle Rock Avenue First Floor East Hanover, NJ 07936 email: jdrosen@dynamicsoft.com Hussein F. Salama Cisco Systems Mail Stop CAI1 135 Abdel Aziz Fahmy Street 2nd Floor Apartment #3, Heliopolis Cairo, Egypt email: hsalama@cisco.com Dhaval N. Shah Cisco Systems Mail Stop SJC-06/4/3 170 W. Tasman Drive San Jose, CA 95134 email: dhaval@cisco.com Acknowledgments We wish to thank David Oran, Anirudh Sahoo, Kevin McDermott, Jon Peterson, Li Li and Bob Penfield for their insightful comments and suggestions. References [1] Bradner, S., "Keywords for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [2] M. Handley, H. Schulzrinne, E. Schooler, and J. Rosenberg, "SIP: session initiation protocol," Request for Comments 3261, Internet Engineering Task Force, Mar. 1999. [3] E. Guttman, C. Perkins, J. Veizades, and M. Day, "Service location protocol, version 2," Request for Comments 2608, Internet Engineering Task Force, June 1999. [4] J. Rosenberg, H. Salama, and M. Squire, "Telephony routing over Bangalore, Kumar, Rosenberg, Salama, Shah [Page 26] Internet Draft draft-ietf-iptel-tgrep-03.txt March 2004 IP (TRIP)," Request for Comments 3219, Internet Engineering Task Force, January 2002. [5] J. Rosenberg and H. Schulzrinne, "A framework for telephony routing over IP," Request for Comments 2871, Internet Engineering Task Force, June 2000. [6] J. Rosenberg, "Requirements for Gateway Registration," Internet Draft, Internet Engineering Task Force, Nov. 2001. Work in progress. [7] ITU-T List of ITU Carrier Codes (published periodically in the ITU-T Operational Bulletin). [8] J. Peterson, "An Architecture for Gateway Registration Based on Trunk Groups," Internet Draft, Internet Engineering Task Force, Feb. 2002. Work in progress. Full Copyright Statement Copyright (C) The Internet Society (2003). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Bangalore, Kumar, Rosenberg, Salama, Shah [Page 27]