Desktop sharing with the Session Initiation Protocol Willem Toorop - - PowerPoint PPT Presentation

desktop sharing with the session initiation protocol
SMART_READER_LITE
LIVE PREVIEW

Desktop sharing with the Session Initiation Protocol Willem Toorop - - PowerPoint PPT Presentation

Desktop sharing with the Session Initiation Protocol Willem Toorop willem.toorop@os3.nl February 25, 2009 How can application and desktop sharing, initiated by SIP, be realised in existing SIP infrastructure with the least possible impact on


slide-1
SLIDE 1

Desktop sharing with the Session Initiation Protocol

Willem Toorop

willem.toorop@os3.nl

February 25, 2009 How can application and desktop sharing, initiated by SIP, be realised in existing SIP infrastructure with the least possible impact on that infrastructure?

Research Project 1

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 1 / 21

slide-2
SLIDE 2

What is SIP?

What is SIP? RFC 3261: The Session Initiation Protocol User location User availability User capabilities Session setup Session management

Wherever they are on the internet. Addresses are easy to remember. For example: michiel@nlnet.nl

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 2 / 21

slide-3
SLIDE 3

What is SIP?

What is SIP? RFC 3261: The Session Initiation Protocol User location User availability User capabilities Session setup Session management

Originally, “User not found” Nowadays also presence information, like in instant messaging clients.

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 2 / 21

slide-4
SLIDE 4

What is SIP?

What is SIP? RFC 3261: The Session Initiation Protocol User location User availability User capabilities Session setup Session management

The session types supported: Voice Video Instant Messaging Desktop sharing

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 2 / 21

slide-5
SLIDE 5

What is SIP?

What is SIP? RFC 3261: The Session Initiation Protocol User location User availability User capabilities Session setup Session management

Calling Redirections

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 2 / 21

slide-6
SLIDE 6

What is SIP?

What is SIP? RFC 3261: The Session Initiation Protocol User location User availability User capabilities Session setup Session management

Transfers Hangups

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 2 / 21

slide-7
SLIDE 7

What is SIP?

What is SIP? RFC 3261: The Session Initiation Protocol User location User availability User capabilities Session setup Session management

SIP does not do the session itself!

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 2 / 21

slide-8
SLIDE 8

Why desktop sharing with SIP?

Why desktop sharing with SIP?

+ No host names or IP-addresses to remember or find out about

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 3 / 21

slide-9
SLIDE 9

Why desktop sharing with SIP?

Why desktop sharing with SIP?

+ No host names or IP-addresses to remember or find out about + No VPN’s to private networks needed

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 3 / 21

slide-10
SLIDE 10

Why desktop sharing with SIP?

Why desktop sharing with SIP?

+ No host names or IP-addresses to remember or find out about + No VPN’s to private networks needed + Simply call your problem solver and offer your desktop

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 3 / 21

slide-11
SLIDE 11

How does SIP work?

How does SIP work?

Alice’s User Agent Proxy for example.com Bobs User Agent

INVITE sip:bob@example.com Contact: Alice SIP/2.0 100 Trying INVITE sip:bob@example.com Contact: Proxy SIP/2.0 180 Ringing Contact: Bob SIP/2.0 180 Ringing Contact: Bob SIP/2.0 200 OK Contact: Bob SIP/2.0 200 OK Contact: Bob ACK Bob ACK Bob

1 2 3 4

Media session

RTP over UDP

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 4 / 21

slide-12
SLIDE 12

The NAT-Traversal problem

The NAT-Traversal problem

Client

10.0.0.8

NAT Host

74.125.79.104 10.0.0.8:2345 → 74.125.79.104:80 192.0.0.1:6789 → 74.125.79.104:80

NAT Binding table Internal External 10.0.0.8:2345 192.0.0.1:6789

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 5 / 21

slide-13
SLIDE 13

The NAT-Traversal problem How does SIP deal with it?

How does SIP deal with it?

Alice’s User Agent Alice’s Outbound Proxy NAT Proxy for example.com Bobs User Agent

INVITE alice@example.com 100 Trying INVITE alice@example.com 100 Trying I N V I T E a l i c e @ e x a m p l e . c

  • m

180 Ringing 1 8 R i n g i n g 180 Ringing 200 OK 2 O K 200 OK ACK ACK ACK

Media session??? How to connect?

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 6 / 21

slide-14
SLIDE 14

