SIP Methods and Status Codes

SIP Methods and Status Codes

SIP Methods

SIP Methods

Method

Purpose

INVITE

Invites a user to join a call

ACK

Confirms that a client has received a final response to an INVITE.

BYE

Terminates the call between two of the users on a call.

OPTIONS

Requests information on the capabilities of a server.

CANCEL

Ends a pending request, but does not end the call.

REGISTER

Provides the map for address resolution, this lets a server know the location of a user.

At least 8 additional methods have been defined see slide “SIP Method Extensions in other RFCs.”.

SIP Status codes - patterned on and similar to HTTP’s status codes

SIP Status codes

Code

Meaning

1xx

Informational or Provisional  - request received, continuing to process the request

2xx

Final - 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 - server failed to fulfill an apparently valid request (Try another server!)

6xx

Global Failure - the request cannot be fulfilled at any server (Give up!)


Transcript

[slide122] So, we said it's like HTTP 1.1, where you have PUT, GET, et cetera. Well, our operations now, not surprisingly, they are INVITE, ACKnowledgment, and goodBYE. Plus, we have an OPTION so we can find out what are the capabilities of the other party. A CANCEL, because, of course, if we started their phone ringing, we may want to give up and say, hey, cancel that INVITE. And a very important method is REGISTER. What's the purpose of the REGISTER? Well, if I'm a SIP user agent, the first thing that I do when I start up is I need to send a REGISTER note to my registrar saying, hey, here's my address. Right? Here's who I am and here's my current IP address. Otherwise, no one would be able to locate me. Because, of course, I could leave here and I could go somewhere else and have a different IP address - they would never know which IP to sent it to. So I need to send my IP address to my registrar. And I do that by the REGISTER message. In response to one of those requests, I get a response. And just like HTTP, the first digit tells us which class it is, the other digits tell the particular message. So if it's a 200 or something like that, it's a final message. It means that's it -- it's decided. But if it's a 100 series, it is informational or provisional. So I might get a 100 message indicating, for instance, 180, I'm trying. So my proxy says I've sent out the INVITE, don't worry, I'm on it. Why do we want a provisional response? Otherwise, the client would say, hey, I didn't hear anything, its timer would go off and say send another INVITE. Right? So to pace it and know don't need to send another INVITE, we can send feedback to the user saying, don't worry, I got your request for that INVITE, I'm handling it, reset your timer for longer. We can also do redirections, client errors, server errors, global failures, time to give up.