SIP Feature and Provisioning Guide
Chapter 3 - SIP Trunks
Downloads: This chapterpdf (PDF - 1.24MB) The complete bookPDF (PDF - 3.39MB) | Feedback

SIP Trunks

Table Of Contents

SIP Trunks

General Characteristics and Usage of SIP Trunks

SIP Trunk Provisioning Example

CLI Provisioning Example

Additional Options

Call Processing on SIP Trunks

Validation of Source IP Address for Incoming SIP Messages

Loop Detection

Locating SIP Servers Using DNS Queries

Locating SIP Servers from an Incoming Request

Locating SIP Servers from an Outbound Request

Provisioning Commands

Reliable Provisional Responses

Signaling for Reliable Provisionable Responses

Provisioning Procedure for Reliable Provisional Responses

Provisioning Session Timers for SIP Trunks

SIP Timer Values for SIP Trunks

SIP Route Advance

SIP Status Monitoring and SIP Element Audit

Status Monitoring of SIP Elements

Status Monitoring Functions

Using the Status and Control Commands

Troubleshooting with Alarm Reports

SIP Trunk Group States

Internal SIP Audit

SIP Element Audit

Audit Occurrence

Provisioning

Alarms

OPTIONS Message

SIP Triggers

Call Redirection

Call Redirection Process

Call Redirection Provisioning

Support for Sending 302 on Call Forwarding

Sending 302 Feature Description

SIP 302 Provisioning

Diversion Indication for SIP Trunks

Signaling for Diversion Indication

Provisioning Procedure for Diversion Indication

Number Portability Information and Carrier Identification Code

Number Portability

Carrier Identification Code over SIP

SIP Trunk Subgroups

Description of SIP Trunk Subgroups Feature

Proprietary TGID Parameter

Standards-Based TGID Parameter

Example of an INVITE Message

SIP-T, ISUP Version, ISUP Transparency, and GTD

Description of SIP-T, ISUP Version, ISUP Transparency, and GTD

Provisioning Procedures for SIP-T, ISUP Version, ISUP Transparency, and GTD

DTMF SIP Signaling

Feature Description

Exceptions and Limitations

Provisioning Procedure for DTMF SIP Signaling

Asserted Identity and User-Level Privacy

Signaling for Asserted Identity and User-Level Privacy

Provisioning Procedure for Asserted Identity and User-Level Privacy

Calling Name Delivery on Terminating SIP Trunks

Third-Party Call Control

ANI-Based Routing

ANI Screening on Incoming Calls

T.38 Fax Relay CA Controlled Mode Across SIP Trunk Interface

SIP Call Transfer with REFER and SIP INVITE with Replaces

SIP REFER Message Processing

Replaces Header Processing

Referred-By Header Processing

Provisioning Procedure for SIP REFER and SIP INVITE with Replaces

SIP Trunk to Voice-Mail Server

Cluster Routing

CMS-to-MGC Routing

SIP Server Groups

Purpose of the SIP Server Groups Feature

Provisionable Parameters Affecting SIP Server Groups

Understanding SIP Server Group Operations

Tree Model Approach to SIP Element Selection

Blacklisting SIP Endpoints That Are Not Reachable

SIP Element Advance On 5XX SIP Responses

Server Groups for Established Dialog Requests

Outbound SIP Messages That Apply to SIP Server Groups

Server Groups for Sending Initial Invite Request

Server Groups for Sending Established Dialog Requests

Server Groups for Sending Response Retransmissions

SIP Element Selection Algorithm

Example 1—Server Groups Provisioned to Advance to Next SIP Element in the SG, Initial INVITE

Example 2—Server Group Provisioned to Advance to Next Server Group

Transport Type for SIP Element Selection

Applications and Use Cases for SIP Server Groups

Basic SIP Network Domain

Server Groups for Outbound SIP Calls to a Proxy Farm

Server Groups for SIP Requests to SBC Endpoints

Server Groups for Response Retransmissions to a Proxy Farm

Limitations on SIP Server Groups

Server Groups and CANCEL/ACK Messages

Server Group Provisioning Limits

Server Groups and SIP Element TSAP-ADDR Provisioning

Server Groups and Call Redirection

Server Groups and Call Transfer

Server Groups and Expires Header

Server Groups and Status Monitoring

Provisioning SIP Server Groups

Provisioning a SIP Trunk Group without Server Groups

Provisioning a SIP Trunk Group with Server Groups

Troubleshooting SIP Server Groups


SIP Trunks


Revised: October 30, 2012, OL-12397-18

This chapter describes SIP trunk features on the Cisco BTS 10200 Softswitch, and how to use them. SIP trunks service SIP calls between the BTS 10200 and external SIP entities other than local SIP subscribers, such as voice-mail servers, remote call agents, and SIP proxies.

The information in this chapter includes

General Characteristics and Usage of SIP Trunks

SIP Trunk Provisioning Example

Call Processing on SIP Trunks

Validation of Source IP Address for Incoming SIP Messages

Loop Detection

Locating SIP Servers Using DNS Queries

Reliable Provisional Responses

Provisioning Session Timers for SIP Trunks

SIP Timer Values for SIP Trunks

SIP Route Advance

SIP Status Monitoring and SIP Element Audit

SIP Triggers

Call Redirection

Support for Sending 302 on Call Forwarding

Diversion Indication for SIP Trunks

Number Portability Information and Carrier Identification Code

SIP Trunk Subgroups

SIP-T, ISUP Version, ISUP Transparency, and GTD

DTMF SIP Signaling

Asserted Identity and User-Level Privacy

Third-Party Call Control

ANI-Based Routing

T.38 Fax Relay CA Controlled Mode Across SIP Trunk Interface

SIP Call Transfer with REFER and SIP INVITE with Replaces

SIP Trunk to Voice-Mail Server

Cluster Routing

CMS-to-MGC Routing

SIP Server Groups

General Characteristics and Usage of SIP Trunks

The BTS 10200 can be configured to use User Datagram Protocol (UDP) or Transmission Control Protocol (TCP) transport for communications over a SIP trunk. A SIP trunk is configured in the BTS 10200 with the following:

IP address or Fully Qualified Domain Name (FQDN) and port for address information of external SIP entity

Dial plan and dialed digit string entries for routing of calls received on the trunk

Profile to define the feature set and SIP protocol properties for the trunk

Following are the general usage guidelines and limitations for SIP trunks:

Typically, one trunk is defined for each external SIP entity communicating with the BTS 10200 over SIP.

Multiple trunks can be associated with a provisioned route set providing route advance functionality.

SIP trunks have OAM state and status, and can be set in service and out of service by the administrator.

SIP trunks set themselves operationally out of service if the remote SIP entity does not respond. You can enable or disable the monitoring for this function through the status_monitoring field in the sip-element table.

Trunks can be defined as trunk types SIP or SIP-T.

External SIP entities are addressed as follows:

SIP-T trunks must communicate with the BTS 10200 using the SIP-T protocol.

SIP trunks must communicate with the BTS 10200 using the standard SIP protocol.

A regular SIP call can be received on a SIP-T trunk.

The system imposes limits on the decoding of incoming SIP messages. These limits are intended to protect the system from decoding extremely large messages, which in turn could overload the system and cause performance problems. See the "Limitations on Number of URLs, Parameters, and Headers (Release 5.0, Maintenance Release 1 and Later)" section.

SIP Trunk Provisioning Example

The following example, a local BTS 10200 subscriber makes a call out from a SIP trunk to a SIP proxy serving an NPA-NXX domain.

The example shows how to create a trunk group and associate it with the IP address of the proxy. It also shows how to provision the originator's dial plan with the dialed digits associated with the trunk.


Note Before provisioning, identify the following:
1. The first 6 dial digits of the SIP proxy NPA-NXX domain: in this example, 469-555.
2. Provisioned dial plan ID of the originator in BTS 10200: in this example, dp1.
3. IP address of the SIP proxy: in this example, 192.168.3.3.


CLI Provisioning Example

add softsw_tg_profile id=<profile_id>; protocol_type=SIP;
add pop id=<pop_id>; state=tx; country=usa; timezone=CST;
add sip-element; tsap-addr=192.168.3.3;
add trunk_grp id=<trunk_group_id>; tg_type=SOFTSW; softsw_tsap_addr=192.168.3.3; 
dial_plan_id=dp1; tg_profile_id=<profile_id>; call_agent_id=<ca_id>; 
pop_id=<pop_id>;
add route id=<route_id>; tgn1-id=<trunk_id>;
add route-guide id=<route_guide_id>; policy_type=ROUTE; policy_id=<route_id>;
add destination dest-id=<dest_proxy_id>; call-type=LOCAL; route-type=ROUTE; 
route_guide_id=<route_guide_id>;
add dial-plan id=dp1; digit-string=469-555; dest-id=<dest_proxy_id>;
control trunk-grp id=<trunk_group_id> target-state=INS; mode=forced:
control sip-element tsap-addr=192.168.3.3; target-state=INS;
 
   

Additional Options

You can provision the system to send the +CC (country code) format. See the note in the "Call Processing on SIP Trunks" section for further details.

The TSAP address in the outbound SIP trunk group can be provisioned with a static IP address. The inbound SIP trunk group must be provisioned to match the domain name in the incoming INVITE message top-most Via header. If you do not provision the TSAP address field this way, the call is rejected with 403 Forbidden message. If you prefer to avoid DNS lookups and use the static IP address, we suggest using at least three SIP trunk groups: two for outbound with the IP addresses of two remote softswitches, and one for inbound with the domain name of one remote softswitch.

Call Processing on SIP Trunks

Outbound calls on the BTS 10200 are processed by the BTS 10200 routing system. The routing system selects an outbound SIP trunk based on the digits dialed and the dial plan of the originating entity. The SIP call is then transmitted out a TCP or UDP socket toward the IP address associated with the trunk selected by routing. SIP call features and characteristics are applied to the outbound call based on the feature selections in the trunk profile associated with the trunk.


Note RFC 3398 states that any outbound SIP number with NOA=NATIONAL must be prefixed with "+CCnumber" which is an international format, and any number with NOA=subscriber must be given an international format. The sending of the full E.164 format is enabled by a flag (send-full-e164) in the softsw-tg-profile table to enable interworking with downstream devices that require this number format.


For inbound calls, the SIP call is received on a TCP or UDP socket. To determine a SIP trunk associated with a the call, the BTS 10200 compares the address of the previous-hop SIP entity in the VIA header of a request with the IP addresses associated with the provisioned SIP trunks, looking for a match. The system uses the domain name or IP address of the top-most VIA header of the received INVITE to identify the inbound SIP trunk group, unless the sip-inbound-policy-profile table is provisioned.

If the previous-hop SIP entity is represented by an FQDN, the BTS 10200 compares it with SIP trunks associated with this FQDN. If the SIP call is not associated with any trunk, the call is refused, unless it is identified as coming from a local BTS 10200 subscriber. The SIP call is then sent to the routing system with the trunk identification. The routing system uses the dial plan associated with the inbound trunk and the dialed digits to make routing decisions for the outbound direction.

SIP inbound policy parameters are not defined by default, but if you provision them, these parameters enable the system to determine the incoming SIP trunk. The policy defines specific SIP message headers the system should look for to identify the incoming SIP trunk when a dialog-initiating request is received. The starting policy is normally specified in the SIP-INBOUND-POLICY-PROFILE-ID of the Call Agent Profile table. However, if this value is unspecified, the system applies the trunk-group identification technique of matching the sent-by in the VIA of a request to the TSAP address of a trunk group. Finally, if that does not identify a trunk group, the system attempts to route the call based on subscriber identification.

Validation of Source IP Address for Incoming SIP Messages

The system can perform source IP address validation of incoming messages received on SIP trunks. This validation process is intended to reduce the risk of security attacks, which can occur if a packet is sniffed in the network and then sent from a different or rogue IP address, or domain (information that can be read from the Via header). By default, IP address validation is disabled on the Cisco BTS 10200 Softswitch. The service provider can enable this capability using the SIA-TG-VALIDATE-SOURCE-IP token in the ca-config table. This is a switch-wide parameter, and applies to all SIP trunk groups.

You can enable IP address validation using the following command:

add ca-config type=SIA-TG-VALIDATE-SOURCE-IP; datatype=BOOLEAN; value=Y;
 
   

Note By default, SIA-TG-VALIDATE-SOURCE-IP is set to N, and IP address validation is disabled.


Loop Detection

The system supports provisionable parameters in the softsw-tg-table. The parameters, which allow control of the maximum-forwards and hop-counter fields of the SIP Invite message, are as follows:

HOP-COUNTER-MAX

HOP-COUNTER-SUPP

MAX-FORWARDS

SCALE-FACTOR


Note The hop count between SIP and SS7 networks is scaled appropriately in the BTS 10200 based on the provisioning of the SCALE-FACTOR token.


The description and relationship of these parameters are provided in the Softswitch Trunk Group Profile table in the Cisco BTS 10200 Softswitch CLI Database.

Locating SIP Servers Using DNS Queries

This section explains how the system can locate SIP servers based on inbound and outbound requests.

Locating SIP Servers from an Incoming Request

The system can locate SIP servers based on information in the inbound request.

The BTS 10200 can request and accept TCP connections. The system provides for the selection of TCP or UDP on trunk groups with or without SRV support. When accepting connections, the BTS 10200 listens for and accepts TCP connection requests. It also listens for incoming requests on UDP. Once a request is received, the system sends SIP responses using the same transport type as the associated request. If this occurs over a TCP connection and the connection still exists, the system reuses that connection. If the connection is gone, the system attempts to establish a new connection to the same address.

Locating SIP Servers from an Outbound Request

The system can locate SIP servers based on SIP trunk provisioning applicable to the outbound request.

The NAPTR and SRV DNS functions allow the BTS 10200 SIP interface to correctly interoperate with proxy farms and find proxies and redirect servers. Operators can designate some service hosts as primary servers, and others as backup. When provisioned to support NAPTR and SRV functions, the BTS 10200 discovers the most preferred transport protocol of the locally supported destination, and obtains an SRV query string to locate a server supporting that protocol. The system follows the procedures described in RFC 2782 and RFC 3263 to determine the transport, IP address, and port for the next hop.


Note To provision NAPTR and SRV support, set the DNS-SRV-SUPP field in the SIP-ELEMENT table to RFC2782_LABELS, and provision the element ID as a NAPTR or SRV name.


