Guest

Cisco SIP Proxy Server

Release Notes for the Cisco SIP Proxy Server Version 2.2

Table Of Contents

Release Notes for the Cisco SIP Proxy Server (SPS) Version 2.2

Contents

Related Documentation

Recommended Platforms

Cisco SPS Version 2.2 Performance

New and Changed Information

New Hardware Features in Cisco SIP Proxy Server, Version 2.2

New Software Features in Cisco SIP Proxy Server, Version 2.2

Functional Enhancements for Cisco SIP Proxy Server, Version 2.2

Administrative Enhancements for Cisco SIP Proxy Server, Version 2.2

Caveats in this Release

Open Caveats—Cisco SIP Proxy Server, Version 2.2

Resolved Caveats—Cisco SIP Proxy Server, Version 2.2

Obtaining Documentation

World Wide Web

Documentation CD-ROM

Ordering Documentation

Documentation Feedback

Obtaining Technical Assistance

Cisco.com

Technical Assistance Center

Cisco TAC Web Site

Cisco TAC Escalation Center


Release Notes for the Cisco SIP Proxy Server (SPS) Version 2.2


August 30, 2004

Cisco SIP Proxy Server Version 2.2

OL-5875-01 Rev. 5

This document lists the known problems in the Cisco SIP Proxy Server (SPS) Version 2.2 and contains information about the Cisco SPS that was not included in the Cisco SIP Proxy Server Administrator Guide.

Contents

These release notes describe the following topics:

Related Documentation

Recommended Platforms

New and Changed Information

Caveats in this Release

Obtaining Documentation

Obtaining Technical Assistance

Related Documentation

In addition to this release note, use the following publications to learn how to install and use the Cisco SIP Proxy Server:

Cisco SIP Proxy Server CD Installation Guide Version 2.2 —Describes how to install the Cisco SPS software on a Sparc-based server running Solaris 2.6 or later Operating Environment and on an Intel Pentium III-based server running Linux Kernel 2.2.13 or later. This document ships with the product CD and is available online at:
http://www.cisco.com/univercd/cc/td/doc/product/voice/sipproxy/cdinst/flaskin.htm

Cisco SIP Proxy Server Administrator Guide, Version 2.2 —Describes how to configure a Cisco SIP proxy server (Cisco SPS) to be operational in a voice-over-IP (VoIP) network. This document ships with the product CD and is available online at:
http://www.cisco.com/univercd/cc/td/doc/product/voice/sipproxy/admingd/ver2_2/index.htm

Recommended Platforms

The following platforms are the recommended platforms on which to run the Cisco SPS:

Linux

IBM xSeries 335: 2 x 2.0 GHz or higher

Memory - 1 GB or more

Disk - 40 GB or larger

OS Version - RedHat Enterprise Linux 3.0, Versions AS, ES, or WS

Solaris High End

Netra 20

Memory - 1 GB or more

Disk - 40 GB or larger

OS Version - Solaris 8 (2.8 kernel)

Solaris Low End

SunFire V120

Memory - 512 MB or more

Disk - 40 GB or higher

OS Version - Solaris 8 (2.8 kernel)


Note Cisco SPS requires the use of one of the operating systems listed above. Cisco SPS will not run on operating systems other than those listed.


The per platform performance summary may be used to help determine which platform is best suited for your needs.

Cisco SPS Version 2.2 Performance

Cisco SPS Version 2.2 performance is shown in Table 1.

Table 1 Cisco SPS Release 2.2 Performance

Platform
CPU
Registers / Sec
Calls / Sec
Maximum Registered Users1
UDP
TCP
UDP
TCP

Sun Fire V120

1 x 550 MHz

55

8

90

45

10,000

Netra 20

2 x 900 MHz

67

20

375

125

20,000

IBM xSeries 335

2 x 2.0 GHz

67

40

1000

250

20,000

1 Based upon 20,000 users, at 10 cps, and on UDP only, using the performance factors in the following list.


Table 2 lists the current limitations of SPS 2.2 functionality.

Table 2 Current Limitations of SPS 2.2 Functionality

Object
Value

Maximum Routes

20k

Maximum Subscribers

20k1

Maximum Registrations

Refer to Table 1.

Maximum Forks (Contacts per AOR)

6

Maximum Next Hops per Dial Pattern

20

Maximum RADIUS preauth servers

10

Maximum RADIUS accounting/authentication servers

2

Maximum Virtual Proxy Domains

10 (registration, authentication, and accounting per domain, cannot do number expansion or routing per domain)

Maximum GK's per cluster

5

Maximum servers per farm

2

Maximum MySQL dbs

2

Maximum persistant TCP connections

1000

Maximum persistant TLS connections

1000

Maximum external ENUM servers

2

Maximum number of Sipd's on one machine tested

20

1 See Table 1 for hardware specific numbers


Up to 1000 Transmission Control Protocol (TCP) Connections per Server

Performance assumptions

Redundant servers

Record route used

Maximum number of dynamic registrations

TCP connections not reused. (Reuse will improve performance.)

30% overhead allowed for other features

For Solaris servers with concurrent registrations and calls, a conservative engineering guideline is:

X = (expected peak registers per second (rps) / value in table) * 100%

Y = (expected peak calls per second (cps) / value in table) * 100%

X + Y <= 80%

Linux servers can sustain peak rps and cps concurrently

New and Changed Information

The following sections list the new hardware and software features supported by the Cisco SIP Proxy Server, Version 2.2.

New Hardware Features in Cisco SIP Proxy Server, Version 2.2

Cisco SPS is software based and does not support hardware features.

New Software Features in Cisco SIP Proxy Server, Version 2.2

This section documents new software features supported by the Cisco SIP Proxy Server, Version 2.2.

Functional Enhancements for Cisco SIP Proxy Server, Version 2.2

Upgrade support Linux OS to Red Hat Enterprise Linux 3.0.

Improved privacy

Configurably add and remove P-Asserted-Identity headers to authenticated INVITE requests received from or sent to trusted or untrusted addresses.

Configurably add and remove Remote-Party-ID headers to authenticated INVITE requests received from or sent to trusted or untrusted addresses.

Diversion headers

Configurably validate and rewrite Diversion headers in 3xx Redirection responses received prior to sending the corresponding INVITE requests.

Configurably remove Diversion headers from INVITE requests received from untrusted addresses

Configurably, per subscriber, add "privacy=full" token in locally generated Diversion headers in call forwarding scenarios, and anonymize such Diversion headers before sending to untrusted addresses.

Rewrite Diversion headers before sending to untrusted addresses.

Support additional wildcard usage in static routes.

Support embedded '*' characters in static routes

Handle wildcard routes as a single route rather than expanding as a set of routes with variable number of trailing '.' characters.

TLS security patch.

MySQL upgrade to 3.23.58 incorporating latest security patches.

Administrative Enhancements for Cisco SIP Proxy Server, Version 2.2

Provide a "Privacy" page in graphical user interface (GUI) to support configuration of CLIR features for the proxy.

Modify the Access Control page to add information for Trust Lists.

Subscriber database and GUI support for CLIR field per subscriber.

Represent registration expiration time as a date, and color red if registration has expired.

Simplified log file rotation configuration with checkbox enable/disable and menu for rotation units.

Caveats in this Release

Open Caveats—Cisco SIP Proxy Server, Version 2.2

This section documents possible unexpected behavior by the Cisco SIP Proxy Server, Version 2.2.

Table 3 Open Caveats for the Cisco SIP Proxy Server, Version 2.2 

DDTS ID Number
Description

CSCdr26023

Comments not supported in header value

Problem Description: SPS doesn't support comments embedded in sip header. However, from SIP RFC:

Comments can be included in some SIP header fields by surrounding the comment text with parentheses. Comments are only allowed in fields containing "comment" as part of their field value definition. In all other fields, parentheses are considered part of the field value.

comment  =  LPAREN *(ctext / quoted-pair / comment) RPAREN
      ctext    =  %x21-27 / %x2A-5B / %x5D-7E / UTF8-NONASCII
                  / LWS