The NAT-Traversal problem Industry solutions

Industry solutions

Client ALG NAT client Media session NAT

Application-level Gateway

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 7 / 21

slide-15
SLIDE 15

The NAT-Traversal problem Industry solutions

Industry solutions

Client ALG NAT client Media session NAT

Application-level Gateway

Client SBC Proxy client Media-

  • session

NAT NAT

Session Border Controller

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 7 / 21

slide-16
SLIDE 16

The NAT-Traversal problem The IETF answer

Full cone NAT

Client

10.0.0.8

Host 1

74.125.79.104

Host 2

145.100.96.70 10.0.0.8:2345 → 74.125.79.104:80 192.0.0.1:6789 → 74.125.79.104:80 ← 1 4 5 . 1 . 9 6 . 7 : 1 3 5 7 1 9 2 . . . 1 : 6 7 8 9 ← 1 4 5 . 1 . 9 6 . 7 : 1 3 5 7 1 . . . 8 : 2 3 4 5

NAT NAT Binding table Internal External 10.0.0.8:2345 192.0.0.1:6789

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 8 / 21

slide-17
SLIDE 17

The NAT-Traversal problem The IETF answer

Address restricted cone NAT

Client

10.0.0.8

Host 1

74.125.79.104

Host 2

145.100.96.70 10.0.0.8:2345 → 74.125.79.104:80 192.0.0.1:6789 → 74.125.79.104:80 10.0.0.8:2345 → 145.100.96.70:80 192.0.0.1:6789 → 145.100.96.70:80 ← 145.100.96.70:1357 192.0.0.1:6789 ← 145.100.96.70:1357 10.0.0.8:2345

NAT Internal External Servers 74.125.79.104 10.0.0.8:2345 192.0.0.1:6789 145.100.96.70

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 9 / 21

slide-18
SLIDE 18

The NAT-Traversal problem The IETF answer

Port restricted cone NAT

Client

10.0.0.8

Host 1

74.125.79.104

Host 2

145.100.96.70 10.0.0.8:2345 → 74.125.79.104:80 192.0.0.1:6789 → 74.125.79.104:80 10.0.0.8:2345 → 145.100.96.70:80 192.0.0.1:6789 → 145.100.96.70:80 ← 145.100.96.70:80 192.0.0.1:6789 ← 145.100.96.70:80 10.0.0.8:2345

NAT Internal External Server & port 74.125.79.104:80 10.0.0.8:2345 192.0.0.1:6789 145.100.96.70:80

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 10 / 21

slide-19
SLIDE 19

The NAT-Traversal problem The IETF answer

Symmetric NAT

Client

10.0.0.8

Host 1

74.125.79.104

Host 2

145.100.96.70 10.0.0.8:2345 → 74.125.79.104:80 192.0.0.1:6789 → 74.125.79.104:80 10.0.0.8:2345 → 145.100.96.70:80 192.0.0.1:5555 → 145.100.96.70:80 ← 145.100.96.70:80 192.0.0.1:5555 ← 145.100.96.70:80 10.0.0.8:2345

NAT Internal from External to External from 10.0.0.8:2345 74.125.79.104:80 192.0.0.1:6789 10.0.0.8:2345 145.100.96.70:80 192.0.0.1:5555

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 11 / 21

slide-20
SLIDE 20

The NAT-Traversal problem The IETF answer

STUN & TURN

Client STUN Server IP-address 1 IP-address 2

What IP:port do you see? → ← IP:port of NAT

NAT

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 12 / 21

slide-21
SLIDE 21

The NAT-Traversal problem The IETF answer

STUN & TURN

Client STUN Server IP-address 1 IP-address 2

Reply from other IP please → ← Sure!

NAT

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 12 / 21

slide-22
SLIDE 22

The NAT-Traversal problem The IETF answer

STUN & TURN

Client STUN Server IP-address 1 IP-address 2

Reply from other IP please → ← Sure!

NAT Client TURN Server IP-address 1 IP-address 2 Client

Media session Media session

NAT NAT

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 12 / 21

slide-23
SLIDE 23

The NAT-Traversal problem The IETF answer

ICE & ICE-TCP

draft-ietf-mmusic-ice-19: Interactive Connectivity Establishment Defines a procedure for SIP User Agents to get the best connection. Uses STUN for discovery and TURN as a last resort solution. But...

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 13 / 21

slide-24
SLIDE 24

