Modification of sipc for screen sharing
Kazuumi Koguchi
Columbia University
New York, NY 10027
USA
koguchi@cs.columbia.edu
Introduction
I added screen sharing function to sipc.
This document describes the modification parts of sipc.
Requirements
- Send 'INVITE' message including 'vncserver' or 'vncviewer'
as a media type in m line;
m=application 5905 TCP vncserver
m=application 5505 TCP vncviewer
- In case of a vncserver participant, create random password
for VNC authentication and send it to sipconf in k line;
- In case of a vncviewer participant, receive password for
VNC authentication in k line of '200 OK' message and pass it to
vncviewer program;
- When a vncserver participant uses SunOS or Linux, invoke
'vncviewer' program for itself after receiving '200 OK' message.
- When a vncserver participant sends or receives 'BYE' message,
terminate vncserver program.
- When a vncviewer participant sends or receives 'BYE' message,
terminate vncviewer program.
Other specifications and notes
- In case of a vncserver participant, sipc invokes vncserver
program before sending 'INVITE' message to sipconf. It's because sipconf
tries to connect to the participant's port as soon as sipconf receives
'INVITE' message.
- If sipc receives NG message such as '400', '500',
sipc terminates vncserver program.
- As 'vncserver' program invokes other program internally,
sipc can't konw the process number. So I used 'vncserver -kill'
to terminate vncserver program.
- In case of SunOS or Linux, vncserver program has an optional
argument for password. However this argument specifies 'password file',
so sipc creates encrypted password file from the password which is used
in k line. When sipc terminates vncserver or vncviewer program,
sipc deletes this password file.
- In case of Windows, vncserver program (named WinVNC)
and vncviewer program don't have an optional argument for password.
In original program, we have to input password manually. Therefore,
I modified WinVNC and vncviewer program of Windows version to support
the command line option of password.
Modified files
I modified the following files. They are in
http://www.cs.columbia.edu/~koguchi/ScreenSharing/src/sipc/.
tar file is
here.
- controller_invite.tcl
- create 'INVITE' message which includes 'vncserver' or 'vncviewer'
- handle password in k line
- controller_cancel.tcl
- terminate vncserver program when cancelling request
- application.tcl
- terminate vncserver program when killing all the applications
- sdp.tcl
- initialize payload arrays for vncserver and vncviewer
- mimecap
- add vncserver and vncviewer lines
- media.conf
- add vncserver and vncviewer lines
I added the two files in images directory.
- vncserver.gif
- vncviewer.gif
Limitations
- sipc's GUI uses three similar VNC buttons for point to point VNC,
a vncserver in screen sharing and a vncviewer in screen sharing.
These images should be changed to be able to distinguish them easily.
- In sipc's GUI, both the vncserver button and the vncviewer button
can be selected. Only one of them should be able to be selected.
Last updated
by Kazuumi Koguchi