SIP RFC 3261 – SIP requests and responses
SIP is an application layer signaling protocol standardized by the IETF in RFC 3261. That word ‘signaling’ means that it is a protocol used to create a kind of ‘control channel’ for an exchange of media (in telephony this is Real-time Transport Protocol or RTP). That’s not to say that we don’t break the rules occasionally, and stuff some text (media) into a SIP MESSAGE, but for the most part, SIP is strictly for control.
SIP messages fall into two categories: requests and responses. SIP requests are identifiable as all CAPS English words (INVITE, ACK, BYE, REFER, INFO, etc.), whereas responses are identified as numeric codes ranging from 100 to 699. The responses within the 1xx range are special, they are called ‘provisional’ responses, whereas all of the remaining codes 2xx to 6xx are called ‘final’ responses. The first digit in the response code conveys the class of the response, these classes are as follows:
1xx: Provisional — request received, continuing to process the request.
2xx: Success — the action was successfully received, understood, and accepted.
3xx: Redirection — further action needs to be taken in order to complete the request.
4xx: Client Error — the request contains bad syntax or cannot be fulfilled at this server.
5xx: Server Error — the server failed to fulfill an apparently valid request.
6xx: Global Failure – the request cannot be fulfilled at any server.
If a request is received by a SIP endpoint (called a User Agent), then it must respond with the best appropriate response(s). The response MAY include one, or several, provisional responses (1xx), but MUST include a single final response (2xx – 6xx). The only exception to this rule is the ACK*. The ACK is a special type of request and considered self-extinguishing therefore it does not require a response.
Check out other blog posts to learn more about SIP, or contact me to learn how I can teach a classroom filled with up to 24 of you and your work buddies on how SIP works in a 4.5 day intensive lab hands-on class!
* Note – Microsoft uses a non-standard SIP request message called a BENOTIFY that was never standardized by the IETF. It too is a self-extinguishing request, but you will only see it used in Microsoft products.