The NAT-Traversal problem The IETF answer

ICE & ICE-TCP

draft-ietf-mmusic-ice-19: Interactive Connectivity Establishment Defines a procedure for SIP User Agents to get the best connection. Uses STUN for discovery and TURN as a last resort solution. But...

  • It is still a draft

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 13 / 21

slide-25
SLIDE 25

The NAT-Traversal problem The IETF answer

ICE & ICE-TCP

draft-ietf-mmusic-ice-19: Interactive Connectivity Establishment Defines a procedure for SIP User Agents to get the best connection. Uses STUN for discovery and TURN as a last resort solution. But...

  • It is still a draft
  • SBCs work well

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 13 / 21

slide-26
SLIDE 26

The NAT-Traversal problem Media specific solutions

Media specific solutions: MSRP

Client A Proxy Proxy Client B MSRP- Relay NAT NAT

INVITE → ← ACK INVITE → ← ACK INVITE → ← ACK

M S R P s e s s i

  • n

MSRP- session

For instant messaging

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 14 / 21

slide-27
SLIDE 27

The NAT-Traversal problem Media specific solutions

Media specific solutions: MSRP

Client A Proxy Proxy Client B MSRP- Relay NAT NAT

INVITE → ← ACK INVITE → ← ACK INVITE → ← ACK

M S R P s e s s i

  • n

MSRP- session

For instant messaging + Instant messaging is popular!

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 14 / 21

slide-28
SLIDE 28

The NAT-Traversal problem Media specific solutions

Media specific solutions: MSRP

Client A Proxy Proxy Client B MSRP- Relay NAT NAT

INVITE → ← ACK INVITE → ← ACK INVITE → ← ACK

M S R P s e s s i

  • n

MSRP- session

For instant messaging + Instant messaging is popular! + Has TCP as the underlying transport

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 14 / 21

slide-29
SLIDE 29

The NAT-Traversal problem Media specific solutions

MSRP Messages

Alice →

MSRP ydD6J6w SEND Byte-Range: 1-112/112 Message-ID: QZ3ts6C3Ed Content-Type: message/cpim From: Alice <sip:alice@example.com> To: Bob <sip:bob@example.com> Content-Type: text/plain Hi Bob

  • ------ydD6J6w$

MSRP t4gk7Sv 200 OK

  • ------t4gk7Sv$

← Bob

MSRP ydD6J6w 200 OK

  • ------ydD6J6w$

MSRP t4gk7Sv SEND Message-ID: BczlzlN3Vf Byte-Range: 1-114/114 Content-Type: message/cpim From: Bob <sip:bob@example.com> To: Alice <sip:alice@example.com> Content-Type: text/plain Hi Alice

  • ------t4gk7Sv$

Content-Type is agreed upon by SIP (User Capabilities)

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 15 / 21

slide-30
SLIDE 30

a solution RFB over MSRP

RFB over MSRP!

vncviewer →

MSRP ydD6J6w SEND Byte-Range: 1-10/10 Message-ID: QZ3ts6C3Ed Content-Type: application/x-rfb RFB data

  • ------ydD6J6w$

MSRP t4gk7Sv 200 OK

  • ------t4gk7Sv$

← vncserver

MSRP ydD6J6w 200 OK

  • ------ydD6J6w$

MSRP t4gk7Sv SEND Message-ID: BczlzlN3Vf Byte-Range: 1-2000/2000 Content-Type: application/x-rfb RFB data

  • ------t4gk7Sv$

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 16 / 21

slide-31
SLIDE 31

a solution SIP SIMPLE library

SIP SIMPLE LIBRARY

A Python based library + It does SIP The solution:

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 17 / 21

slide-32
SLIDE 32

a solution SIP SIMPLE library

SIP SIMPLE LIBRARY

A Python based library + It does SIP + It does MSRP The solution:

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 17 / 21

slide-33
SLIDE 33

a solution SIP SIMPLE library

SIP SIMPLE LIBRARY

A Python based library + It does SIP + It does MSRP Ends in a MSRPSession object for reading and writing The solution:

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 17 / 21

slide-34
SLIDE 34

a solution SIP SIMPLE library

SIP SIMPLE LIBRARY

A Python based library + It does SIP + It does MSRP Ends in a MSRPSession object for reading and writing The solution: Copy data from object to vnc software Copy data from vnc software to object But how to connect...

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 17 / 21

slide-35
SLIDE 35

