When the destination device receives a SIP request, it can respond in different ways, depending on the request type and the device status. For example, if the destination device receives an INVITE request, it can respond with a 100 Trying status code, which means that it is trying to establish a session. It can also respond with a 180 Ringing status code, which means that it is ringing. It can also respond with a 200 OK status code, which means that it has accepted the session. Alternatively, it can respond with a 4xx, 5xx, or 6xx status code, which means that it has rejected the session for various reasons, such as busy, forbidden, or unavailable.
When the destination device responds with a 200 OK status code, it also sends a SIP ACK request to the sender device, which confirms that the session has been established. The devices can then exchange messages using the SIP MESSAGE method, which is similar to the HTTP POST method. The MESSAGE method contains the message content in the body, and the Content-Type header that specifies the message format. The devices can also use the SIP BYE method to terminate the session when they are done with the message exchange.