Docs Request Methods

Request Methods

Every SIP method in the IANA registry, the RFC section defining it, and which dialog state machine sipnab runs it through.

On this page

Every method in the IANA registry, the RFC section that defines it, and which dialog state machine sipnab runs it through.

Source. https://www.iana.org/assignments/sip-parameters/sip-parameters-6.csv — the IANA Methods registry, retrieved 2026-07-30. RFC 3261 defines six of these and later RFCs register the rest, the same arrangement as the response codes in SIP response codes.

SipMethod in src/sip/method.rs names all fourteen, and covers_the_iana_methods_registry holds it to this list. A method outside the registry parses as Custom and takes the generic dialog handler, which is right for a private extension and wrong for a registered one nobody noticed.

Dialog state machines

sipnab dispatches on the method that opened the dialog, corrected for the four methods that cannot open one. ACK, BYE, CANCEL and PRACK each presuppose an INVITE (RFC 3261 section 13.2.2.4, RFC 3261 section 15.1, RFC 3261 section 9.1, RFC 3262 section 4), so a capture that opens on one is an INVITE dialog seen from its middle and runs through the INVITE machine. Two more methods get their own machine and the rest share a generic one.

Which machine handles a message is one question. Which transaction the message belongs to is another. A response answers the transaction its CSeq method names (RFC 3261 section 8.1.1.5). So a 200 OK in an INVITE dialog means the callee picked up only when that CSeq says INVITE. The same code answering a CANCEL means the cancellation arrived, and nothing more.

Every dialog opens in Trying. From there each machine reaches only its own states, and a state no machine reaches is a state no filter can select:

MachineMethodsStates it reaches
INVITEINVITE, ACK, BYE, CANCEL, PRACKRinging, InCall, Transferring, Completed, Canceled, Redirected, Failed
REGISTERREGISTERRegistered, Expired, Redirected, Failed
SUBSCRIBESUBSCRIBEPending, Active, Terminated, Redirected
genericthe other sevenCompleted, Redirected, Failed

Expired is a de-registration: a 2xx to a REGISTER whose Contact granted zero seconds. Redirected is a 3xx, which every machine can draw.

MethodMachineDefined inDescription
ACKINVITERFC 3261 section 17.1.1.3This section specifies the construction of ACK requests sent within the client transaction. A UAC core that generates an ACK for 2xx MUST instead follow the rules described in Section 13.
BYEINVITERFC 3261 section 15.1A BYE request is constructed as would any other request within a dialog, as described in Section 12. Once the BYE is constructed, the UAC core creates a new non-INVITE client transaction, and passes it the BYE request.
CANCELINVITERFC 3261 section 9The previous section has discussed general UA behavior for generating requests and processing responses for requests of all methods. In this section, we discuss a general purpose method, called CANCEL.
INFOgenericRFC 6086 section 4The INFO method provides a mechanism for transporting application level information that can further enhance a SIP application. Section 8 gives more details on the types of applications for which the use of INFO is appropriate.
INVITEINVITERFC 3261 section 13When a user agent client desires to initiate a session (for example, audio, video, or a game), it formulates an INVITE request. The INVITE request asks a server to establish a session.
MESSAGEgenericRFC 3428 section 3When one user wishes to send an instant message to another, the sender formulates and issues a SIP request using the new MESSAGE method defined by this document.
NOTIFYgenericRFC 6665 section 3.2NOTIFY requests are sent to inform subscribers of changes in state to which the subscriber has a subscription. Subscriptions are created using the SUBSCRIBE method.
OPTIONSgenericRFC 3261 section 11The SIP method OPTIONS allows a UA to query another UA or a proxy server as to its capabilities. This allows a client to discover information about the supported methods, content types, extensions, codecs, etc.
PRACKINVITERFC 3262 section 6This specification defines a new SIP method, PRACK. The semantics of this method are described above.
PUBLISHgenericRFC 3903 section 3This document defines a new SIP method, PUBLISH, for publishing event state. PUBLISH is similar to REGISTER in that it allows a user to create, modify, and remove state in another entity which manages this state on behalf of the user.
REFERgenericRFC 3515 section 2REFER is a SIP method as defined by RFC 3261 [1]. The REFER method indicates that the recipient (identified by the Request-URI) should contact a third party using the contact information provided in the request.
REGISTERREGISTERRFC 3261 section 10SIP offers a discovery capability. If a user wants to initiate a session with another user, SIP must discover the current host(s) at which the destination user is reachable.
SUBSCRIBESUBSCRIBERFC 6665 section 3.1The SUBSCRIBE method is used to request current state and state updates from a remote node. SUBSCRIBE requests are target refresh requests, as that term is defined in [RFC3261].
UPDATEgenericRFC 3311 section 3Operation of this extension is straightforward. The caller begins with an INVITE transaction, which proceeds normally.

Registry references beyond the defining RFC, where a later document updates the method: INVITE [RFC3261][RFC 6026].