The important codes
On our network, the “401 Unauthorized” relates to Registration only and is part of our authentication INVITE process, where your phone system first attempts to communicate with us. We reject the INVITE with the 401 and expect your system to return the correct AUTH details via an encrypted (MD5) password.
In the example below the outbound phone acknowledges the 401 challenge returning the correct AUTH credentials, at which point we start the call attempt.
Because SIP Peering relies on two statically assigned IPs (yours and our public IP) no password credentials are required as part of the INVITE. If you are seeing a 401 and are connecting via a SIP Peer please contact our support team (see also SIP Peering).
The server understood the request but refuses to complete that request usually because either a misconfiguration or the account has no credit.
- Account Credit: Our system rates each outgoing call, which for those with the ability to trace will appear as a 403. To quickly top up your account see Manage Billing.
- Misconfiguration: When registering you cannot present a different Caller ID (From number) from the Authorisation or Digest number. In the example below the offending number is 61383940220 (in the SIP URI), as it differs from the authorization number contained Authorisation: Digest username=”61383940218″. For this call to get through the technician needs to present 61383940220 in the digest.
487 Request Terminated
This is normally where the calling party on our network has canceled the call prior to pick up. The 487 is therefore usually where we terminate the call.
SDP Extensions and Attributes
The SDP extensions used in the application/SDP header lists the media capabilities the calling party can receive or negotiate. The table below shows the SDP attributes in this test call and the meaning of each attribute/extension.
SDP Parameter Parameter Name
v=0 Version Number
o=CiscoSystemsCCM-SIP 811669 1 IN IP4 10.105.40.14 Origin
s=SIP Call Call Subject
c=IN IP4 10.133.92.102 Connection/IP address for RTP stream
t=0 0 time
m=audio 25268 RTP/AVP 18 101 Media
a=rtpmap:18 G729/8000 Attributes-media
a=rtpmap:101 telephone-event/8000 Dtmf attributes
a=fmtp:101 0-15 Dtmf tones
m=audio 25268 RTP/AVP 18 0 8 101
This line defines the media attributes that will be used for the call.
Audio: Means an Audio call – m=video is a Video call
25268: Is the dynamic RTP port used for the call
RTP/AVP: Represents the RTP/AVP profile number for each of the profiles listed. The profile numbers are explained below:
18=G729 0=PCMU 8=PCMA 101=rtp-nte payload
Understanding the SIP VIA Headers
When a user agent client (UAC) creates a SIP request, it must insert a Via header into that request. The Via header identifies the protocol name (SIP), protocol version (2.0), transport type (e.g. UDP or TCP), IP address of the UAC, and the protocol port (typically 5060) used for the request. This information allows the recipient of the request (a user agent server) to return SIP responses to the correct device. For example, if my SIP soft-phone sends an INVITE request, it would contain a Via similar to the following.
Via: SIP/2.0/UDP 10.11.228.67:5060
Source: Andrew Prokop – SIP Adventures
All SIP Responses
1xx = Info SIP Responses
- 100 Trying – Extended search is being performed so a forking proxy must send a 100 Trying response.
- 180 Ringing – The Destination User Agent has received the INVITE message and is alerting the user of the call.
- 181 Call Is Being Forwarded – Optional, send by Server to indicate a call is being forwarded.
- 182 Queued – Destination was temporarily unavailable, the server has queued the call until a destination is available.
- 183 Session Progress – This response may be used to send extra information for a call which is still being set up.
- 199 Early Dialog Terminated – Send by the User Agent Server to indicate that an early dialog has been terminated.
2xx = Success Responses
- 200 OK – Shows that the request was successful
- 202 accepted – Indicates that the request has been accepted for processing, mainly used for referrals.
- 204 No Notification – Indicates that the request was successful but no response will be received.
3xx = Redirection Responses
- 300 Multiple Choices – The address resolved to one of several options for the user or client to choose between.
- 301 Moved Permanently – The original Request URI is no longer valid, the new address is given in the Contact header.
- 302 Moved Temporarily – The client should try at the address in the Contact field.
- 305 Use Proxy – The Contact field details a proxy that must be used to access the requested destination.
- 380 Alternative Service – The call failed, but alternatives are detailed in the message body.
4xx = Request Failures
- 400 Bad Request – The request could not be understood due to malformed syntax.
- 401 Unauthorized – The request requires user authentication. This response is issued by UASs and registrars.
- 402 Payment Required – (Reserved for future use) .
- 403 Forbidden – The server understood the request, but is refusing to fulfill it.
- 404 Not Found – The server has definitive information that the user does not exist at the (User not found).
- 405 Method Not Allowed – The method specified in the Request-Line is understood, but not allowed.
- 406 Not Acceptable – The resource is only capable of generating responses with unacceptable content.
- 407 Proxy Authentication Required – The request requires user authentication.
- 408 Request Timeout – Couldn’t find the user in time.
- 409 Conflict – User already registered (deprecated)
- 410 Gone – The user existed once but is not available here anymore.
- 411 Length Required – The server will not accept the request without a valid content length (deprecated).
- 413 Request Entity Too Large – Request body too large.
- 414 Request URI Too Long – Server refuses to service the request, the Req-URI is longer than the server can interpret.
- 415 Unsupported Media Type – Request body is in a non-supported format.
- 416 Unsupported URI Scheme – Request-URI is unknown to the server.
- 417 Uknown Resource-Priority – There was a resource-priority option tag, but no Resource-Priority header.
- 420 Bad Extension – Bad SIP Protocol Extension used, not understood by the server.
- 421 Extension Required – The server needs a specific extension not listed in the Supported header.
- 422 Session Interval Too Small – The request contains a Session-Expires header field with a duration below the minimum.
- 423 Interval Too Brief – Expiration time of the resource is too short.
- 424 Bad Location Information – The request’s location content was malformed or otherwise unsatisfactory.
- 428 Use Identity Header – The server policy requires an Identity header, and one has not been provided.
- 429 Provide Referrer Identity – The server did not receive a valid Referred-By token on the request.
- 430 Flow Failed – A specific flow to a user agent has failed, although other flows may succeed.
- 433 Anonymity Disallowed – The request has been rejected because it was anonymous.
- 436 Bad Identity Info – The request has an Identity-Info header and the URI scheme contained cannot be de-referenced.
- 437 Unsupported Certificate – The server was unable to validate a certificate for the domain that signed the request.
- 438 Invalid Identity Header – Server obtained a valid certificate used to sign a request, was unable to verify the signature.
- 439 First Hop Lacks Outbound Support – The first outbound proxy doesn’t support the “outbound” feature.
- 470 Consent Needed – The source of the request did not have the permission of the recipient to make such a request.
- 480 Temporarily Unavailable – Callee currently unavailable.
- 481 Call/Transaction Does Not Exist – Server received a request that does not match any dialog or transaction.
- 482 Loop Detected – Server has detected a loop.
- 483 Too Many Hops – Max-Forwards header has reached the value ‘0’.
- 484 Address Incomplete – Request-URI incomplete.
- 485 Ambiguous – Request-URI is ambiguous.
- 486 Busy Here – Callee is busy.
- 487 Request Terminated – Request has terminated by bye or cancel.
- 488 Not Acceptable Here – Some aspects of the session description of the Request-URI are not acceptable.
- 489 Bad Event – The server did not understand an event package specified in an Event header field.
- 491 Request Pending – Server has some pending request from the same dialog.
- 493 Undecipherable – UndecipherableRequest contains an encrypted MIME body, which the recipient can not decrypt.
- 494 Security Agreement Required – The server has received a request that requires a negotiated security mechanism.
5xx = Server Errors
- 500 Server Internal Error – The server could not fulfill the request due to some unexpected condition.
- 501 Not Implemented – The SIP request method is not implemented here.
- 502 Bad Gateway – The server, received an invalid response from a downstream server while trying to fulfill a request.
- 503 Service Unavailable – The server is in maintenance or is temporarily overloaded and cannot process the request.
- 504 Server Time-out – The server tried to access another server while trying to process a request, no timely response.
- 505 Version Not Supported – The SIP protocol version in the request is not supported by the server.
- 513 Message Too Large – The request message length is longer than the server can process.
- 580 Precondition Failure – The server is unable or unwilling to meet some constraints specified in the offer.
6xx = Global Failures
- 600 Busy Everywhere – All possible destinations are busy.
- 603 Decline – Destination cannot/doesn’t wish to participate in the call, no alternative destinations.
- 604 Does Not Exist Anywhere – The server has authoritative information that the requested user does not exist anywhere.
- 606 Not Acceptable – The user’s agent was contacted successfully but some aspects of the session description were not acceptable.