| SIP express media server - README |
SEMS is a extensible media server which helps you
adding voice services to your VoIP system.
Each module or plug-in extends your system. Audio
plug-ins enable new codecs and file format whereby
application plug-ins implement the service's logic.
Some modules called component modules provide
functionality for other modules to use.
You can easely extend SEMS by creating your own plug-ins.
Applications can be written using the SEMS framework API
in C++, or in Python using an embedded python interpreter
of the ivr or py_sems plugins.
The following default applications are shipped with SEMS :
* voicemail: records voice messages and mails them as email
* conferencing: enables many people to talk together
at the same time
* announcement: plays an announcement
* echo: test module echoing your voice
* mailbox: saves voicemails into an IMAP server. Users
can dial in to check their messages
* ann_b2b: pre-call-announcement, plays an announcement before
connecting the callee in b2bua mode
* announce_transfer: pre-call-announcement, plays an announcement
and then transfers the caller to the callee using REFER
* early_announce: pre-call announcement using early media (183)
* conf_auth: collect a PIN number, verify it against an
XMLRPC authentication server and connect in b2bua mode
* pin_collect: collect a PIN, optionally verify it, and transfer the call
SEMS only support patent free codecs. Which means that we won't support codecs
like g729. On the other hand, we have support for all important patent free
(g711u, g711a, GSM06.10 and iLBC).
1. Ser version 0.9.6: SIP Epress Router (www.iptel.org/ser)
- SEMS requires Ser as its SIP stack.
- SEMS & Ser communicate together through socket, which means that a Ser
instance is mandatory on every host using SEMS.
2. Python version >= 2.3 for the ivr (embedded python interpreter), optional
3. flite speech synthesizer for TTS in the ivr, optional
4. lame >= 3.95 for mp3 file output, optional
How to get started with SEMS:
To try out SEMS, the easiest is to follow one of the tutorials linked from
the SEMS homepage (e.g. http://www.iptel.org/howto_sems_voicemail). The
Application Modules Documentation page then gives an overview of the
application modules that come with SEMS
If you are interested in writing your own applications, the application
development tutorial is a good start
with the design overview (http://www.iptel.org/files/semsng-designoverview.pdf).
1. Download SEMS through svn:
svn checkout svn://svn.berlios.de/sems/trunk
svn checkout http://svn.berlios.de/svnroot/repos/sems/trunk
2. Compile SEMS:
Notice: you don't need to execute 'make install' if you want to run SEMS
from the source tree.
For detailed instructions, have a look at doc/COMPILING as well.
3. Look at the default configuration file whether it fits your need:
If you installed SEMS with 'make install', the configuration
is at '/usr/local/etc/sems/sems.conf'.
Else make your own using sems.conf.sample.
4. Start Ser:
Please read the Ser User's guide and doc/Configure-SEMS-Ser-HOWTO
if you don't known how to complete this stage,
5. Start SEMS:
If you installed SEMS with 'make install', sems can be
found at '/usr/local/sbin/sems'.
If you need help starting 'sems', try 'sems -h'.
* RH thread problem:
SEMS has currently problems being run on Redhat 9. If you cannot wait
until it is fixed, you may want to run ans_machine after running the
This disables the new pthread implementation included in Redhat 9.
Installed file using 'make install':
/usr/local/sbin/sems : SEMS executable
/usr/local/lib/sems/plug-in/* : plug-ins
/usr/local/lib/sems/audio/* : default path for audio files
/usr/local/lib/sems/ivr/* : precompiled IVR scripts
/usr/local/etc/sems/sems.conf : configuration file
/usr/local/etc/sems/etc/* : modules configuration files
/usr/local/share/doc/sems/README : this README.
source_path/scripts/sems[.redhat] : example start-up scripts.
source_path/sems.conf.example : example configuration file.
In the doc/ directory there is a set of files describing the applications
shipped with SEMS, alongside some more documentation. With 'make doc' you
can generate the doxygen documentation in doc/doxygen_doc, which contains
these files as well.
All documentation is available online linked from the SEMS homepage:
Bug report & Contact:
If you have problems configuring Ser&SEMS for your needs,
look at the support information on the Ser homepage (www.iptel.org/ser)
and the SEMS homepage (www.iptel.org/sems).
The mailing lists (http://lists.iptel.org) for SEMS are the first
address to ask for help, report bugs and improvements. You need to be
subscribed to be able to post to the lists.
Raphael Coeffic (firstname.lastname@example.org),
Stefan Sayer (email@example.com)
and all contributors.
Thanks goes to:
* Ulrich Abend (firstname.lastname@example.org)
for his great debuging work and ISDN gateway which
unfortunately did not make it into this version yet.
* Jiri Kuthan (email@example.com)
for the debuging work and help to implement
communicating part between Ser & SEMS ('vm' module).
* All the others who helped during test session :-)