SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s...

37
SIP 1 SIP: more than grandma’s phone calls Henning Schulzrinne Dept. of Computer Science Columbia University New York, New York [email protected] VON Europe Summer 1999 (Helsinki) Session S13: SIP Update June 22, 1999 June 21, 1999

Transcript of SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s...

Page 1: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 1

SIP: more than grandma’s phonecalls

Henning SchulzrinneDept. of Computer Science

Columbia UniversityNew York, New York

[email protected]

VON Europe Summer 1999 (Helsinki)Session S13:SIP Update

June 22, 1999

June 21, 1999

Page 2: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 2

Overview

• overview/review

• standardization status

• bake-off

• extensions:

– interaction with QOS

– caller preferences

– call control

• mobility and wireless

June 21, 1999

Page 3: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 3

Architecture

Megaco/MGCP/MDCP

SIP

RTP

circuit-switched voice

H.323

proxy

MGC

MG

GK GK

proxy

PSTN

gateway

circuit-switched voice (POTS, ISDN)Internet

June 21, 1999

Page 4: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 4

SIP 101

1. SIP = signaling protocol for establishing sessions/calls/conferences/. . .

2. session = audio, video, game, chat, . . .

3. called server may map name touser@host

4. callee accepts, rejects, forward (→ new address)

5. if new address, go to step 2

6. if accept, caller confirms

7. . . . conversation . . .

8. caller or callee sendsBYE

June 21, 1999

Page 5: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 5

SIP Operation in Proxy Mode

23

5

9

[email protected]

6

1

7

[email protected]

4

8

?

henn

ing

hgs@

play

tune

play

cs.columbia.edu

200 OK

location server

ACK hgs@play

200 [email protected]

cs.tu-berlin.de INVITE hgs@play

June 21, 1999

Page 6: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 6

SIP Operation in Redirect Mode

1

4

32

6

7

8

5

?

henn

ing

ACK [email protected]

INVITE [email protected]

302 Moved temporarily colu

mbi

a.ed

u

locationserver

columbia.edu

hgs

tu-berlin.de

INVITE [email protected]

200 OK

ACK [email protected]

ieee.org

Contact: [email protected]

June 21, 1999

Page 7: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 7

SIP Advanced Features

• operation over any packet protocol (UDP, TCP, X.25,. . . )

• multicast invitations➠ basic ACD

• “interactive web response” (IWR)

• UA ↔ proxy = proxy/redirect↔ proxy/redirect

• stateless proxies: self-routing responses

• forking proxies: call several in sequence and/or parallel

• security: basic (password), digest (challenge/response), PGP

June 21, 1999

Page 8: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 8

SIP Standardization Status

• Feb. 2, 1999: IETF Proposed Standard

• March 17, 1999: IETF RFC 2543

• eligible for Draft Standard: 6 months, 2 implementations√

June 21, 1999

Page 9: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 9

SIP Bake-Off

• 35 implementors met at Columbia University, April 8th/9th, 1999

• tested

– hardware

– PSTN gateways

– proxy/redirect servers

– clients

– test instrument, . . .

June 21, 1999

Page 10: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 10

SIP Bake-Off Participants

3Com Ericsson (2)

Alcatel Helsinki Univ. of Technology

Cisco Hewlett-Packard (2)

British Telecom Lucent

Columbia University MCI Worldcom

Dialogic Mediatrix

dynamicsoft Nortel

Ellemtel Pingtel

June 21, 1999

Page 11: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 11

SIP Bake-Off Goals

• basic call set-up

• registration, user location

• proxies and redirect server operation

• advanced features: security

• identify implementation bugs and robustness issues

• identify spec ambiguities

June 21, 1999

Page 12: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 12

SIP Bake-Off Results

• almost all implementations could establish basic calls – either on arrival orafter minor on-site fixes

• tested redirection, proxying, security, registration, . . .

• generated interoperability test cases and tools

• will fold clarifications into Draft revision of RFC and web page athttp://www.cs.columbia.edu/˜hgs/sip

• second bake-off early August (Melville, NY), with advanced features(DNS SRV, forking, call routing,. . . )

• public test servers:– sip:sip.pcs.ellemtel.net

– sip:siphappens.com (3Com)

– sip:sip.pulver.com (Columbiasipd)

June 21, 1999

Page 13: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 13

SIP Work Items