ctext includes all chars except left and right parentheses and backslash. A string of text is parsed as a single word if it is quoted using double-quote marks. In quoted strings, quotation marks (") and backslashes (\) need to be escaped.

quoted-string  =  SWS DQUOTE *(qdtext / quoted-pair ) DQUOTE
      qdtext         =  LWS / %x21 / %x23-5B / %x5D-7E
                        / UTF8-NONASCII

Examples:

      Retry-After: 120 (I'm in a meeting)

Recommended Action: There is no workaround.

CSCdr26025

Headers inside SIP URL are not supported

Problem Description: SPS doesn't support headers in sip URL. From RFC 3261, headers are an option component of a SIP URI.:

Headers: Header fields to be included in a request constructed from the URI.

Headers fields in the SIP request can be specified with the "?" mechanism within a URI. The header names and values are encoded in ampersand separated hname = hvalue pairs. The special hname "body" indicates that the associated hvalue is the message-body of the SIP request.

SIP-URI          =  "sip:" [ userinfo ] hostport
                    uri-parameters [ headers ]
SIPS-URI         =  "sips:" [ userinfo ] hostport
                    uri-parameters [ headers ]

headers         =  "?" header *( "&" header )
header          =  hname "=" hvalue
hname           =  1*( hnv-unreserved / unreserved / escaped )
hvalue          =  *( hnv-unreserved / unreserved / escaped )
hnv-unreserved  =  "[" / "]" / "/" / "?" / ":" / "+" / "$"

Example:

sip:user@host?Subject=foo&Call-Info=<http://www.foo.com>

Recommended Action: There is no workaround.

CSCdr61706

shmem segment tmpnam() files are not deleted

Problem Description: Each time the server is started a file named "fileXXXXX.sem", where XXXXX is a random string is created in the "/tmp" directory. This causes no operational problems but the administrator may want to occasionally delete them to eliminate clutter.

Recommended Action: There is no workaround.

CSCdr80773

misconfiguration of nameserver in /etc/resolve.conf delays startup

Problem Description: The proxy server might take up to 5 minutes to start if the nameserver specified in /etc/resolv.conf contains an invalid address. Make sure /etc/resolv.conf contains correct nameserver address before starting the server process.

Recommended Action: There is no workaround.

CSCds20027

ENUM NAPTR Preference field treated different than standard

Problem Description: ENUM NAPTR values are treated the same way we treat SRV records. This is not a violation of ENUM, but is a behavior that is required to make the proxy server have the exact same behavior as all other modules that select random contacts.

Recommended Action: There is no workaround.

CSCds42804

CSPS: Bug in tcb delete/refcount interaction

Problem Description: The process that handles the age-off timer for this TCB will hang until re-started by the parent process. There is no way to identify a process in this state.

Conditions: This problem occurs when a sipd worker process with a TCB lock crashes after the age-off timer for that TCB has been started. This would likely occur only during the handling of re-transmitted requests or responses.

It should be noted that this error has never been observed, but it has been identified as being possible.

Recommended Action: There is no workaround.

CSCds50145

CSPS: Duplicate Contacts in first REGISTER for a user undetected

Problem Description: This problem will occur only if the first REGISTER for a user/device has more than 1 identical Contact header. For example a user abc sends the first REGISTER with duplicate Contacts:

REGISTER sip:domain.com SIP/2.0
To: abc@domain.com
Contact: sip:abc@machine1.domain.com:5055
Contact: sip:abc@machine1.domain.com:5055

Both Contacts will be added, rather than one.However, when handling a call for this user, the proxy will not send duplicate messages.

On the other hand, if 2 different REGISTER messages are received by the proxy:

REGISTER sip:domain.com SIP/2.0
To: abc@domain.com
CSeq: 1 REGISTER
Contact: <sip:abc@machine1.domain.com:5055>;expires=3600
REGISTER sip:domain.com SIP/2.0
To: abc@domain.com
CSeq: 2 REGISTER
Contact: <sip:abc@machine1.domain.com:5055>;expires=60

The second will correctly update the first Contact.

Recommended Action: The simple workaround is to not send duplicate Contacts in the very first REGISTER for a user. Even, if some user agent does, this bug will not hurt or affect call forwarding to that user.

CSCds52504

misleading Syntax error message when sipd.conf is wrong

Problem Description: When there is a syntax error in the sipd.conf config file, the line number is reported incorrectly. It always shows the last line of the config file instead of the line number where the error actually occurred. An example of such a config error would be an illegal value given for a valid directive.

A related problem is that only the first syntax error in the configuration file is reported.

Recommended Action: There is no workaround other than correcting the misconfiguration.

CSCds53849

CSPS: sipdctl configtest does not detect all syntax errors

Problem Description: The "sipdctl configtest" command does not accurately detect all syntax errors. Also an incorrect line number is reported when a syntax error is detected. Possible errors that are not detected include illegal values given in non-boolean directives.

Conditions: Run "./sipdctl configtest" with an invalid sipd.conf file.

Recommended Action: The sipd.conf configuration file can only be verified by successfully loading the server.

CSCds56981

CSPS: Start Sip_Services after a Farm DBs Old entries are deleted

Problem Description: If the proxy server has been down for more than the Cisco_Routing_Max_DB_Age_on_Boot or Cisco_Registry_Max_DB_Age_On_Boot, the ServerRoot/logs/*.db files will be removed/cleaned. Otherwise, these values might actually get re-used if a farm member tries to sync.

Recommended Action: There is no workaround.

CSCds73530

CSPS: sipd.conf include directive does not work for some stanza

Problem Description: The block configuration directives <StaticRoute ID> and <StaticRegistry ID> can not be placed in a separate file and included in the sipd configuration file.

Recommended Action: There is no workaround. StaticRoutes and StaticRegistries can only be directly placed within the main sipd.conf configuration file.

CSCds75715

CSPS: sipdctl start: sipd started message is misleading

Problem Description: When starting SPS from the graphical user interface (GUI) or command line, it is possible to see "sipdctl start: sipd started" when in reality sipd was not able to start correctly.

Conditions: This can happen for a number of reasons, including a failure to allocate enough shared memory or corrupted databases.

Recommended Action: Manually check that sipd started successfully by looking at the error_log file and/or running the command "ps -ef | grep sps" to make sure there are the correct number of sipd processes running (the default is 7).

CSCds82140

CSPS: Bypassing sipdctl can cause multiple sets of sipd process

Problem Description: When an attempt is made to bypass the sipdctl script and start sipd directly, the following situation can occur:

There is a previously running copy of sipd and another copy of sipd will be started. This new set of sipd processes will consume unnecessary memory and can potentially destabilize the original set of sipd running on the system.

Recommended Action: The simple workaround is to never start sipd directly, but always use sipdctl start/stop etc

CSCdt35155

CSPS: External entity failure causes reduced performance

Description: Server child processes have no means to communicate failures of external entities to the other child processes.

Conditions: A failure of an external entity (e.g., RADIUS, DNS, subscriber db), is not communicated to all child processes.

Problem Description: Server performance can drop significantly, depending on the number of child processes executing.

Recommended Action: Reducing the number of child processes is the only was to alleviate this problem.

CSCdt35294

Add Registry/Routing Code changes to support TEL URL

Problem Description: Proxy parses tel Urls completely based on the rules specified in RFC 2806. At this point, there are no routing changes based on tel: url additional fields.

Conditions: For example, in "tel:1111;phone-context=919;phone-context=456", only 1111 is used for routing the call like in sip: url, not the additional fields. And tel url is transformed to a sip: Url as follows:

sip:1111@whatever-proxy.com SIP/2.0
RecordRoute:<sip:1111@whatever-proxy.com;parameters including phone-context>

Recommended Action: At this point, there is no intelligence to change the number from "tel:555XXXX;phone-context=919" to "tel:+1-919-555-XXXX".

CSCdt50814

CSPS: Log file check and verification needed for proxy server

Problem Description: When the CSPS is started, it writes the logs to the error_log and access_log files in the logs subdirectory by default. The log files can be deleted manually while the server is still running, the CSPS will continue to run but no logs will be logged due to the deletion of the log files.

Recommended Action: After the deletion of the log files, one can (graceful) restart the server so new log files can be created and server can then continue the logging process.

CSCdt65349

sipdctl & sipd should use relative paths for conf, logs & libraries

Problem Description: The sipdctl tool contains absolute paths to various file locations such as sipd.pid, Sip_Services.pid, sip_registry.conf and sip_routing.conf. They will need to be manually modified if different file locations will be used. Also, the sipd process looks for the sipd.conf file at the pre-configured path ServerRoot/conf/sipd.conf.

Recommended Action: To use a different configuration file, one can use the "-f" switch to force sipd to look for a different configuration file. For example, to force sipd to read in the sipd.conf file from the user's home directory.

sipd -f ~/sipd.conf

CSCdt87934

CSPS: Proxy will crash if SharedMemorySize too little for call rate

Problem Description: The CSPS proxy can crash if it is not configured with enough shared memory to handle the call rate.

Recommended Action: This problem can be resolved by increasing the value of SharedMemorySize directive in sipd.conf file. To configure the total usable shared memory segment size on Linux or Solaris platform, please follow the instructions in the README.cisco file.

CSCdu00398

User agents on same box/different port disallowed

Problem Description: Proxy will not terminate calls to a user agent running on the same box but different port.

Conditions: Setup a testcase when there is another SIP entity running on same box where SIP proxy is running (on different port), and try to make a call that has that SIP entity in the call path.

Recommended Action: User agents should be running on a different machine than the proxy.

CSCdu05953

Static routes need to have unique tags for import/export

Problem Description: When more than one route is assigned the same tag/number, only the first route is used. Subsequent routes with the same tag/number will be ignored. An error message will be printed only if DebugFlag directive under Cisco_Routing module is On.

For example the following 2 routes have a tag value of 10:

<StaticRoute 10>
Static_Route_DestinationPattern        919.......
Static_Route_Type                      PHONE
Static_Route_NextHop                   tisu-view1.cisco.com
Static_Route_NextHopPort               5060
Static_Route_TransportProtocol         UDP
Static_Route_Priority                  1
Static_Route_Weight                    5
Static_Route_Delete_or_Add             ADD
</StaticRoute>

<StaticRoute 10>
Static_Route_DestinationPattern        919.......
Static_Route_Type                      PHONE
Static_Route_NextHop                   grigio.cisco.com
Static_Route_NextHopPort               5060
Static_Route_TransportProtocol         UDP
Static_Route_Priority                  1
Static_Route_Weight                    5
Static_Route_Delete_or_Add             ADD
</StaticRoute>

The second route (with Static_Route_NextHop value of grigio.cisco.com) will be ignored.

Recommended Action: The sysadmin_csps_regroute tool and/or provisioning system graphical user interface (GUI) can be used to add/update routes and the administrator does not need to enter route tags. See the admin guide for more details on the sysadmin_csps_regroute tool and provisioning system GUI.

CSCdu12370

CSPS: Sip_services get killed when sysadmin_csps_regroute exits

Problem Description: When starting sysadmin_csps_regroute and sipd with the following sequence, the Sip_Services daemon can be killed while the CSPS is still running. However, the Sip_Services daemon will be started again once the CSPS discovers that the process does not exist.

1. Start sysadmin_csps_regroute before starting sipd. (Note: Starting Sip Services ... message after the command is issued).

> ./sysadmin_csps_regroute
Starting Sip Services . Success


  Cisco SIP Proxy Server Command Line Interface V1.112
--------------------------------------------------------
            Main Menu
            Using Registry Database
--------------------------------------------------------
Choose an option below: (Items in <> are required input.)

<S> Select registry (default) or routing database
<D> query, add to, or delete from the Database
<I> Import a configuration <file> with route/registry entries
<X> eXport current database entries to a configuration <file>
<Q> or ^C (exit)

2.  >  ps -eaf | grep -i sip
lab      27760     1  0 15:12 pts/0    00:00:00
/usr/local/sip/bin/Sip_Services

3. > ../bin/sipdctl start
Version of CSPS        : 1.07 - Experimental Version
Version in Config file : 1.07 - Experimental Version
../bin/sipdctl start: sipd started

4. > ps -eaf | grep -i sip
lab      27760     1  0 15:12 pts/0    00:00:00
/usr/local/sip/bin/Sip_Services
lab      27767     1  2 15:16 ?        00:00:00 /usr/local/sip/bin/sipd
lab      27768 27767  0 15:16 ?        00:00:00 /usr/local/sip/bin/sipd
lab      27769 27767  0 15:16 ?        00:00:00 /usr/local/sip/bin/sipd
lab      27770 27767  0 15:16 ?        00:00:00 /usr/local/sip/bin/sipd
lab      27771 27767  0 15:16 ?        00:00:00 /usr/local/sip/bin/sipd
lab      27772 27767  0 15:16 ?        00:00:00 /usr/local/sip/bin/sipd

5. Stop sysadmin_csps_regroute

6. > ps -eaf | grep -i sip
lab      27767     1  0 15:16 ?        00:00:00 /usr/local/sip/bin/sipd
lab      27768 27767  0 15:16 ?        00:00:00 /usr/local/sip/bin/sipd
lab      27769 27767  0 15:16 ?        00:00:00 /usr/local/sip/bin/sipd
lab      27770 27767  0 15:16 ?        00:00:00 /usr/local/sip/bin/sipd
lab      27771 27767  0 15:16 ?        00:00:00 /usr/local/sip/bin/sipd
lab      27772 27767  0 15:16 ?        00:00:00 /usr/local/sip/bin/sipd

Sip_Services is gone.

CSCdu12376

access_log and error_log file size limit

Conditions: When the error_log or the access_log file size grows beyond 2147483647 bytes (~2.1GB), CSPS will stop logging to the file.

Recommended Action: One can use log rotation to avoid this problem. One can also specify size thresholds in CIAgent (default is 5MB) which if when crossed result in the sending of an SNMP trap.

CSCdu12594

SPS stops writing error_log if disk is at 100% of capacity

Problem Description: Cannot write to the error_log or access_log

Conditions This happens if the file system runs out of disk space while writing to the log file. Even if disk space is later freed and made available, the error_log will remain unwritable.

Recommended Action: The only workaround is to insure that the file system always has free disk space. This may be done by enabling rotate logs and operational procedures that insure some disk space is always available. Another thing to help with this is to set size thresholds using CIAgent (defaults are 5MB). If the thresholds are crossed, an SNMP trap is generated.

CSCdu65165

CSPS: Solaris pkgadd prompts ?, ??, q

Just press 'enter' key to install all.

CSCdu69703

CSPS: Accounting with XACCT Radius not working properly

Problem Description: If accounting is enabled on CSPS, the session-id for START and STOP records is populated with SIP Call-Id, which is needed so that it is possible for the Radius/billing server to correlate the STOP with the appropriate START. For accounting to work correctly, the back end Radius/billing server must be able to accept and correlate START/STOP records with duplicate session-id values. In the case of the XACCT Radius server, XACCT does not respond at all to records with duplicate session-ids. As a result, CSPS blocks waiting for a response. Eventually, CSPS times out and continues processing the call; however, if enough concurrent calls are placed, it is possible that all of CSPS's processes will be blocked waiting for Radius responses and call processing will effectively stop.

Conditions: Accounting is enabled and the backend Radius server does not respond to RADIUS request records with duplicate session-ids.

Recommended Action: Disable accounting or use a backend Radius server, such as Livingston, which supports the reception of multiple Radius records with the same session-id.

CSCdu72935

CSPS: Accouting with Cisco Access Registrar conflicts

Problem Description: When CSPS interoperates with Cisco Access Register (CAR v1.7) server, error messages similar to the following can seen in the CAR trace:

07/16/2001 15:13:47: Log: SessionManager session-mgr-1 was unable to create/acquire a 
Session because the request packet did not contain a NAS and/or NAS-Port attribute. 
These are required for Session Management.
07/16/2001 15:13:47: P286: Dropping packet because we did not acquire or create the 
session 
This will cause the Radius packets to be dropped and the CSPS will timed-out waiting for 
the response back from the CAR. 

Recommended Action: The DefaultSessionManager parameter can be set to "" in the CAR server to workaround this problem. i.e.

> cd Radius
> set DefaultSessionManager ""

CSCdv34778

CSPS: CFNA timers not reset if BYE sent instead of CANCEL

Problem Description: When a call is made to a IP phone registered to CSPS which has a Call

Forward No Answer (CFNA) entry in MySQL, if the caller hangs up on the call during the ringing phase before it is answered, the behavior of CSPS is dependent on the IP phone sending a CANCEL before/instead of sending a BYE.

1. If CANCEL is sent when the caller hangs up, the call is terminated without any problems.

2. If BYE is sent instead of CANCEL, CSPS keeps the CFNA timer running and this leads to an INVITE being sent by CSPS to wherever the user has CFNA configured after the timer expires. This may lead to a phone ringing suddenly out of the blue when no call is being made.

Conditions: This is an issue only in the following circumstances:

1. CFNA is being used

2. The SIP client originating the call does not send a CANCEL when aborting an attempted call, but sends only a BYE instead.

Recommended Action: There is no workaround.

CSCdv54154

CSPS: Proxy returns 400 Req-URL is bad when rec tel url w/cic parm

Problem Description: When handling a SIP INVITE with a tel URL containing the cic parameter, the proxy returns "SIP/2.0 400 Request-URI is bad". If should convert the tel URL to its equivalent sip URL.

For example, the following INVITE:

INVITE tel:+19195550001;cic=1234 SIP/2.0 

results in a 400 response from the proxy.

Conditions: This problem occurs whenever the proxy receives a tel URL containing a parameter it does not explicitly support.

Recommended Action: There is no workaround.

CSCdw58265

CSPS: segfault in Sip_Services/ACE with CSS and RegFarm

Problem Description: When Sip_Services is first started using sipdctl start, it dumps core and then starts correctly. This happens on Linux only, and it has no effect on functionality. The only oddity is a core file is left over. On Solaris, Sip_Services starts correctly the first time.

Conditions: This happens on Linux when using a virtual IP or hostname as the ServerName in combination with having registry or route farming enabled. This never happens on Solaris.

Recommended Action: There is no workaround.

CSCdw94123

CSPS: Cannot rename MySQL db fields if using provisioning

Problem Description: In sipd.conf, it is possible to re-map the MySQL subscriber database field names from the default names used by the MySQL installation script to new values which may be preferred. One reason to do this is perhaps because the customer already has an existing MySQL subscriber database and wants CSPS to use it. In this case, CSPS will read and use the new field names specified in sipd.conf.

The problem is that if the customer is using provisioning, the provisioning graphical user interface (GUI) will not read sipd.conf, nor will it use the new field names. Rather, it will ignore any new field names and use the default names which match those used by the MySQL install script.

Conditions: This is an issue only if the customer is using CSPS with Provisioning and has an existing MySQL database which they wish to use rather than using the MySQL installation script to create a new database. If the existing database has different names for the MySQL table fields than those used by the Provisioning system, new subscriber information entered using the provisioning GUI may not be accessible by CSPS.

Recommended Action: There is no workaround.

CSCdx61275

CSPS: SNMP: Error message in csps_ciagent_install

Problem Description: When installing ciagent, error messages are displayed

setany $Version $Agent $User \ smLaunchControl.$LOwner.$LName abort Error code set in 
packet - INCONSISTENT_VALUE_ERROR: 1. setany $Version $Agent $User \ 
smScriptAdminStatus.$SOwner.$SName disabled Error code set in packet - 
INCONSISTENT_VALUE_ERROR: 1. setany $Version $Agent $User \ 
smScriptRowStatus.$SOwner.$SName destroy smScriptRowStatus.1.65.1.66 = destroy(6) 

These error messages logged from running the script "smPopScript" when installing CIAgent for the first time on a system are benign and are due to the fact that it is trying to remove an item that does not exist in the script MIB table. As far as all the other subsequent "setany" commands are executed successfully, the "smPopScript" is considered to finish its job well.

Recommended Action: There is no workaround.

CSCdx66179

CSPS: SNMP: sappagt is taking 100% cpu for a few minutes at startup

Problem Description: sappagt is taking 100% CPU when starting ciagent. This is fine, since we don't plan to restart ciagent frequently. Response from vendor: "Both the sappagt subagent and the hostagt subagent show high CPU utilization upon startup because they both must retrieve a large amount of information from the system, to initialize the tables they support. Once these tables are initialized, the utilization will go down. This is not abnormal behavior."

Recommended Action: On a Linux machine that has a lot of packages or softwares installed, the System Applications Monitor (sappagt) may take 100% CPU for a few minutes at startup. If you think this is not acceptable, you can disable this subagent from being invoked by removing its name, sappagt, from the "ciagent" script file under /usr/local/ciagent directory on your Linux machine and restart ciagent.

CSCdx67593

CSPS: MySQL Suscriber table needs to be CASE SENSITIVE to USER info

Conditions: I was testing our SIP products for CASE Sensitivity to the USER portion of the SIP URI and I have noticed that the CSPS, Phones, and Gateways recognize the differences between "tdeleon" and "TDELEON". One issue that I did see was with MySQL.

Problem Description: MySQL sees "tdeleon" and "TDELEON" as the same. As a result, CSPS accesses MySQL for Authentication & Call Forwarding info for a single entry which is incorrect. And MySQL will not allow another entry.

Recommended Action: There is no workaround.

CSCdx77555

CSPS: sipd core dumps after 8+ hr of stress using TCP

Problem Description: sipd core dumps after 8+ of very high Transmission Control Protocol (TCP) traffic load

Conditions: sipd may crash after a very high TCP traffic is run for more than 8 hours, because it may run out of shared memory.

Recommended Action: Configure shared memory to high (>128M)

CSCdx78228

CSPS: TCP on solaris using too many fds for reuse=off

Problem Description: Transmission Control Protocol (TCP) calls are not accepted/connected by proxy

Conditions: When TCP services are not configured to reuse the TCP connections, the proxy can run out of file decriptors because OS may not free the file descriptors immediately. this happens when proxy is connected with other SIP entity on Solaris or Linux, however with Cisco gateways the connections are closed immediately.

Recommended Action: When configuring the system, if proxy is expected to connect with Solaris or Linux based SIP entities, it should be configured to reuse the TCP connections.

CSCdx83047

SNMP critagt sends trap with sipds child process id

Problem Description: The Solaris version of the critagt (Critical Applications Monitor) subagent sometimes reports critAppUp traps with one of sipd children's process id. The vendor explained that is because the critagt always try to get and monitor the first process id in the process table that matches the specified application name. However, since on Solaris the first process id that matches sipd is not always the master/parent sipd, but rather likely one of the child sipd's. We really want to monitor master sipd's status, so we want the vendor to fix/improve their handling of process ids in critagt. This doesn't seem to be a problem on Linux, since the first process id seems always to be the master sipd's, and the traps correctly report that.

Recommended Action: There is no workaround.

CSCdx88304

CSPS: GUI does not allow input of &, >, < in any field

Problem Description: Data entered into any field through the graphical user interface (GUI) may not not contain any of the characters &, < or >. The GUI will reject any data with these characters and prompt for it to be re-input.

Recommended Action: There is no workaround.

CSCdx91876

csps does not convert a tel: url to a sip: url correctly

Problem Description: CSPS provides only limited support for the tel URL. Essentially, it translates the tel: URL into a sip: URL, then handles the message based on the sip: URL. The translation performed is as follows:

tel:<global-phone-number> SIP/2.0 is converted to
sip:<global-phone-number>@<ProxyDomain>;user=phone SIP/2.0

If there are additional parameters in the tel URL, they are not handled correctly.

For example:

tel:7671234;phone-context=408;Subject=Hello SIP/2.0

CSPS converts the tel: URL to the following sip: URL:

sip:7671234@1.7.104.89:5060;user=phone;phone-context=408 SIP/2.0

The sip: URL should be:

sip:7671234;phone-context=408;user=phone SIP/2.0

Conditions: The tel to sip URL conversion will be a problem if the URL contains additional parameters other than a global phone number.

Recommended Action: There is no workaround.

CSCdx95989

CSPS: sysadmin_csps_regroute takes 97% CPU when window closed

Problem Description: Closing the window in which the sysadmin_sps_regroute is running, rather than exiting cleanly using the 'Q', 'q', or 'Ctrl-C' command, will cause the sysadmin_sps_regroute to take 97% CPU time.

Recommended Action: The workaround is to not close the window prior to exiting the tool, however, once in this state, you can stop the process with either SIGINT or SIGQUIT signal.

CSCdy01790

CSPS: CIAgent: Dr-Web on Linux Make Changes button not working

Problem Description: On Linux, when using dr-web to make changes to the critical application monitor and clicking on "Make Changes" button, sometimes the change does not take place until the user clicks on the "Reload" button on the web browser.

Recommended Action: Click on the "Reload" button on the web browser to make the changes reflected in CIAgent.

CSCdy02211

CSPS: sipd process(es) block when handling REGISTERs

Problem Description: Requests, such as REGISTERs and INVITEs, are handled by CSPS at a reduced rate or not at all.

Conditions:

1. CSPS is configured as a farm of 2 or more servers with Registry farming enabled, and the farm member processing the request is not able to connect to one or more of the other farm members.

2. The traffic levels exceed the following for an extended period of time: REGISTERs/second = 5 INVITEs/second = 50

Recommended Action: There are two possible actions:

1. Ensure the calls rates do not exceed those described above OR

2. Do not enable Registry farming

CSCdy02296

CSPS: when recovering from a split netwrok, some registrations lost

Problem Description: In the event of a split network, it is possible that each farm member will separately accept new registrations. When the networks join, a sync is performed; however, the sync is performed based which member accepted the most registrations rather than as a merge. As a result, some registrations may be lost. For example, if there are farm members P1 and P2: The registration database prior to let split contains entries for a,b,c. A network split occurs. P1 accepts new registrations for d,e,f P2 accepts new registrations for g,h The networks join. P1's view of the world is inherited by P2, so the registry is: a,b,c,d,e,f; and g,h are lost.

Conditions:

1. 1) There must be a farm of 2 or more servers with registration farming enabled.

2. Clients must be configured to load balance or failover between the servers.

3. A split network must exist for a period of time, and during that time more than one server must accept one of more registrations.

Recommended Action: Configure the servers as primary and secondary such that all clients register with the same server at any point in time. This requires that the clients do not experience the split with some seeing only the primary and some seeing only the secondary. This may or may not be possible.

CSCdy05591

CSPS: Too many open files with persistent TCP connection

Problem Description: Transmission Control Protocol (TCP) calls may fail with error message "socket: Too many open files".

Conditions: When proxy is connecting with other Solaris or Linux based SIP entities, it may run out of file descriptor even with the persistent connections. 1000 concurrent TCP connections is the supported limit.

Recommended Action: There is no workaround.

CSCdy05850

CSPS: MySQL wont install if SNMP just started

Problem Description: MySQL installation fails with the error message:

"cannot get exclusive lock on /var/lib/rpm/Packages"

Conditions: This happens when MySQL installation is started just after starting ciagent. The problem is that when ciagent starts, it gets an exclusive lock on /var/lib/rpm/Packages. MySQL installation also needs this lock, therefore MySQL installation will fail.

Recommended Action: When starting ciagent, wait for about 30s before installing MySQL.

CSCdy07416

CSPS: escaped characters in URIs are not handled

Problem Description: A customer ran into a problem with this specifically when dealing with tech prefixes. The problem was that the '#' character was inserted in the Request URI and To headers by the GW in the INVITE is sends to SPS. SPS can strip the '#' from the Request URI, but not from the To. SPS also includes the '#' in its Record-Route header. The fix is to have the GW escape the '#' as "%23" wherever it appears. Now SPS needs to be able to translate from escaped to non-escaped for the LRQ.

Currently SPS treats escaped characters within URIs no differently than any other character. It parses them fine, and is able to store them (e.g. in the registry db) and pass them along, but it doesn't convert them from escaped to non escaped when it should.

At a minimum to solve this problem, a solution is to have the GW makes code changes to escape the '#' character in all urls before sending the INVITE to the proxy. SPS will need to modify the remote access server (RAS) module to unescape the %23 before constructing the LRQ.

As for fixing this in general, it is legal for URLs to escape any characters it likes, meaning that SPS could receive %31%32%33%34 in the username which should be interpreted as "1234" for number expansion, accounting, routing, etc.

Recommended Action: There is no workaround.

CSCdy24211

core not created when run as root and changed uid on solaris

Problem Description: On Solaris, when Cisco SPS is started as root, the effective user id of the processes is changed to csps, and as such core file will does not get generated when something goes wrong. This is for security reasons.

Conditions: If Cisco SPS is started as part of the boot process for the machine, it will be started as root.

Recommended Action: If it is desired to create core files for debugging in the case something goes wrong, it is best to stop Cisco SPS, change the user to csps, and restart the server.

CSCdy26700

CSPS: Linux cant handle overload of Invites

Problem Description: No calls are processed. SPS server's CPU goes to 100% idle.

Conditions: Overload the SPS with more Invites than it can handle. This number varies depending on the release of SPS and the hardware platform. reference the Release Notes for performance numbers for each recommended platform.

Recommended Action: Perform a graceful restart on the SPS.

CSCdy29642

CSPS: Regroute cannot parse DOS formatted sipd.conf file

Problem Description: Open a valid sipd.conf file using Wordpad and save it. This will reformat it into DOS format. Try to use sysadmin_csps_regroute tool and you will get the following error:

: No such file or directory

Recommended Action: Convert sipd.conf back to UNIX format, or use the graphical user interface (GUI) to create a new sipd.conf.

CSCdy75125

CSPS: convert_mysql_db[v2] needs to be more robust

Problem Description: Upgrades work smoothly for customers who have not modified the SPS database. We are passed the SPS Version 1.X to SPS Version 2.0 upgrade time period and we have significantly improved the SPS Version 2.0to SPS Version 2.1 upgrade. We will not expend effort to improve SPS Version 1.X to SPS Version 2.0.

Recommended Action: There is no workaround.

CSCdz20402

CSPS: tcp to udp translation is not 99.999

Problem Description: The call success rate for Transmission Control Protocol (TCP) to UDP translation calls is not 99.999%

Conditions: When proxy is doing translation of transport between TCP and UDP, some of the calls may fail.

Recommended Action: There is no workaround.

CSCdz23707

CSPS: proxy retransmits non-local non-2xx over TCP

Problem Description: SPS retransmits non-local non-2xx responses over Transmission Control Protocol (TCP). According to the standards, this retransmission is not supposed to happen; however, it will not cause any problems.

Conditions: If the client on the TCP connection does not send an ACK for non-200 response, then SPS starts to retransmit the final response, similar to UDP behavior.

Recommended Action: There is no workaround., but the retransmission may be safely ignored.

CSCea58230

static routes do not support . in middle of dest pattern

Problem Description: SPS allows wildcarded digits in the destination pattern of static routes in the form of a '.' character. For example, 5... as a destination pattern means any 4-digit number beginning with a 5. However, SPS does not support wildcarded digits followed by non-wildcarded digits. For example, the following are not supported:

5..5

.555

55.5

...5

Recommended Action: There are two options:

1. use a less restrictive destination pattern which does not require embedded wildcard digits. For example, each of the problematic destination patterns above could be made less restrictive as follows:

5..5 -> 5...

.555 -> ....

55.5 -> 55..

...5 -> ....

2. use multiple more restrictive destination patterns which do not require embedded wildcarded digits. For example: .555 -> 0555, 1555, 2555, etc.

CSCea58268

regroute does not allow * in middle of destination pattern

Problem Description: sysadmin_csps_regroute does not allow a '*' character in the middle of a route destination pattern. The route is rejected as invalid.

Conditions: If trying to add a static route for a destination pattern which includes the '*' character as a valid digit (not a wildcard), after having set the '*' as a valid character as follows:

NumericUsernameCharacterSet *+0123456789.-()#

Entering a static route via sysadmin_csps_regroute with a destination pattern such as *69 fails.

Recommended Action: Us a static registration instead. To do this, define a new user with a user id which matches the intended destination pattern. For example:

user_id = *69@<ProxyDomain>

contact = <next-hop>

CSCea66342

rfc 3261 compliance, dont send CANCEL if no provisional response

Problem Description: A proxy should not send a CANCEL for an INVITE for which it has not received a provisional response, but SPS sends CANCEL for all branches associated with the INVITE regardless of whether or not a provisional response has been received.

Conditions: SPS received an INVITE and forwarded it to one or more downstream entities. It then receives a CANCEL and forwards the CANCEL to any downstream entities from which it has not received a final response, including those from which it has not received any provisional response. According to RFC 3261, the CANCEL should not be sent unless a provisional response has been sent.

Recommended Action: There is no workaround. This bug does not effect the functionality of SPS. This was allowed in RFC 2543 but leads to potential race conditions.

CSCea82993

Cannot redirect output of sysadmin_csps_regroute to a file

Problem Description: Attempts to redirect the output to a file fail. Example:

> # cat input-file
> d
> s
> e 5000
> q
> 
> # ./sysadmin_csps_regroute < input-file > output-file

Afterwards, output file is empty.

Recommended Action: Use expect scripts rather than redirecting the output.

CSCea91984

ControlCSPS on 2 servers checked only unchecks one

Problem Description: In certain situations in the Proxy Control screen, only one of two servers becomes unchecked after a Graceful Restart.

Conditions: This has only been observed on Windows. In the ProxyControl screen check both servers in the farm and make sure the bottom one is highlighted. Click the Graceful button. Only one of the servers becomes unchecked. The other one stays checked. Note that if the top server is highlighted, both servers become unchecked. Also note that the Graceful Restart will have been performed.

Recommended Action: Make sure that the top server in the table is highlighted instead of the bottom one to prevent the situation. Should the scenario occur, the checkmark will be cleared if the window is redrawn. Simply minimize and reopen the window or the user can click on the affected row.

CSCeb05010

SIP client diverts not working properly (double diverts not working)

Problem Description: Multiple redirects not working properly. When inserting Diversion headers SPS does not order them properly. New Diversion headers are always added last rather than first. This may cause undesired or unexpected results with respect to call completion, voice mail, and/or billing for calls involving multiple diversions.

Conditions: Using SPS with the following feature set:

SPS configured as a stateful, recursive proxy CFNA, CFB, CFUNV features enabled AddDiversionHeader enabled

A call flow involving multiple call forward invocations by SPS on the same call.

Recommended Action: There is no workaround.

CSCeb05745

SPS: pserverctl needs to stop Sip_Services

Problem Description: If using pserverctl rather than the sip script to stop or restart the pserver, the Sip_Services process will not be restarted or stopped, but will continue to run.

Conditions: For custom setups where pserver is the only Cisco SPS process running on the farm member, and pserver is being restarted in order to change the farming configuration.

If the farm configuration is changed, and Sip_Services continues to run without itself being restarted, then that Sip_Services can seriously degrade the performance of the farm, either by trying to connect to a missing farm member, or by causing unnecessary data synchronization between farm members.

Recommended Action: If possible, use the /etc/init.d/sip script to restart and stop SPS.

Otherwise, when you need to restart the pserver via pserverctl,

do a pserverctl stop first, then kill the Sip_Services process,

the issue a pserverctl start.

CSCeb21352

with reuse off and record route on, run out of tcp connections

Problem Description: Under high Transmission Control Protocol (TCP) traffic SPS may run out of TCP connection limit of 1000 soon.

Conditions: When AddRecordRoute flag is On, and the SipTcpReuseConnection flag is Off, then some of the TCP connections take longer to get freed.

Recommended Action: Decrease the value of SipMaxT3InMs, which is used to detect timeouts for idle connections.

CSCeb27053

CSPS: Wait Timer remains after edit multiple entries

Problem Description: After performing an Edit or Add within a table in the Cisco SPS graphical user interface (GUI), the wait cursor does not change back to the default cursor.

Conditions: Can occur when editing multiple records at once.

Recommended Action: The user need only move the mouse cursor to the top menu bar of the GUI or off of the GUI completely and back on to restore the default cursor.

CSCeb27117

SPS: proxy does not handle failover for ACK messages

Problem Description: When the next hop in the ACK's route list is not reachable, proxy is not able to failover to the alternate DNS records, unlike other SIP requests.

Conditions: This happens when the next hop is not reachable from the default n/w interface, but it uses the alternate n/w interface to retransmit the 200 OK, which result in the upstream user retransmitting the ACK.

Recommended Action: There is no workaround.

CSCeb29415

h323setuptime not displayed in RADIUS stop record

Problem Description: SPS does not include h323setuptime in Stop records for successful calls. SPS is not call stateful and therefore does not have access to the time a call was setup (INVITE) when it processes the teardown (BYE ).

Recommended Action: See SPS Radius Interface Spec description of correlating accounting records.

CSCeb38768

error seen when exiting CiscoSPS GUI on Windows OS

Problem Description: When closing the graphical user interface (GUI) installed on a Windows 2000 PC, the following log is generated in ./logs/pserver_log:

# tail -f ./logs/pserver_log

ERR : transport/Connection.cxx:257 Failed to read data, reason:Connection reset by peer

This eror is NOT seen when using the GUI installed on Linux or Solaris.

Recommended Action: The error message is non service affecting and can be ignored.

CSCeb44311

client side STOP not generated if no 487 is received

Problem Description: When a 200 to CANCEL is received on a branch but no 487 ever comes back from the downstream, SPS will not be able to generate a client side STOP record for that branch.

Recommended Action: If the canceled branch is the only branch or the best branch to return response upstream, a 408 response will be returned upstream when the original INVITE request finally times out in SPS, and the user can gather some information from the server side STOP record instead.

CSCeb49412

CSPS: Toggling Virtual Proxy Host on/off can cause duplicate records

Problem Description: Cisco SPS has virtual proxy host enabled, and two registrations with the same user id but different domains have been entered, i.e. user id: 3000, domain: foo.com and user id: 3000, domain: bar.com.

If virtual proxy host is then disabled in SPS, it appears as if there are duplicate records for the 3000 user. If one of these records is then changed, the database starts behaving badly.

Recommended Action: Once virtual proxy host is enabled, do not disable it.

CSCeb61814

GUI dynamic column resize sometimes fails

Problem Description: One column of a table can stretch across the entire viewable area of the graphical user interface (GUI). The user must move the slider bar to see the other columns.

Conditions: Sporadically, after performing an action in the GUI, a column may fill up the viewable area of the GUI and cause the other columns to be pushed to the side.

Recommended Action: Click on the Refresh button or click on the column header to resize the columns.

CSCeb67486

SPS: Recursive Proxy ignores SipResolveLocalContactInRedirectMode

Problem Description: When the Cisco SPS is configured in Recursive mode and configured for remote access server (RAS). The SPS will ignore the "SipResolveLocalContactsInRedirectMode" parameter. and always try RAS first.

Conditions: This symptom is observed when the SPS is configured in Recursive mode and configured for RAS. The SPS will ignore the "SipResolveLocalContactsInRedirectMode" parameter. and always try RAS first.

Recommended Action: Create a SPS route for to the proxy for all destinations for which you want SPS to check its registry and/or MySQL db prior to checking RAS for the call forwarding contact.

CSCeb71070

CSPS: Changing UseVirtualProxyHost from Off to On causes conflicts

Problem Description: Turning the 'Use Virtual Proxy Host' directive from On to Off can cause several problems.

1. Phones using entries with a Domain Name previously set to a Virtual Proxy Host before the 'Use Virtual Proxy Host' directive was turned Off can no longer be called.

2. Entries with a Domain Name previously set to a Virtual Proxy Host before the 'Use Virtual Proxy Host' directive was turned Off can no longer be edited or deleted via the graphical user interface (GUI).

3. Entries which were unique before the directive was turned Off may no longer be unique.

4. The Domain Name column is empty.

Conditions: The database uses the Registry entry's 'Domain Name' as one of the key fields for identifying unique registry records. When the directive is On, the database stores the value of each Registry record's domain name and retrieves it when requested. When the directive is turned off the database no longer uses the stored value, but instead, uses the current value of the 'Proxy Domain' directive.

When attempting to access records, the Proxy Domain is used. Since this does not match what is stored in the database, the records which have domains which do not match the Proxy Domain can not be accessed.

Recommended Action: Recommendation is that you leave 'Use Virtual Proxy Host' set to On. If you no longer wish to have any Virtual Proxy Hosts, delete all of them from the table, but leave 'Use Virtual Proxy Host' set to On. If you must turn it Off for some reason, follow the steps below.

Before turning 'Use Virtual Proxy Host' Off, the user should prepare the existing Registry records. Manually change the Domain Name for each Registry Record to match the Proxy Domain. Verify that this does not cause two records to become the same. If so, assign a new user ID to one of them or change one of the other values such that the records remain unique. If a record is no longer needed, delete it.

If the database is large, this can be done more quickly using the export/import functions under the GUI's Operations menu. Export the Registry database into a comma separated value (csv) file using the GUI's export command. Open the saved file in Microsoft Excel and modify the Domain Name column so that all entries are set to the Proxy Domain. Import the modified csv file back into Cisco SPS using the GUI's import command.

If these steps were not followed before turning 'Use Virtual Proxy Host' from On to Off, simply turn it back on and follow the steps above before turning it off again.

CSCec03170

Support multiple Proxy-Authorization headers in INVITE

Problem Description: When multiple Proxy-Authorization headers are present in an INVITE and authentication is turned on, SPS can't handle these Proxy-Authorization headers and sends back 407.

Recommended Action: Only configure one SPS do authentication so that only one Proxy-Authorization header is present and necessary to pass authentication check.

CSCec24660

SPS: Timestamps in error_log do not corresond to servers date & time

Problem Description: The timestamps in the log files are always in GMT rather than in the time format configured on the machine.

Recommended Action: There is no workaround.

CSCec24701

SPS: Registry Cleanup Interval does not remove expired registeration

Problem Description: The Registration database is not periodically purged of expired registrations regardless of the value set in the Registry Cleanup Interval directive.

Conditions: Allow a registration to expire or manually change a registered entry's registration time so that it is expired. It will not be removed from the database unless it is called or manually removed.

Recommended Action:

1. Calling a registered user who's registration has expired will cause the registration to be aged out and removed from the database.

2. Manually run the sip/bin/sysadmin_sps_regroute tool. Follow the menus and list all of the registry entries. This will cause the expired registrations to be removed from the database. This can also be done on the command line by typing ./sysadmin_sps_regroute -l -m registry To have this be performed automatically, set up a cron job on the machine the proxy is running on to run the following command: ./sysadmin_sps_regroute -l -m registry

3. Using the provisioning graphical user interface (GUI), display all of the registrations. The expired registrations will have their Expiration time shown in the color red. Click on the column header to sort on the expiration time. Manually delete the expired entries. Note, make sure the time and date on the machine running the GUI matches the time and date of the machine running the proxy as this is used to change the expire time color to red.

CSCec61373

Need to validate contents of Contact_Age

Problem Description: Entering an invalid value for the Contact_Age field of a static registration results in the Contact being added to the database without any error message; but then when the associated user is called the Contact is treated as if it has expired and the call fails. The correct behavior would be to flag the invalid value when the Contact was being entered.

Conditions: This is applicable to static registrations via the graphical user interface (GUI) or CLI only. An example of an invalid contact is misspelling the word "Permanent".

Recommended Action: Re-enter the Contact with a valid Contact Age value.

CSCed21297

SPS does not support complete Remote-Party-ID syntax

Problem Description: SPS supports only that portion of the Remote-Party-ID syntax that is required for and parallels that of the P-Asserted-Identity header as used to facilitate Privacy in a network consisting of other Cisco SIP endpoints.

Conditions: PrivacyWithRPID is enabled and SPS receives an INVITE from a trusted entity with the following Remote-Party-ID header:

Remote-Party-ID: <user@domain>;privacy=name;privacy=full

When forwarding to an untrusted entity, SPS should and will remove the header. However, if instead the header is as follows:

Remote-Party-ID: <user@domain>;privacy="name,full"

When forwarding to an untrusted entity,SPS will not recognize that privacy was requested since it does not support quoted strings as privacy values, so it will not remove the header.

Recommended Action: Use the semicolon separated syntax for rpi-privacy tokens rather than the quoted string syntax.

CSCed27525

Linux GUI install gives spurrious warnings

Problem Description: Upon installation of the SPS graphical user interface (GUI), the user will see several warning messages.

Conditions: The messages may be due to the version of InstallAnywhere currently used to create the installer.

Recommended Action: Ignore the messages as they are harmless.

CSCed40792

RAS Gatekeeper Cluster Host/Port pairs need to be made required

Problem Description: The proxy fails to restart correctly after modifying the remote access server (RAS) Gatekeeper Clusters via the graphical user interface (GUI).

Conditions: When a GK or port is added without giving a value to the corresponding port or Gk. For example, if a value is added to the GK1 column, a value must be added to the Port1 column for the same row.

Recommended Action: Always add both GK and port data when modifying or creating RAS Gatekeeper clusters.

CSCed83101

Multiple registrations dont all show up in provisioning

Problem Description: At times, registrations by independent ua's to the same number will appear to overwrite each other when using provisioning to view the registrations. When a call is made to the number both sets ring. Also, when using the CLI tool in ACE mode, both registrations appear.

Conditions: This may occur if the Contact in the Register message does not contain a User portion of the URL.

Recommended Action: Use the sysadmin_sps_regroute CLI tool to view the registrations with the same number.

CSCee24124

Slow export of registry/routing entries in sysadmin_sps_regroute

Problem Description: The export function of the sysadmin_sps_regroute tool takes a long period of time when compared to doing an export when in ACE mode or through the graphical user interface (GUI).

Conditions: Perform an export of the registry or routing databases via the sysadmin_sps_regroute tool. Process completes, but takes longer than if done by other methods.

Recommended Action: Use the ACE mode of the sysadmin_sps_regroute tool when performing an export of the routing or registry database. Another option is to export from the GUI.


Resolved Caveats—Cisco SIP Proxy Server, Version 2.2

All the caveats listed in this section are resolved in the Cisco SIP Proxy Server, Version 2.2.

Table 4 Resolved Caveats for the Cisco SIP Proxy Server, Version 2.2

DDTS ID Number
Description

CSCdz62420

CSPS: GUI needs a warning notification for required missing values

Problem Description: Server may fail to restart if a value for a required field has not been provided.

Conditions: Using the Provisioning graphical user interface (GUI) set remote access server (RAS) to ON. Add a Tech prefix, but leave the Dialed Number or Tech Prefix field blank. Submit the changes. Perform a restart in the Proxy Control screen.

Recommended Action: Add information for all fields when configuring RAS.

CSCea58255

routes with embedded * ignored by provisioning system

Problem Description: It is not possible using the graphical user interface (GUI) based provisioning system to define a static route with a destination pattern including a '*' character. Trailing '*' characters are to be treated as expanded wildcards, but embedded '*' characters are to be treated as single '*' characters. The GUI accepts the destination pattern as valid input; however, the route does not make it into the routing database used by SPS.

Conditions:

1) Add '*' to the numeric character set as follows:

NumericUsernameCharacterSet *+0123456789.-()#

2) Define a static route with destination pattern *69

3) The GUI accepts the input but no route is added to the in memory route database (can be verified using sysadmin_csps_regroute).

Workaround: Define a static registration for the destination pattern instead. For the example above:

1) define a user as *69@<ProxyDomain>

2) set the contact to *69@<next-hop>

Sample output from sysadmin_csps_regroute is as follows:

user type --> 	PHONE
user --> 	*69
Domain --> 	<ProxyDomain>
contact --> 	*69@<next-hop>
contact user type --> 	PHONE
contact port --> 	5060
transport --> 	UDP
expired at --> 	-

CSCea69911

CSPS: unable to insert registry contact with @host

Problem Description: While entering a contact for a static registration in either the CLI or provisioning graphical user interface (GUI), if the customer neglects to add a user_info portion, i.e. user_info@host_info, the registration cannot be viewed via the GUI or CLI.

Recommended Action: Always have a user_info portion when adding a contact in the CLI or GUI.

CSCeb61810

GUI should disallow sip: in contact for static registrations

Problem Description: Calls may not be delivered successfully to a static Registry if the user entered the contact incorrectly in the graphical user interface (GUI). The syntax should be user@host and not sip:user@host.

Conditions: The GUI does not perform checking on the static Registry contact to see if the user entered 'sip:' in front of the contact address.

Recommended Action: When manually entering a Registry contact, do not put 'sip:' in front of the contact.

CSCeb63312

First graceful restart after adding IgnoreProxyRequire fails

Problem Description: If add an IgnoreProxyRequire directive (vi sipd.conf or in graphical user interface (GUI)) and gracefully restart the server, the graceful signal shows in error_log, but the daemons get stuck in <defunct> state and never restart.

#./bin/sip graceful
# tail -f ./logs/error_log
[Mon Jul 14 17:32:51 2003] [notice] AP_SIG_GRACEFUL received.  
Doing graceful restart.

# ps -ef | grep csps
csps     11307     1  0 13:31 pts/0    00:00:00 /usr/local/sip/bin/Sip_Services 
csps     11309     1  0 13:31 ?        00:00:00 [pserver]
csps     11318     1  0 13:31 ?        00:00:00 [licenseMgr]
csps     11319 11318  0 13:31 ?        00:00:00 [licenseMgr]
csps     11320 11319  0 13:31 ?        00:00:00 [licenseMgr]
csps     11331     1  0 13:31 ?        00:00:00 [spa]
csps     11340 11331  0 13:31 ?        00:00:00 [spa]
csps     11341 11340  0 13:31 ?        00:00:00 [spa]
csps     11354     1 82 13:31 pts/0    00:04:06 [sipd]
csps     11356 11354  0 13:31 pts/0    00:00:00 [sipd]
csps     11358 11354  0 13:31 pts/0    00:00:00 [sipd <defunct>]
csps     11359 11354  0 13:31 pts/0    00:00:00 [sipd <defunct>]
csps     11361 11354  0 13:31 pts/0    00:00:00 [sipd <defunct>]
csps     11363 11354  0 13:31 pts/0    00:00:00 [sipd <defunct>]
csps     11365 11354  0 13:31 pts/0    00:00:00 [sipd <defunct>]
root     11393  6904  0 13:36 pts/0    00:00:00 grep csps

Conditions:

1. No IgnoreProxyRequire directive was configured the last time the proxy was started

2. An IgnoreProxyRequire directive was added via the GUI or by manually editing sipd.conf

3. ./sip graceful or ./sipdctl graceful was performed to gracefully restart the server with the new configuration

Recommended Action: A full restart fixes the problem

# ./bin/sip restart  or
# ./bin/sipdctl restart

Further graceful restarts are successful and new IgnoreProxyRequire directives that are added will gracefully restart successfully.

CSCeb77737

SPS: Recursive Proxy adds portnum in ROUTE hdr causing DNS A query

Problem Description: When the Cisco SPS is configured in Recursive mode, The SPS adds a port# to address in Route header of ACK causing a DNS "A" record query for a SRV FQDN. As a result, the call setup fails due a DNS query failure.

Conditions: This symptom is observed when the SPS is configured in Recursive. The SPS adds a port# to address in Route header of ACK causing a DNS "A" record query for a SRV FQDN. As a result, the call setup fails due a DNS query failure.

Recommended Action: There is no workaround.

CSCeb85264

Cannot add wildcarded route by editing existing route in GUI

Problem Description: When using the graphical user interface (GUI) to edit an existing route, adding a wildcard destination pattern such as "408*" will not work correctly. Rather than expanding the route into multiple routes of the form 408, 408., 408.., etc.; a single route of 408* is entered into the database instead.

Recommended Action: Instead of editing the existing route, first delete the existing route and then add a new wildcard route.

CSCec11580

SIP: Provisioning GUI will not add GK cluster to sipd.conf

Problem Description: A remote access server (RAS) gatekeeper cluster configured through the graphical user interface (GUI) fails to work correctly. The cluster information does not show up in sipd.conf.

Conditions: When adding a RAS Gatekeeper cluster through the GUI the data is not added to sipd.conf. The spa_log will show the following error:

ALRT : Ras.cxx:132 Invalid Number Of GateKeeper Cluster (num=12) 

Recommended Action: When adding a cluster through the GUI, make sure to populate the last column in the row (GK 5, port 5) You do not need to have values in the GK1 through GK4 columns, but you can if you like.

CSCec13130

unwanted character in register contact field in GUI

Problem Description: SPS provisioning graphical user interface (GUI) shows extra character ">" at the end of a contact in a dynamic registration.

Conditions: With some third party endpoints, when they dynamically register with SPS 2.1, the GUI shows an extra character ">" at the end of their registered contact.

Recommended Action: This is a harmless bug which is not noticed with Cisco equipment. Even when the bug occurs, it creates no problem in call processing. No workaround is required.

CSCec31901

Apply OpenSSL patches for vulnerability

Problem Description: New vulnerabilities in the OpenSSL implementation for SSL have been announced.

An affected network device, running an SSL server based on the OpenSSL implementation, may be vulnerable to a Denial of Service (DoS) attack when presented with a malformed certificate by a client. The network device is vulnerable, to this vulnerability, even if it is configured to not authenticate certificates from the client. There are workarounds available to mitigate the effects of these vulnerabilities.

This advisory will be posted at:

http://www.cisco.com/warp/public/707/cisco-sa-20030930-ssl.shtml.

CSCec78542

Cisco SPS 2.1 Installation Guide - Need doc update in troubleshootin

Problem Description: The SPS 2.1 Installation Guide "Troubleshooting Tips" section of the "Setting Up Servers and MySQL Databases in a New System" as the following error:

-------------------- 
Verify MySQL installation with the following commands: <serverroot>/bin/mysqlshow 
<serverroot>/bin/mysqladmin version status proc 
-------------------- 

These two commands do not work because their syntax is wrong.

Recommended Action: The correct syntax is:

<serverroot>/bin/mysqlshow -u guest -p 
Enter password: nobody (by default) 
<serverroot>/bin/mysqladmin -u guest -p version status proc 
Enter password: nobody (by default) 

CSCed10488

RedHat 7.3 logrotate can result in maxed-out CPU on SPS systems

Problem Description: RedHat 7.3 systems contain a problem with logrotate and mailman. This is a problem with the distribution and will effect all systems running the distro regardless of patch level. It is fixed in RH9 and AS3, and thus is not an issue for SPS 2.2, but the fix was not backported to 7.3.

Basically, a program called 'mailman' creates a bunch of different log files in /var/log/mailman. Rather than listing out all 20 logfile names, the logrotate script simply says to rotate '*'. This means that on the first rotate, 'error' rotates to 'error.1'. On week 2 you now rotate 'error.1' to 'error.2' and 'error' to 'error.1', but because of the * you also re-rotate 'error.1' to 'error.1.1'.

After a few months, you have several million files and logrotate chokes.

This problem can be accelerated by introducing a full-disk error condition. The mailman logs are of zero size so continue to rotate, but the status file can not be updated, which results in a rotation every day instead of every week.

Recommended Action: rm -f -r /var/log/mailman Remove all references to mailman from '/var/lib/logrotate.status' Uninstall the mailman rpm

CSCed37564

SPS GUI license doesnot delete the license key properly from the db

Problem Description: Can not delete and add a new license key for the same host using the license key graphical user interface (GUI) application.

Conditions: Once you delete the license key for a particular host and try to re-add it back using the GUI, it will failed. The system will stated that there is an entry already exist for that.

Recommended Action: There is no workaround.

CSCed55241

Route failover corrupted if transaction expires prior to failover

Problem Description: SPS does not fail over from first route to subsequent routes if the INVITE transaction expires prior to the fail over timer expiring. Instead, SPS sends a CANCEL for the outstanding transaction and subsequently a corrupted INVITE to the subsequent routes.

This is due to a race condition between the transaction expiring timer and the retransmission timer not being handled correctly. The default transaction expiration when there is no response is 60 seconds.

The default retransmission timers take over 60 seconds to expire. Therefore the transaction expires, but is not expired cleanly, and the retransmission timers then expire and use corrupted data.

Conditions:

1. Multiple routes exist for same destination:

   destination		next-hop
   -----------------------------
   555....	 	10.2.3.4
   555....		10.6.7.8

2. There is no response from the next-hops

3. Default values for retransmission timers and counters as well as transaction expiration.

4. Place a call to 5551212.

There must be no Expires header in the INVITE as this will replace the default transaction expiration timer.

Recommended Action: These are several.

1. Reduce the retransmission timers such that they are less than the transaction expiration timer.

2. Increase the transaction expiration timer such that it is greater than the retransmission timers

3. Have the endpoint sending the INVITE include an Expires header with a value greater than the retransmission timers. For example, the ATA includes an Expires header with a value of 300 seconds, and the 7960 includes an Expires header with a value of 180 seconds.

CSCed68752

400 bad from returned if user parameter is other than ip or phone

Problem Description: When receiving a SIP message with a From header containing a user parameter, SPS rejects the From as bad if the user parameter value is something other than IP or PHONE.

Recommended Action: There is no workaround.

CSCed75539

licenseMgr dumps core when exiting

Problem Description: licenseMgr dumps core when exiting.

Conditions: A running licenseMgr is stopped via: lmctl stop, sip stop, or by sending a KILL signal Rather than exiting gracefully, it seg faults and dumps core.

Recommended Action: This is not a service affecting issue. The only potential problem is buildup of core files on the hard disk. By default, no core is produced for security reasons, so it is only in cases in which core files have been explicitly enabled that this is an issue at all. On Linux, core files can be suppressed by as follows: ulimit 0 On Solaris, core files can be suppressed via the coreadm utility.

CSCed80185

accounting record not sent for invalid request

Problem Description: When SPS receives a BYE with an invalid Request URI, it returns a 400 - Bad Message to the sender. If server side accounting is enable, SPS also attempts to send an accounting record. At this point, the sipd seg faults and no accounting record is sent. Note, call processing still completes as usual. When SPS receives an INVITE with an invalid Request URI, it returns a 400 - Bad Message to the sender. If server side accounting and unsuccessful accounting is enable, SPS also attempts to send an accounting record. At this point, the sipd seg faults and no accounting record is sent. Note, call processing still completes as usual.

Conditions: Server Side Accounting enabled and BYE with invalid Request URI received. and/or Server Side and Unsuccessful Accounting enabled and INVITE with invalid Request URI received.

Recommended Action: There is no workaround.

CSCee41545

CustomLog Format value missing in MySQL after upgrade

Symptom: The proxy is unable to start after upgrading to SPS Version 2.2 and enabling Custom Logs.

Condition: You would have used the backup_db_2.X_as_2.2.sh script while no CustomLog was defined for their system. After the upgrade, you had to tried to enable the CustomLog for the problem to become apparent.

Workaround: To avoid the problem, before upgrading to SPS Version 2.2, the user should configure a CustomLog.

Once the problem has occurred, the user can remove the CustomLog from their configuration to allow the proxy to restart correctly.

The missing format value must be placed in the MySQL database in order for CustomLog to be able to be activated in the future. Follow these directions:

1. Log into MySQL and give the following commands:

mysql -uguest -p<password> sip  - log in using your password
select CustomLogFormat from CSPS;  - to verify that it is empty
update CSPS set CustomLogFormat='combined'; - restores the correct value
select CustomLogFormat from CSPS;  - to verify that it is set
quit  

2. Once the CustomLogFormat value is restored, the user should be able to enable and disable Custom Logs normally through the GUI.


Obtaining Documentation

The following sections explain how to obtain documentation from Cisco Systems.

World Wide Web

You can access the most current Cisco documentation on the World Wide Web at the following URL:

http://www.cisco.com

Translated documentation is available at the following URL:

http://www.cisco.com/public/countries_languages.shtml

Documentation CD-ROM

Cisco documentation and additional literature are available in a Cisco Documentation CD-ROM package, which is shipped with your product. The Documentation CD-ROM is updated monthly and may be more current than printed documentation. The CD-ROM package is available as a single unit or through an annual subscription.

Ordering Documentation

Cisco documentation is available in the following ways:

Registered Cisco Direct Customers can order Cisco product documentation from the Networking Products MarketPlace:

http://www.cisco.com/public/ordsum.html

Registered Cisco.com users can order the Documentation CD-ROM through the online Subscription Store:

http://www.cisco.com/go/subscription

Nonregistered Cisco.com users can order documentation through a local account representative by calling Cisco corporate headquarters (California, USA) at 408 526-7208 or, elsewhere in North America, by calling 800 553-NETS (6387).

Documentation Feedback

If you are reading Cisco product documentation on Cisco.com, you can submit technical comments electronically. Click Leave Feedback at the bottom of the Cisco Documentation home page. After you complete the form, print it out and fax it to Cisco at 408 527-0730.

You can e-mail your comments to bug-doc@cisco.com.

To submit your comments by mail, use the response card behind the front cover of your document, or write to the following address:

Cisco Systems
Attn: Document Resource Connection
170 West Tasman Drive
San Jose, CA 95134-9883

We appreciate your comments.

Obtaining Technical Assistance

Cisco provides Cisco.com as a starting point for all technical assistance. Customers and partners can obtain documentation, troubleshooting tips, and sample configurations from online tools by using the Cisco Technical Assistance Center (TAC) Web Site. Cisco.com registered users have complete access to the technical support resources on the Cisco TAC Web Site.

Cisco.com

Cisco.com is the foundation of a suite of interactive, networked services that provides immediate, open access to Cisco information, networking solutions, services, programs, and resources at any time, from anywhere in the world.

Cisco.com is a highly integrated Internet application and a powerful, easy-to-use tool that provides a broad range of features and services to help you to

Streamline business processes and improve productivity

Resolve technical issues with online support

Download and test software packages

Order Cisco learning materials and merchandise

Register for online skill assessment, training, and certification programs

You can self-register on Cisco.com to obtain customized information and service. To access Cisco.com, go to the following URL:

http://www.cisco.com

Technical Assistance Center

The Cisco TAC is available to all customers who need technical assistance with a Cisco product, technology, or solution. Two types of support are available through the Cisco TAC: the Cisco TAC Web Site and the Cisco TAC Escalation Center.

Inquiries to Cisco TAC are categorized according to the urgency of the issue:

Priority level 4 (P4)—You need information or assistance concerning Cisco product capabilities, product installation, or basic product configuration.

Priority level 3 (P3)—Your network performance is degraded. Network functionality is noticeably impaired, but most business operations continue.

Priority level 2 (P2)—Your production network is severely degraded, affecting significant aspects of business operations. No workaround is available.

Priority level 1 (P1)—Your production network is down, and a critical impact to business operations will occur if service is not restored quickly. No workaround is available.

Which Cisco TAC resource you choose is based on the priority of the problem and the conditions of service contracts, when applicable.

Cisco TAC Web Site

The Cisco TAC Web Site allows you to resolve P3 and P4 issues yourself, saving both cost and time. The site provides around-the-clock access to online tools, knowledge bases, and software. To access the Cisco TAC Web Site, go to the following URL:

http://www.cisco.com/tac

All customers, partners, and resellers who have a valid Cisco services contract have complete access to the technical support resources on the Cisco TAC Web Site. The Cisco TAC Web Site requires a Cisco.com login ID and password. If you have a valid service contract but do not have a login ID or password, go to the following URL to register:

http://www.cisco.com/register/

If you cannot resolve your technical issues by using the Cisco TAC Web Site, and you are a Cisco.com registered user, you can open a case online by using the TAC Case Open tool at the following URL:

http://www.cisco.com/tac/caseopen

If you have Internet access, it is recommended that you open P3 and P4 cases through the Cisco TAC Web Site.

Cisco TAC Escalation Center

The Cisco TAC Escalation Center addresses issues that are classified as priority level 1 or priority level 2; these classifications are assigned when severe network degradation significantly impacts business operations. When you contact the TAC Escalation Center with a P1 or P2 problem, a Cisco TAC engineer will automatically open a case.

To obtain a directory of toll-free Cisco TAC telephone numbers for your country, go to the following URL:

http://www.cisco.com/warp/public/687/Directory/DirTAC.shtml

Before calling, please check with your network operations center to determine the level of Cisco support services to which your company is entitled; for example, SMARTnet, SMARTnet Onsite, or Network Supported Accounts (NSA). In addition, please have available your service agreement number and your product serial number.