name mode size
apps 040000
core 040000
doc 040000
Makefile 100644 1 kb
Makefile.defs 100644 4 kb
README 100644 6 kb
+------------------------------------+ | SIP express media server - README | +------------------------------------+ Introduction: 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). Requirements: 1. Ser version 0.9.6: SIP Epress Router ( - 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. 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 (, together with the design overview ( Installation: 1. Download SEMS through svn: svn checkout svn:// -or- svn checkout 2. Compile SEMS: make all make install 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'. Troubleshooting: * 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 following command: export LD_ASSUME_KERNEL=2.4.1 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. Documentation: 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 ( and the SEMS homepage ( The mailing lists ( 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. Authors: Raphael Coeffic (, Stefan Sayer ( and all contributors. Thanks goes to: * Ulrich Abend ( for his great debuging work and ISDN gateway which unfortunately did not make it into this version yet. * Jiri Kuthan ( for the debuging work and help to implement communicating part between Ser & SEMS ('vm' module). * All the others who helped during test session :-)