SIP is a signaling protocol that allows endpoints to register their location, establish and manage multimedia sessions, and negotiate compatible media types for sessions. SIP components include user agents and servers like proxies, registrars, and redirect servers. SIP uses requests and responses like HTTP to set up sessions, with methods like INVITE, ACK, and BYE. Requests are routed through SIP proxies and servers using headers like Route and Via. Dialogs maintain peer-to-peer relationships between endpoints for session routing.
33. Basic User Scenario SIP Protocol Proxy Alice Bob INVITE sip:bob@example.com INVITE sip:bob@192.168.0.100 180 Ringing 180 Ringing ACK ACK 200 OK 200 OK
Proxy – forwards the request to the next hop. One type of proxy is a location based proxy, which will use the information found in the Location Service in order the final destination, to which it will forward the request. Note, the message will most likely not go directly the address found in the location service and has to do with a number of factors. One such factor are if there are any pre-loaded routes in the message, which we will talk more about later. Registrar – responsible for maintaining contact addresses associated with a particular AOR (aka a binding). This is accomplished through REGISTER requests. The bindings are stored in the Location Service. Location Service – more of a concept than anything else and is basically just a simple database storing mappings between AORs and contact addresses. Redirect Server – will actually not forward the request to the next hop but will simply suggest alternative locations where the intended target may be reached (sends back 3xx responses). Question:
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. (rfc3261, section 7.2)
Session Establishment Three way handshake Questions: * Does 180 has any purpose? If so, what? Only for humans? * Any cool usage for 180? * How did the proxy know to contact Bob at the specified IP? * At what point is the session established? * Could you have multiple sessions being established due to this one INVITE? If so, how?
Identify the different parts of the message * What is the via header used for? * what is the Contact header used for? * To? From? Etc