a generic event notification system using xml and sip knarig arabshian and henning schulzrinne...

26
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

Post on 20-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

A Generic Event Notification System Using XML and SIP

Knarig Arabshian and Henning Schulzrinne

Department of Computer ScienceColumbia University

{knarig,hgs}@cs.columbia.eduSeptember 12, 2003

NYMAN Workshop

Page 2: 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

Event NotificationEvent 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

Page 3: 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

OverviewOverview

What is SIP (Session Initiation Protocol)?

Details of SIP event notification architecture

Incorporating XML Benefits Conclusions

Page 4: 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

What is SIP?What 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

Page 5: 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

What is SIP?What 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.

Page 6: 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

What is SIP?What 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).

Page 7: 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

home.com

office.com alice

bobm2.home.com

Basic call setupBasic call setup E-mail like identifier: <sip:[email protected]> Alice’s phone registers with home.com Bob dials [email protected]; Local server does DNS

Registrar

[email protected] =>

[email protected]

REGISTER home.com SIP/2.0To: sip:[email protected]: sip:[email protected]

DNS lookup sip.udp.home.com

Resolve to m2.home.com

Page 8: 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

home.com

office.com

alice

bobm2.home.com

Basic call setupBasic call setup

Phone sends INVITE; acts as User Agent Client Server can proxy the call to current location

INVITE sip:[email protected] …To: sip:[email protected]: “Bob” <sip:[email protected]>…c=IN IP4 128.59.19.60m=audio 8000 RTP/AVP 0 5 8

User agent client

INVITE sip:[email protected]

To: sip:[email protected]: “Bob”

<sip:[email protected]>…

Proxy

Page 9: 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

home.com

office.com alice

bobm2.home.com

Basic call setupBasic 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

pc4.home.com

SIP/2.0 180 Ringing

ProxyUser agent

server

SIP/2.0 200 OK…c=IN IP4 135.180.144.32m=audio 9000 RTP/AVP 0 8

Page 10: 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

home.com

office.comalice

bob

Basic call setupBasic call setup Encoded audio packets sent over RTP

Page 11: 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

home.com

office.comalice

bob

Basic call setupBasic call setup When either party hangs up BYE is sent

BYE sip:[email protected]

Page 12: 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

Columbia SIP user agent Columbia SIP user agent (sipc)(sipc) Media

Audio, video, text, white board Screen sharing Shared web browsing

Advanced Presence, instant messaging Conference control Emergency notification and handling Device control

Page 13: 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

Subscribe/NotifySubscribe/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

Page 14: 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

Subscribe RequestSubscribe 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

Page 15: 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

Subscribe RequestSubscribe 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

Page 16: 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

Notify RequestNotify 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.

Page 17: 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

CLIENT(SUBSCRIBER)

SUBSCRIBE sip:[email protected] SIP/2.0Event: sosExpires: 86400 From: sip:[email protected]: sip:[email protected]

SERVER(NOTIFIER)SIP/2.0 202 Accepted

From: sip:[email protected]: 86400

NOTIFY sip:[email protected] SIP/2.0Event: sosTo: sip:[email protected]: sip:[email protected]

Page 18: 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

Incorporating XMLIncorporating 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.

Page 19: 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

XML Messages and SIPXML Messages and SIP XML messages may be used for representing

schemas used for automatic GUI generation and configuration of sub-events<?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>

a filter for events subscribed to <?xml version="1.0" encoding="UTF-8"?> <ev-filter-set xmlns="urn:ietf:params:xml:ns:simple-winfo-filter"> <ev-filter id = “Fire">

<trigger> <changed changed-by=“Forest Hills, NY” //*[@location] </changed>

<changed changed-by =“Severe” //*[@severity] </changed></trigger>

</ev-filter> </ev-filter-set>

Page 20: 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

performing remote procedure calls (SOAP)<?xml version='1.0'?>

<:SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <:SOAP-ENV:Body> <:Fire> <:location xsi:type="xsd:string">Flushing, NY</:location> <:severity xsi:type="xsd:string">severe</:severity> </:Fire>

</:SOAP-ENV:Body></:SOAP-ENV:Envelope>

Page 21: 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

Message FlowMessage FlowRuns on separate

host

Runs on separate

host1) 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)

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

SIPC SIPD

Page 22: 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

GUI Screens GeneratedGUI Screens Generated

Page 23: 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

Detailed overview of Detailed overview of architecturearchitecture

2) Generic emergency address: [email protected] is

added to sipc

Fire

[email protected] Notification server (sipd)

3) Sipc contacts notification server and gets list of

emergency events user can subscribe to

4) User subscribes to event it

wants to be notified of

1) Event generators publish their events to notification server

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

Page 24: 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

Detailed overview of Detailed overview of architecturearchitecture

3)Sipc will process SOAP body and invoke the

procedure call—such as flashing of lights

Fire

[email protected] server (sipd)

2) Sipd will process parameters of the fire and send a NOTIFY to

sipcincluding SOAP body

1) Fire occurs and event generator notifies

sipd

Page 25: 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

Benefits: Why SIP and Benefits: Why SIP and XML?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

Page 26: 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

Conclusion and Future Conclusion and Future WorkWork 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