cs526 logo
rainbow animatio

SIP and IP Telephony

Related Literature:

SIP Protocol in Network Architecture

sip protocol zoo

SIP Call Flow

SIP call flow

SIP Registration

sip registration

SIP Call Routing

SIP call routing

1. Bob (bob@home.com) tries to reach Alice (alice@oce.com).
2. The server at oce.com redirects Bob indicating that Alice can be reached at alice@school.edu.
3. Bob's user agent tries the new location.
4. Alice has registered four contacts, with one of them (her desk phone) as her preferred location.
Thus, the server at school.edu tries the more preferred location for Alice at her desk phone.
5. The phone is idle, and sends a \ringing" response. However, since it is not picked up, the
server times out.
6. The server then forks the call request to all the remaining three locations simultaneously.
The locations are Alice.Cueba@intern.com, alice@columbia.edu and ac114@hostel.school.com.
7. The phone at intern.com responds back saying that the user is not available.
8. The server at columbia.edu forwards the call to Alice's desktop computer.
9. A popup window appears on Alice's machine indicating an incoming call from Bob. She
accepts the call by clicking on the \Accept" button of the user interface.
10. The server at columbia.edu forwards the response to the upstream server at school.edu.
11. The server at school.edu on receiving the successful response, cancels out all the other pending
call requests. In this example it cancels the call request branch sent to hostel.school.com. The
phone at hostel.school.com will stop ringing at this time.
12. The server then forwards the successful response to the upstream host (Bob's user agent).
13. The call is successful. Now media (audio and/or video) can be exchanged between the two
endpoints.

SIP Operation in Proxy Mode

SIP operation in Proxy mode

SDP RFC2327


Session description
v= (protocol version)
o= (owner/creator and session identifier).
s= (session name)
i=* (session information)

u=* (URI of description)
e=* (email address)
p=* (phone number)
c=* (connection information - not required if included in all media)
b=* (bandwidth information)
One or more time descriptions (see below)
z=* (time zone adjustments)
k=* (encryption key)
a=* (zero or more session attribute lines)
Zero or more media descriptions (see below)