sipum - SIP/RTSP unified messaging system
sipum [options]
Binary and source "alpha" distribution are available now. The code runs on Solaris 8 on Sun SPARC.sipum server needs rtspd and sipd. You can use any SIP user agent as a client, e.g., e*phone, sipc, sipua. For retrieving a message either a SIP user agent, an HTTP browser (Netscape or Internet Explorer) or an RTSP client (e.g., quicktime) can be used.
sipum version 1.0-20010430 (alphaCode)
sipum is a SIP/RTSP based unified messaging system. SIP is an IETF signaling protocol for Internet conferencing and telephony. RTSP is an IETF proposed standard for control of streaming media on the Internet. sipum is a modular Internet multimedia mail system using SIP and RTSP that allows users message access from any Internet connected device, using standard media players or user agents. RTSP controls the delivery of streaming media and provides facilities to play back, record, or perform other operations on multimedia content. A SIP-PSTN gateway can be used to access the multimedia mail service from a PSTN phone.sipum is an Internet replacement for traditional PSTN based voice mail systems, with enhanced services, like integration with video, fax, web and electronic mails. It provides traditional answering machine and voice-mail interface, along with additional Internet based features and services.
- supports SIP (RFC 2543) and RTSP (RFC 2326).
- supports G.711 Mu Law audio.
- media is transparent to sipum.
- modular and multi-threaded.
- works with Columbia University's e*phone, sipc, sipua, sipd and rtspd.
- Web based setup and voice-mail account.
- integration of video and fax.
- -h
- Print usage and exit.
- -v
- Makes the software print out debugging information.
- -X
- Makes the software run in non-daemon mode.
- -f filename
- Use this configuration file. Default is vmail.conf in the current directory. This option is deprecated.
- -r
- Do not register the users with SIP server.
- -e
- Do not send email notification for new messages. This is used for testing only.
- -u loginname
- Unix Login name of the administrator. Default is the login name of the user invoking the server.
- -d domain
- Email domain, e.g., cs.columbia.edu. This overrides the values in the configuration file.
- -s host
- Default host name of the SIP server.
- -l filename
- Path for the license file. Default license file is sipum.license in the current directory. This option is not needed if licensing is not enabled.
- -n scriptname
- Path for the email notification script (for file notify.tcl). Default is ./script/notify.tcl.
- -c configport
- Port number to be used for TCP communication for configuration. The only configuration option is re-registering the users' SIP address with the configured SIP server. Default is 10022.
- -D mysql-host
- Host name of the machine where mysql server is running.
- -U mysql-user
- User name to access mysql data base. Default is root.
- -P mysql-password
- Password to access mysql data base.
- -S mysql-database
- Name of the mysql database. Default is sip.
Working
Users can signup for the service from web. Every registered user is given an user id and some disk quota for storing their messages. The administrator defines the default attributes, while users can override these attributes as per their taste. The administrator is responsible for running sipd and rtspd. The administrator also defines the default domain name (e.g., wonderland.com) for all the users using the service.
When sipum is started it goes through the list of registered users and REGISTERs them with sipd using SIP, e.g., a user "alice" is registered as sip:alice@wonderland.com with contact sip:alice@address_of_sipum. When "alice" plugs in her own SIP phone, it registers itself (sip:alice@wonderland.com) with contact sip:alice@sip_phone. Now, when "bob" makes a call to "alice", the SIP server at wonderland.com proxies the call to both the registered location, sip:alice@address_of_sipum and sip:alice@sip_phone. If "alice" does not pickup the call for some time, say 10 seconds, then sipum picks up the call. It prompts "bob" to leave a message indicating that "alice" is not available now. Bob leaves a message and hangsup. sipum informs "alice", through electronic mail, about the new message from "bob". Alice can now retrieve the message either by dialing a message specific SIP URI sip:alice-67212-retrieve@address_of_sipum, using an RTSP client rtsp://server.wonderland.com/alice/inbox/67212.au or by going to her web based unified messaging home page and clicking on the appropriate message. This architecture as well as a sample web based inbox are shown below.
![]()
![]()
sipum can be used in other modes also, e.g., Alice's phone redirects the call from Bob after 10 seconds, to sipum, or Alice uploads a sip-cgi script in sipd to forward calls to sipum when her phone is busy or there is no response.
sipum can shares the database with our SIP proxy and registration server, sipd. In this case the sipum should be run with -r If it is being used with some other SIP proxy server then do not use this option.
Installation
Installation instructions are available in doc/install.html with both source and binary distribution. sipum and rtspd must be installed on a unix machine and should share the same file system.Use install.tcl installation script available with the distribution to install sipum, rtspd and sipua.
We describe a typical configuration using an example. Let Bob is a system administrator and wants to install sipum. His unix id is bob. And his email address is bob@office.com.
Bob chooses an appropriate host (say, cube.office.com, a Solaris/SPARC machine running SunOS 5.8) to run sipum and rtspd. They can be run on different hosts, but we use a single host in this example. He needs another host (say, metro.office.com) to run the sipd server. Both the machines share the same file system.
Bob installs Tcl 8.3 or higher on both metro and cube, and updates his PATH environment variable accordingly. He installs mysql binaries at /usr/local/mysql/ and sets the path /usr/local/mysql/bin in his PATH environment variable. He runs the mysql server on metro.
Bob uses an HTTP server. He downloads the Apache HTTP server and installs it in /usr/local/apache. The configuration file ./conf/httpd.conf is updated as per install.html file available with the distribution. He runs the HTTP server in metro.
Bob installs the sipd binary distribution by following install.html or running install.tcl installation script. After the installation of sipd is done he installs sipum using the install.tcl file available with the sipum distribution. He enters following information when prompted:
Enter the email domain for your organization. default is office.com > Bob hits <return> key for default ... Enter the user name used for accessing the MySQL database. > root ... Enter the host name on which MySQL server is running. Default is localhost > metro.office.com ... Enter the user password for accessing mysql for user root. Default is NULL > Hit <return> for default ... Enter the host name on which the HTTP server is running. > metro.office.com ... Enter the hostname on which the SIP unified messaging (sipum) will be running. > cube.office.com ... Enter the hostname and port number on which the RTSP media server (rtspd) will be running. > cube.office.com:8554 ... Enter the absolute directory path where you would like to install the web files. This must be accessible from your HTTP server. > /usr/local/apache/htdocs ... Enter the absolute directory path where you would like to create per-user directory. Default is /user/local/sipum/users > /usr/local/sipum/usersOnce the installation is done Bob visits the web page at http://metro.office.com/cinema to view various configuration options. He clicks on his voice mail box to create the voice mail account for himself.
Now to start the system (in debug mode), he runs the RTSP server on cube,
$ ./rtspd -v -X -p 8554Then he runs the SIP server, sipd on metro,$ ./sipd -v -X -s .Then he runs the voice-mail server, sipum on cube.$ ./sipum -v -X -r -Dmetro.office.com -PNULL -UrootThen he starts sipua and tries to make a call to "bob@cube.office.com" as follows.$ ./sipua -v -p 6060 sipua> invite sip:bob@cube.office.comThe debug trace in sipum shows that it is waiting for 15 seconds, before initiating the record to the rtspd server. Once the message is recorded, terminate the sipua session using bye command.sipua> byeAn email notification is sent to bob@office.com about the new voice mail.Bob can now go to the web page http://metro.office.com/cinema, sign up with the user id as "bob@office.com" and password as "root", unless it is changed by hime before, and play the voice mail.
Alternatively, he can use a SIP user agent or a RTSP client to play the message. The URIs' to be used are present in the notification email.
Calls can be routed through the sipd server as the new user signup automatically creates an entry in the contacts table.
Web interface
The web interface is very simple and intuitive. A new user's account can be created from the web interface. See the usermanual available from your web account.
We recommend use of -vX option.Problem reports should be sent to the email address(s) mentioned in the README file available with the distribution. You should also send your configuration files along with the problem report. The various configuration files are "rtspd/rtspd.conf", "sipum/script/config", "sipum/script/email.tmp", "web/cinema.conf", "sipd/sipd.conf".
- SIP/RTSP unified messaging
- Kundan Singh and Henning Schulzrinne, " Unified Messaging using SIP and RTSP", IP Telecom Services Workshop , Sept 2000. Atlanta, Georgia, U.S.A.
- Protocols SIP, RTSP
- Servers sipd, rtspd
- User agents sipua, sipc, siplib
Henning Schulzrinne, Kundan Singh, and Tarun Kapoor at Columbia University, Department of Computer Science
This work was supported by a grant from Sylantro Systems.
Copyright 1999-2000 by Columbia University; all rights reserved
Permission to use, copy, modify, and distribute this software and its documentation for not-for-profit research and educational purposes and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that the copyright notice and warranty disclaimer appear in supporting documentation, and that the names of the copyright holders or any of their entities not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Use of this software in whole or in parts for commercial advantage and by for-profit organizations requires a license.
The copyright holders disclaim all warranties with regard to this software, including all implied warranties of merchantability and fitness. In no event shall the copyright holders be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortuous action, arising out of or in connection with the use or performance of this software.
Last updated by Kundan Singh