250 likes | 442 Views
A Generic Event Notification System Using XML and SIP. Knarig Arabshian and Henning Schulzrinne Department of Computer Science Columbia University {knarig,hgs}@cs.columbia.edu September 12, 2003 NYMAN Workshop. Overview. Basics of SIP (Session Initiation Protocol)
E N D
A Generic Event Notification System Using XML and SIP Knarig Arabshian and Henning Schulzrinne Department of Computer ScienceColumbia University {knarig,hgs}@cs.columbia.edu September 12, 2003 NYMAN Workshop
Overview • Basics of SIP (Session Initiation Protocol) • Details of SIP event notification architecture • Incorporating XML • Benefits • Conclusions
What is SIP? • SIP is part of the IETF standards and is modeled upon other Internet protocols such as SMTP (Simple Mail Transfer Protocol for e-mail) and HTTP (Hypertext Transfer Protocol for www) • SIP is also being used in Microsoft Messenger in Windows XP • A session could be a simple two-way telephone call or it could be a collaborative multimedia conference session. • Different services are possible • Internet telephony • Instant Messaging with buddy lists • Event notification • Device control
What is SIP? • Two Components within SIP: User Agent and the SIP Network Server. • User Agent is the end system component for the call • The User agent can be both a User Agent Client (UAC) and a User Agent Server (UAS) • The client element initiates the calls and the server element answers the calls. • SIP Server is the network device that handles the signaling associated with multiple calls.
What is SIP? • Main function of the SIP servers is to provide name resolution and user location • Caller is unlikely to know the IP address or host name of the called party • Caller will dial an email-like address or a telephone number associated with the called party. • A SIP proxy server receives requests, determines where to send these, and passes them onto the next server (using next hop routing principals).
Basic call setup • E-mail like identifier: <sip:alice@home.com> • Alice’s phone registers with home.com • Bob dials alice@home.com; Phone does DNS REGISTER home.com SIP/2.0 To: sip:alice@home.com Contact: sip:alice@m2.home.com … Registrar alice office.com DNS lookup sip.udp.home.com Resolve to m2.home.com m2.home.com bob home.com alice@home.com => alice@m2.home.com
Basic call setup • Phone sends INVITE; acts as User Agent Client • Server can proxy the call to current location INVITE sip:alice@m2.home.com … To: sip:alice@home.com From: “Bob” <sip:bob@office.com> … INVITE sip:alice@home.com … To: sip:alice@home.com From: “Bob” <sip:bob@office.com> … c=IN IP4 128.59.19.60 m=audio 8000 RTP/AVP 0 5 8 alice office.com m2.home.com bob home.com Proxy User agent client
Basic call setup • Alice’s phone rings; acts as a User Agent Server • When Alice picks up, call is accepted and bob’s phone sends ACK to complete the setup SIP/2.0 180 Ringing SIP/2.0 200 OK … c=IN IP4 135.180.144.32 m=audio 9000 RTP/AVP 0 8 office.com alice pc4.home.com m2.home.com bob home.com Proxy User agent server
Basic call setup • Encoded audio packets sent over RTP office.com alice bob home.com
Basic call setup • When either party hangs up BYE is sent office.com alice BYE sip:bob@office.com bob home.com
Columbia SIP user agent (sipc) • Media • Audio, video, text, white board • Screen sharing • Shared web browsing • Advanced • Presence, instant messaging • Conference control • Emergency notification and handling • Device control
Subscribe/Notify • SIP has also been extended to generate event notifications and instant messages • Users subscribe to an event with the SUBSCRIBE method and receive notifications via NOTIFY • This feature can be used for creating medical event monitoring systems
Subscribe Request • Resembles that of a SIP INVITE • Must have one “Event” header in the header field which will specify the type of event it is subscribing to • Must also contain an “Expires” header which defines the duration of the subscription • Subscriptions to multiple events requires multiple subscribe messages to be sent to the notifier • To unsubscribe, it sends a SUBSCRIBE message with the ”Expires” field set to zero
Subscribe Request • Can contain optional message body in SUBSCRIBE request • Further details of notification • methods of alerting (alarm, IM Messages, telephone calls) • Filtering of sub-events • Standardized grammar to automate the processing of the SUBSCRIBE request in the Notification Server • If message body is not present then Subscriber will expect the default method of alert
Notify Request • The “Event” header will indicate the type of notification it is • The message body of the NOTIFY message will include specific instructions on the alert methods. • Notification server receives the subscription, adds the subscriber to the particular event list and then generates NOTIFY requests accordingly
SERVER (NOTIFIER) CLIENT (SUBSCRIBER) SUBSCRIBE sip:alerts@domain.com SIP/2.0Event: sosExpires: 86400 From: sip:alice@example.comTo: sip:alerts@domain.com SIP/2.0 202 Accepted From: sip:alice@example.comExpires: 86400 NOTIFY sip:alerts@domain.com SIP/2.0Event: sosTo: sip:alice@example.comFrom: sip:alerts@domain.com
Incorporating XML • XML (Extensible Markup Language) is “metalanguage”, which is a language used for describing other languages • An XML schema is an XML language that defines various data types found in the XML document • Popular in web-related programming • Good choice for interoperability within many different types of institutional systems.
XML Messages and SIP • XML messages may be used for representing • schemas used for automatic GUI generation and configuration of sub-events • a filter for events subscribed to • specification of alerting methods • performing remote procedure calls (SOAP)
Detailed overview of architecture 3) Sipc contacts notification server and gets list of emergency events user can subscribe to 2) Generic emergency address: emergenycy@state.ny.us is added to sipc 1) Event generators publish their events to notification server Fire sos@leonia.nj.us Notification server (sipd) Earthquake 5) Sipc gets XML schema reference from notification server that will generate a form which queries for the event’s properties. Sipc then updates its subscription to the notification server with the filtered expressions 4) User subscribes to event it wants to be notified of
Detailed overview of architecture 3)Sipc will process SOAP body and invoke the procedure call—such as flashing of lights 1) Fire occurs and event generator notifies sipd 2) Sipd will process parameters of the fire and send a NOTIFY to sipc including SOAP body Fire Emergency@state.ny.us Notification server (sipd) Earthquake
XML Schemas <?xml version="1.0" ?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:complexType name="Fire"> <xs:sequence> <xs:element name="location" type="string"/> <xs:element name="severity" type="string"/></xs:sequence> </xs:complexType> </xs:schema>
Message Flow Runs on separate host Runs on separate host 1) SIP SUBSCRIBE message requesting possible events 2) 302 Redirect message with body listing all the events 3) SUBSCRIBE message with body containing an XML filter (ie. Fire) SIPC SIPD 4) 200 OK 5) 302 Redirect message with a reference to the XML Schema for event Fire 6) GUI generated with XML Schema and user selects the filtered values. Updated SUBSCRIBE sent to server with filtered values in XML format in SIP message body 7) 200 OK
Benefits • Device Neutrality • Generic in its Application • More Information • Automated Action
Conclusion and Future Work • SIP is a signaling protocol that supports SUBSCRIBE/NOTIFY methods • Incorporating XML in SIP event notification allows the system to be generic in its application