Search code examples
siplteims

SIP REGISTER getting 500 server internal error - 63


Scenario is regarding SIP register on LTE network.

  1. Device latch with the network and sends SIP register with call id 4EdqB3YwpQHIYGPtj9c and CSeq no. 1
  2. Network responded back with 401 unauthorized.
  3. Device sends the register message with nonce value with call id 4EdqB3YwpQHIYGPtj9c and CSeq no. 2. and registration get successful.
  4. Device reattach with the network. like switch off and on.
  5. Device again sends REGISTER message with same call id 4EdqB3YwpQHIYGPtj9c and Cseq no. 1, for which receives 500 server internal error - 63 from the network.
  6. After a while device again sends REGISTER message, this time call id is different 3Qp8ssj7hpKpspDn0mELU1v and cseq no. 1. after getting 401 response from n/w, resend REGISTER again which get successful as well.

My query is that:

  1. Does after reattach cseq no. reset to 1?
  2. Does after reattach, device should use different call id to initiate the REGISTER message?
  3. What is the error code 63 means in 500 internal server error?

Thanks in advance


Solution

  • Does after reattach Cseq no. reset to 1?

    A new SIP registration can start with any new random number. It can start with Cseq: 1 also. In the User equipment you are checking, it might be starting all new registrations with Cseq 1.

    When a new registration is received at Sip-Registrar (i.e., S-CSCF in case of IP Multimedia Subsystem); a binding is created with Call-ID value. This brings us to the next question.

    Does after reattach, device should use different call id to initiate the REGISTER message?

    Registrations are time-bound and will expire after some time. Before that expiry, a Re-registration should be sent. This subsequent Register request should bind to that old registration at Sip-Registrar. For that we will maintain same call-Id. (and also same Contact, To, From, and From tag : which all headers and parameters used for binding is a different topic altogether; we will skip this for now.). According to RFC3261, A UA should use the same Call-ID for all registrations during a single boot cycle.

    Coming to your case, It is not possible to guess why 500 Internal server error is sent for the new Register request having the same call-Id as the older register.

    There is a possibility that the older binding is still be lingering at the Sip-Registrar and during detach, resource cleaning might not have taken place. This new registration might be be attaching to the older binding because of same call Id. (mind you this is just speculation, I am not sure what is happening at your Sip-Registrar)

    What is the error code 63 means in 500 internal server error?

    This number 63 is a proprietary implementation. In response, after 500, the text can be manipulated to add anything that creates a meaningful reason.

    For further info on how registration is handled at SIP-Registrar you can go through the following RFC link:

    https://www.rfc-editor.org/rfc/rfc3261#section-10.3

    Regards, KNP