• sip-cgi

• call processing language

• reliable provisional (1xx) responses

• caller preferences

• third-party call control

• SIP for subscribe/notify

• SIP–ISUP interworking

• SIP–H.323 interworking

• billing

• reverse channel setup for callprogress tones

• pre-ringing resource reservation

June 21, 1999

Page 14: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 14

Interaction with QOS

• separate call signaling and resource reservation

• options:

– diff-serv➠ no per-call resource reservation

– end-to-end (RSVP)

– segmented

• parallel or sequential: should phone ring if not enough bandwidth?

• several options being discussed

June 21, 1999

Page 15: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 15

QOS-assured signaling: one transaction

< 100 ms

phone rings

"hello"

callee picks up

ACK

ringback tone

180 Ringing (2)

200 OK

overlapmayResvConf

RESV

calleecaller proxy

PATH

RESV

INVITE (0)

100 Trying

18x Reserve

INVITE (1)

PATH

INVITE (2)

June 21, 1999

Page 16: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 16

QOS-assured signaling: segmented

< 100 ms

"hello"

callee picks up

phone rings

ringback tone180 Ringing

overlapmay

200 OK

INVITE (dnr)

100 OK

ACK

INVITE

ACK

proxy

201 CreatedContact: B

caller A callee B

segmented resource reservation

June 21, 1999

Page 17: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 17

QOS-assured signaling: new method

ringback tone

< 100 ms

"hello"

callee picks up

phone rings

overlap

200 OK

may

180 Ringing

proxy

ACK

200 OK

RESERVE

caller A callee B

Contact: B

INVITE

100 OK

June 21, 1999

Page 18: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 18

SIP caller preferences

• give caller input in forwarding and selection decisions

• “caller proposes, callee disposes”

• examples:

– forward to home or office

– type of call: video, fax, chat, . . .

– mobile or landline

– queue or forwarding to secretary or voicemail

– languages spoken

June 21, 1999

Page 19: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 19

Call control ➠ mid-call features

• basic SIP offers forwarding, hold,call waiting, . . .

• (mid-call) call transfer

• adding parties to full mesh (three-way calls)

• transition between MCU, mesh andmulticast

• provide information during transfer

• provide choice: refuse transfer

June 21, 1999

Page 20: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 20

Example: end-system blind transfer

• Calvin transfers Bob to Al-ice

• Alice knows who asked fortransfer

• Bob can refuse transfer

BYE

INVITECalvin

Bob

Alice

Also: Alice

Requested-By: Calvin

June 21, 1999

Page 21: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 21

Services

Lots of services . . .

• call redirect to web page

• web IVR

• time-of-day routing

• email: “Joe<sip:[email protected]> called”

• follow-me

• distributed home line emulation

. . . but somebody has to create them!

June 21, 1999

Page 22: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 22

Who creates services?

• service providers

• local administrators, vertical application vendors, . . .

• end users

➠ security and reliability concerns:

• crash server

• snoop

• calls directed to nowhere

June 21, 1999

Page 23: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 23

Service creation requirements

• rapid development

• rapid deployment: can’t reboot or recompile server

• cross platform: users want to take code with them

• remote installation: code runs far away

• “programmers” may have little software expertise

June 21, 1999

Page 24: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 24

Web “service” creation: cgi-bin

• cgi = common gateway interface

• typically, Perl, but can be exe-cutable

• request (form) from client→ server

• server forks process

• send form content via URL orstdin

• script writes web page tostdout

cgi-script

web server

web client

stdoutstdin$HTTP_

GET

200 OK

June 21, 1999

Page 25: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 25

SIP cgi

SIP (cgi) and HTTP (cgi-bin) are simi-lar, but:

• persistent scripts

• initiate proxy

• multiple responses (100, 3xx)

➠ use commands on stdout

cgi-script

stdoutstdin$HTTP_

INVITE SIP proxy/redirect server

302 Moved temporarily

June 21, 1999

Page 26: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 26

SIP cgi benefits

• any programming language

• can add/change scripts dynamically

• full access to databases, networked services (if script allows)

• can use restricted interpreters for decent security

• minimal SIP knowledge needed

June 21, 1999

Page 27: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 27

Example perl script

• “call forward uncondi-tional”

• database for forwarding list

• returns error if not indatabase

