+------------------------------------+
          | 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 (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 
  (http://ftp.iptel.org/pub/sems/doc/current/AppDoc.html).
  
  If you are interested in writing your own applications, the application 
  development tutorial is a good start 
  (http://www.iptel.org/howto/sems_application_development_tutorial), together
  with the design overview (http://www.iptel.org/files/semsng-designoverview.pdf).
  
Installation:

 1. Download SEMS through svn:
    svn checkout svn://svn.berlios.de/sems/trunk
      -or-
    svn checkout http://svn.berlios.de/svnroot/repos/sems/trunk 

 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: 
  www.iptel.org/sems.
  

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.

Authors:

  Raphael Coeffic (rco@iptel.org),
  Stefan Sayer (stefan.sayer@iptego.de)

  and all contributors.

Thanks goes to:

  * Ulrich Abend (ullstar@iptel.org)
      for his great debuging work and ISDN gateway which 
      unfortunately did not make it into this version yet.

  * Jiri Kuthan (jiri@iptel.org)
      for the debuging work and help to implement
      communicating part between Ser & SEMS ('vm' module).

  * All the others who helped during test session :-)