The NAPTR lookup procedure depends on the size of the message compared to the path maximum transmission unit (MTU) size stated in RFC 3261 and RFC 3263 (typically 1300 bytes). The implementation in the Cisco BTS 10200 Softswitch is based on the SIP Working Group Document Issue 760 (http://bugs.sipit.net/show_bug.cgi?id=760). That document provides guidance regarding the conflicting directives between RFC 3261 and RFC 3263 when a message size exceeds the MTU limit and NAPTR lookups are involved. The system processes the lookup as described in this section.

Figure 3-1 shows the transport selection procedure for sending SIP requests based on NAPTR and SRV records, that is, when the value of the DNS-SRV-SUPP token is provisioned as RFC 2782_LABELS.

Figure 3-1 Transport Selection for Sending SIP Requests Based on NAPTR and SRV

Following is an explanation of the logic shown in Figure 3-1.

If the message size is less than the path MTU limit (1300 bytes), the sequence is as follows:

a. The system looks up a NAPTR record, and chooses a transport protocol based on the priority of the NAPTR record. Only that chosen transport protocol is used to route the message, and servers associated with other protocols are not contacted.

b. If no NAPTR record is found, the system performs a best-effort lookup by assuming that an SRV record exists that has the same name as the NAPTR record. The procedure continues as follows:

A UDP SRV record is looked up first, using the _sip._udp prefix. If it is resolved, the servers on the resulting list are contacted and the UDP transport is used to send the message.

If no UDP SRV record is found, a TCP SRV record is searched, using the _sip._tcp prefix. If it is resolved, the servers on the resulting list are contacted and TCP transport is used to send the message.

If the message size is greater than the path MTU limit (1300 bytes), the sequence is as follows:

a. The system performs a NAPTR lookup for records supporting TCP transport only. The resulting query string from the NAPTR lookup is used to perform an SRV lookup. If it is resolved, the servers on the resulting list are contacted and TCP transport is used to send the message.

b. If no NAPTR record is found, the system performs a best-effort lookup by assuming that an SRV record exists. the procedure continues as follows:

A locally generated query string is used to query SRV records, using TCP as preferred transport and the _sip._tcp prefix. If such a record is found, servers on the resulting list are contacted and TCP transport is used to send the message.

If no TCP SRV record is found, a UDP SRV record for the same TSAP address (prefixed with _sip._udp) is searched. If such a record is found, all servers on the resulting list are contacted and UDP transport is used to send the message.

The following details apply to all DNS queries described above:

The above procedure (selecting only a single transport) applies only to NAPTR or SRV provisioning, that is, when the following are both true:

The SIP trunk profile is provisioned with SRV support enabled.

The TSAP address is provisioned with either a NAPTR or SRV name.

After the system selects a transport type, only that type is used for signaling. If the chosen transport does not work, the system does not attempt any other transport mechanism, and the call fails.

If the NAPTR and SRV queries fail, the system attempts a best-effort A-record query and uses UDP to send the message.


Tip These steps add overhead to the process of resolving an address. Therefore, SRV should be enabled only if the benefits of the address resolution procedure are required. A an alternative, you can consider using SIP Server Groups, an efficient procedure that does not involve a DNS query.


Traversing the SRV List for Failure Responses and Retransmission Timeouts

This section describes how the BTS 10200 traverses the SRV list.

503 Response—When the BTS 10200 receives a 503 response (service unavailable) from the server in the SRV list that was last attempted, it resubmits the same request as a new transaction (with a new branch ID) to the next IP address in the SRV list.

Retransmission timer expires—If an SRV server receiving the INVITE does not respond within the retransmission timer period, the BTS 10200 can send the next retransmission of the same request to the same server (as recommended in RFC 3263), or to the next server in the SRV list (legacy BTS 10200 behavior). This is controlled using a provisionable flag, DNS_SRV_ADV_ON_RETRANS_TIMEOUT on the SIP-ELEMENT table.

If DNS_SRV_ADV_ON_RETRANS_TIMEOUT is set to N, all retransmissions of a message are exhausted sending to a single address before attempting to send to the next address. Keep in mind that some calls might not complete if one of the nodes in an SRV list returns a 503 message, even though other nodes in the list are capable of handling the request successfully.

If the flag is set to Y (the default value), the system retransmits the same request as a new transaction (with a new branch ID) to the next IP address in the SRV list.

A-Record DNS Queries for Outgoing Messages

The system can use A-record DNS queries to locate SIP servers. The system selects the DNS query and the transport mechanism based on the value of the DNS-SRV-SUPP field in the SIP-ELEMENT table. If this field is set to NONE, the transport is selected based on the NON-SRV-TRANSPORT field of the SIP-ELEMENT table. Possible values for this field are as follows:

UDP (default)—If the message size is less than 1300 bytes as described in RFC 3261 and RFC 3263, the system uses UDP. If the message size is greater than 1300 bytes, the system uses TCP; however, if TCP fails, the system attempts to use UDP.

UDP-ONLY—The initial outbound request uses UDP regardless of the message size. However, the transport used for subsequent outbound requests is based on the negotiated transport type exchanged in the Contact header during dialog establishment.

TCP—Use TCP only.


Note If the value of DNS-SRV-SUPP is set to RFC 2782_LABELS, the system ignores the NON-SRV-TRANSPORT field.


When performing an A-record DNS query, the system tries each IP address to which the FQDN resolves, (in succession) when there is a failure to communicate with the destination SIP endpoint. The system does this for both UDP and TCP transport mechanisms.

Figure 3-2 shows the transport selection procedure for sending SIP requests based on A-Record queries, that is, when the value of the DNS-SRV-SUPP token is provisioned as NONE.

Figure 3-2 Transport Selection for Sending SIP Requests Based on A-Record Lookup

Provisioning Commands

This section explains how to provision the system to locate SIP servers through NAPTR and SRV DNS queries, and through A-Record DNS queries.

Provisioning the System to Use NAPTR and SRV DNS Queries

Follow these steps to provision the system to use NAPTR and SRV DNS queries.


Step 1 Enable NAPTR and SRV DNS queries.

change sip-element tsap-addr=<TSAP address, such as host.server.com>; 
dns-srv-supp=RFC2782_LABELS;
 
   

Step 2 Provision the TSAP address in the trunk group for the SIP server.

change trunk_grp id=<trunk group id>; softsw_tsap_addr=<see list of values below>;
 
   

Either of the following can be provisioned for softsw-tsap-addr:

NAPTR name

SRV name

The use of either NAPTR or SRV names requires correctly configured DNS servers. We recommend the following options when you are provisioning NAPTR and SRV in the DNS servers:

When you are using SRV, if a host name is provisioned in the TSAP address, include a port. This allows the application to identify the address as a host name and skip NAPTR and SRV queries.

If an SRV name is required, provision NAPTR entries to provide SRV replacement strings instead of waiting for a failure on the NAPTR query to make an SRV query.


Provisioning the System to Use A-Record DNS Queries

Follow these steps to provision the system to use A-record DNS queries.


Step 1 Verify that NAPTR and SRV DNS queries are disabled. If necessary, disable NAPTR and SRV DNS queries.

show sip-element tsap-addr=<TSAP address, such as host.server.com>;
 
   

Note Read the system response to verify that dns-srv-supp is set to NONE (this is the default value).


If it is not already set to NONE, use the following command:

change sip-element tsap-addr=<TSAP address, such as host.server.com>; 
dns_srv_supp=NONE;
 
   

Step 2 Provision the transport type.

change sip-element tsap-addr=<TSAP address, such as host.server.com>; 
non-srv-transport=<see list of values below>;
 
   

Any one of the following can be provisioned for non-srv-transport:

UDP (default)—If the message size is less than 1300 bytes as described in RFC 3261 and RFC 3263, the system uses UDP. If the message size is greater than 1300 bytes, the system uses TCP; however, if TCP fails, the system attempts to use UDP.

UDP-ONLY—The initial outbound request uses UDP regardless of the message size. However, the transport used for subsequent outbound requests is based on the negotiated transport type exchanged in the Contact header during dialog establishment.

TCP—Use TCP only.

Step 3 Provision the TSAP address in the trunk group for the SIP server.

change trunk-grp id=<trunk group id>; softsw_tsap_addr=<see list of values below>;
 
   

The value of softsw_tsap_addr must match the tsap_addr that is provisioned for an existing sip_element or sip_server_grp. Any one of the following can be provisioned for softsw-tsap-addr:

Host name

Host name and port

IP address

IP address and port


Note The use of host names requires correctly configured DNS servers.



Reliable Provisional Responses

SIP defines two types of responses, provisional and final. Final responses convey the result of the request processing and are sent reliably. Provisional responses provide progress information about the request processing but are not sent reliably in the base SIP protocol. The reliable provisional responses feature provides end-to-end reliability of provisional responses across BTS 10200 SIP trunks.

Signaling for Reliable Provisionable Responses

Provisional responses in SIP telephony calls represent backward alerting and progress signaling messages, which are important for interoperation with PSTN networks. Therefore, for SIP-T calls on the Cisco BTS 10200, reliable provisional responses are mandatory. They are optional for regular SIP calls.

Cisco BTS 10200 support for this feature follows the specifications described in RFC 3262. A provisioning flag is provided to enable or disable this feature, and the feature is disabled by default. For SIP trunks provisioned as SIP-T trunk type, the system internally ignores the flag and always enables the feature. In such cases, the feature is mandatory. Therefore, the ability to enable or disable the feature applies to regular SIP trunks only. There is one exception: SIP-T trunks receiving SIP-T calls (calls with ISUP attachments) can also receive incoming regular SIP calls. In this case, the feature (enabled or disabled) for the regular SIP call is determined by the provisioning flag on that SIP-T trunk.

The provisioning flag (PRACK-FLAG) is a parameter in the Softswitch Trunk Group Profile table. For provisioning details, see the "If the remote endpoint does not support the feature, the remote endpoint refuses the call." section.

For calls received on a BTS 10200 regular SIP trunk, or regular SIP (non-SIP-T) calls received on a SIP-T trunk, the following feature behavior applies:

If the received INVITE indicates this feature is required, all provisional responses are sent reliably, regardless of the provisioned feature setting on the trunk.

If the received INVITE indicates this feature is supported, all provisional responses are sent reliably if the feature is enabled on the trunk.

If the received INVITE indicates the feature is not supported, the call is refused if the feature is enabled on the trunk.

If the received INVITE indicates the feature is not supported, the call is accepted if the feature is disabled on the trunk. Provisional responses are not sent reliably.

For calls sent out a Cisco BTS 10200 regular SIP trunk, the following feature behavior applies:

If the feature is enabled on the trunk, the SIP Invite message sent contains a Required header with a tag value of 100rel.

If the feature is enabled on the trunk and the remote endpoint supports or requires the feature, all provisional responses are sent reliably to the BTS 10200.

If the feature is enabled on the trunk, and the remote endpoint does not support the feature, the remote endpoint refuses the call.

If the feature is disabled on the trunk, the SIP Invite message that is sent contains a Supported header with a tag value of 100rel.

If the feature is disabled on the trunk and the remote endpoint supports the feature, the remote endpoint controls which provisional response sent requires reliability.

If the feature is disabled on the trunk and the remote endpoint does not support the feature, provisional responses are not received reliably.

For SIP-T calls received on a BTS 10200 SIP trunk provisioned as SIP-T, the following feature behavior applies:

If the received INVITE indicates this feature is required or supported, all provisional responses are sent reliably.

If the received INVITE indicates the feature is not supported, the call is refused.

For all calls sent out a BTS 10200 SIP trunk provisioned as SIP-T, the following feature behavior applies:

The SIP-T INVITE message sent contains a Required header with a tag value of 100rel.

If the remote endpoint supports or requires the feature, all provisional responses are sent reliably to the BTS 10200.

If the remote endpoint does not support the feature, the remote endpoint refuses the call.

Provisioning Procedure for Reliable Provisional Responses

The following commands control the Reliable Provisional Response feature for regular SIP calls on all trunks associated with the SIP trunk profile <profile_id>.


Step 1 The default for making reliable provisional responses not required for regular SIP calls sent or received over a SIP trunk is

change softsw-tg-profile id=<profile_id>; prack-flag=N;
 
   

Step 2 To make reliable provisional responses required for regular SIP calls sent or received over a SIP trunk, use the following command:

change softsw-tg-profile id=<profile_id>; prack-flag=Y;
 
   

Note When reliable provisional responses are not required, the BTS 10200 does not make them required on remote SIP entities. However, the reliable provisional responses might still occur if a remote SIP entity requires it of the BTS 10200.


The prack-flag parameter applies only to SIP calls on regular SIP trunks, and regular SIP calls received on SIP-T provisioned trunks.


Provisioning Session Timers for SIP Trunks

Use the commands in the following procedure to provision session timers for SIP trunks. Session timers can be enabled or disabled for all SIP trunks (switch-wide) or for individual SIP trunks; they are disabled by default.

The session timer values are provisioned through the MIN-SE and SESSION-EXPIRES-DELTA-SECS tokens in the sip-timer-profile table. The id of the sip-timer-profile table record is then specified as the Value for the ca-config record of Type=sip_timer_profile_id. The id of the sip-timer-profile table can also be associated with a softsw-tg-profile record for SIP trunks. If you provision the timer values for a specific trunk, that overrides the ca-config default.


Note For a detailed description of session timers, see "SIP Session Timers" section



Step 1 Adjust the session timer values in the sip-timer-profile table if necessary.


Note The session duration field value is in seconds with a range of 100 to 7200. The minimum session duration field value is in seconds with a range of 100 to 1800.

We recommend a value of at least 1800 for each of these fields.


add sip-timer-profile id=<timer_profile_id>; session-expires-delta-secs=7200; 
min-se=1800;
 
   

Step 2 Enable session timers on the applicable softswitch trunk group profile, and assign the sip-timer-profile-id.

add softsw-tg-profile id=<profile_id>; session-timer-allowed=Y; 
sip-timer-profile-id=<timer_profile_id>
 
   

Tip Session timers are disabled by default (session-timer-allowed=N), so you must enable them as shown in the above command if you want this capability.


Step 3 Assign a TSAP address in the sip-element table:

add sip-element tsap-addr=<TSAP address, such as host.server.com>;
 
   

Step 4 Assign the TG; use the same TSAP address as in the applicable sip-element table.

add trunk-grp id=101; call-agent-id=CA146; tg-type=softsw; dial-plan-id=tg-dp; 
tg-profile-id=SIP123PROFILE; softsw-tsap-id=<TSAP address>;
 
   

Step 5 For a switch-wide default for SIP trunks (if the trunk is not specifically provisioned), add a default sip-timer-profile-id to the ca-config table as follows:

add ca-config type=SIP-TIMER-PROFILE-ID; datatype=string; 
value=<sip_timer_profile_id>;
 
   

Tip If you provision the timer values for a specific trunk (by pointing to a sip-timer-profile in the softsw-tg-profile), that overrides the ca-config default.



SIP Timer Values for SIP Trunks


Note This section describes how to provision SIP timer values for SIP trunks. For a comprehensive listing of SIP timers, see Chapter 4 "SIP System Features."


SIP timer values are provisioned in the sip-timer-profile table. The id of the sip-timer-profile table record is then specified as the Value for the ca-config record of Type=sip_timer_profile_id. The id of the sip-timer-profile table can also be associated with a softsw-tg-profile record for SIP trunks. If you provision the timer values for a specific trunk, that overrides the ca-config default. The default values are adequate for many installations. If customization is required, then a sip-timer-profile table can be provisioned and associated with all calls, or with calls on specific trunks.

The following steps provision the SIP timer values.


Step 1 Adjust the session timer values in the sip-timer-profile table if necessary (example shown).

add sip-timer-profile id=<timer_profile_id>; timer-t1-milli=500;
 
   

Step 2 Enable session timers on the applicable softswitch trunk group profile and assign a sip-timer-profile-id that the system uses for call processing.

add softsw-tg-profile id=<profile_id>; session-timer-allowed=Y; 
sip-timer-profile-id=<timer_profile_id>;
 
   

Step 3 Assign a TSAP address in the sip-element table. Also assign a sip-timer-profile-id that the system uses for OPTIONS-based auditing.

add sip-element tsap-addr=<TSAP address, such as host.server.com>; 
sip-timer-profile-id=<timer_profile_id>;
 
   

Step 4 Assign the TG; use the same TSAP address as in the applicable sip-element table.

add trunk-grp id=101; call-agent-id=CA146; tg-type=softsw; dial-plan-id=tg-dp; 
tg-profile-id=SIP123PROFILE; softsw-tsap-id=<TSAP address>;
 
   

Step 5 For a switch-wide default for SIP trunks (if the trunk is not specifically provisioned), add a default sip-timer-profile-id to the ca-config table.

add ca-config type=SIP-TIMER-PROFILE-ID; datatype=string; 
value=<sip_timer_profile_id>;
 
   

Note If you provision the timer values for a specific trunk (in the softsw-tg-profile table), this takes precedence over the switch-wide default value provisioned for sip-timer-profile-id in the ca-config table.



SIP Route Advance

When a SIP trunk is marked operationally OOS by the SIP element audit feature, the system automatically performs a route advance for subsequent calls, provided that there are additional routes provisioned to the called party.

SIP Status Monitoring and SIP Element Audit

This section describes the status-monitoring process and two types of SIP audits performed by the BTS 10200. It includes the following topics:

"Status Monitoring of SIP Elements" section

"Internal SIP Audit" section

"SIP Element Audit" section

Status Monitoring of SIP Elements

Status monitoring is a feature of the SIP element that can be enabled or disabled on the element by provisioning the STATUS-MONITORING flag. When status monitoring is enabled (which is the default), the SIP element sends out SIP OPTIONS requests using the SIP element during quiet times (no SIP message activity on element) to check the operational status of the associated remote SIP endpoint.

The status monitoring feature of the SIP element is independent of the server groups feature. The status monitoring feature functions the same for a SIP element regardless if the element is provisioned under a server group, or rather under a SIP trunk, under both, or neither.

Figure 3-3 shows the SIP element state diagram. It illustrates the SIP element states when the STATUS-MONITORING flag is enabled or disbaled.

Status Monitoring Functions

We recommend that you leave status monitoring enabled on SIP elements used in server groups. This allows a SIP element to be placed operationally out of service (OOS) on a SIP transaction timeout. In this case, subsequent SIP transactions and SIP calls avoid choosing this SIP element until the audit mechanism restores the element back into service. See Figure 3-3 for details on the SIP element state when the STATUS-MONITORING flag is enabled (set to Y).

Figure 3-3 SIP Element States Diagram

If status monitoring is disabled on a SIP element, the SIP element operational state will not be placed operationally OOS due to a SIP request (sent) timeout (see Figure 3-3). If a SIP element is previously operational OOS when status monitoring is disabled, the operational state is forced automatically in service (INS). The 162 alarm for this SIP element is cleared.

If the SIP element is operational INS with status monitoring disabled when a SIP request timeout occurred, the SIP element remains operational INS. The 162 alarm is not raised. Although the SIP element remains in service, the SIP element is marked unavailable for the current SIP transaction and another SIP element is chosen if possible. Subsequent SIP transactions and calls may continue to select this SIP element. This may result in SIP messages and retransmissions towards this SIP endpoint.

The SIP element operational state of OOS due to transient congestion (indicated by a response with a Retry-After duration) is unaffected by the status monitoring feature (see Figure 3-3). In this case, the SIP element will be set operational OOS for the specified duration of the transient congestion and return back in service once the duration is complete regardless of the status monitoring feature setting. The 162 alarm will be cleared once the duration has ended.

When the administration state of the SIP element is OOS, the status monitoring feature is internally forced disabled regardless of the provisioning for the feature. The feature is controlled by the provisioned setting when the administration state of the SIP element is INS. When the SIP element is initially provisioned with default values, the administration state is OOS. Once placed into service, the status monitoring feature will automatically enable and OPTIONS messages may be sent since the default for status monitoring is enabled. If the administrator switched the administrative state of the SIP element to OOS, it also internally switches status monitoring to disabled (if enabled), and the behavior of this switch is the same as described previously in this section. Only the SIP element administration state changes can affect the status monitoring feature. Trunk group and Server group administration state changes do not affect the status monitoring feature provisioned setting.

Using the Status and Control Commands


Note All of the IP addresses used in this document are examples, and are used for illustration purposes only.


Status Commands

Enter the following CLI command to display the status of a SIP element:

status sip-element tsap-addr=10.10.10.1;
 
   

The following examples illustrate the system responses to this command:

If the SIP element is operationally in service (INS):

SIP Element TSAP Addr : 10.10.10.1

Oper Status : INS

If the SIP element is operationally out of service (OOS), that is, a SIP request sent through this SIP element occurred a timeout:

SIP Element TSAP Addr : 10.10.10.1

Oper Status : OOS

The SIP element is operationally OOS. A SIP request was sent through this SIP element and a response was received with a Retry-After header containing a duration value. The SIP element is currently OOS for this duration. The timestamp indicates what time the SIP element will return into service.

SIP Element TSAP Addr : 10.10.10.1

Oper Status : OOS (Congested until 2006-04-05 12:05:32)

Control Commands

Enter the following CLI commands to control the administrative state of a SIP element of SIP SG:

control sip-element tsap-addr=10.10.10.1; target-state=<INS | OOS>;
 
   
control sip-server-group id=PROXY-FARM; target-state=<INS | OOS>;
 
   

When a server group is set administratively OOS, this server group and all SIP elements linked to it are not available for use even if these SIP elements are administratively and/or operationally INS. If a SIP element that is INS is linked under two different server groups, and one server group is administratively OOS, the SIP element is still available for use by the server group that is INS'.

An administrator may wish to set just an individual SIP element administratively OOS. When this is set, the SIP element is not available for use under any server group it is linked to. When a server group is selected to send a SIP message, SIP elements in the server group are available for selection except those that are administratively or operationally OOS.

Switching a server group or SIP element administrative state from INS to OOS is handled as a graceful shutdown. This means that current SIP calls remain active until they clear on their own. The BTS 10200 continues to send in-dialog requests such as RE-INVITE and BYE and response retransmissions. Subsequent SIP calls using server groups will not have these server groups or SIP elements available for selection. If these elements are the only ones possible for selection, the call is failed towards the originator.

When the administrative state of a SIP element is set OOS, it gracefully stops SIP call traffic sent from the BTS 10200 SIP interface towards the associated remote SIP endpoint. However, this also forces status monitoring to be internally disabled for that SIP element. This will immediately stop the issue of any SIP OPTIONS requests from the BTS 10200 SIP interface if the status monitoring feature was provisioned enabled.

Troubleshooting with Alarm Reports

Use the information in this section to help with troubleshooting procedures.

The specific fields for each signaling event and alarm are listed in the Cisco BTS 10200 Softswitch Troubleshooting Guide.

Signaling Alarm 162

The signaling alarm 162 is raised when a SIP element goes operationally OOS. The alarm is cleared when the SIP element goes operationally back INS. The SIP element goes OOS for one of two reasons:

A SIP request sent using this element incurred a retransmission timeout.

A SIP request sent using this element returned a SIP response with a Retry-After header indicating transient congestion for a given duration.

Alarm information contains the identification of the SIP element (the TSAP address field), and the reason why it is operationally OOS, either because of timeout or transient congestion.

The operational state and administrative state of a SIP element operate independently of each other. While the SIP trunk administrative state is OOS, the 162 alarm is never raised on this element regardless of operational state. The alarm might clear while its administrative state is OOS.

Signaling Alarm 142

The signaling alarm 142 is raised when a SIP trunk group goes operationally OOS. The alarm is cleared when the SIP trunk group goes operationally back INS.

If the SIP trunk group is provisioned with a single SIP element in the TSAP-ADDR address field, the SIP trunk operational state will follow the SIP element operational state. If a SIP trunk is provisioned with a server group, all SIP elements in that server group (and in sub-groups of this group) must all be operationally OOS for the 142 alarm to be issued for the trunk. If at least one SIP element in the server group (or sub-groups) becomes operationally INS, the 142 alarm is cleared.

Alarm information contains the identifier of the SIP element or server group provisioned for the trunk.

The operational state and administrative state of a SIP trunk group operate independently of each other. While the SIP trunk administrative state is OOS, the 142 alarm is never raised on this trunk regardless of operational state. The alarm might clear while its administrative state is OOS.

SIP Trunk Group States

A SIP trunk group references either a SIP element or a server-group (collection of SIP elements). A reference for a SIP trunk group is said to be available, if the SIP trunk group is both administratively and operationally INS.

When a SIP trunk group is initially added, the administrative status is OOS. Once the references become available, the operational state becomes INS (see Figure 3-4). You can control the administrative status of the trunk group, once the operational state becomes INS. If the references are not available, due to a negative event in one of the SIP elements of the trunk group, the operational state remains in OOS. For server-groups, at least one SIP element must be available for the collection to be available.

Figure 3-4 SIP Trunk Group States

Internal SIP Audit

The internal audits check the resources for call processing and call registration, and help to maintain those resources. There are two types of auditing:

Periodic audit (hourly)—If a call is connected to a remote endpoint (such as a trunk) and terminates abnormally, or if call connectivity is lost, the BTS 10200 recovers the resources on a periodic basis (approximately every 1 to 2 hours) by running an audit. During the audit, if no signalling has occurred on a call for more than an hour, the system checks the liveness of the call by sending a re-INVITE or an UPDATE message to the SIP parties in the call.

Scheduled audit (daily)—The scheduled audit runs daily, and checks any contacts registered with SIP subscribers to ensure that they have been refreshed. The SIP phone subscriber registry is expected to refresh regularly; however, if it is not, the BTS 10200 runs a scheduled audit once a day to reclaim stale resources associated with those registrations.


Note The feature requires no provisioning; use the audit default values. If you do want to change the values, consult with your Cisco representative before doing so.


SIP Element Audit

The SIP element audit mechanism verifies an element's operational status on a periodic basis. The audit mechanism is also triggered if communication problems are detected for the element.

The feature is enabled through the STATUS-MONITORING parameter in the sip-element table. The number of failures needed to classify an element as operationally out of service (OOS) is configured through the AUDIT-THRESHOLD parameter in the sip-element table, and the quiet interval before an audit is launched is controlled by the TRUNK-AUDIT-INTERVAL in the CA-CONFIG table.

When not explicitly configured, the default values are as follows:

STATUS-MONITORING flag (Y)

AUDIT-THRESHOLD (3)

TRUNK-AUDIT-INTERVAL (3 minutes)

The audit mechanism utilizes the SIP protocol. The SIP OPTIONS method, with a Max_Forwards header value of 1, detects whether a remote SIP end device is reachable. The response that the OPTIONS receives from the remote device might be an error message, but as long as a response is received, the element is deemed operationally in service (oper-INS).

An element is deemed operationally in service when any of the following occurs:

1. An initial INVITE message is received for the element.

2. A final response is received for an initial INVITE request that was sent to the element.

3. A final response is received for a SIP OPTIONS message sent to the element.

The first item, above restricts messages to initial INVITEs because RE-INVITEs may be sent directly to the BTS 10200 from an end-point proxied by a trunk. In the second item, unless the trunk end-point performs a Record-Route, responses to mid-dialog requests are sent directly from the remote user agent client (UAC), when the trunk is playing a proxy role. If the trunk is playing the role of a back-to-back user agent, every response indicates that the trunk is in service (INS). Because the role of the trunk is unknown, the restriction above is applied. In this way, the BTS 10200 monitors the next adjacent hop.

An element is marked operationally out of service (oper-OOS) when any of the following occurs:

1. An OPTIONS request sent for the purpose of audit yields no response (assuming the trunk is not provisioned SRV).

In this case, the OPTIONS message was transmitted to the hosts that the trunk's TSAP resolved to 11 times in 32 seconds. There are probably only a few hosts, and the message was transmitted more than once to each host, which is enough for the trunk to be considered out of service.

SRV trunks are excluded from this because SRV potentially translates to more than 11 hosts, so a single OPTIONS message is not sufficient for the trunk to be considered out of service.

2. A communication failure increments the count of such failures over a provisioned AUDIT-THRESHOLD in the sip-element table. Possible communication failures include:

A transport-level send failure (over UDP or TCP) for an initial INVITE, CANCEL of an initial INVITE, ACK of a failure response to an initial INVITE, or an OPTIONS sent to audit the element. This includes DNS resolution failures.

A timeout on an initial INVITE, CANCEL of an initial INVITE, or OPTIONS.

No ACK received for a failure response sent to an initial INVITE that was received.

A SIP trunk's operational state is maintained in the trunk-group record and is based on communication between the BTS 10200 and the trunk. The trunk is monitored only when status-monitoring is enabled, through provisioning, on the sip-element record, and if the trunk is administratively in service.

When status-monitoring is turned on and the trunk is administratively in service, the BTS 10200 sends an OPTIONS message periodically on the trunk if it is operationally out of service, or has had a long quiet period while in service. When status-monitoring is turned off, an operationally out of service trunk is brought back into service only by the reception of a message on the trunk, or by the use of the command line interface (CLI) Control command to first put it administratively out of service and then put it back administratively in service.

The SIP element audit facilitates the route-advance function of the BTS 10200. When a SIP trunk is marked operationally OOS by the audit feature, a route advance is automatically performed for subsequent calls by the BTS 10200, provided that there are additional routes provisioned to the called party.

Audit Occurrence

If an element is both administratively INS and STATUS-MONITORING=Y in the sip-element table, an audit occurs under the following conditions:

A communication error is reported on the trunk; for example, a request out a trunk yields no response, or a final error response to an INVITE sent on the trunk yields no ACK, and the number of failures has reached the provisioned threshold. The provisioned threshold is the AUDIT-THRESHOLD parameter in the sip-element table.

No communication has occurred on the sip-element for the provisioned TRUNK-AUDIT-INTERVAL, specified in minutes, in the ca-config table.

A previous audit failed to establish communication with the SIP element in the network.

Provisioning

When you are provisioning the Trunk Group audit mechanism, we recommend that you provision only the STATUS-MONITORING flag in the sip-element table.

The following fields should be left at the default settings:

In the sip-element table, AUDIT-THRESHOLD

In the ca-config table, TRUNK-AUDIT-INTERVAL

Alarms

The SIGNALLING (142) alarm, SIP Softswitch Trunk Out Of Service, is defined for the SIP element audit feature. The alarm is issued for one of two reasons:

1. The Cisco BTS 10200 is unable to communicate with a remote SIP party (Call-Agent or Proxy) over a SIP or SIP-T trunk.

2. A remote SIP party is not operational.

When the alarm is issued for the first reason and the TSAP address of the remote entity is a domain name, the BTS 10200 verifies that the DNS resolution exists. The BTS 10200 verifies that the remote entity is reachable by ICMP ping, using the Trunk TSAP address from the event report.

If the same alarm is reported on all Softswitch trunk groups, the BTS 10200 verifies that the network connection is operational.

If the remote SIP party is not operational and the ping is not successful, the BTS 10200 diagnoses the issue that prevents the TSAP address from being reached. It then verifies that the SIP application is running on the remote host and listening on the port specified in the TSAP address.

For a full list of events and alarms, see the Cisco BTS 10200 Softswitch Troubleshooting Guide.

OPTIONS Message

The following example shows a SIP OPTIONS message sent out to audit the liveness of a SIP trunk.

OPTIONS sip: vmserver.globalsys.net:11617 SIP/2.0
Via: SIP/2.0/UDP prica20:15000;branch=z9hG4bK_av617_7801
From: <sip:prica20>;tag=1_av617_f11_3429
To: <sip:vmserver.globalsys.net>
Call-ID: 1726021128@prica20
CSeq: 1 OPTIONS
Max-Forwards: 1
Supported: 100rel,precondition,timer
Contact: <sip:prica20:15000>
Content-Length: 0 

SIP Triggers

The SIP Triggers feature uses the SIP protocol, with some extensions, to enable the BTS 10200 to provide services from third-party application servers. The triggers can be used by these servers to provide originating services (such as TV caller ID, custom ringback, and voice dial) when a subscriber places a call, and enriched terminating services when a subscriber receives a call.


Note In the initial release of Release 5.0, SIP triggers are provided for MGCP and NCS subscribers only. In Maintenance Release 1 (MR1) of Release 5.0, SIP triggers are also provided for termination attempts to SIP subscribers when the incoming call is based on a directory number (DN).


For information on this feature, including limitations, see the following sections:

For a description of the basic SIP triggers feature, see the "SIP Triggers" section in the Cisco BTS 10200 Softswitch Network and Subscriber Feature Descriptions document.

For general SIP trigger provisioning details, see the "SIP Trigger Provisioning" section in the Cisco BTS 10200 Softswitch Provisioning Guide.

Call Redirection

The Call Redirection feature allows a remote SIP endpoint receiving a call from the BTS 10200 to reroute the call at the BTS 10200, using one or more destinations provided by the endpoint. It also supports load sharing and redundancy solutions used by other switches or applications interworking with the BTS 10200 using SIP. These solutions typically involve a front-end SIP network management server that manages load sharing and redundancy for back-end servers.

Call Redirection Process

The BTS 10200 honors the redirection (SIP 300 class) response to a SIP INVITE call request and redirects the call using the specifications outlined in RFC 3261.

When a redirection response is received with multiple contacts, multiple redirections are attempted in series in the order the contacts were received. This includes contacts received in subsequent redirection responses, in which case the contacts are appended to the serial list of redirections being attempted.

The BTS 10200 requires that redirection contacts have a SIP URI format. The user information field of the SIP URI must be present and must contain a phone number and a host name. The following example illustrates the SIP URI format:

 
   
sip:2125553333@phone.cisco.com
 
   

Call redirection is not supported on SIP trunks provisioned with a business group. The BTS 10200 does not support an incoming 300 class response from a local BTS 10200 SIP subscriber.

Call redirection is not supported if the call is committed, that is, if the termination is alerting and media has been exchanged. See the "Support for Sending 302 on Call Forwarding" section.

When the BTS 10200 selects a contact from the 300 class redirection response to perform a call redirection, it decides how the redirection is done based on the number and host name in the contact's SIP URI.

If the host name is the same as the configured SIP contact, the BTS 10200 routes the call using the number in the user portion of the redirected contact URI.

If this number also matches the called number in the redirected INVITE, the BTS 10200 routes by advancing to the next trunk in the provisioned route set of the originating trunk. This is called "route advance."

If this number does not match the previously called number, the BTS 10200 determines the next trunk to send the call out by performing routing on the new number based on the dial plan of the terminating trunk. This is called a "reroute."


Note A provisionable parameter (SIP_3XX-REROUTE_ON_LOCAL_DOMAIN in the ca-config table) allows the service provider to force the system to use the reroute method regardless of whether the redirect number matches the number in the initial INVITE. This parameter affects all SIP trunks on the switch.


If the host name field of the redirection contact selected for call redirection matches the provisioned TSAP address of a provisioned BTS 10200 SIP trunk, the BTS 10200 redirects the call out this trunk without going through the BTS 10200 routing system. The number in the contact is set as the called party number in the Request URI of the redirected INVITE.

If the host name field does not match the SIP contact of the BTS 10200 or the TSAP address of any of the provisioned SIP trunks, the call is redirected toward the host identified in the contact URI. This contact URI is used as the request URI for the redirected call. The redirected call uses the properties of the SIP trunk in the previous call attempt, and the call does not go through the BTS 10200 routing system. However, if the profile of this SIP trunk restricts redirection to contacts having host names matching only SIP trunks or BTS 10200 contact, redirection is not performed for this contact. This restriction is the default.

If the diversion feature is enabled for the BTS 10200 SIP trunk selected for call redirection, and the last redirection response received contained diversion headers, these headers are populated in the newly redirected call.

Call Redirection Provisioning

The following command controls the call redirection on all trunks associated with a specified SIP trunk group:

add softsw-tg-profile id=<profile_id>; redirect-supported=<see list below>;
 
   

The allowed values for redirect-supported are as follows:

valid-domains-only (default)—The trunk accepts redirection contacts only with host names of the BTS 10200 SIP contact, or the TSAP address of any provisioned SIP trunk.

all-domains—The trunk accepts redirection contacts with any host name. A contact URI is used as the request URI for the redirected call. The redirected call uses the properties of the SIP trunk in the previous call attempt.

none—Disables call redirection.

The parameters in the following steps are provisioned through the Call Agent Configuration (ca-config) table, and affect all SIP trunks on the switch. Additional details for the ca-config table are provided in Appendix A of the Cisco BTS 10200 Softswitch Call Processing Command Line Interface Reference. Cisco recommends that you leave these values at their default values unless you experience problems with the call redirection feature in your network. In that case, contact Cisco TAC to discuss the values to provision for these parameters.


Caution Provisioning changes in the ca-config table do not take effect until the platform switches over or restarts.


Step 1 If necessary, change the upper limit on the number of 300 class redirection responses the Cisco BTS 10200 Softswitch accepts while performing redirection on any given call attempt;
the default is 1.

add ca-config type=MAX-3XX-COUNT; datatype=INTEGER; value=2;
 
   

Step 2 If necessary, set the 3XX reroute parameter for call redirection.

 
   
add ca-config type=SIP-3XX-REROUTE-ON-LOCAL-DOMAIN; datatype=BOOLEAN;  
value=<see list below>;
 
   

N (default)—Does not force the use of reroute. The system performs route advance when the redirection number is the same as the number in the original INVITE.

Y—Forces the system to perform fresh routing (reroute) using the dial plan of the terminating trunk regardless of whether the redirect number matches the number in the initial INVITE.


Support for Sending 302 on Call Forwarding

The system supports sending the 302 message on call forwarding as described in this section. The SIP response code 302 requests that a call be redirected to a new IP address/phone number.

Sending 302 Feature Description

The following limitations apply to the Sending 302 feature:

Sending 302 is supported only for Call Forwarding No Answer (CFNA) on SIP trunks.

CFNA sends 302 if it is the first call forwarding feature invoked after the call is received.

Relaying SIP 302 is not supported.

302 tandeming through the BTS 10200 is supported on a limited basis—If both the originating and terminating sides are trunks, the call scenario is CFNA, the terminating side has recv_3xx_use_cf_method set to Y (yes) in the softsw_tg_profile table, and the originating side has send_302_on_cf set to Y, the 302 is passed through.

Receiving 302 from SIP subscribers is not supported; sending 302 to local SIP subscribers is not supported.

Receiving multiple contact lists in 302; the BTS 10200 uses the first and ignores the rest.

Forwarding only the original called number (OCN) and redirecting number (RDN) when the BTS 10200 forwards an INVITE out on a SIP trunk (in-between or middle-hop diversion headers are dropped).

Sending diversion headers (if enabled) in 302 only for OCN and RDN.

For the BTS 10200 to properly route the call, the 302 must have the following:

Contact header URL with the host name of the local BTS 10200 SIP interface

IP address/phone number different than the one initially entered by the calling party

The BTS performs SIP 302 redirection on its POTS Feature Server (FS) as several call forwarding features. When the BTS is the originating switch and it receives a 302, it takes one of the following actions:

Reroutes the call using a network-based reroute mechanism

Uses one of its call forwarding mechanisms (BTS default)

BTS implements SIP 302 as the Call Forward Redirection (CFR) feature. CFR does the following:

Looks for the cause code and redirected number passed from the BTS CA

Instructs the BTS CA to forward the call

The system provides billing and traffic data for the following call forwarding features on the BTS:

Call Forwarding No Answer (CFNA)

Call Forwarding Combined (CFC) when the called party does not answer

Voice Mail (VM) when the called party does not answer

SIP 302 Provisioning

This section explains how to provision SIP 302 and call redirection support on the BTS 10200.


Step 1 Add CFR:

add/change feature fname=CFR; tdp1=T_EXCEPTION; tid1=CFR_TRIGGER; ttype1=R; 
feature-server-id=FSPTC325; description=call forward redirection; grp-feature=N;
 
   

Step 2 Assign CFR to service and trunk groups:

add service; id=cfr; fname1=CFR;
 
   
change trunk-grp-service-profile; tgn-id=<SIP trunk group id>; service-id=cfr;
 
   

Step 3 Allow CFR routing on SIP trunks:

change softsw-tg-profile id=10; protocol-type=SIP; 
redirect-supported=VALID_DOMAINS_ONLY;
 
   

Step 4 Update call forwarding features to allow 302:

change feature-config fname=CFNA; type=SIP_302_SUPP; datatype=STRING; value=Y;
 
   
change feature-config fname=CFC; type=SIP_302_SUPP; datatype=STRING; 
value=NOANSWER
 
   
change feature-config fname=VM; type=SIP_302_SUPP; datatype=STRING; 
value=NOANSWER
 
   

Step 5 Update outgoing SIP trunks to allow 302:

change softsw-tg-profile ID=tb11_sip_1; send-302-on-cf=Y; 
send-3xx-domain-name=arbitraryRedirectServer.domain.com;

Note The send-3xx-domain-name field is applicable only if send-302-on-cf is set to Y and CFNA is locally invoked and configured to send a 3XX SIP response. In this case, this field is used to apply the domain name in the contact header in the sending 3XX response. This field is not applicable if this BTS proxies a received 3XX response. In that case, the domain name in the contact of the 3XX received is preserved. If the send-3xx-domain-name field is not provisioned, the BTS 10200 sends its own domain name.



Diversion Indication for SIP Trunks

SIP Diversion headers provide supplemental forwarding information to the SIP entity receiving the call. The SIP entity uses this information to identify the party from whom the call was diverted, and to determine why the call was diverted. The header also provides information for each diversion if multiple forwardings occurred.

Forwarding information allows applications such as SIP voice-mail servers to access the mailbox of the original called party for proper outgoing greeting and message deposit when a forwarded call is received. Billing systems also use the information to determine the charged party of the call when it is the last forwarding party that is billed.

Signaling for Diversion Indication

The BTS 10200 supports this feature following the specifications described in the IETF draft draft-levy-sip-diversion-02.txt. For incoming calls, the BTS 10200 uses the party number information from the top-most and bottom-most diversion headers. The BTS 10200 reads the diversion counter across all diversion headers to determine the total diversion count. For outgoing calls, the BTS 10200 sends 0, 1, or 2 diversion entries, depending on the forwarding information of the call.

Diversion header parameter support is limited to the diversion counter and the diversion reason. These two parameters in diversion headers are populated for outgoing calls and interpreted on incoming calls.

For INVITEs sent out on a Cisco BTS 10200 SIP trunk with the diversion feature enabled, the following behavior applies:

If no forwarding information is available, no diversion headers are included.

If there is an original called party, one diversion header is added to the outgoing INVITE message.

If there is a last forwarding party, a second diversion header is added on top of the original called party diversion header.

Each outgoing diversion header is populated with the party number, the diversion reason, and the diversion count. A BGID is added to a diversion header as a token parameter if the feature for business group identification is enabled, and the diversion number is in a Centrex format.

For Release 5.0, Maintenance Release 1 and later—Privacy parameters are sent and received in the diversion header.

For INVITEs received on a SIP trunk, the following behavior applies:

If no diversion headers are present in the incoming message, no forwarding information is identified.

If exactly one diversion header is present in the incoming message, the number in the diversion header is identified as the original called party number. The diversion reason and count are also interpreted.

If more than one diversion headers are present in the incoming message, the bottom-most diversion header determines the original called number. The top-most diversion header determines the last forwarding party and diversion reason. The total diversion count is determined by the summation of the diversion counter values across all the diversion headers received. The rest of the diversion information is ignored.

If no diversion headers are present on a provisioned SIP-T trunk, and the trunk receives a call on that trunk with an INVITE number in the To field that differs from the Request URL number, then the To field number is interpreted as the original called number. Any diversion headers present are ignored.

Users can enable or disable diversion indication for a provisioned SIP trunk in the softswitch trunk group profile table; the feature is enabled by default.

Provisioning Procedure for Diversion Indication

The following command controls the diversion feature for outgoing calls on all trunks associated with the SIP trunk profile <profile_id>.

change softsw-tg-profile id=<profile_id>; diversion-header-supp=<see list 
below>;
 
   

Y (default)—Enables diversion headers for calls sent out the trunk

N—Disables diversion headers for calls sent out the trunk


Note This flag does not apply to incoming calls. If the diversion headers exists on an incoming call, the system interprets the information from the diversion header.


Number Portability Information and Carrier Identification Code

This section explains how the BTS 10200 supports number portability (NP) and carrier identification codes (CICs) for incoming and outgoing calls on SIP trunks.

Number Portability

NP allows a subscriber to move geographically within the network domain without requiring a change to the subscriber's phone number. NP information is sent with the initial SIP INVITE message. The information indicates to the receiving switch whether a previous switch has performed a database query to get routing information for this subscriber. If the subscriber has moved, the NP information routing number (RN) indicates the destination switch to which the subscriber has moved.

BTS 10200 support for this feature follows the specifications described in the IETF document draft-yu-tel-url-07.

For calls sent out a BTS 10200 SIP trunk, the NP information is added as parameters in the user portion of the Request URL of the outgoing INVITE message. A number portability dip indication (NPDI) flag is added to indicate that a database query for NP information was performed, and the routing number (RN) parameter value pair is added to indicate the switch to which the subscriber has moved.

For calls received on a BTS 10200 SIP trunk, if the NPDI and RN parameters are present in the received SIP INVITE, this NP information is identified for call processing. The system can send NP information on SIP calls sent out a SIP trunk. This is useful when the next switch does not support NP. The local routing number (LRN) from the called party number is removed and the called party number parameter is filled with the called party number from GAP. The translated bit (M-bit) is also reset.

The signal-ported-number flag in the trunk-grp table enables or disables the population of NP information for SIP calls sent out a SIP trunk. Use the following command:

change trunk-grp id=<tg_id>; signal-ported-number=<see list below>;
 
   

N (default)—Send NP information on the outgoing SIP call if the information is available. If NP information is included for an incoming call, the information is used in call processing regardless of the provisioned flag setting.

Y—Disable the addition of number portability information to SIP calls sent out a SIP trunk group.


Note Number portability information received in a SIP call on an incoming SIP trunk is automatically interpreted. No provisioning control is available.


Carrier Identification Code over SIP

Support for the carrier identification code (CIC) over SIP allows a SIP-to-PSTN gateway receiving a call to indicate which long distance carrier the originator has subscribed to for call handling.

The BTS 10200 support for this feature follows the specifications described in the IETF document draft-yu-tel-url-07. Support for CIC is limited to local CIC formats. Global CIC formats, which use country codes, are not supported. If a global CIC is received, the global part is ignored and the call is processed using the local portion.

For calls sent out over a BTS 10200 SIP trunk, the CIC, when available, can be added as a parameter of the user portion of the Request URI of the outgoing INVITE message. The system determines the value of the CIC parameter as follows:

If a call is received from a PSTN origination, the system uses the transit-network-select information to derive the CIC value.

For calls received on a BTS 10200 SIP trunk, if the CIC parameter is present in the received SIP INVITE, the value of the CIC is identified for call processing. If the CIC was received in global format, the country code component of the CIC is ignored. A CIC received in a SIP call on an incoming SIP trunk is automatically interpreted. The option to send the CIC parameter on the outbound SIP trunk is provisioned by means of the send-cic-param token in the softsw-tg-profile table.

See the CIC selection rules in the Trunk Group table and the send-cic-param token in the Softswitch Trunk Group Profile table in the Cisco BTS 10200 Softswitch CLI Database.

SIP Trunk Subgroups

Multiple SIP trunk groups can be provisioned toward a single SIP endpoint (same IP address and port destination) differing only by a trunk subgroup identifier. Calls sent or received on these SIP subgroups contain the trunk subgroup ID in the SIP request message identifying the trunk group. The subgroup ID identifies calls from a particular source for follow-on treatment, which might include, for example, billing and routing.

Description of SIP Trunk Subgroups Feature

Remote SIP servers or switches requiring additional network-specific or application-specific properties for calls to and from the BTS 10200 use the SIP trunk subgroups feature. A remote SIP entity can require the BTS 10200 to identify the call rate center from which a call originated. A SIP trunk subgroup can be provisioned to represent one of the rate centers. Each trunk has a unique subgroup identifier. Routing tables can be configured to select the trunk that represents, for example, a particular rate center, and the calls sent out that SIP trunk then include the unique rate center identifier.

Figure 3-5 shows an example of two BTS 10200 systems linked by two trunk groups (TGs).

Figure 3-5 Two BTS 10200 Softswitch Systems Linked by Trunk Groups

For each SIP trunk group, if you provision the trunk-sub-grp token, the BTS 10200 delivers the TGID information through one of the following methods:

Proprietary TGID Parameter—A proprietary TGID parameter is delivered in the Request-URI header of the Invite message. This is the default behavior, and is the same as the behavior provided prior to Release 5.0.

Standards-Based TGID Parameter—For Release 5.0 and later, a TGID parameter is sent in the Contact header of the Invite message according to the IETF document ietf-draft-iptel-trunk-group-08.txt.

These options are described in the sections that follow.


Tip You select the TGID delivery option through the SEND-STD-TRK-GRP-URI in the softsw-tg-profile table. The default value is N, which selects the proprietary delivery option.


Proprietary TGID Parameter

For any INVITE sent out a SIP trunk subgroup by a BTS 10200, a Cisco proprietary SIP URL parameter, tgid, is added to the request URI. The tgid value is retrieved from the SIP trunk subgroup on which the call is sent out.

An example of this parameter syntax follows:

INVITE      sip:50001.vm.cisco.com:5060;user=phone;tgid=inter-cms-tg1 SIP/2.0
From:       <sip:50603.sipserver:5060;user=phone>;tag=1_1146_f40077_3jwv
To:          <sip:50586.bts.cisco.com;user=phone>

When the Cisco BTS 10200 Softswitch receives a call on a SIP trunk subgroup from a remote SIP endpoint, the endpoint is required to send the tgid parameter to identify the trunk subgroup. The value must match one of the provisioned trunk subgroups. The tgid type is specified in the trunk-sub-grp-type field in the softsw-tg-profile table, and the tgid value is provisioned in the trunk-sub-grp field of the trunk-grp table.


Note The bgid and tgid parameters are mutually exclusive. Only one can be enabled on a trunk.


The following information is required at the time of provisioning:

Associate a unique trunk group identifier for each subgroup.

Identify the fully qualified domain name (FQDN) and port of the remote SIP server used for SIP message exchange. For example: sipserver:5060.

Create a dial plan for calls received on the SIP trunks, to route the calls based on the called party number. For example: the identifier for this dial plan is dp.

The following steps show how to provide multiple trunks toward a remote SIP entity for additional network-specific or application-specific properties for calls to and from the BTS 10200. You use a procedure like this, for example, to identify the rate center where a call originated.


Step 1 Add a SIP trunk profile for the SIP trunks. Set the trunk sub-group type to indicate the trunk group identifier use:

add softsw-tg-profile ID=<profile_id>; protocol-type=SIP; 
trunk-sub-grp-type=tgid;
 
   

Step 2 Add a sip-element with a TSAP address:

add sip-element; tsap-addr=sipserver:5060;
 
   

Step 3 Add SIP trunk groups. The TSAP address must match the TSAP address provisioned in the applicable sip-element table of the remote server.

add trunk-grp id=1; call-agent-id=CA146; tg-type=softsw; 
softsw-tsap-addr=sipserver:5060; tg-profile-id=inter-cms-tgrp; 
trunk-sub-grp=inter-cms-tg-1;
 
   
add trunk-grp id=2; call-agent-id=CA146; tg-type=softsw; 
softsw-tsap-addr=sipserver:5060; tg-profile-id=inter-cms-tgrp; 
trunk-sub-grp=inter-cms-tg-2;
 
   

Note Routing and dial plan tables are provisioned (not shown) so that calls originating from a specific source (such as a rate center) are sent out the SIP trunk with the subgroup identifier representing that source.



Standards-Based TGID Parameter

This section describes the TGID delivery option that is based on the IETF document ietf-draft-iptel-trunk-group-08.txt. This feature adds two SIP URL parameters in the Contact header of the outgoing INVITE message:

trunk-context—Indicates the source of the originating server, which is the local BTS 10200 contact.

tgrp—Indicates the specific subgroup provisioned in the trunk-grp on the BTS 10200. The tgrp values on both the originating and terminating BTS 10200 systems must be the same.

The receiving BTS 10200 uses the inbound-policy table to identify the incoming trunk that is associated with the remote server and subgroup.

The following steps show how to provide multiple trunks toward a remote SIP entity for additional network-specific or application-specific properties for calls to and from the BTS 10200. The TGs in these examples connect two BTS 10200 nodes (see Figure 3-5).

BTS-A SIP Trunk Provisioning


Step 1 Add the SIP element for the destination node. The sip-element table on BTS-A is provisioned with the TSAP address of the destination node (BTS-B).

add sip-element tsap-addr=sia-bts-b.serviceprovider.com:5060;
 
   

Step 2 The same Softswitch Trunk Group Profile table can be used for both trunks between the two BTS 10200 nodes. In addition to an ID, the parameters must be provisioned as shown for the feature to be enabled.

add softsw-tg-profile id=inter-cms-tgrp; protocol-type=sip; 
trunk-sub-grp-type=tgid; send-std-trk-grp-uri=y;
 
   

Step 3 For each trunk group (id=1 and id=2), the trunk-sub-grp value becomes the value in user portion of the Contact header. Note that the trunk group tables on BTS-A are provisioned with the TSAP address of the destination node (BTS-B).

add trunk-grp id=1; call-agent-id=CA146; tg-type=softsw; 
softsw-tsap-addr=sia-bts-b.serviceprovider.com:5060; 
tg-profile-id=inter-cms-tgrp; trunk-sub-grp=inter-cms-tg-1;
 
   
add trunk-grp id=2; call-agent-id=CA146; tg-type=softsw; 
softsw-tsap-addr=sia-bts-b.serviceprovider.com:5060; 
tg-profile-id=inter-cms-tgrp; trunk-sub-grp=inter-cms-tg-2;
 
   

Step 4 To determine the incoming SIP trunk, the system looks at the TRUNK-CONTEXT parameter, and it rejects the call if the field does not match any values in the SIP-INBOUND-POLICY table. The MISSING-ACTION parameter indicates that if the TRUNK-CONTEXT parameter does not exist in the Contact header, the system uses the legacy trunk-group identification technique (that is, the Via header matches the trunk group tsap address).

add sip-inbound-policy-profile id=trunk-context-1; 
policy-type=contact-trunk-context; missing-action=none; nomatch-action=reject;
 
   

Step 5 Enable the inbound policy procedure to determine the incoming SIP trunk. The sip-inbound-policy-profile-id indicates the first inbound policy to check to determine the incoming SIP trunk.

add call-agent-profile id=CA146; sip-inbound-policy-profile-id=trunk-context-1;
 
   

Step 6 If the TRUNK-CONTEXT matches, the system looks for TGRP, and rejects the call if the field does not match any values in the SIP-INBOUND-POLICY table.

add sip-inbound-policy-profile id=TGRP-1; policy-type=contact-tgrp; 
missing-action=reject; nomatch-action=reject;
 
   

Step 7 Define the TRUNK-CONTEXT value. If it matches, the system uses the next inbound policy profile (TGRP-1) for further processing.

add sip-inbound-policy; id=trunk-context-1; 
token-string=sia-bts-b.serviceprovider.com; next-sip-policy-id=TGRP-1;
 
   

Step 8 Define the TGRP value for the first and second trunk groups. If the token string matches inter-cms-tg-1, the system uses tgn-id=1, and if it matches inter-cms-tg-2, the system uses tgn-id=2.

add sip-inbound-policy; id=TGRP-1; token-string=inter-cms-tg-1; tgn-id=1;
 
   
add sip-inbound-policy; id=TGRP-1; token-string=inter-cms-tg-2; tgn-id=2;
 
   

BTS-B SIP Trunk Provisioning

Provision the SIP trunks on BTS-B.

The provisioning for BTS-B is the same as in the "BTS-A SIP Trunk Provisioning" section, except for the following:

The sip-element table on BTS-B is provisioned with the TSAP address of the destination node (BTS-A). For example, use sia-bts-a.serviceprovider.com:5060 instead of sia-bts-b.serviceprovider.com:5060.

The trunk group IDs on BTS-B can be given different values than those on BTS-A (optional).

The tgrp values on the originating and terminating BTS 10200 systems must be the same.

Example of an INVITE Message

Following is an example of an INVITE from BTS-A to BTS-B on inter-cms-tg-1:

INVITE sip:7035556666.sia-bts-b.serviceprovider.com;user=phone SIP/2.0

Via: SIP/2.0/UDP sia-bts-a.serviceprovider.com:5060 ;branch=term-d-7030011111-7035556666

From: 7030011111 <sip:7030011111.sia-bts-a.serviceprovider.com;user=phone> ;tag=70910393

To: 7037535555 <sip:7035556666.sia-bts-b.serviceprovider.com;user=phone>

Call-ID: 50c0489e-39872c35-514de99d-d.sia-bts-a.serviceprovider.com

CSeq: 1 INVITE

Contact: <sip:7030011111;tgrp=inter-cms-tg-1;trunk-context=sia-bts-a.serviceprovider.com.sia-bts-a@serviceprovider.com:5060>

SIP-T, ISUP Version, ISUP Transparency, and GTD

SIP-T is an IETF standard for SIP-to-PSTN interworking. It provides seamless bridging between two PSTN networks by encapsulating ISUP information as a binary (non-GTD) or textual (GTD) SIP attachment body. IETF also provides the standard for interworking a SIP network with the PSTN by specifying the SIP header translation for SIP-PSTN gateways.

Description of SIP-T, ISUP Version, ISUP Transparency, and GTD

BTS 10200 support for SIP-T follows the specifications described in RFC 3372, RFC 3398, and RFC 3204. For details on how call signaling information elements are mapped between a SIP-T message (headers and encapsulated ISUP) and an SS7/ISDN message, contact your Cisco account team.

SIP-T ISUP formats supported by the Cisco BTS 10200 include GTD, Q761_HONGKONG (ITU), and ANSI GR-317. The ISUP version is provisioned using the SIPT-ISUP-VER field in the softsw-tg-profile (SIP trunk group profile) table. When a SIP-T message is sent out from the BTS 10200, it always indicates to the receiver that handling the ISUP is optional using the SIP content disposition header. A SIP-T call is refused if an initial INVITE is received with an unsupported ISUP version attached, and the message indicates that ISUP handling is not optional. If the ISUP handling was optional, the call proceeds by ignoring the ISUP information.

A SIP-T trunk is provisioned by setting the protocol type to SIP-T, and specifying one of the supported ISUP versions in the SIP trunk profile. When the system sends a SIP-T message with encapsulated ISUP, the SIP-T trunk sends the ISUP version, and the version label is set to the one provisioned. If there is a custom alias name for that version, the alias name is used in the message instead of the version label. This is accomplished by provisioning of the SIPT-ISUP-VER-ALIAS table. The base parameter in the message is set according to RFC 3204 in line with the version chosen. Because the base is optional, it can be removed from the SIP INVITE message using provisioning. Note that the GTD type does not include a base parameter.

The provisioning system for defining a SIP-T trunk requires that the reliable provisional response feature is enabled. Therefore, the INVITE message that is sent will indicate PRACK as a requirement. The system supports ISUP versions applicable to SIP-T and SIP-GTD.


Note GTD parameters can be used to support ISUP transparency between the BTS 10200 and the Cisco PSTN Gateway (PGW) 2200. For more information on provisioning this feature, see the "ISUP Transparency on the BTS-PGW Interface" section in the Cisco BTS 10200 Softswitch Provisioning Guide. For a description of this feature, see the "ISUP Transparency with the Cisco PGW 2200" section in the Cisco BTS 10200 Softswitch System Description.


Provisioning Procedures for SIP-T, ISUP Version, ISUP Transparency, and GTD

Use this procedure to provision SIP-T, ISUP version, and GTD parameters.


Note The values used in this section are examples. For a complete list of options, see the applicable tables in the Cisco BTS 10200 Softswitch CLI Database.



Step 1 Provision a SIP-T trunk by setting the protocol type to SIP-T in the SIP trunk profile <profile_id>.


Note You must set protocol-type=SIP_T if you want the system to use GTD.


a. If you want to review the valid SIP-T ISUP versions, enter the following command:

show sipt-isup-ver-base
 
   

b. For a SIP-T version of ANSI GR-317, provision as follows:

add softsw-tg-profile ID=<profile_id>; protocol-type=SIP_T; prack-flag=Y; 
sipt-isup-ver=ANSI_GR317;
 
   

c. For a SIP-T version of GTD, provision as follows:

add softsw-tg-profile ID=<profile_id>; protocol-type=SIP_T; prack-flag=Y; 
sipt-isup-ver=GTD; gtd-mode=<COMPACT or VERBOSE>; gtd-parms=ALL; 
 
   

Note The version field (SIPT_ISUP_VER) is a user-provisioned alphanumeric in the SIP trunk profile required for SIP-T trunk types. The label represents the version of the ISUP as it is understood by the remote SIP-T entity for interworking. It is one of the following values: GTD, ANSI_GR317, or Q761_HONGKONG. If the remote SIP entity is looking for these ISUP versions but under a different name, the SIPT-ISUP-VER-ALIAS table can be used to provide a custom version name in the SIP message.

To omit the base parameter from the SIP message (as defined in RFC 3204) for the ISUP version provisioned, accept the default value (N) for the USE_SIPT_ISUP_BASE flag.

The flag for controlling reliable provisionable responses (PRACK_FLAG) should be enabled, and is forced enabled internally.


Step 2 Add a SIP trunk group associating it to the SIP trunk profile above. The following example uses the dial plan identifier dp, and the fully qualified domain name of the remote SIP-T entity siptentity:5060.

add trunk_grp ID=<trk_grp_id1>; TG_TYPE=SOFTSW; TG_PROFILE_ID=<profile_id>; 
SOFTSW_TSAP_ADDR=siptentity:5060; DIAL_PLAN_ID=dp;
 
   

Step 3 If you are using GTD, perform these additional substeps:

a. Verify that the gtd-supp token in the call-agent-profile is set to Y, or set it to Y if necessary:

show call-agent-profile id=CA-146;
change call-agent-profile id=CA146; gtd-supp=Y;
 
   

b. If you are using GTD, enter the GTD parameter values, for example:

add gtd-parm-values id=ACL; description=Automatic Congestion Level;
 
   

DTMF SIP Signaling

This section provides the following information about DTMF SIP signaling:

Feature Description

Exceptions and Limitations

Provisioning Procedure for DTMF SIP Signaling

Feature Description

DTMF SIP signaling allows a remote SIP server to receive SIP notifications from a BTS 10200 SIP trunk when a BTS 10200 local subscriber presses a DTMF digit on the handset during a SIP call. This notification identifies which digit was pressed and indicates how long it was pressed. DTMF SIP signaling is used when a remote SIP server requires DTMF notifications to drive interactive voice response (IVR) applications, and the DTMF notification information cannot be sent using the bearer path.


Note We recommend that you use the bearer-path solution (rather than the DTMF signaling solution) if possible. See IETF RFC 2833.


This feature sends DTMF notifications in SIP INFO or NOTIFY request messages from the BTS 10200 SIP trunk. The NOTIFY mechanism of delivering DTMF digits follows the mechanism described in draft-mahy-sip-signaled-digits-00.txt.

The remote SIP server generic uses the SUBSCRIBE/NOTIFY mechanism to subscribe to the BTS 10200 SIP interface for telephone-event notifications. The mechanism is described in draft-roach-sip-subscribe-notify-03. Alternatively, the SIP INFO method for notification of telephone events may be used for unsolicited notifications. The BTS 10200 only sends DTMF notifications out SIP trunks; it does not process incoming notifications. Users can enable or disable the DTMF SIP signaling feature for a provisioned SIP trunk. The feature is disabled by default.

DTMF notifications are sent using the SIP INFO or NOTIFY request method, depending on the provisioning selection for the feature. The notifications are sent only within an active SIP call dialog.

If the INFO method is selected, the BTS 10200 sends an INFO message once for each digit pressed. These messages are delivered to the contact address if the BTS 10200 received the original INVITE, or to the initial INVITE's Request URI if the BTS 10200 originated the call. The remote SIP endpoint must answer with a 200 response. The INFO method is specified in RFC 2976.

The following is an example of an INFO message sent from the BTS 10200 when a subscriber has pressed the DTMF digit 1 for 250 milliseconds:

INFO sip:subscriber@remoteDomain.com SIP/2.0
Via: SIP/2.0/UDP bts.cisco.com:5060
From: Notifier <sip:notifier@bts.cisco.com>;tag=bts-1234	
To: Subscriber <sip:subscriber@remoteDomain.com>;tag=1234-ABCD
Call-ID: 12345@bts.cisco.com
CSeq: 102 INFO
Content-Type: application/dtmf-relay
Content-Length: 22
Signal=1
Duration=250
 
   

If the Notify method is selected for this feature, the BTS 10200 sends two Notify requests each time a DTMF button is pressed, once when the digit is pressed and once when the button is released. However, the feature does not send or buffer notifications during the SIP call unless the remote SIP endpoint has subscribed for these notifications during an active SIP call. DTMF notifications are sent over SIP during an active subscription until the subscription expires. A subscription expires if the call is released or if the subscription is not refreshed (resubscribed) before its specified subscription duration. Either side may send indication of subscription expiration if an error occurred.

The following is an example of a subscription received on a BTS 10200 SIP trunk. In the example, the subscriber requests information on all telephone events that occur longer than 2000 milliseconds. The duration of the subscription requested is 1 hour (3600 seconds):

SUBSCRIBE sip:notifier@bts.cisco.com SIP/2.0
Via: SIP/2.0/UDP vocaldata.com:5060
From: Subscriber <sip:subscriber@vocaldata.com>;tag=1234-ABCD
To: Notifier <sip:notifier@bts.cisco.com>;tag=bts-1234
Call-ID: 12345@bts.cisco.com
CSeq: 102 SUBSCRIBE
Contact: Subscriber <sip:subscriber@vocaldata.com>
Event: telephone-event;duration=2000
Expires: 3600
Content-Length: 0
 
   

A 200 OK response is immediately sent from the BTS 10200 for the SUBSCRIBE, indicating that the SUBSCRIBE message was received. The BTS 10200 sends an Expires header in this response to indicate the actual subscription duration, which could be less than the duration indicated in the original SUBSCRIBE request.

An initial NOTIFY is immediately sent to the remote endpoint, as soon as the subscription is created or refreshed. The following is an example this initial notify request:

NOTIFY sip:subscriber@vocaldata.com SIP/2.0
Via: SIP/2.0/UDP bts.cisco.com:5060
From: Notifier <sip:notifier@bts.cisco.com>;tag=bts-1234
To: Subscriber <sip:subscriber@vocaldata.com>;tag=1234-ABCD
Call-ID: 12345@bts.cisco.com
CSeq: 103 NOTIFY
Contact: Notifier <sip:notifier@bts.cisco.com>
Event: telephone-event;rate=1000
Content-Type: audio/telephone-event
Content-Length: 0
 
   

When an event notification is sent to the endpoint by means of the Notify request method, two Notify requests are sent, indicating the beginning and end of the DTMF digit pressed. Each request contains the digit pressed and the duration in an encoded bit-mask. An example of this request follows. Consult the DTMF draft for the format of the bit-mask.

NOTIFY sip:subscriber@vocaldata.com SIP/2.0
Via: SIP/2.0/UDP bts.cisco.com:5060
From: Notifier <sip:notifier@bts.cisco.com>;tag=bts-1234
To: Subscriber <sip:subscriber@vocaldata.com>;tag=1234-ABCD
Call-ID: 12345@bts.cisco.com
CSeq: 104 NOTIFY
Contact: Notifier <sip:notifier@bts.cisco.com>
Event: telephone-event;rate=1000
Content-Type: audio/telephone-event
Content-Length: 4
0x0B0F0300
 
   

Exceptions and Limitations

The following limitations apply to the implementation of this feature on the Cisco BTS 10200 Softswitch:

The system does not support out-of-band (OOB) DTMF relay for local SIP subscribers (subscribers registered directly with the Cisco BTS 10200 Softswitch).

The system does not support inbound DTMF messages and responds as follows when it receives an inbound DTMF message:

If the system receives an incoming NOTIFY for an event name other than "message_summary" (voice mail notification), it rejects the NOTIFY with a 400 (Unknown Event Specified) response.

If the system receives an incoming INFO with any content on a SIP trunk, it rejects the message with a 501 (Not Implemented) response.

If the system receives an INFO with a DTMF attachment on a SIP-T trunk during a connected call, it rejects the message with a 415 (Unsupported media type) response. This is because the system accepts only ISUP attachments on a SIP-T trunk during a connected call, and rejects all other attachment types with a 415 response.

If the system receives an INFO or NOTIFY message out of dialog, it rejects the message with a 481 (Call Leg/Transaction Does Not Exist) response.

If the system receives an INFO before a call is in connected state, or from a subscriber, it rejects the message with a 501 (Not Implemented) response.

Provisioning Procedure for DTMF SIP Signaling

This section shows how to control the DTMF SIP signaling method on all SIP trunks associated with the SIP trunk profile <profile_id>.

You can disable DTMF SIP signaling, or set it to either INFO or NOTIFY method:

To disable the DTMF SIP signaling feature, enter the following command. This is the default value.

change softsw-tg-profile id=<profile_id>; dtmf-relay-method=NONE;
 
   

To enable the DTMF SIP signaling feature, enter the following command. You use the SIP INFO method to send unsolicited notification of telephone events (DTMF) toward the remote SIP entity provisioned in the trunk group.

change softsw-tg-profile id=<profile_id>; dtmf-relay-method=INFO;
 
   

To enable the DTMF SIP signaling feature, enter the following command. You use the SIP NOTIFY method to send solicited notification of telephone events (DTMF) toward the remote SIP entity provisioned in the trunk group. In this case, the remote SIP entity must subscribe to the BTS 10200 for DTMF events.

change softsw-tg-profile id=<profile_id>; dtmf-relay-method=NOTIFY;
 
   

Asserted Identity and User-Level Privacy

The Asserted Identity feature is described in RFC 3325 and enables a network of trusted SIP servers to assert the identity of authenticated users. According to RFC 3323, when privacy features are applied to SIP messages, the calling party information (ANI) is unavailable to network elements in a trusted network domain, and inhibits network features such as call trace. The asserted identity allows these features to work because the ANI is provided in an asserted identity header and is shared across all network nodes in the trust domain. When the SIP message is exiting a trust domain, the header can be removed for privacy requirements.

Asserted identity is limited in its usage to specialized networks with trust domains, as specified in RFC 3325. In the BTS 10200, it is provided only in a limited context. This feature is associated with a BTS 10200 SIP trunk. It maps calling party information from SS7 (or some other non-SIP network) into a SIP network, as defined by the PacketCable CMSS 1.5 specification.

Signaling for Asserted Identity and User-Level Privacy

The feature is enabled by setting the USE-PAI-HDR-FOR-ANI flag in the SIP trunk group profile. If this flag is set to Y, calling party information is derived exclusively from the PAI header on inbound calls. For outbound calls, a PAI header is sent with the calling party information if provided.

If this flag is set to N, calling party information is mapped, sent, and received by means of the From header. Details of mapping ANI using the SIP From header on the BTS 10200 can be obtained from your Cisco account team.

The SIP asserted identity header provides the calling name and number values. BTS 10200 support for the privacy specification RFC 3323 is limited to the use of the privacy header with value of id to indicate the calling number presentation indication when this feature is enabled. The presence of the SIP privacy header in the message with a value of id indicates that the calling number is restricted; otherwise, it is not restricted.


Note A separate flag in the BTS 10200 SIP trunk group profile provides user-level privacy to the outbound SIP INVITE message. This is separate from the Asserted Identity feature. You enable the privacy feature by setting the APPLY-USER-PRIVACY flag in the softsw-tg-profile table. If the flag is set to Y and if the originator requested privacy, aspects of the calling party information in the initial outbound SIP INVITE are hidden. Hidden items include calling name and number in the From header and Contact header. Privacy is applied only when either the calling party name or number has presentation restrictions and this flag is active. If the flag is set to N, user-level privacy is not applied.


The BTS 10200 does not evaluate the trusted network domain for calls in and out of the BTS 10200. The asserted identity header is honored if it is received on a SIP trunk, and it is sent if the feature is enabled (provided that ANI information is available). Therefore, with this feature the assumption is that all incoming and outgoing messages are trusted.


Note Do not rely on asserted identity to provide a trusted ANI if the BTS 10200 receives an ANI from nontrusted call sources.


An example of ANI information provided by the Asserted Identity and Privacy headers is shown below. In this case, the display name is Jim and the number is 4692551234. The number presentation is restricted.

P-Asserted-Identity: "Jim" <sip:+14692551234@cisco.com>
Privacy: id
 
   

If the privacy header does not exist, it means that the calling number presentation is allowed.

Provisioning Procedure for Asserted Identity and User-Level Privacy

This section shows how to control the p-asserted-id header and user-level privacy.


Step 1 You can set the use-pai-hdr-for-ani parameter to Y or N (N is the default value).

To set the system to derive calling party information exclusively from the PAI header on inbound calls, and always send for outbound calls (assuming the calling information exists), enter the command as follows:

change softsw-tg-profile id=<profile_id>; use-pai-hdr-for-ani=Y;
 
   

To set the system to send or receive calling party information in the From header, enter the command as follows. (This is the default setting.)

change softsw-tg-profile id=<profile_id>; use-pai-hdr-for-ani=N;
 
   

Step 2 You can set the apply-user-privacy parameter to Y or N (N is the default value) to control user-level privacy in the outbound SIP INVITE message.

To instruct the system to apply user-level privacy, enter the command as follows:

change softsw-tg-profile id=<profile_id>; apply-user-privacy=Y;
 
   

Note If you set this parameter to Y and the originator requested privacy, aspects of the calling party information (such as the calling name and number in the From: header) in the initial outbound SIP INVITE are hidden. Privacy is requested when the calling party name or number has presentation restrictions.


To instruct the system not to apply user-level privacy, enter the command as follows. (This is the default setting.)

change softsw-tg-profile id=<profile_id>; apply-user-privacy=N;
 
   

Calling Name Delivery on Terminating SIP Trunks

This section describes how to provision the Calling Name Delivery (CNAM) feature on a terminating SIP trunk on the BTS 10200. When CNAM is enabled by provisioning on a SIP trunk, a local subscriber originating a call out a terminating SIP trunk will have the originator name in the SIP message for the CNAM feature.

In the following provisioning example, if subscriber sub1 calls 469-555-2222, the call is routed out a SIP trunk. The CNAM feature is invoked and adds john doe to the display name of outgoing SIP call. To associate CNAM to the trunk, CNAM is associated with a virtual subscriber, and the virtual subscriber is associated with the SIP trunk.

add softsw-tg-profile id=SS_PROFILE; protocol-type=SIP;
 
   
add trunk-grp ID=157; call-agent-id=CA146; tg-type=SOFTSW; 
softsw-tsap-addr=TsapAddr.com; tg-profile-id=SS_PROFILE; pop-id=1; 
dial-plan-id=BASIC_DPP; ani-based-routing=Y;
 
   
add subscriber-profile ID=sub_profile; dial-plan-id=BASIC_DPP; pop-id=1;
 
   
add subscriber ID=subcnam; category=individual; name=subcnam; tgn-id=157; 
sub-profile-id=sub_profile; term-type=TG; dn1=469-555-2222;
 
   
add feature fname=CNAM; tdp1=FACILITY_SELECTED_AND_AVAILABLE; 
tid1=TERMINATION_RESOURCE_AVAILABLE; ttype1=R; feature-server-id=FSPTC235; 
description=Calling Name; GRP_FEATURE=N
 
   
add service ID=3; fname1=CNAM;
 
   
add subscriber-service-profile sub-id=subcnam; service-id=3;
 
   
change subscriber id=sub1; name=john doe;
 
   

Third-Party Call Control

A third-party call control (3PCC) controller initiates a call, first to one endpoint and then to the other endpoint, and connects the two endpoints together in a two-party call. This allows applications to act like operator-placed calls, and it supports call features like click-to-dial, in which a user clicks a link on a Web browser to place a call.


Note The BTS 10200 handles calls sent and received from a 3PCC controller, but does not operate as a controller itself.


SIP call type of 3PCC has a property that the initial SIP Invite message sent does not include an SDP attachment. The BTS 10200 SIP trunk detects this message sequence and handles it dynamically (no provisioning is required). The system provides support for these calls by handling SDP exchange in 18x/PRACK.


Note Originating H.323 slow-start calls to SIP also result in an initial INVITE without SDP.


ANI-Based Routing

ANI-based routing is used when incoming calls on a BTS 10200 SIP trunk require routing decisions based on more than simply the properties of the trunk the call was received. In this case, more information is required, including the properties of the originating business group which is not local to this Cisco BTS 10200. This information is required when the business groups are managed by another switch communicating with the BTS 10200 using a single SIP trunk, and each business group has carrier preferences managed by this BTS 10200.

In the BTS 10200, a subscriber is provisioned to represent each business group. Each of the subscribers is associated, by provisioning, to the SIP trunk toward the remote switch managing these groups. Each subscriber associated with the SIP trunk is assigned a range of numbers and properties specific to a business group. When a call is received on the SIP trunk, the called party number from the SIP INVITE message is used to select a subscriber associated with the trunk based on the subscriber's range of numbers. The selected subscriber provides the properties of the business group for routing.

The following rules apply when you are provisioning ANI-based routing for calls incoming on a SIP trunk:

The softswitch trunk group on which the calls arrive must be have the ANI_BASED_ROUTING flag set to "Y."

Office codes (NPA-NXX) must be provisioned for the calling party numbers.

DN2Subscriber table must have the range of calling party numbers provisioned in it.

A subscriber must be provisioned for a given range of DNs in DN2Subscriber table. This subscriber's dial-plan and POP are then used to make call-type and routing decisions.

You use commands similar to those shown in the example below to provision ANI-based routing.


Step 1 Identify the protocol type.

add softsw-tg-profile ID=SS_PROFILE; PROTOCOL_TYPE=SIP;
 
   

Step 2 Add the trunk group and enable ANI-based routing.

add trunk-grp ID=157; CALL_AGENT_ID=CA146; TG_TYPE=SOFTSW; 
SOFTSW_TSAP_ADDR=domainname.com; TG_PROFILE_ID=SS_PROFILE; POP_ID=1; 
DIAL_PLAN_ID=BASIC_DPP; ANI_BASED_ROUTING=Y;
 
   

Step 3 Add the subscriber profile.

add subscriber-profile ID=sub_profile; DIAL_PLAN_ID=BASIC_DPP; POP_ID=1;
 
   

Step 4 Add the subscriber.

add subscriber ID=sub5; CATEGORY=INDIVIDUAL; NAME=sub5; TGN_ID=157; 
SUB_PROFILE_ID=sub_profile; TERM_TYPE=TG;
 
   

Step 5 Add the office code.

add office-code DIGIT_STRING=214-555; OFFICE_CODE_INDEX=1;
 
   

Step 6 Add the DN2Subscriber.

add dn2subscriber FROM-DN=214-555-1231; TO-DN=214-555-1233; SUB_ID=sub5;
 
   

ANI Screening on Incoming Calls

You use commands similar to those shown in the following example to provision ANI screening on incoming calls.


Step 1 Define the ANI-SCREENING-PROFILE ID. The default ANI-SCREENING-ACTION is set to ALLOW calls. The calls are routed using Dial Plan ID assigned to the incoming Trunk Group.

Add ANI-SCREENING-PROFILE ID=CHILATA;
 
   

Step 2 Define the Virtual Subscribers for each LATA / RC.

Add subscriber ID=rac1; sub-profile-id=rac1subp; term-type=none;
Add subscriber ID=rac2; sub-profile-id=rac2subp; term-type=none;
 
   

Step 3 Add ANI-SCREENING records

Add ANI-SCREENING ID=CHILATA; FROM-DN=312-200-0000; TO-DN=312-999-9999; MAIN-SUB-ID=rac1;
Add ANI-SCREENING ID=CHILATA; FROM-DN=847-200-0000; TO-DN=847-999-9999; MAIN-SUB-ID=rac2;
 
   

Step 4 Add Trunk Group Record

Add Trunk-Grp ID=12345; TG=NRS2MGC; call-agent-id=CA123; TG-TYPE=SOFTSW; ANI-SCREENING=Y; 
ANI-SCREENING-POFILE-ID=CHILATA; DIAL-PLAN-ID=dp1; POP-ID=CHICAGO; 
SOFTSW-TSAP-ADDR=nrs@service-provider.com; TRAFFIC-TYPE=TANDEM;

T.38 Fax Relay CA Controlled Mode Across SIP Trunk Interface

The BTS 10200 supports T.38 fax relay with Call Agent (CA) controlled mode across the SIP trunk interface.

Treatment of incoming and outgoing faxes occurs as follows:

Incoming faxes—The BTS 10200 SIP interface supports switching from audio to T.38 fax when an incoming fax is detected from the SIP network. When the system switches from audio to fax, it sends an indication of the switch event in a SIP message to the remote endpoint.

Outgoing faxes—When the BTS 10200 SIP interface sends T.38 capability attributes out the SIP interface, it uses the standard format of RFC 3407.

The BTS 10200 supports T.38 fax interworking among devices that use MGCP, SIP, and H.323 protocols. The interworking behavior is as follows:

Several provisionable tokens in the BTS 10200 database (in the MGW-PROFILE, QOS, H323-TG-PROFILE, H323-TERM-PROFILE, and CA-CONFIG tables) affect the T.38 fax treatment on MGCP and H.323 interfaces, but they do not affect the SIP interface.

For an MGCP-to-SIP call on the BTS 10200, if QoS is provisioned on the SIP interface and the FAX-T38-ENABLED field is set to N, the T.38 fax feature is disabled on the MGCP interface. The MGCP interface does not initiate T.38 procedures on fax detection, but it supports fax detection from the SIP network. The SIP interface is not affected by this provisioned value; it always supports T.38 procedures on the inbound and outbound directions.

Figure 3-6 shows an example of MGCP and SIP interworking.

Figure 3-6 Example of MGCP and SIP Interworking for T.38 Fax

For additional information about T.38 fax features on the Cisco BTS 10200 Softswitch, see the following documents:

The "T.38 Fax Relay, Modem, and TDD Handling" section in the Cisco BTS 10200 Softswitch Network and Subscriber Feature Descriptions document

The "T.38 Fax Relay" provisioning section in the Cisco BTS 10200 Softswitch Provisioning Guide

In cases where the T.38 media path switches back from fax mode to audio mode, either by an audio-restore message after a successful fax or by a failure to switch successfully to fax mode, the system sends a SIP Reinvite message to the remote endpoint. If the endpoint is capable of switching back to audio, the call can be restored to audio mode. This behavior is described in the IETF draft document draft-ietf-sipping-realtimefax-01.

SIP Call Transfer with REFER and SIP INVITE with Replaces

The SIP call transfer with REFER and SIP INVITE with Replaces features provide call-transfer functions to transfer targets that have non-BTS serving-domain names in the "Refer-To" header. The implementation of this feature complies with the following standards:

RFC 3515—SIP Refer Method

RFC 3891—SIP "Replaces" Header

RFC 3892—SIP Referred-By Mechanism

RFC 342— Internet Media Type message

RFC 3893—SIP Authenticated Identity Body (AIB) Format


Note The Cisco BTS 10200 Softswitch is not fully compliant with the ''early-only'' specification in RFC 3891. The BTS does not create or validate signed AIBs, but it does pass them along from a REFER to a referred INVITE.


The SIP REFER and SIP INVITE with Replaces features address cases in which the transfer targets specified in the Refer-To header of the REFER message are domains that are not BTS 10200 serving domains. The user part of the SIP URL in the Refer-To header can be a nonnumeric value. To manage non-BTS 10200 serving domains for attended transfers, an INVITE message with the Replaces Header might need to be sent, the message being addressed to the transfer target. The BTS 10200 can receive SIP INVITE messages with Replaces header, and it processes them according to RFC 3891.

The Referred-By header includes information you can use to identify the Transferrer by the transfer target. This information might need to be passed to the transfer target when necessary. Therefore, the SIP REFER and SIP INVITE with Replaces features must also process the Referred-By header according to RFC 3892.

The BTS 10200 supports the following processing scenarios:

The BTS  10200 can process a REFER message received from a SIP subscriber or SIP trunk.

The BTS 10200 can send an INVITE with Replaces to a SIP subscriber or SIP trunk; however, it can process a received INVITE with Replaces from a SIP trunk only.

SIP REFER Message Processing

The system supports SIP REFER messages from subscribers and authorized trunks. You can provision a SIP trunk to enable or disable SIP REFER messages. It is possible to configure a SIP trunk to deny a SIP REFER message received on the trunk if it does not include the Referred-By header in the REFER message sent by a SIP subscriber.

For the provisioning procedure, see the "Call Transfer (Blind and Attended) with REFER" section.

REFER messages outside of an established INVITE dialog are not supported.

The BTS 10200 does not send or forward a REFER message to the transferee endpoint. As a back-to-back user agent (B2BUA) it would act on behalf of the transferee.

The BTS 10200 Release 5.0 processes a SIP REFER message according to the host part of the Refer-To URL as described in the following cases:

1. If the host indicates the BTS 10200 contact name or the name of a domain served by BTS 10200 (provisioned in the Serving Domain Name table), the processing logic is identical to that for the pre-Release 5.0 implementation. There is a blind transfer, which is accomplished by the setting up of a call to the number specified in the user part of the Refer-To URL. If that number represents a SIP entity, the BTS 10200 sends an INVITE message to that endpoint. This triggered INVITE does not contain the Referred-By header received in the INVITE. The billing record for this call will not contain any information indicating that it was triggered by a REFER. An attended transfer is produced by performing an SDP exchange between the call legs of the transferee and the transfer target. The call legs to the transferrer are released by the sending of a BYE.

2. If the host matches the tsap-addr of a softswitch type trunk in the trunk-group table, a SIP INVITE is sent to the specified URI using the provisioned properties of the softswitch trunk group profile associated with that trunk group. The Referred-By header from the REFER is copied to the INVITE.
If a Replaces header parameter is present in the received Refer-To URL, a Replaces header is added to the INVITE. The billing record for the initiated call contains this data.

3. If the host does not match the preceding possibilities, the REFER is honored and a triggered INVITE is sent (as in the preceding Case 2), if the BTS is provisioned to allow a REFER to any arbitrary domain and a default SIP trunk group has been provisioned for this purpose.


Caution Usually, allowing transfers to arbitrary domains is not a preferred option. One should consider seriously the consequences of this option.

Replaces Header Processing

SIP INVITE messages that include a Replaces header are supported only for trunks. You can provision trunks to enable or disable support of Replaces header processing. You must also provision a feature-server trigger to enable the processing of the Replaces header. See the "Provisioning Procedure for SIP REFER and SIP INVITE with Replaces" section.

If a replaced call ID contained in the Replaces header of an INVITE message is not present on the BTS system, the INVITE is rejected. The replaced call ID must identify a valid call.

A call in active state (answered) is not replaced if the Replaces header consists of the early-only flag.

A transient call is not replaced even if the call is initiated by the transfer target.

A billing record with the Replaces feature identifier is generated. This record includes the Replaced Call ID. It might consist of the Referred-By field, if the Referred-By header is present in the INVITE message.

Referred-By Header Processing

A Referred-By header includes information that identifies a Transferrer or transfer target.

A Referred-By header that is present in a REFER is forwarded in an INVITE message for both blind and attended transfers without any change. The system reads the SIP URL in the header for billing purposes only.

The system does not interpret a Referred-By header that is present in a received INVITE message with a Replaces header.

A Referred-By header in a SIP REFER message that specifies a SIP trunk in the Refer-To URL is copied to the triggered INVITE and also recorded in the billing record of the triggered call.

You can provision the system so that it does not accept a SIP REFER unless it has a Referred-By header. There is a flag for conditioning the acceptance of a REFER on a SIP trunk basis and another flag for acceptance of REFER from all SIP subscribers.

A REFER-triggered outgoing INVITE message that includes a Referred-By header and a Replaces header is forwarded to the terminating SIP endpoint or to a SIP trunk.

Provisioning Procedure for SIP REFER and SIP INVITE with Replaces

This section explains how to perform the following tasks:

Configuring the SIP REFER Trigger

Configuring the SIP REFER Feature

(Optional) Provision Transfers to Arbitrary Domains as Specified in Refer-To URL

Configuring the SIP INVITE with Replaces Feature


Note This section includes examples of CLI commands that illustrate how to provision the specific feature. Most of these tables have additional tokens that are not included in the examples. For a complete list of all CLI tables and tokens, see the Cisco BTS 10200 Softswitch Command Line Interface Reference Guide.


Configuring the SIP REFER Trigger

Before you configure the SIP REFER and SIP INVITE with Replaces features, configure the SIP REFER trigger in the Feature, Call Agent Configuration, and Service tables.


Step 1 Provision the SIP REFER trigger in the Feature table by entering the following command.

add feature FNAME=REFER; TDP1=O_MID_CALL; TID1=REFER_TRIGGER; TTYPE1=R; 
TDP2=T_MID_CALL; TID2=REFER_TRIGGER; TTYPE2=R; FEATURE_SERVER_ID=FSPTC235; 
DESCRIPTION=SIP REFER;
 
   

Step 2 Provision the SIP REFER service in the default office service by entering the following command. In this example, the default office service ID is 999, and <FNAMEx> is the next available feature for this service ID.


Caution The Service table supports the specification of 10 features (FNAME1 through FNAME10) for a single service. Before issuing a command that specifies an FNAME in the Service table, ensure that you are not overwriting a previously configured feature. For the example above, you can issue the command show service id=999 to identify any FNAMEs that might already be configured.

show service id=999;
add/change service id=999; <FNAMEx>=REFER;
 
   

Step 3 If you have not already done so, provision the ca-config table to support a default office service ID by entering the following command. In a deployed system, the default office service ID might already exist; check this using the show command. In this example, the default office service ID is 999.

show ca-config TYPE=DEFAULT-OFFICE-SERVICE-ID;
add/change ca-config TYPE=DEFAULT-OFFICE-SERVICE-ID; DATATYPE=STRING; VALUE=999;
 
   

Step 4 If desired, provision specific POP tables to support an office service ID by entering the following command. In a deployed system, the office service ID might already exist; check this using the show command. In this example, the office service ID is 777.

show pop id=citypop;
add/change pop id=citypop; office-service-id=777;
 
   

Configuring the SIP REFER Feature

For SIP subscribers, you do not need to perform any additional provisioning to support the SIP REFER feature.

To configure the SIP REFER feature for SIP trunks, you must set tokens in the Softswitch Trunk Group Profile (softsw-tg-profile) and Trunk Group (trunk-grp) tables.


Step 1 For a case in which Trunk A sends the BTS 10200 a REFER message that specifies the phone number for Trunk B in the Refer-To-URL, provision Trunk Group A as shown in the following command examples:

add softsw_tg_profile id=SS_TGA; protocol_type=SIP; refer-allowed=Y; 
referred-by-reqd-on-refer=N;
 
   
add trunk_grp id=900; tg_type=SOFTSW; tg_profile_id=SS_TGA; 
softsw_tsap_addr=prica70:5070; dial_plan=BASIC_DPP; call_agent_id=CA146;
 
   

Step 2 Provision Trunk Group B, which receives the Invite-Referred message and may then hairpin it back to the BTS 10200, as shown in the following command examples:

add softsw_tg_profile id=SS_TGB; protocol_type=SIP; REPLACES_ALLOWED=Y;
 
   
add trunk_grp id=901; tg_type=SOFTSW; tg_profile_id=SS_TGB; 
softsw_tsap_addr=prica70:5080; dial_plan=BASIC_DPP; call_agent_id=CA146;
 
   

Note The default values for the softsw-tg-profile table tokens set in the preceding command examples are

REFER_ALLOWED=N;
REPLACES_ALLOWED=N;
REFERRED_BY_REQD_ON_REFER=N;



(Optional) Provision Transfers to Arbitrary Domains as Specified in Refer-To URL


Step 1 You can support transfers to arbitrary domains as specified in a Refer-To URL. In the Call Agent Configuration (ca-config) table, set the TYPE token to ALLOW_REFER_TO_ANY_DOMAIN and the VALUE token to Y (yes). See the following command example:

add ca_config datatype=BOOLEAN; type=ALLOW_REFER_TO_ANY_DOMAIN; value=Y;
 
   

Note The default setting for the VALUE token in the ca-config table is N (n).


Step 2 If you set VALUE token in the ca-config table to Y, you must also add a dummy trunk group that represents a SIP DNS route trunk group. See the following command example:

add ca_config datatype=INTEGER; type=SIP_REFER_DNS_TRUNK_ID;  
value=<dummy trunk group id> 
 
   

Step 3 If you added a dummy trunk group in Step 2, you must provision the dummy trunk group. See the following command examples:

add softsw_tg_profile id=SS_DNS; protocol_type=SIP; REFER_ALLOWED=N; 
REPLACES_ALLOWED=Y; REFERRED_BY_REQD_ON_REFER=N;
 
   
add trunk_grp id=<dummy trunk group id>; tg_type=SOFTSW; tg_profile_id=SS_DNS; 
softsw_tsap_addr=0.0.0.0; call_agent_id=CA146;
 
   

Configuring the SIP INVITE with Replaces Feature

To configure the SIP INVITE with Replaces feature, you must set tokens in the Feature, Service, and Call Agent Configuration tables.


Step 1 To configure the Replaces feature in the Feature table, create the feature and set the appropriate triggers as shown in following example:

add feature fname=REPLACES; tdp1=T_EXCEPTION; tid1=REPLACES_TRIGGER; ttype1=R; 
description=Replaces; feature_server_id=FSPTC235;
 
   

Step 2 Provision the SIP Replaces service in the default office service by entering the following command. In this example, the default office service ID is 999, and <FNAMEx> is the next available feature for this service ID.


Caution The Service table supports the specification of 10 features (FNAME1 through FNAME10) for a single service. Before issuing a command that specifies an FNAME in the Service table, ensure that you are not overwriting a previously configured feature. For the example above, you can issue the command show service id=999 to identify any FNAMEs that may already be configured.

show service id=999;
add/change service id=999; <FNAMEx>=REPLACES;
 
   

Step 3 If you have not already done so, provision the ca-config table to support a default office service ID by entering the following command. In a deployed system, the default office service ID might already exist; check this using the show command. In this example, the default office service ID is 999.

show ca-config TYPE=DEFAULT-OFFICE-SERVICE-ID;
add/change ca-config TYPE=DEFAULT-OFFICE-SERVICE-ID; DATATYPE=STRING; VALUE=999;
 
   

Step 4 You can provision specific POP tables to support an office service ID by entering the following command. In a deployed system, the office service ID might already exist; check this using the show command. In this example, the office service ID is 777.

show pop id=citypop;
add/change pop id=citypop; office-service-id=777;
 
   

Step 5 For a case in which Trunk A sends an Invite-with-Replaces message to the BTS 10200, provision Trunk Group A as shown in the following command examples:

add softsw-tg-profile id=SS_TGA; protocol-type=SIP; replaces-allowed=Y;
 
   
add trunk-grp id=900; tg-type=SOFTSW; tg-profile-id=SS_TGA; 
softsw-tsap-addr=prica70:5070; dial-plan=BASIC_DPP; call-agent-id=CA146;

SIP Trunk to Voice-Mail Server

The following example shows how to provision a SIP trunk to a VM server located at `vm.domainname.com:5060.' Typically, local subscriber dial plans have a route defined to this trunk for the purpose of forwarding calls to the VM server.


Note For general VM provisioning details, see the VM provisioning section in the Cisco BTS 10200 Softswitch Provisioning Guide.



Step 1 Add the destination ID for the VM main subscriber.

add destination dest-id=tb16-local; call-type=LOCAL; route-type=SUB;
 
   

Step 2 Add a dial plan profile and dial plan for a SIP trunk to the VM server.

add dial-plan-profile id=tb16;
 
   
add dial-plan id=tb16; digit-string=469-555; dest-id=tb16-local; min-digits=10; 
max-digits=10
 
   

Step 3 Add the softswitch trunk group profile for voice mail.

add softsw-tg-profile id=VM_Profile; protocol-type=SIP; voice_mail_trunk_grp=Y;

Note You can set the diversion-header-supp token in the softsw-tg-profile table to Y. This instructs the VM server to select the target inbox based on the original called number in the Diversion header of the SIP message.


Step 4 Add the SIP trunk group.


Note This SIP trunk group serves several purposes. It is used (1) by the subscriber to access the VM server, (2) by the Cisco BTS 10200 Softswitch to forward incoming calls to the VM server, and (3) by the VM server to notify the Cisco BTS 10200 Softswitch that a message is waiting for the subscriber.


add trunk-grp id=80032; softsw-tsap-addr=vm.domainname.com:5060; 
call-agent-id=CA146; tg-type=softsw; tg-profile-id=VM_Profile; dial-plan-id=tb16
 
   

Step 5 Add a subscriber associated with the SIP trunk group. The value of dn1 is the DN that a subscriber can call to access the VM server.

add subscriber id=VMPilot; category=PBX; dn1=469-555-1001; tgn-id=80032; 
sub-profile-id=sp1; term-type=TG;
 
   

Step 6 If your VM server does not support FQDN hostnames, you must provision a serving-domain-name record in the BTS 10200 through use of the IP addresses resolved from the sia-xxxCAnnn.domain address. Otherwise, the VMWI status from the SIP VM platforms fails authentication with the BTS 10200.


Note This step is not necessary if your VM server supports FQDN hostnames.


The address, sia-xxxCAnnn.domain, consists of the following parts:

sia- is a required field.

xxx = site ID.

CAnnn = CA ID, such as CA146.

domain = a FQDN such as cisco.area777.com.

Enter the serving-domain-name record as follows:

a. Determine the two IP addresses associated with the sia-xxxCAnnn.domain address. These are available in the NIDS DNS table that was supplied with your system. You can also query the system for these two IP addresses through the nslookup command on the EMS host machine.

b. Add the two sia-xxxCAnnn.domain IP addresses to the serving-domain-name table:

add serving-domain-name domain-name=10.10.10.14; auth-reqd=n;
add serving-domain-name domain-name=10.10.11.14; auth-reqd=n;
 
   

Cluster Routing

SIP trunks are used in the cluster routing scenario. A cluster is a group of CMS and MGC nodes that appear as a single logical CMS/MGC to the PSTN. For information on this scenario, see the "Cluster Routing" section in the Cisco BTS 10200 Softswitch Dial Plan Guide.

CMS-to-MGC Routing

SIP trunks are used for CMS-to-MGC routing. For information on this scenario, see the "LERG, TNS, and Additional SIP Extensions for CMS-MGC Separation" section in the Cisco BTS 10200 Softswitch Dial Plan Guide.

SIP Server Groups

This section describes the SIP server groups feature for Release 5.0, Maintenance Release 1 (and later), and explains how to use it. It includes the following topics:

Purpose of the SIP Server Groups Feature

Provisionable Parameters Affecting SIP Server Groups

Understanding SIP Server Group Operations

Outbound SIP Messages That Apply to SIP Server Groups

SIP Element Selection Algorithm

Applications and Use Cases for SIP Server Groups

Limitations on SIP Server Groups

Provisioning SIP Server Groups

Troubleshooting SIP Server Groups

Purpose of the SIP Server Groups Feature

The SIP server groups feature provides the following system capabilities:

Eliminates the need for the BTS 10200 SIP interface to perform DNS lookups for call processing. This can help avoid performance impacts on SIP call processing on the BTS 10200 as a result of DNS server latency. DNS server latency can occur due to transient network congestion.

Provides an alternative to the DNS-SRV (RFC-3263) method for destination selection on the BTS 10200 SIP interface, while providing capabilities that extend beyond what DNS-SRV provides, The additional capabilities include:

A tree model approach to SIP element selection

Blacklisting of SIP endpoints that are unreachable

SIP element advance on 5XX SIP responses

Server groups for established dialog requests


Note This feature requires you to provision all of the applicable DNS and SRV entries (the DNS and SRV entries for which this feature applies) directly on the BTS 10200, rather than on a centralized network DNS server. Before provisioning SIP server groups, perform a network review to determine whether this is desirable for your network.


Provisionable Parameters Affecting SIP Server Groups

The following provisionable parameters affect the behavior of this feature:

SIP trunk—Defines an IP location in the SIP network with which the BTS 10200 SIP interface will communicate using SIP properties defined by the trunk profile. It associates to exactly one top provisioned Server Group or SIP Element for transport of outbound SIP messages.

SIP element:

In DNS-SRV—An SRV record (contains location properties of a remote SIP endpoint on the SIP network and is associated with a priority and weight).

In server groups feature—A table in BTS 10200 EMS that represents a SIP contact point (endpoint) on the SIP network and contains destination and transport information (such as IP address, port and transport type).

Server group—A table in BTS 10200 EMS used to define a collection of SIP element entries, and provides a means to build a server group tree hierarchy of priority and weight based server groups and SIP elements.

Server group element—A table in BTS 10200 EMS used to link a server group to another server group or a server group to a SIP element. Each record is exactly one link. The link provides the connections in a server group tree hierarchy.

Understanding SIP Server Group Operations

Prior to Release 5.0, only a TSAP-ADDRESS field on a SIP Trunk Group record was available to determine the destination of a remote SIP endpoint. If this field was provisioned in an fully qualified domain name (FQDN) format, the BTS 10200 would perform a DNS lookup of the A-record for the FQDN. If DNS-SRV was enabled, the BTS 10200 would perform an SRV lookup and resolve the A-records for each server. Load balancing could be achieved by the use of the DNS-SRV feature.


Note The FQDN is a string of characters to which in doing a DNS lookup yields an IP address.


DNS-SRV for SIP networks is defined in RFC-3263. It provides a method for locating SIP servers by allowing a client to resolve a SIP Uniform Resource Identifier (URI) into the IP address, port, and transport protocol of the next hop-to contact. It also uses DNS to allow a server to send a response to a backup client if the primary client has failed. DNS lookups can impact the call processing performance of SIP calls on the BTS 10200 if transient network congestion causes periods of latency of these lookups.

The server groups feature provides an alternate method to DNS-SRV, removing the need for external queries to a DNS server. This would be of interest to customers that wish to avoid performance issues for outbound SIP trunk calls on the BTS 10200 SIP interface that might arise due to DNS latency.

Besides being an SRV alternative, this server groups feature provides capabilities beyond what DNS-SRV functionality provides, including:

Tree Model Approach to SIP Element Selection

Blacklisting SIP Endpoints That Are Not Reachable

SIP Element Advance On 5XX SIP Responses

Server Groups for Established Dialog Requests

Tree Model Approach to SIP Element Selection

The server groups feature incorporates the same priority and weight mechanisms as SRV to select the SIP destination for the call. In SRV, a list of SRV records is provided each with an associated priority and weight. Each record (or element) identifies the destination of a remote SIP endpoint. The example in Table 3-1 is a representation of three SRV records in a DNS server.

Table 3-1 Set of Three SRV Records

1

IP: 10.10.10.10

Port: 5060

Priority: 1

Weight: 0.5

2

IP: 10.10.10.20

Port: 5070

Priority: 1

Weight: 0.5

3

IP: 10.10.10.30

Port: 5080

Priority: 2

Weight: 1



Note All of the IP addresses used in this document are examples, and are used for illustration purposes only.


The server group feature represents the same information in a different way. It separates the provisioning of the priority and weight parameters from the provisioning of the IP (TSAP) parameters. As described in this document, this separation allows for greater flexibility in the selection of destination elements.

The server groups feature provides the ability to provision a list of records as individual SIP elements. Figure 3-7 represents the SRV records above using the server groups feature. Because a collection of SIP elements is required, a server group (SG1) is defined to group SIP elements. SIP elements are defined and linked to a server group. The priority and weight value for each SIP element is a property of the link to the element. SIP elements can be linked under other server groups using other links with different priorities and weights.

Figure 3-7 Basic Server Group Concept

The following CLI database tables are used to define these server group components:

Server groups—The SIP-SERVER-GROUP table

SIP elements—The SIP-ELEMENT table

Links—The SIP-SG-ELEMENT table

A server group can also be linked under another server group and can contain links to any number of server groups and SIP elements to form a server group tree. A SIP element is considered a leaf node because nothing can be linked under it. Figure 3-8 illustrates a server group tree with server group SG1 at the top of the tree having a collection of server group SG2, SG3 and SIP element X. Server groups SG2 and SG3 each have a collection of 3 SIP elements each. Each link has an associated a priority and weight value including links between server groups.

Figure 3-8 Tree Hierarchy of Server Groups

When a SIP request fails, the chosen SIP element is marked as failed, and an algorithm is used to advance to the next SIP element. Server groups may be provisioned to advance on the next SIP element in the current server group, or fail the current server group and advance to the next SIP element in the next server group. SIP element advance can also be provided for specific 5XX responses. This gives more flexibility in provisioning load sharing network models over DNS-SRV, for example N+1 failover models.

Blacklisting SIP Endpoints That Are Not Reachable

The server groups feature has the ability to blacklist (mark as failed) SIP elements that are not available for use. The server groups feature is used with the status monitoring feature to facilitate this. When a SIP endpoint is unreachable due to a request timeout, the associated SIP element is blacklisted and placed operationally out of service. The next SIP element chosen for the transaction will ignore this SIP element in its selection determination. In addition, the SIP element selection mechanism will not consider this SIP element for subsequent SIP transactions in this SIP call or other SIP calls until the audit mechanism restores the SIP element into service.

This feature includes support for the Retry-After header. When this header is received in a SIP response, the associated SIP element is placed operationally out of service for the duration identified in the Retry-After header. All subsequent SIP transactions for this call and other SIP calls will not select this SIP element until the SIP element is restored back into service at the end of the Retry duration.

SIP Element Advance On 5XX SIP Responses

In SRV, the SIP response code 503 triggers an advance to the next SRV record. The server groups feature can be provisioned to advance to the next SIP element for any 5XX class response. A set of 5XX responses can be provisioned for each server group.

Server Groups for Established Dialog Requests

DNS SRV provides remote SIP endpoint location information for the purpose of selecting a destination when creating and sending an initial outbound Invite request. The server groups feature can be provisioned for an established contact or top-most route received in a SIP response. This allows the BTS 10200 to send established dialog SIP requests using server groups.

Server groups can also be used for sending response retransmissions of an INVITE or REINVITE request. In this case, a server group is provisioned for the top-most Via header received in the initial INVITE request.


Note Dialog requests impose uncommon requirements on downstream SIP network servers, for example, the need for the server to be aware of each SIP transaction.


Outbound SIP Messages That Apply to SIP Server Groups

The server groups feature can be applied to the following SIP messages from the BTS 10200 SIP interface:

Initial INVITE request (dialog initiating INVITE request).

SIP requests sent using the established contact (or route) by the remote SIP device such as the PRACK, ACK, RE-INVITE, and BYE requests. Sending ACK on failed response to INVITE or RE-INVITE does not apply and sending CANCEL does not apply.

Response retransmissions of a reliable 18X, or response retransmissions of a final response for INVITE or RE-INVITE. The first response transmission sent does not apply to server groups since the SIP rules state that it must be sent to the received IP address. The server groups feature uses the top-Via header FQDN of the request received.

Figure 3-9 illustrates SIP messages in context of an example SIP call and how they relate to server groups.

Figure 3-9 Server Groups In Example SIP Call

The following subsections describe the application of server groups to each of these types of SIP messages:

Server Groups for Sending Initial Invite Request

Server Groups for Sending Established Dialog Requests

Server Groups for Sending Response Retransmissions

Server Groups for Sending Initial Invite Request

Server groups may be provisioned for use when sending an initial INVITE request. To enable server groups in this case, the SIP trunk group used to route the outbound INVITE message for server groups is provisioned with its SIP-SERVER-GROUP-ID field set to the ID of a server group defined in the SIP-SERVER-GROUP table. When a server group is provisioned on this trunk group, the SOFTSW-TSAP-ADDR field in the trunk group is not set.

Before the initial INVITE is sent, the BTS 10200 SIP interface applies the element selection procedure to the server group and sub-groups in conjunction with weights, priorities and availability to choose a SIP element.

If no SIP elements are available, the call is released locally without any message sent out the SIP network. No SIP elements are available when the server group and sub-groups do not have links provisioned to SIP elements. A SIP element provisioned within the server group is also unavailable when the elements operational state is not in service.

When a SIP element is chosen, the information contained in the SIP element is used to send the INVITE request. This information includes the IP address, port, transport type and TOS values.

The hostname of the INVITE Request URL is set to the hostname provisioned in that trunk group defined by the REQURI-HOSTNAME field. If that field is not set, then the hostname is set to the SIP-SERVER-GROUP-ID.

If the initial INVITE request is retransmitted to its limit without a response causing a transaction timeout, the remote SIP endpoint is determined to be unreachable. The associated SIP element is then marked operationally `out of service' (assuming status monitoring is enabled on the SIP element) so that subsequent SIP requests in this call or other calls do not choose it.

If the server group is provisioned to advance to the next SIP element in the server group (FAILOVER-POLICY-ON-TIMEOUT = ALTERNATE-ELEMENT), the next SIP element is chosen in the server group by re-applying the same SIP element selection but without including the previous SIP element in the list of possible selections.

If the server group is provisioned to advance to next server group (FAILOVER-POLICY-ON-TIMEOUT = FAIL_SERVER_GROUP), the next SIP element is chosen by re-applying the selection algorithm from the parent server group while ignoring this server group in the list of possible selections. This means that any SIP elements available in the server group are not used. A SIP element will be chosen from another server group.

The BTS 10200 SIP interface will advance to the next SIP element if the initial INVITE request sent results in a 5XX class response and that response is provisioned in the 5XX failover policy (SIP-SG-FAILOVER-POLICY) table. If so provisioned, the SIP Element is marked unavailable only for this INVITE request so the element is not out of service (assuming the 5XX response did not arrive with a Retry-After header). Other transactions or calls may select this SIP element. The ACTION field in the table has the values ALTERNATE-ELEMENT and FAIL-SERVER-GROUP. They apply the same logic discussed above for the request timeout case. The default handling of the 5XX class response is the same as other failure responses which in this case translates to a call release back to the originator.

A SIP element advance results in a re-submission of the initial INVITE request as a new INVITE transaction. A re-submitted INVITE request is identical to a previous request with the following exceptions:

Sent using the IP address and port information of the next SIP element.

Sent using the TOS values of the next SIP element.

C-Sequence number is incremented.

Via header branch ID is modified.

The transport (UDP, TCP) indications on the message are modified (if changed) to reflect the setting of the next SIP element chosen.

If no more SIP elements are available in the server group tree to send or resubmit the request, the call is released back towards the originator.

Server Groups for Sending Established Dialog Requests

Established dialog requests include ACK, PRACK, RE-INVITE and BYE. In general, these requests use the SIP contact header sent by the remote SIP endpoint to target the destination. However, if a route is established in the dialog, then the top-most route header is used to target the destination.

To enable server groups for sending established dialog SIP requests from BTS 10200, the hostname of the contact header or top-most route header provided by the SIP network must match a server group ID in the SIP-SERVER-GROUP table (the matching is case insensitive). This requires matching provisioning of a server group on both the BTS 10200, and the remote SIP device for use in its contact or Route header. The top-most Route header takes precedence if it exists.

If a server group match is found, and sending a request is required, the SIP element selection algorithm will use that server group and its sub-groups to select a SIP element. This server group may be different than the one provisioned to send an initial INVITE request. Therefore, this server group need not be referenced by a SIP trunk group.

Once the SIP element is chosen for the request, the transmission-related information contained in the SIP element is used to send the request. This information includes the IP address, port, TOS values and transport type. The hostname of the Request URL of the request is set to the hostname provisioned in that trunk group defined by the REQURI-HOSTNAME field. If that field is not set, then the hostname is set to the SIP-SERVER-GROUP-ID.

A re-submitted request is identical to the previous request with the following exceptions:

Sent using the IP address and port information of the next SIP element.

C-Sequence number is incremented.

VIA header branch ID is modified.

Sent using the TOS values of the next SIP element.

The Server Groups feature is not used to send outbound established dialog requests in the following cases:

A SIP Subscriber call.

If the contact or top-most route received by a remote SIP device has hostname in IP address format.

If the contact or top-most route received by a remote SIP device has hostname in FQDN format with an explicit port number postfix specified.

If the contact or top-most route received by a remote SIP device has hostname in FQDN format (without port) but does not match a provisioned server group.

Sending a CANCEL request.

Sending an ACK for failed responses to INVITE or RE-INVITE.

Subsequent INVITE requests sent in response to 3XX responses or REFER requests received do not apply to server groups.

When server groups do not apply and the SIP contact or route hostname received is an FQDN format, the BTS 10200 will perform DNS lookup on the hostname to send the request to its destination.

If the BTS 10200 sends an initial INVITE, the first SIP request sent using the established contact would be the ACK message in the case of an unreliable provisional response call, or the first PRACK in the case of a reliable provisional response call. If the first SIP request using established contact could not be sent because there was no SIP elements available in the server group or its sub-groups, the call is released locally without sending the SIP request. The remote SIP endpoint will retransmit the reliable 200 or 18X respectively, then release the call.

If the BTS 10200 receives an initial INVITE, and a server group is identified by the hostname from the contact or top-most route header of the INVITE, and that server group or sub-group does not have SIP elements available, a 500 response is sent with the reason phrase: "remote contact server group not available". The call is released without being processed and no billing record is available.

When sending an established dialog request using server groups, if no SIP elements are available to send the request, the request will be forced out using a `best effort' approach by applying the last SIP element used to send the previous established dialog request. This is used regardless of the current operational or administrative state of the SIP element. If this request is timed out, or receives a 5XX with failover policy, there is no SIP element advance provided and the request is declared failed.

The following are examples of how the last SIP element is used:

An initial INVITE is sent and a 200 OK response is received with a remote contact. The contact hostname is found to be a server group and a SIP element is selected to send the ACK message. While the call is connected, the BTS 10200 SIP interface releases the call and prepares to send a BYE message but the server group has no SIP elements available. Since the BYE should be sent in at least one attempt, the last used SIP element (the one chosen to send the ACK) is used to send a BYE.

An initial INVITE is received and a server group is identified by the hostname from the contact or top-most route header of the received INVITE, a SIP element is chosen from the server group and book-marked. While the call is connected, the BTS 10200 SIP interface releases the call and prepares to issue a BYE message but the server group has no SIP elements available. Since the BYE should be sent in at least one attempt, the SIP element book-marked from the received INVITE is used to send a BYE. However, if a SIP element was chosen to transmit a previous request such as a RE-INVITE, If the BTS 10200 SIP interface prepares to issue a RE-INVITE message but the server group has no SIP elements available, but a previous RE-INVITE sent selected and used a SIP element, then that last used SIP element is applied to send this RE-INVITE request.

An initial INVITE is sent and a reliable 18X response is received with a remote contact. The contact is found to be a server group and a SIP element is used to send the PRACK message. Once the 200 OK is received for the call, the BTS 10200 SIP interface prepares to issue an ACK message but the server group has no SIP elements available. Since the ACK should be sent in at least one attempt, the last used SIP element (the one chosen to send the PRACK) is used to send the ACK. If in sending that initial PRACK failed because no SIP elements were available, the call would have been released locally.

For sending established dialog requests other than ACK, the remote SIP endpoint is determined to be unreachable if the request is retransmitted to its limit causing a transaction timeout. In that case, the associated SIP element is marked operationally out of service (assuming status monitoring is enabled on the SIP element) so that subsequent SIP requests in this call or other calls do not choose it.

If the server group is provisioned to advance to the next SIP element in the server group (FAILOVER-POLICY-ON-TIMEOUT = ALTERNATE-ELEMENT), the next SIP element is chosen in the server group re-applying the selection procedure. The failed SIP element is not included in the list of possible selections.

If the server group is provisioned to advance to next server group (FAILOVER-POLICY-ON-TIMEOUT = FAIL_SERVER_GROUP), the next SIP element is chosen by re-applying the selection from the parent server group (without including the failed server group) in the list of possible selections.

For the ACK request (for successful INVITE response), SIP element advance is applied to each ACK re-transmission. The rules of SIP require the ACK to be sent each time a final response to INVITE is received. Therefore, SIP elements chosen to send the ACK request are never marked as unreachable (or failed) for that request transaction. This allows re-use or rotation of the SIP elements in the server group as long as ACK re-transmissions are required.

The BTS 10200 SIP interface will advance to the next SIP element if the established dialog request sent results in a 5XX class response and that response is provisioned in the 5XX failover policy (SIP-SG-FAILOVER-POLICY) table. If so provisioned, the SIP Element is marked unavailable only for this request so the element is not out of service (assuming the 5XX response did not arrive with a Retry-After header). Other transactions or calls may select this SIP element. The ACTION field in the table has the values ALTERNATE-ELEMENT and FAIL-SERVER-GROUP. They apply the same logic discussed above for the request timeout case. The default handling of the 5XX class response is the same as other failure responses.

If a BYE request is sent using server groups and it results in a 5XX received, SIP element advance is not provided regardless of the provisioning of the 5XX server group failover policy (SIP-SG-FAILOVER-POLICY) table.

In the case of an established dialog request sent other than ACK, if the request results in a SIP element advance due to request timeout or provisioned failover policy of a 5XX response, and there are no more SIP elements available, the request fails. The BTS 10200 SIP interface applies the logic for that request and response transaction. For example, in the case of sending RE-INVITE for media change, if the request failed, only the media change request fails since the usual logic applies. The call remains active.

Server Groups for Sending Response Retransmissions

Server groups may be provisioned for sending reliable 18X response or final response retransmissions for INVITE or RE-INVITE request received. The first response transmission sent does not apply to server groups since the SIP rules state that it must be sent to the received IP address. Response retransmissions are sent using the top-most Via hostname received in the initial INVITE.

To enable the server groups feature for these responses, the hostname in the top-most Via header in the initial INVITE request received must be an FQDN format without a port specified. This hostname must match a server group ID in the SIP-SERVER-GROUP table. This requires matching provisioning of a server group on both the BTS 10200, and the remote SIP device sending the top-most Via header.

If a server group is not found, DNS lookup on the FQDN hostname is used to send the response retransmission.

If a server group is found, and SIP elements are available, the SIP element selection algorithm will use that server group and its sub-groups to select a SIP element and send a response re-transmission using the information of that chosen SIP element. That information includes IP address, port, TOS values and transport type.

If a server group is found, and there are no SIP elements available, the remaining retransmissions of the reliable 18X or 200 are sent using the destination IP address of the initial response transmission.

The SIP element advance is applied to each response re-transmission. The rules of SIP require the response retransmissions to be sent at configured time intervals for a configured duration. Therefore, SIP elements chosen are never marked as unreachable or failed for these set of response retransmissions. This allows re-use or rotation of the SIP elements in the server group for as long as response re-transmissions are required. For this reason, these SIP elements are never placed operational out of service.

If the server group is provisioned to advance to next server group (FAILOVER-POLICY-ON-TIMEOUT = FAIL_SERVER_GROUP), the next SIP element is chosen by re-applying the selection from the parent server group (without including the failed server group) in the list of possible selections.

SIP Element Selection Algorithm

When the system selects a SIP element from a server group, it chooses links of higher priority over links of lower priority for that server group. If the links are the same priority, the weight values are used to choose a link within the same priority. The higher the weight value relative to the other weight values in the link set, the more probability that link and associated SIP element is chosen. For example, if a link has a weight that represents 80% of the total sum of all weights in the group, then it is expected that the link and associated SIP element is chosen 80% of the time. If all weights are equal then an even distribution of element selections are applied across the link set.

Prior to sending a SIP message, a server group and SIP element are selected. Once the message is sent, conditions may require the BTS 10200 SIP interface to advance the next available SIP element. Each server group is provisioned for one of two modes: 1) advance to the next element in the server group, or 2) advance to the next server group.

If provisioned to advance to the next server group, the next selection will skip any remaining SIP elements and sub-groups in the current server group and look for SIP elements in the next server group using a priority and weighted selection from the parent server group.

If the server group is provisioned to advance to the next SIP element in the server group, all SIP elements linked under that server group or sub-groups are selected for SIP message transmission before any SIP elements are chosen from other server groups at the same level.

When a server group is selected, a SIP element under that server group is not eligible for selection if the SIP element operational state or the administrative state is out of service. A server group is ignored in the selection process if its administrative state is out of service. For more information on the OAM aspects of this feature, refer to the section titled Operations.

For SIP element advance, a SIP element is not eligible for selection if it was previously selected for that transaction. The exception is sending ACK and 18X reliable and 200 response re-transmissions because the SIP rules require those to be sent. In this case, previously selected SIP elements may be re-selected.

Figure 3-10 illustrates an example server group tree and is used to show how SIP element selection works. The tree contains 7 server groups and 12 SIP elements arranged with server group SG1 forming the top of the tree. Server groups from SG4 to SG7 each have 3 SIP elements (ELEM) each. The priority (P) and weight (W) values are defined and shown on each link of the tree. The SIP element selection algorithm starts from the top of the tree SG1.

Figure 3-10 Example Server Group Tree for SIP Selection

The following subsections describe how the selection algorithm works:

Example 1—Server Groups Provisioned to Advance to Next SIP Element in the SG, Initial INVITE

Example 2—Server Group Provisioned to Advance to Next Server Group

Transport Type for SIP Element Selection

Example 1—Server Groups Provisioned to Advance to Next SIP Element in the SG, Initial INVITE

In this example, all server groups in this tree are provisioned to advance to the next SIP element in the server group (failover-policy-on-timeout=alternate-element in the sip-server-group table), and this SIP element selection is for initial INVITE outbound.

Choosing the First Available SIP Element

The SIP selection procedure operates as follows to choose the first available SIP element:

1. Selection starts at SG1.

2. Both links from SG1 have the same priority and weight. Each link has a 50% chance of being selected.

3. The server group SG2 is chosen at random.

4. At SG2, the link to SG4 has a higher priority than SG5 so SG4 is chosen.

5. At SG4, the link to ELEM1 has a higher priority than the other links, so ELEM1 is chosen.

The resultant path is shown in Figure 3-11.

Figure 3-11 Path to SG4 to ELEM1

Choosing the Next Available SIP Element after First Element Times Out

After sending the SIP INVITE request using the SIP element ELEM1, a request timeout requires a SIP element advance. To choose the next available element, the following occurs:

1. The SIP element advance starts at the current server group SG4.

2. Since there are no more priority 1 links, links are considered using the next priority level. In this case, priority 2. The two links at priority 2 are of equal weight so there is a 50% probability of choice between SIP element ELEM2 and ELEM3. If ELEM2 is chosen, and a request timeout prompts a subsequent element advance, then SIP element ELEM3 is selected next.

The resultant path is illustrated in Figure 3-12.

Figure 3-12 Path to SG4 to ELEM3

Choosing Additional Available SIP Elements after Multiple Elements Time Out

If a SIP element advance is required from SIP element ELEM3, then the next SIP element is chosen as follows:

1. Since all SIP elements under SG4 have been considered for selection. The selection mechanism moves back up the tree to SG2.

2. Since not all SIP elements have been considered under SG2, the selection would move towards SG5, but all SIP elements under SG5 are currently unavailable. In this case, the selection moves back to SG1.

3. The selection moves from SG1 to SG3 because all available SIP elements under SG2 were already considered.

4. At SG3, the links are of equal priority, but because of weight values, the link toward SG7 has 75% (3 out of 4) more probability of choice. In this case, the most likely SG7 is chosen.

5. At SG7, the three links are of different priority. The highest priority is chosen first (priority 1) so SIP element ELEM10 is chosen.

6. If the SIP request using SIP element ELEM10 responded with a 200 OK, then SIP element selection is completed for this request transaction.

The resultant path is illustrated in Figure 3-13.

Figure 3-13 Path to SG7 to ELEM10

Example 2—Server Group Provisioned to Advance to Next Server Group

When a server group is provisioned to advance to the next server group rather than SIP element, and SIP element advance is required, the selection mechanism will look for SIP elements in the next server group applying a priority and weighted selection from the parent server group and ignore the failed server group. This policy is provisioned as failover-policy-on-timeout=fail-server-group in the sip-server-group table.

Assume the previous SIP selection procedure but having server groups SG2, SG4 and SG5 provisioned to advance to the next server group (instead of a SIP element within the same group). Consider the first SIP element to be chosen is ELEM1 and the selection mechanism engages to choose the next SIP element. The following procedure occurs:

1. Even though SIP elements ELEM2 and ELEM3 are available for use, an advance from any one SIP element from SG4 results in skipping the rest of SG4.

2. The SIP selection is applied at SG2. But because SG2 is also provisioned to advance to the next server group, other server groups and SIP elements available under SG2 are ignored and the selection immediately moves back to SG1.

3. If SG1 was also provisioned to advance to next server group, SG3 would not be attempted and the call would fail. However, it is provisioned to advance to the next SIP element, so the selection algorithm traverses down to SG3 and continues down SG6 or SG7.

Transport Type for SIP Element Selection

When an initial INVITE request is sent using server groups, a SIP element is selected and applied. The selection algorithm chooses a SIP element based on weight and priority regardless of the transport type (TCP/UDP) of a SIP element. Once a SIP element is selected, the provisioning setting for the transport is applied to the outbound INVITE request. The transport value is one of the following values: `TCP', `UDP' or `UDP only'. If a SIP element advance occurred, the subsequent INVITE request sent would apply the transport setting of the next SIP element. This setting may be different from the previous SIP element used.

The SIP element selection mechanism considers transport type when sending established dialog requests, or sending response re-transmissions using server groups.

The transport type for established dialog requests is specified by the remote SIP device during the initial INVITE request transaction either in the top-most Route header. If the Route header does not exist, then the transport is specified in the Contact header.

The transport type for response re-transmissions is specified in the top-most Via header of the received INVITE request.

The transport can be one of three values: UDP, TCP, or nothing (no transport) specified. The following considerations apply:

If a UDP transport type is specified by the remote SIP endpoint, the SIP element selection mechanism for will not select any SIP elements in the server group tree that are provisioned with a TCP transport type. Only SIP elements provisioned UDP or `UDP only' are eligible for selection.

If a TCP transport type is specified, SIP elements are not selected unless provisioned with the TCP transport type. Once TCP is selected, no fallback to UDP is possible for this transaction.

If the remote SIP endpoint did not specify a transport type, a SIP element is selected based on priority and weight regardless of transport provisioned. Either TCP or UDP may be selected.

If a transport type of TCP is specified by the remote SIP element, but all SIP elements in the server group tree are provisioned with transport types of UDP or `UDP only', then the call will fail since no TCP SIP elements exist.

Applications and Use Cases for SIP Server Groups

This section describes several applications and use cases. These examples are intended to provide some insight into the use of the SG feature. I you need additional details on any applications for your network, contact your Cisco account team.

The following applications are described in this section:

Basic SIP Network Domain

Server Groups for Outbound SIP Calls to a Proxy Farm

Server Groups for SIP Requests to SBC Endpoints

Server Groups for Response Retransmissions to a Proxy Farm

Basic SIP Network Domain

Figure 3-14 shows an example of BTS 10200 operating within a SIP network and trust domain. When a SIP call is originated by the BTS 10200 that is destined to another domain, the call is handled by one of the domains session border controllers (SBC) to exit the network. Before the call arrives to an SBC, it is first handled by a SIP proxy. In this case, a collection of proxies operate together as a farm. The proxies provide load sharing and routing of SIP calls. In this example, there are exactly four proxies in the farm. Three of these proxies PXY1, PXY2 and PXY3 evenly distribute the calls across each other as primary proxies. The fourth proxy provides overflow redundancy. If all primary proxies become unreachable or simultaneously suffer transient congestion, calls will overflow to proxy 4 (PXY4) until at least one primary recovers. If any SIP call attempt towards a primary fails then the overflow proxy is chosen for the resubmit request.

Four SBC's provide gateways to adjacent networks labeled A and B. Each network has 2 SBC's assigned and provide load sharing between each other. If one goes down or suffers transient congestion, the other handles all the SIP calls. Each pair of SBC load shares the traffic on a 2 to 1 ratio because SBC1 is larger and can handle more calls than SBC2.

Figure 3-14 Example of a SIP Network Domain

Server Groups for Outbound SIP Calls to a Proxy Farm

Figure 3-15 shows an example of SGs for outbound SIP calls to a proxy farm. It shows how the proxy farm (shown in Figure 3-14) can be provisioned as server groups allowing the BTS 10200 to send SIP calls to the farm while applying the load sharing and overflow model. The top-most server group is provisioned with the ID of PROXY-FARM. This would be provisioned in the SIP-SERVER-GROUP-ID field of a SIP trunk group (TRUNK-GRP with TYPE: SOFTSW). This would be the SIP trunk group chosen by the BTS 10200 routing system when sending SIP calls to the proxy farm. Because server groups are provisioned, an operational SIP element would be chosen from this server group tree for each SIP call.

The link (SIP-SG-ELEMENT) to the server group named PRIMARY is set to a higher priority than the link to the SIP element PXY4 overflow proxy. This allows all SIP calls to select SIP elements (PXY1, PXY2, PXY3) under the PRIMARY server group if at least one or more primary proxies are available. Since the links to the three primary proxies from the PRIMARY server group are equal in priority and weight, the SIP elements are chosen with even distribution allowing for an even load sharing of calls across the proxies. If one proxy becomes unavailable, the other two primaries load share evenly across them. If all primary proxies become unreachable, the priority 2 link from the top server group PROXY-FARM and associated SIP element PXY4 is chosen.

Because the PRIMARY server group is provisioned to fail the server group on request failure due to timeout, if sending a SIP request results in a SIP element advance, the SIP element PXY4 is immediately chosen as the next SIP element regardless of how many other SIP elements were available under the PRIMARY server group. This allows PXY4 to handle overflow for resubmission of failed SIP calls. Other available primary proxies will not handle the resubmissions.

Figure 3-15 Example of Server Groups for Outbound SIP Calls to a Proxy Farm

Server Groups for SIP Requests to SBC Endpoints

Figure 3-16 shows and example of SGs for SIP Requests to SBC endpoints.

When calls are established between the SBC's and the BTS 10200, the SBC's provide an established contact URI in the SIP Contact header. The diagram below shows how server groups can be provisioned on BTS 10200 to provide the proper load sharing and redundancy for sending established dialog requests such as RE-INVITE or BYE from the BTS 10200 directly to the SBC.

In this case, a server group is required for each network. The first server group (NET-A) contains two SIP elements one for each SBC to Network-A: SBC-A1 and SBC-A2. Links to these SIP elements have the same priority, but the link to SBC-A1 has a higher weight value (2 to 1) to provide that ratio of selection per SIP request compared to the link to SBC-A2 because SBC-A1 handles more calls. If one SBC-A becomes unreachable, the other SBC-A is chosen because of the failover policy provisioned for the server group. Similarly, the server group for Network-B is set up the same way.

Consider sending a RE-INVITE request to Network-A. Most likely the SIP element SBC-A1 is chosen, and the RE-INVITE is sent to the IP address for SBC-A1. If the RE-INVITE request has a timeout on retransmissions, the next SIP element is chosen: SBC-A2. A RE-INVITE is re-submitted to the IP address of SBC-A2. In order for server groups to work in this example, the SBC pair must be aware of each others calls and call state in order to each process the RE-INVITE. In this case, the pair of SBC's may be a pair of LAN interface cards with separate IP addresses under the same running SBC process.

In order for server groups to work in this example, the hostname in the contact header sent by the SBC must match the server group name provisioned on the BTS 10200. Therefore, the SBC's for Network-A must be configured to send a Contact header with a host name of "NET-A". Similarly, the SBC's for Network-B must be configured to send a Contact header with a host name of "NET-B".

Figure 3-16 Example of a SGs for SIP Requests to SBC Endpoints

Server Groups for Response Retransmissions to a Proxy Farm

Figure 3-17 shows an example of SGs for response transmissions to a proxy farm.

When the BTS 10200 receives SIP calls (initial INVITE requests) from the proxy farm, the BTS 10200 will send a final response. It may also send a reliable 18X response before the final response. If ACK or PRACK is not received for these responses in time, the BTS 10200 will retransmit the response using the hostname in the top-most Via header. The diagram below illustrates an example of server groups provisioning for these response retransmissions. In this example, all 4 proxies load share the retransmissions by provisioning each proxy with equal weight and priority providing an even distribution of retransmissions across them. In this case, only one server group is required. The server group contains four SIP elements one for each proxy. Links to these SIP elements are provisioned with equal priority and weight.

Prior to sending a response re-transmission, a SIP element is chosen randomly from the set of 4 SIP elements, and the response is sent to the proxy representing that SIP element. If there is no PRACK or ACK received in time, the next SIP element is chosen again from the set of 4 SIP elements. This means the next SIP element chosen could be the same as the previous SIP element since blacklisting of SIP elements does not occur in this case. Since the response is retransmitted evenly across the proxy farm, this example would be typical for a proxy farm composed of transaction stateless proxies.

In order for server groups to work in this example, the hostname in the top-most Via header sent in the initial INVITE request by the proxies must match the server group name provisioned on the BTS 10200. The name must be an FQDN format without a port specified. Therefore, each proxy must be configured to send a top-most Via header with a host name of PROXY-FARM-RESP.

The load sharing and redundancy model for retransmissions to the proxy farm (shown below) is different than the model used for BTS 10200 SIP calls to the proxy farm. This need not be the case. If this load sharing model applied as well for initial INVITE requests, the BTS 10200 SIP trunk towards the proxy farm could be provisioned with the server group name PROXY-FARM-RESP in the SIP-SERVER-GROUP-ID field of the SIP trunk group defined to route SIP calls to the proxy farm.

Figure 3-17 Example of Server Groups for Response Transmissions to a Proxy Farm

Limitations on SIP Server Groups

This section lists limitations. These are conditions for which the feature is not designed to work, or for which the feature operation can be affected by special situations.

Server Groups and CANCEL/ACK Messages

Server groups are not used when the BTS 10200 SIP interface is sending a CANCEL and sending ACK for a failed response to initial INVITE or REINVITE. The CANCEL and ACK request are sent using the properties of the SIP element used for the initial INVITE request.

Server Group Provisioning Limits

There is no provisioning limit on the depth of a server group tree on the BTS 10200. Internally the BTS 10200 will only recognize a tree depth of four server groups or elements. Any links defined beyond the fourth level are ignored as if no links were provisioned.

The BTS 10200 provisioning system imposes a limit on how many child server groups or SIP elements can be provisioned under any one server group. This limit is 10.


Caution There are no rules against provisioning a server group tree with links that define a loop in which case, the tree depth is infinite. However, we strongly recommend that you not provision any loops, because it may cause unexpected behaviors.

Server Groups and SIP Element TSAP-ADDR Provisioning

It is recommended that the TSAP-ADDR field of the SIP element record be provisioned with an explicit IP address format when the element is provisioned for use by a server group. This avoids DNS lookups which is one of the benefits of using the server groups feature.

If the SIP element is provisioned with an FQDN, a DNS lookup will be performed by the BTS 10200 SIP interface. If DNS is used with server groups, only A-record resolution is available. It is recommended the FQDN resolve to a single IP address. An FQDN resolving to multiple IP addresses is not recommended as these additional IP addresses will not be considered in some cases. The FQDN may be provisioned with the optional port postfix.

SIP elements provisioned for use by a server group do not support the SRV feature. This feature should be disabled on the SIP element. If enabled, the feature is ignored internally and an informational event is provided to the administrator.

Server Groups and Call Redirection

When the BTS 10200 receives the contact header from the 3XX class redirection response to perform a call redirection, it decides how redirection is done based on the number and host name in the contact's SIP URL. If the host name field of the redirection contact matches the provisioned TSAP address of a SIP trunk, the BTS 10200 redirects the call out this trunk without using the routing system. The number in the 3XX contact is mapped to the called party number in the Request URI of the redirected INVITE.

A SIP trunk provisioned for server groups does not have its TSAP address field populated. Therefore, these SIP trunks will not be considered when the call redirection feature searches for a match of 3XX contact hostname to TSAP address for call redirection out a SIP trunk.

Server Groups and Call Transfer

The BTS 10200 SIP interface will perform call transfer when the SIP REFER request is received mid-call. The BTS 10200 SIP interface decides how call transfer is done based on the number and host name of the SIP URL of the Refer-To header. If the host name field of the URL matches the provisioned TSAP address of a SIP trunk, the BTS 10200 transfers the call out this trunk without using the number-based routing system.

A SIP trunk provisioned for server groups does not have its TSAP address field populated. Therefore, these SIP trunks will not be considered when the call transfer feature searches for a match of Refer-TO URL hostname to TSAP address for transfer out a SIP trunk.

Server Groups and Expires Header

The BTS 10200 SIP interface may be provisioned to add an Expires header with a provisioned duration to the initial INVITE request sent to indicate the maximum limit of time for call setup.

When the INVITE request incurs a timeout or a 5XX response with failover policy, server groups may advance to the next SIP element and resubmit the INVITE request. When the next INVITE request is resubmitted, if the Expires header is provisioned, the call setup duration limit is reset to the value provisioned for the Expires header. This reset is done for each INVITE request resubmission. In this case, the application layer will be subjected to call setup times that exceed the time provisioned for the Expires header.

Server Groups and Status Monitoring

We recommend that you leave status monitoring enabled on SIP elements when used for server groups. This allows a SIP element to be placed operationally out of service on a SIP request timeout. In this case, subsequent SIP requests and SIP calls avoid selecting this SIP element until the element is determined to be back in service. For more information on status monitoring, see the "SIP Status Monitoring and SIP Element Audit" section.

Provisioning SIP Server Groups

This section explains how to do the following:

Provisioning a SIP Trunk Group without Server Groups

Provisioning a SIP Trunk Group with Server Groups


Note For complete CLI information, see the Cisco BTS 10200 Softswitch Command Line Interface Reference Guide.


Provisioning a SIP Trunk Group without Server Groups

This section explains the steps required to provision a SIP TG without server groups.


Step 1 Add the TG profile.

add softsw-tg-profile id=SS_PRO166; protocol-type=SIP;
 
   

Step 2 Add the SIP element.

add sip-element tsap-addr=172.16.140.213:10605;
 
   

Step 3 Add the TG.

add trunk-grp id=166; tg-type=softsw; softsw-tsap-addr=172.16.140.213:10605; 
dial-plan-id=BASIC; tg-profile-id=SS_PRO166; call-agent-id=CA146; pop-id=1;
 
   

Provisioning a SIP Trunk Group with Server Groups

This section explains the steps required to provision a SIP TG with server groups.

In this example, the server group provisioning applies to Figure 9: "Server Groups for SIP calls to a Proxy Farm". In this example, a server group named PROXY-FARM contains a server group named PRIMARY and the SIP element to PROXY4. The PRIMARY server group contains three SIP elements to the three other proxies in the farm. Additional provisioning below shows how a server group can be provisioned for SIP element advance within the same server group when receiving a 503 response. In this case the SIP-SG-FAILOVER-POLICY table is used.


Step 1 Add the TG profile.

add softsw-tg-profile id=SS_PRO167; protocol-type=SIP;
 
   

Step 2 Add the SIP elements.

add sip-element tsap-addr=192.168.30.1;
add sip-element tsap-addr=192.168.30.2;
add sip-element tsap-addr=192.168.30.3;
add sip-element tsap-addr=192.168.30.4;
 
   

Step 3 Add the SIP server group for the primary SIP server group and for the proxy farm.

add sip-server-group id=PRIMARY; failover-policy-on-timeout=server-group;
 
   
add sip-server-group id=PROXY-FARM; failover-policy-on-timeout=alternate-element;
 
   

Step 4 Add the SIP server group elements for the primary SIP server and for the proxy farm.

add sip-sg-element id=PROXY-FARM; row-id=1; sip-server-group-id=PRIMARY; p=1; wt=1;
 
   
add sip-sg-element id=PROXY-FARM; row-id=2; tsap-addr=192.168.30.30.4; p=2; wt=1;
 
   
add sip-sg-element id=PRIMARY; row-id=1; tsap-addr=192.168.30.1; p=1; wt=1;
add sip-sg-element id=PRIMARY; row-id=2; tsap-addr=192.168.30.2; p=1; wt=1;
add sip-sg-element id=PRIMARY; row-id=3; tsap-addr=192.168.30.3; p=1; wt=1;
 
   

Note For a given sip-sg-element id, the row-id must be unique, but it has no effect on element selection.


Step 5 Add the TG for the proxy farm.

add trunk-grp ID=167; tg-type=softsw; sip-server-group-id=PROXY-FARM;
dial-plan-id=BASIC_DPP; tg-profile-id=SS_PRO167; call-agent-id=CA146; pop-id=1;
 
   

Step 6 Add the failover policy for the proxy farm.

add sip-sg-failover-policy id=PROXY-FARM; status-code=503; action=alternate-element;
 
   
add sip-sg-failover-policy id=PRIMARY; status-code=503; action=alternate-element;
 
   

Troubleshooting SIP Server Groups

Use the information in this section to help with troubleshooting procedures.

The specific fields for each signaling event and alarm are listed in the Cisco BTS 10200 Softswitch Troubleshooting Guide.

Signaling Event 168

The signaling event 168 is raised to warn network administrators if any server group provisioned administratively in-service, has no links (SIP_SG_ELEMENTS) provisioned to other server groups or SIP elements. A partial provisioning warning is issued for that server group at the time it is provisioned. This event will not occur if a server group is provisioned with links but are unavailable because the provisioning limit of a server group tree depth was reached.

Signaling Event 169

The signaling event 169 is raised to inform a network administrator that a SIP element has been associated with a server group and is available for use but provisioned with DNS-SRV enabled. The DNS-SRV feature is not available for a SIP element when it is provisioned under a server group. If this occurs, the BTS 10200 ignores this feature on the SIP element and continues operation as if it was not set. The SRV feature should be turned off to avoid this informational event. The DNS-SRV feature is supported on a SIP element when it is provisioned directly on a SIP trunk using the TSAP-ADDR field of the trunk.