Title: A Generic Event Notification System Using XML and SIP
1A Generic Event Notification System Using XML and
SIP
- Knarig Arabshian and Henning Schulzrinne
Department of Computer ScienceColumbia
University - knarig,hgs_at_cs.columbia.edu
- September 12, 2003
- NYMAN Workshop
2Event Notification
- Event notification can be applied to many
different systems - SIP has been extended to support event
notification - Various types of event notification systems using
subscribe/notify - Presence/Instant Messaging
- Emergency Notification
- Conference control
3Overview
- What is SIP (Session Initiation Protocol)?
- Details of SIP event notification architecture
- Incorporating XML
- Benefits
- Conclusions
4What is SIP?
- The Session Initiation Protocol (SIP) is a
signaling protocol used for establishing sessions
in an IP network. - 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
- Event notification
- Device control
5What is SIP?
- Two Components within SIP User Agent and the SIP
Network Server. - User Agent
- end system component for the call
- can be both a User Agent Client (UAC) and a User
Agent Server (UAS) - client element initiates the calls and the server
element answers the calls.
6What is SIP?
- SIP Network Server
- Network device that handles the signaling
associated with multiple calls. - 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. - Receives requests, determines where to send
these, and passes them onto the next server
(using next hop routing principals).
7Basic call setup
- E-mail like identifier ltsipalice_at_home.comgt
- Alices phone registers with home.com
- Bob dials alice_at_home.com Local server does DNS
REGISTER home.com SIP/2.0 To sipalice_at_home.com C
ontact sipalice_at_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_at_home.com gt alice_at_m2.home.com
8Basic call setup
- Phone sends INVITE acts as User Agent Client
- Server can proxy the call to current location
INVITE sipalice_at_m2.home.com To
sipalice_at_home.com From Bob ltsipbob_at_office.com
gt
INVITE sipalice_at_home.com To
sipalice_at_home.com From Bob ltsipbob_at_office.com
gt cIN IP4 128.59.19.60 maudio 8000 RTP/AVP 0
5 8
alice
office.com
m2.home.com
bob
home.com
Proxy
User agent client
9Basic call setup
- Alices phone rings acts as a User Agent Server
- When Alice picks up, call is accepted and Bobs
phone sends ACK to complete the setup
SIP/2.0 180 Ringing
SIP/2.0 200 OK cIN IP4 135.180.144.32 maudio
9000 RTP/AVP 0 8
office.com
alice
pc4.home.com
m2.home.com
bob
home.com
Proxy
User agent server
10Basic call setup
- Encoded audio packets sent over RTP
office.com
alice
bob
home.com
11Basic call setup
- When either party hangs up BYE is sent
office.com
alice
BYE sipbob_at_office.com
bob
home.com
12Columbia 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
13Subscribe/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 various event
notification systems
14Subscribe 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
15Subscribe Request
- Can contain optional message body in SUBSCRIBE
request - Further details of notification
- 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
16Notify Request
- Notification server receives the subscription,
adds the subscriber to the particular event list
and then generates NOTIFY requests accordingly - The Event header will indicate the type of
notification it is - The message body of the NOTIFY message may
include a remote procedure call or other details
of notification.
17SERVER (NOTIFIER)
CLIENT (SUBSCRIBER)
SUBSCRIBE sipalerts_at_domain.com SIP/2.0Event
sosExpires 86400 From sipalice_at_example.comTo
sipalerts_at_domain.com
SIP/2.0 202 Accepted From sipalice_at_example.com
Expires 86400
NOTIFY sipalerts_at_domain.com SIP/2.0Event
sosTo sipalice_at_example.comFrom
sipalerts_at_domain.com
18Incorporating 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.
19XML Messages and SIP
- XML messages may be used for representing
- schemas used for automatic GUI generation and
configuration of sub-events - lt?xml version"1.0" ?gt ltxsschema
xmlnsxs"http//www.w3.org/2001/XMLSchema"gt - ltxscomplexType name"Fire"gt
- ltxssequencegt
- ltxselement
name"location" type"string"/gt - ltxselement
name"severity" type"string"/gt
lt/xssequencegt - lt/xscomplexTypegt
- lt/xsschemagt
- a filter for events subscribed to
- lt?xml version"1.0" encoding"UTF-8"?gt
- ltev-filter-set xmlns"urnietfparamsxmlnssimpl
e-winfo-filter"gt - ltev-filter id Fire"gt
- lttriggergt
- ltchanged changed-byForest Hills, NY
//_at_location lt/changedgt - ltchanged changed-by Severe //_at_severity
lt/changedgt - lt/triggergt
- lt/ev-filtergt
20- performing remote procedure calls (SOAP)
- lt?xml version'1.0'?gtltSOAP-ENVEnvelope
xmlnsxsi"http//www.w3.org/1999/XMLSchema-instan
ce" xmlnsSOAP-ENV"http//schemas.xmlsoap.org/soa
p/envelope/" xmlnsSOAP-ENC"http//schemas.xmlsoa
p.org/soap/encoding/" SOAP-ENVencodingStyle"http
//schemas.xmlsoap.org/soap/encoding/"
xmlnsxsd"http//www.w3.org/1999/XMLSchema"gt
ltSOAP-ENVBodygt ltFiregt ltlocation
xsitype"xsdstring"gtFlushing, NYlt/locationgt
ltseverity xsitype"xsdstring"gtseverelt/sev
eritygt lt/Firegt - lt/SOAP-ENVBodygt
- lt/SOAP-ENVEnvelopegt
21Message 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 for event (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
22GUI Screens Generated
23Detailed overview of architecture
3) Sipc contacts notification server and gets
list of emergency events user can subscribe to
2) Generic emergency address sos_at_ny.ny.us is
added to sipc
1) Event generators publish their events to
notification server
Fire
sos_at_.ny.ny.us Notification server (sipd)
Earthquake
5) Sipc gets XML schema reference from
notification server that will generate a form
which queries for the events 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
24Detailed overview of architecture
3)Sipc will process SOAP body and invoke the
procedure callsuch 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_at_ny.ny.us Notification server (sipd)
Earthquake
25Benefits Why SIP and XML?
- Device Neutrality
- SIP-based end systems, ranging from IP telephones
to 3G wireless handsets - More Information
- Video conferencing, text messaging
- Automated Action
- Device control using the SIP DO method
- Generic in its Application
- Using XML schemas and messages allows for variety
of event notification systems
26Conclusion 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 - Currently implementing emergency notification
- Future work includes incorporating all the
different types of events supported in sipc in
one generic event notification module