Deciphering SIP Codes
One of the fun subjects that we talk about throughout our Lync classes is understanding of SIP error codes and the troubleshooting part that goes along with it.
A look at a TechNet article shows us the SipResponseMetaTable:
https://technet.microsoft.com/en-us/library/jj205294.aspx …which per the article was introduced with Lync 2013.
I learned about the SIP protocol though deploying and configuring OCS (R1/R2) and Lync (2010/2013), so for me the number classification table was learned this way:
100 range – Informational Responses
200 range – Successful Responses
300 range – Redirection or Transfer Responses
400 range – Client Failure Responses
500 range – Server Failure Responses
600 range – Global Failure Response
Example: A client called in to Helpdesk and said that they could not connect a call to someone that they dialed. You delved into the log file to find a 401, a 403 or maybe a 404 error. Per our table this tell us that this is a client issue, meaning that the user has probably not entered in something correctly and that you should focus your attention there first. It doesn’t mean that that will be the only answer but it’s a good place to start.
Each range helps you determine where to start with your gathering of what might be incorrect. Unfortunately if you have not configured settings properly in your deployment you’re going to become familiar with some of the codes on a regular basis. 404 - Not found, 500 - Server Internal error, 503 - Service Unavailable.
Which raises questions like: How many codes are there? Is every number used in all ranges? What is a 493 error? Or I’ve seen 182 in the logging tool what does it mean?
To answer these questions you can look at:
https://tools.ietf.org/html/rfc3261 …this link is Request for Comments 3261, and in it has a listing of the codes that you would see in your logging.
If you scroll down a little bit you see a Table of Contents, and find that there are 269 pages…somewhere in here is the list of codes.
Thankfully it’s bookmarked, section 21.1.1 is where you can find the listing: https://tools.ietf.org/html/rfc3261#section-21.1.1
And you find that there are lots of codes; not every number in each range is currently used; the 493 code is section 21.4.28 which is defined as Undecipherable; and 182 is for a Queued call rather than the server rejecting the call.
Now that you have a list of codes to compare yours against, it should make it a little easier to understand and determine where to start troubleshooting.
Let’s continue this a little farther and say what happens if you have a device (a gateway) that does not send a proper code. The Mediation Server for Skype for Business uses the recommended ISDN User Part (ISUP) cause code to map to a SIP response code. Not all gateways use this, now what…do you need to get a new gateway?
There is a PowerShell command that can potentially help with this: New-CsSipResponseCodeTranslationRule
https://technet.microsoft.com/en-us/library/gg413041.aspx ….which per the article was introduced with Lync 2010.
You can use the command to map SIP response codes to ones used by Skype for Business.