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
Common SIP Response codes
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 call.
- 183 Session Progress – This response may be used to send extra information for a call which is still being set up.
2xx = Success Responses
- 200 OK – Shows that the request was successful
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 us as part of the normal password challenge and response process
- 403 Forbidden: The server understood the request but is refusing to – on our network this generally indicates an incorrect password
- 404 Not Found: The server has definitive information that the user does not exist at the domain specified in the Request-URI. This status is also returned if the domain in the Request-URI does not match any of the domains handled by the recipient of the request.
- 407 Proxy Authentication Required: The request requires user authentication. This response is issued by proxies.
- 408 Request Timeout: Couldn’t find the user in time. The server could not produce a response within a suitable amount of time, for example, if it could not determine the location of the user in time. The client MAY repeat the request without modifications at any later time.
5xx = Server Errors
- 500 Internal Server Error: The server could not fulfill the request due to some unexpected conditions.
- 502 Bad Gateway: The server is acting as a gateway or proxy and received an invalid response from a downstream server while attempting to fulfill the request.
- 503 Service Unavailable: The server is undergoing maintenance or is temporarily overloaded and so cannot process the request. A “Retry-After” header field may specify when the client may reattempt its request.
6xx = Global Failures
- 600 Busy Everywhere – All possible destinations are busy.
- 603 Decline – Destination cannot or is refusing to participate in the call but on our network may indicate the account has no credit.
- 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.
- 607 Unwanted – The called party did not want his call from the calling party. Future attempts from the calling party are likely to be similarly rejected.