a solution SIP SIMPLE library

Connecting endpoint

Connecting endpoint

vncserver

MSRP- Relay

  • vncserver is already running

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 18 / 21

slide-36
SLIDE 36

a solution SIP SIMPLE library

Connecting endpoint

Connecting endpoint

vncserver

MSRP- Relay

  • vncserver is already running
  • others can connect too

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 18 / 21

slide-37
SLIDE 37

a solution SIP SIMPLE library

Connecting endpoint

Connecting endpoint

vncserver

MSRP- Relay

  • vncserver is already running
  • others can connect too
  • password protection

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 18 / 21

slide-38
SLIDE 38

a solution SIP SIMPLE library

Listening endpoint

Listening endpoint

vncviewer

run c

  • n

n e c t

MSRP- Relay

+ No such problems here

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 19 / 21

slide-39
SLIDE 39

a solution SIP SIMPLE library

Implemented solution

Listening endpoint

x11vnc -connect 127.0.0.1:port r u n connect

MSRP- Relay endpoint with build in vncviewer

Reverse VNC connection + No others that can connect to the server

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 20 / 21

slide-40
SLIDE 40

a solution SIP SIMPLE library

Implemented solution

Listening endpoint

x11vnc -connect 127.0.0.1:port r u n connect

MSRP- Relay endpoint with build in vncviewer

Reverse VNC connection + No others that can connect to the server + No password is required

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 20 / 21

slide-41
SLIDE 41

a solution SIP SIMPLE library

Implemented solution

Listening endpoint

x11vnc -connect 127.0.0.1:port r u n connect

MSRP- Relay endpoint with build in vncviewer

Python based vncviewer + No programs to start

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 20 / 21

slide-42
SLIDE 42

a solution SIP SIMPLE library

Implemented solution

Listening endpoint

x11vnc -connect 127.0.0.1:port r u n connect

MSRP- Relay endpoint with build in vncviewer

Python based vncviewer + No programs to start + Encapsulation in Python based GUI

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 20 / 21

slide-43
SLIDE 43

a solution SIP SIMPLE library

Implemented solution

Listening endpoint

x11vnc -connect 127.0.0.1:port r u n connect

MSRP- Relay endpoint with build in vncviewer

Python based vncviewer + No programs to start + Encapsulation in Python based GUI But a real viewer might be nicer

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 20 / 21

slide-44
SLIDE 44

Conclusion

Conclusion

How can application and desktop sharing, initiated by SIP, be realised in existing SIP infrastructure with the least possible impact on that infrastructure?

draft-boyaci-avt-app-sharing-00: RTP Payload format for Application and Desktop Sharing + Operates over RTP over UDP + Will probably work on existing infrastructure (SBCs)

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 21 / 21

slide-45
SLIDE 45

Conclusion

Conclusion

How can application and desktop sharing, initiated by SIP, be realised in existing SIP infrastructure with the least possible impact on that infrastructure?

draft-boyaci-avt-app-sharing-00: RTP Payload format for Application and Desktop Sharing + Operates over RTP over UDP + Will probably work on existing infrastructure (SBCs)

  • Defines a new application sharing protocol
  • (Is it worth the effort?)

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 21 / 21

slide-46
SLIDE 46

Conclusion

Conclusion

How can application and desktop sharing, initiated by SIP, be realised in existing SIP infrastructure with the least possible impact on that infrastructure?

draft-boyaci-avt-app-sharing-00: RTP Payload format for Application and Desktop Sharing + Operates over RTP over UDP + Will probably work on existing infrastructure (SBCs)

  • Defines a new application sharing protocol
  • (Is it worth the effort?)

RFB over MSRP + Instant messaging is popular (Added value to offer costumers)

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 21 / 21

slide-47
SLIDE 47

Conclusion

Conclusion

How can application and desktop sharing, initiated by SIP, be realised in existing SIP infrastructure with the least possible impact on that infrastructure?

draft-boyaci-avt-app-sharing-00: RTP Payload format for Application and Desktop Sharing + Operates over RTP over UDP + Will probably work on existing infrastructure (SBCs)

  • Defines a new application sharing protocol
  • (Is it worth the effort?)

RFB over MSRP + Instant messaging is popular (Added value to offer costumers) + Uses existing public RFB standard

Willem Toorop (willem.toorop@os3.nl) Desktop sharing with SIP February 25, 2009 21 / 21