Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Desktop sharing with the Session Initiation Protocol
Willem Toorop
February 25, 2009
How can application and desktop sharing, initiated by SIP, be realised inexisting SIP infrastructure with the least possible impact on thatinfrastructure?
Research Project 1
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 1 / 21
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: [email protected]
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 2 / 21
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 ([email protected]) Desktop sharing with SIP February 25, 2009 2 / 21
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 ([email protected]) Desktop sharing with SIP February 25, 2009 2 / 21
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 ([email protected]) Desktop sharing with SIP February 25, 2009 2 / 21
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 ([email protected]) Desktop sharing with SIP February 25, 2009 2 / 21
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 ([email protected]) Desktop sharing with SIP February 25, 2009 2 / 21
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 ([email protected]) Desktop sharing with SIP February 25, 2009 3 / 21
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 ([email protected]) Desktop sharing with SIP February 25, 2009 3 / 21
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 ([email protected]) Desktop sharing with SIP February 25, 2009 3 / 21
How does SIP work?
How does SIP work?
Alice’sUserAgent
Proxy forexample.com
BobsUserAgent
INVITE sip:[email protected]
Contact: Alice
SIP/2.0 100 TryingINVITE sip:[email protected]
Contact: Proxy
SIP/2.0 180 Ringing
Contact: BobSIP/2.0 180 Ringing
Contact: BobSIP/2.0 200 OK
Contact: BobSIP/2.0 200 OK
Contact: Bob
ACK Bob
ACK Bob
1
2
3
4
Media session RTP over UDP
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 4 / 21
The NAT-Traversal problem
The NAT-Traversal problem
Client10.0.0.8
NATHost
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 tableInternal External
10.0.0.8:2345 192.0.0.1:6789
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 5 / 21
The NAT-Traversal problem How does SIP deal with it?
How does SIP deal with it?
Alice’sUserAgent
Alice’sOutbound
ProxyNAT
Proxy forexample.com
BobsUserAgent
INVITE [email protected]
100 Trying
INVITE [email protected]
100 Trying
INVITE [email protected]
180 Ringing
180 Ringing
180 Ringing
200 OK
200 OK
200 OK
ACK
ACK
ACK
Media session??? How to connect?
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 6 / 21
The NAT-Traversal problem Industry solutions
Industry solutions
ClientALGNAT
clientMedia session
NAT
Application-level Gateway
ClientSBCProxy
clientMedia- -session
NAT NAT
Session Border Controller
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 7 / 21
The NAT-Traversal problem Industry solutions
Industry solutions
ClientALGNAT
clientMedia session
NAT
Application-level Gateway
ClientSBCProxy
clientMedia- -session
NAT NAT
Session Border Controller
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 7 / 21
The NAT-Traversal problem The IETF answer
Full cone NAT
Client10.0.0.8
Host 174.125.79.104
Host 2145.100.96.70
10.0.0.8:2345 →74.125.79.104:80
192.0.0.1:6789 →74.125.79.104:80
← 145.100.96.70:1357
192.0.0.1:6789← 145.100.96.70:1357
10.0.0.8:2345
NAT
NAT Binding tableInternal External
10.0.0.8:2345 192.0.0.1:6789
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 8 / 21
The NAT-Traversal problem The IETF answer
Address restricted cone NAT
Client10.0.0.8
Host 174.125.79.104
Host 2145.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.10410.0.0.8:2345 192.0.0.1:6789
145.100.96.70
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 9 / 21
The NAT-Traversal problem The IETF answer
Port restricted cone NAT
Client10.0.0.8
Host 174.125.79.104
Host 2145.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:8010.0.0.8:2345 192.0.0.1:6789
145.100.96.70:80
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 10 / 21
The NAT-Traversal problem The IETF answer
Symmetric NAT
Client10.0.0.8
Host 174.125.79.104
Host 2145.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:678910.0.0.8:2345 145.100.96.70:80 192.0.0.1:5555
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 11 / 21
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 NATNAT
Client TURN Server
IP-address 1
IP-address 2
ClientMedia session Media session
NAT NAT
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 12 / 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
Client TURN Server
IP-address 1
IP-address 2
ClientMedia session Media session
NAT NAT
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 12 / 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
Client TURN Server
IP-address 1
IP-address 2
ClientMedia session Media session
NAT NAT
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 12 / 21
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 ([email protected]) Desktop sharing with SIP February 25, 2009 13 / 21
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 ([email protected]) Desktop sharing with SIP February 25, 2009 13 / 21
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 ([email protected]) Desktop sharing with SIP February 25, 2009 13 / 21
The NAT-Traversal problem Media specific solutions
Media specific solutions: MSRP
ClientA
Proxy Proxy
ClientB
MSRP-Relay
NAT NAT
INVITE→
← ACK
INVITE →← ACK INVITE →←
ACK
MSRP session MSRP-
session
For instant messaging
+ Instant messaging is popular!
+ Has TCP as the underlying transport
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 14 / 21
The NAT-Traversal problem Media specific solutions
Media specific solutions: MSRP
ClientA
Proxy Proxy
ClientB
MSRP-Relay
NAT NAT
INVITE→
← ACK
INVITE →← ACK INVITE →←
ACK
MSRP session MSRP-
session
For instant messaging
+ Instant messaging is popular!
+ Has TCP as the underlying transport
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 14 / 21
The NAT-Traversal problem Media specific solutions
Media specific solutions: MSRP
ClientA
Proxy Proxy
ClientB
MSRP-Relay
NAT NAT
INVITE→
← ACK
INVITE →← ACK INVITE →←
ACK
MSRP session MSRP-
session
For instant messaging
+ Instant messaging is popular!
+ Has TCP as the underlying transport
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 14 / 21
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:[email protected]>
To: Bob <sip:[email protected]>
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:[email protected]>
To: Alice
<sip:[email protected]>
Content-Type: text/plain
Hi Alice
-------t4gk7Sv$
Content-Type is agreed upon by SIP (User Capabilities)
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 15 / 21
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 ([email protected]) Desktop sharing with SIP February 25, 2009 16 / 21
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 ([email protected]) Desktop sharing with SIP February 25, 2009 17 / 21
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 ([email protected]) Desktop sharing with SIP February 25, 2009 17 / 21
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 ([email protected]) Desktop sharing with SIP February 25, 2009 17 / 21
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 ([email protected]) Desktop sharing with SIP February 25, 2009 17 / 21
a solution SIP SIMPLE library
Connecting endpoint
Connectingendpoint
vncserver
MSRP-Relay
- vncserver is already running
- others can connect too
- password protection
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 18 / 21
a solution SIP SIMPLE library
Connecting endpoint
Connectingendpoint
vncserver
MSRP-Relay
- vncserver is already running
- others can connect too
- password protection
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 18 / 21
a solution SIP SIMPLE library
Connecting endpoint
Connectingendpoint
vncserver
MSRP-Relay
- vncserver is already running
- others can connect too
- password protection
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 18 / 21
a solution SIP SIMPLE library
Listening endpoint
Listeningendpoint
vncviewer
run
con
nec
t
MSRP-Relay
+ No such problems here
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 19 / 21
a solution SIP SIMPLE library
Implemented solution
Listeningendpoint
x11vnc -connect
127.0.0.1:port
run
con
nec
t
MSRP-Relay
endpoint withbuild in
vncviewer
Reverse VNC connection
+ No others that can connect to the server
+ No password is required
Python based vncviewer
+ No programs to start
+ Encapsulation in Python based GUI
But a real viewer might be nicer
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 20 / 21
a solution SIP SIMPLE library
Implemented solution
Listeningendpoint
x11vnc -connect
127.0.0.1:port
run
con
nec
t
MSRP-Relay
endpoint withbuild in
vncviewer
Reverse VNC connection
+ No others that can connect to the server
+ No password is required
Python based vncviewer
+ No programs to start
+ Encapsulation in Python based GUI
But a real viewer might be nicer
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 20 / 21
a solution SIP SIMPLE library
Implemented solution
Listeningendpoint
x11vnc -connect
127.0.0.1:port
run
con
nec
t
MSRP-Relay
endpoint withbuild in
vncviewer
Python based vncviewer
+ No programs to start
+ Encapsulation in Python based GUI
But a real viewer might be nicer
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 20 / 21
a solution SIP SIMPLE library
Implemented solution
Listeningendpoint
x11vnc -connect
127.0.0.1:port
run
con
nec
t
MSRP-Relay
endpoint withbuild in
vncviewer
Python based vncviewer
+ No programs to start
+ Encapsulation in Python based GUI
But a real viewer might be nicer
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 20 / 21
a solution SIP SIMPLE library
Implemented solution
Listeningendpoint
x11vnc -connect
127.0.0.1:port
run
con
nec
t
MSRP-Relay
endpoint withbuild in
vncviewer
Python based vncviewer
+ No programs to start
+ Encapsulation in Python based GUI
But a real viewer might be nicer
Willem Toorop ([email protected]) Desktop sharing with SIP February 25, 2009 20 / 21
Conclusion
Conclusion
How can application and desktop sharing, initiated by SIP, be realised inexisting SIP infrastructure with the least possible impact on thatinfrastructure?
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 ([email protected]) Desktop sharing with SIP February 25, 2009 21 / 21
Conclusion
Conclusion
How can application and desktop sharing, initiated by SIP, be realised inexisting SIP infrastructure with the least possible impact on thatinfrastructure?
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 ([email protected]) Desktop sharing with SIP February 25, 2009 21 / 21
Conclusion
Conclusion
How can application and desktop sharing, initiated by SIP, be realised inexisting SIP infrastructure with the least possible impact on thatinfrastructure?
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 ([email protected]) Desktop sharing with SIP February 25, 2009 21 / 21
Conclusion
Conclusion
How can application and desktop sharing, initiated by SIP, be realised inexisting SIP infrastructure with the least possible impact on thatinfrastructure?
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 ([email protected]) Desktop sharing with SIP February 25, 2009 21 / 21