use DB_File;sub fail {

my($status, $reason) = @_;print "SIP/2.0 $status $reason\n\n";exit 0;

}tie %addresses, ’DB_File’, ’addresses.db’

or fail("500", "Address database failur e$to = $ENV{’HTTP_TO’};if (! defined( $to )) {

fail("400", "Missing Recipient");}$destination = $addresses{$to};if (! defined( $destination )) {

fail("404", "No such user");}print "CGI-PROXY-REQUEST-TO $destination SI Pprint "CGI-Reexecute-On: never\n\n";untie %addresses;

June 21, 1999

Page 28: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 28

But cgi is not for everyone

CGI has access to full SIP power

• ideal for service providers

• users don’t want to write Perlscripts

• lots of error conditions

• “We’re sorry, the Perl script youhave dialed has crashed. Please tryagain later.”

Want restricted functionality:

• protect server resources

• allow limited services

• provable correctness

• bounded execution time

June 21, 1999

Page 29: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 29

Call Processing Language

• special-purpose scriptinglanguage

• guaranteed safe

• XML-based ➠ hand ortool-generated

<call><location url="sip:[email protected]. c

<proxy timeout="8s">

<busy><location url="sip:jones@voicemail

id="voicemail" ><proxy />

</location></busy>

<noanswer><link ref="voicemail" />

</noanswer></proxy>

</location></call>

June 21, 1999

Page 30: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 30

Getting scripts into the server

• script based on:

– inbound proxy:From

– outbound proxy:To

– classes of users: administrative

• upload

– pre-install on server

– web form−→ cgi script−→ CPL, sip-cgi

– web upload

– upload viaREGISTER

June 21, 1999

Page 31: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 31

Mobility

• move to new network➠ IPaddress changes (DHCP)

• mobile IP hides addresschanges

• but: little deployment

• encapsulation overhead

• dog-legged routing

• may not work with IP ad-dress filtering

CN

CH

HA

FAtunnelleddatadata

data

data

home network

foreignnetwork

mobile hostcorrespondent hostrouter with home agentfunctionalityrouter with foreign agentfunctionality

MH

CH

HA

HA

MH

MH

June 21, 1999

Page 32: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 32

SIP mobility overview

• pre-call mobility➠ SIP proxy, redirect

• mid-call mobility ➠ SIP re-INVITE, RTP

• recovery from disconnection

June 21, 1999

Page 33: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 33

SIP mobility: pre-call

• MH acquires IP address viaDHCP

• optional: MH finds SIPserver via multicastREG-ISTER

• MH updates home SIPserver

• optimization: hierarchicalLR (later)

CH

redir

3

1

2

5

foreignnetwork

homenetwork

4

mobile hostcorrespondent host

SIP redirect server

MH

CH

redir

3

1

2

5

4

SIP INVITE

SIP 302 moved temporarily

SIP INVITE

SIP OK

dataMH

MH

June 21, 1999

Page 34: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 34

SIP mobility: mid-call

• MH→CH: new INVITE,with Contact and updatedSDP

• re-registers with home reg-istrar

CH

13

2

foreignnetwork

homemobile hostcorrespondent host

SIP redirect server

MH

CH

redir

3

1

2

SIP INVITE

SIP OK

data

redir

network

MH

MH

MH

June 21, 1999

Page 35: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 35

SIP mobility: multi-stage registration

Don’t want to bother home registrar with each move

Contact: alice@CAFrom: alice@NY

CA NY

Los Angeles

San Francisco

INVITE

REGISTER

From: alice@NYContact: 192.1.2.3

From: alice@NYContact: 193.1.1.1

June 21, 1999

Page 36: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 36

Conclusion

• SIP basic standard stable

• multiple interoperating implementations

• new backward-compatible features:

– QOS

– mobility

– caller preferences

– call transfer

• programming of services

June 21, 1999

Page 37: SIP: more than grandma’s phone - Columbia · PDF fileSIP: more than grandma’s phone calls ... basic ACD “interactive web response” (IWR) UA $ ... Cisco Hewlett-Packard (2)

SIP 37

For more information. . .

Internet and telecom statistics: http://www.cs.columbia.edu/˜hgs/internet

Papers: http://www.cs.columbia.edu/IRT

RTP: http://www.cs.columbia.edu/˜hgs/rtp

SIP: http://www.cs.columbia.edu/˜hgs/sip

June 21, 1999