Overview General introduction of Sip Sip transaction and dialog Presence architecture Sip Events architecture and behavior Security considerations
SIP Introduction Sip user agent and sip network server Client initiates a call and server routes the call Server is responsible for name resolution and user location Sip proxy receives calls and send it to its destination or next hop.
Sip Methods Invite is for session request Ack confirms a request Cancel is to end a pending request Bye to end a session Register to keep track of user location
Sip Return Code Sip has http like return code 100 trying 180 ringing 200 Ok 302 moved permanently 401 unauthorized 503 service unavailable 603 declined
Sip Transaction and Dialog Transaction occurs between a client and a server and comprises all messages from the first request sent from the client to the server up to a final response sent from the server to the client. Dialog is a peer-to-peer SIP relationship between two UAs that persists for some time. A dialog is identified by a Call-ID, a local tag and a remote tag.
Presence Presence is user’s reachability and willingness to communicate its current status information User subscribe to an event and receive notification Presence user agent Presence agent Presence server Watcher
Presence Overview Subscribe request Presence agent should authenticate and send acknowledgement State changes should be notified to subscriber Ability to refresh and terminate subscription Presence agent should be able to allow or terminate subscription
Sip Events Introduction Sip was initially introduced as a signaling protocol Lack of method to emulate constant communication and update status between entity Three more method was introduced namely Publish , Subscribe and Notify
Description of Subscribe Subscription Duration Identification of subscribe event or event classes Optional accept header.
Subscriber Actions Requesting a subscription. Refreshing subscription. Unsubscribing. Confirmation of subscription.
Description of Notify Event headers Message body Check for valid event type Ensure local authentication and authorization. Notification should sent after removal of subscription.
Notifier Responds Initial subscribe transaction processing. 489 bad event.• Confirmation of subscription creation/refreshing.• Authentication/Authorization of subscribe request. 403 forbidden, 603 declined.
Description of Publish Publishes event state Create, modify and remove state Event publication agent Event state compositor Duration of any event is well defined
Processing Publish Request Event state compositor keeps track of state for each Address-of-record Esc inspects request uri Esc examines event header Esc process expires header field Esc stores the event state in the body of the message