Some SIP Users Occasionally Fail to Register with the SoftCo

Publication Date:  2015-07-16 Views:  294 Downloads:  0
Issue Description
Some SIP users occasionally fail to register with the SoftCo.
Handling Process
Step 1 Run the show license command to view the number of existing users on the SoftCo. The number of POTS users that directly connect to the SoftCo9500 is small. Therefore, the number of existing users can be regarded as the number of SIP users.

Step 2 Access the debugging mode on the SoftCo, and run the fpga show limitflux status command to view the maximum number of SIP Register messages that the SoftCo can process every second.

[%SoftCo9500(config)]$fpga show limitflux status
         the max flux of ARP (packages/s): 0x1f4
        the max flux of H248 (packages/s): 0xbb8
        the max flux of MGCP (packages/s): 0xbb8
        the max flux of H323 (packages/s): 0xbb8
         the max flux of SIP (packages/s): 0x3e8
     the max flux of ICMPPING (packages/s): 0x64
   the max flux of ICMPOTHER (packages/s): 0xf
         the max flux of RTP (packages/s): disable
      the max flux of INTESS (packages/s): 0xbb8
      the max flux of Server (packages/s): disable
the max flux of other packet (packages/s): 0x320
the max flux of sipregister (packages/s): 0x32


Step 3 Calculate the required minimum registration timeout duration (T) using the following formula:
T ≥ (N x 2)/M

Step 4 Based on the method of negotiating the registration timeout duration between an agent and the SoftCo, run the config modify sip parameter minregexpires <1-100> command to increase the minregexpires value so that the value is greater than or equal to the minimum registration timeout duration obtained in Step 3.

Step 5 Run the save command to save the setting.

----End
Root Cause
Possible Cause:

The number of SIP Register messages sent to the SoftCo every second exceeds the maximum number of SIP Register messages that the SoftCo can process.

Fault Location:
In SIP, an agent and the server exchange Register messages to negotiate the expire-time parameter that specifies the interval for sending Register messages.

The SoftCo provides the following registration timeout parameters:

config modify sip parameter minregexpires <1-100>//Minimum timeout duration. The default value is 2, in minutes.
config modify sip parameter maxregexpires <1-100>//Maximum timeout duration. The default value is 60, in minutes.


The IAD provides the following timeout parameter: (The IAD is used as an example. The registration timeout rule for IP phones is the same as that for the IAD.)

sip server 0 address 10.21.3.3 expire-time <5,31536000>//Registration timeout duration. The default value is 120, in seconds.

Assume that the initial values of expire-time, minregexpires, and maxregexpires are A, B, and C respectively.

The initial Register message carries A as the negotiated registration timeout duration. Then, the registration timeout duration is negotiated as follows:
  • A < B
The SoftCo returns error code 423 to the IAD, and sends the minimum registration timeout duration B to the IAD. The IAD sends a Register message that carries B as the expire-time value to the SoftCo. Later, the IAD sends a Register message to the SoftCo every half of B (B/2).
  • B < A < C
The SoftCo returns a 200 OK message that does not carry the expire-time value to the IAD, and the registration succeeds. Later, the IAD sends a Register message to the SoftCo every half of A (A/2).
  • A > C
The SoftCo returns a 200 OK message that carries C as the expire-time value to the IAD. Later, the IAD sends a Register message to the SoftCo every half of C (C/2).

That is, if the registration timeout duration negotiated by an agent and the SoftCo is T, the agent sends a Register message to the SoftCo every half of T (T/2).

If a large number of Register messages are sent to the SoftCo every second, the CPU resources on the SoftCo will be used up, and the SoftCo will stop responding. To restrict the maximum number of Register messages that the SoftCo can process every second, the SoftCo provides the FPGA flow control parameter the max flux of sipregister. The default value of this parameter is 0x32 (that is, 50 in the decimal system).

NOTE:
You are not advised to modify the FPGA flow control parameter the max flux of sipregister on the SoftCo; otherwise, the SoftCo may malfunction.

Assume that the FPGA flow control parameter the max flux of sipregister is set to M, the registration timeout duration negotiated by an agent and the SoftCo is T, and the maximum number of agents that register successfully is N. An agent sends a Register message every half of T (T/2). The number of Register messages generated by an agent every second is reciprocal of T multiplied by 2 (2/T). Ideally, the number of Register messages generated by N agents meets the following formula:

2 x N/T ≤ M or N ≤ (T/2) x M

That is, the theoretical number of agents that can successfully register with the SoftCo is equal to the half of the negotiated timeout duration multiplied by the FPGA flow control parameter value.

The default minimum registration timeout duration on the SoftCo is 2 minutes (120 seconds). If the registration timeout duration on intra-office IADs is less than or equal to 120 seconds, the maximum number of SIP users that can successfully register with the SoftCo is 3000 (120/2 x 50). If the number of users exceeds 3000, the SoftCo does not respond to excess Register messages. As a result, some SIP users fail to register with the SoftCo. You can increase the minregexpires value (minimum registration timeout duration) on the SoftCo to solve this problem.
Suggestions
When the number of users on the SoftCo exceeds 3000, you must modify the registration timeout duration to avoid similar problems.

END