updated some documentation

sayer/1.4-spce2.6
Stefan Sayer 16 years ago
parent 36d737ff15
commit a6951c452b

218
README

@ -13,7 +13,9 @@ Introduction:
in VoIP networks for all applications where server-
side processing of audio is required, for example away
or pre-call announcements, voicemail, or network side
conferencing.
conferencing. Another use case is for interconnecting
SIP networks, where a back-to-back user agent (B2BUA)
is required.
SEMS can be used to implement simple high performance
components like announcement servers as building
@ -22,27 +24,29 @@ Introduction:
user agent (B2BUA) and state machine scripting functionality,
complex VoIP services can be realized completely in SEMS.
SEMS only supports patent free codecs. That means that codecs
like g729 won't be supported. On the other hand, SEMS supports
all important patent free codecs out of the box (g711u, g711a,
GSM06.10, speex, G726, L16 and iLBC). Integrating other codecs
in SEMS is very simple (patented or not).
SEMS supports all important patent free codecs out of the
box (g711u, g711a, GSM06.10, speex, G.726, L16 and iLBC).
There is a wrapper for the IPP G.729 codec implementation
available. Integrating other codecs in SEMS is very simple
(patented or not).
SEMS shows very good performance on current standard
PC architecture based server systems. It has sucessfully
been run with 1200 G.711 conference channels on a quad-core
Intel(R) Xeon at 2GHz (700 GSM, 280 iLBC channels), and up to
5000 channels on a dual quad Xeon at 2.9GHz. On the
other hand it also runs on very small devices - for example
small embedded systems like routers running OpenWRT, for which
of course the achievable channel count is not that high.
5000 channels on a dual quad Xeon at 2.9GHz. Its back-to-back
user agent has been run with up to 19000 TPS on the latter
machine. On the other hand it also runs on very small devices -
for example small embedded systems like routers running OpenWRT,
for which of course the achievable channel count is not that
high.
License:
SEMS is free (speech+beer) software. It is licensed under dual
license terms, the GPL (v2+) and proprietary license. This program
is released under the GPL with the additional exemption that
compiling, linking, and/or using OpenSSL is allowed.
license terms, the GPL (v2+) and proprietary license. This
program is released under the GPL with the additional exemption
that compiling, linking, and/or using OpenSSL is allowed.
See doc/COPYING for details.
@ -50,21 +54,24 @@ Applications:
The following applications are shipped with SEMS :
Announcements (Prompts, Ringbacktones, Pre-call-prompts):
* announcement plays an announcement
* voicemail records voice messages and sends them
as email, saves them to a voicebox, or
both
* conference enables many people to talk together
at the same time
* ann_b2b pre-call-announcement, plays announcement
before connecting the callee in B2BUA mode
* announce_transfer pre-call-announcement, plays announcement
and then transfers the caller to the callee
using REFER
* webconference conference application that can be
controlled from an external program,
e.g. a website
* early_announce (pre-call) announcement using early media (183),
optionally continues the call in B2BUA mode
* echo test module to echo the caller's voice
* precoded_announce plays preencoded announcements
Voicemail/Mailbox
* voicebox users can dial in to the voicebox to check
their messages
@ -75,18 +82,19 @@ Applications:
an IMAP server. Users can dial in to check
their messages (simpler version)
* ann_b2b pre-call-announcement, plays announcement
before connecting the callee in B2BUA mode
* announce_transfer pre-call-announcement, plays announcement
and then transfers the caller to the callee
using REFER
* voicemail records voice messages and sends them
as email, saves them to a voicebox, or
both
* early_announce (pre-call) announcement using early media (183),
optionally continues the call in B2BUA mode
* auth_b2b B2BUA app that changes identity and authenticates
second call leg
Conferencing
* conference enables many people to talk together
at the same time
* webconference conference application that can be
controlled from an external program,
e.g. a website
* conf_auth collect a PIN number, verify it against an
XMLRPC authentication server and connects in
@ -95,18 +103,33 @@ Applications:
* pin_collect collect a PIN, optionally verify it, and transfer
the call into a conference
Back-to-back User Agent
* sbc flexible SBC application, supports
- identity change
- header manipulation (filter etc)
- (multihomed) RTP relay
- SIP authentication
- Session timer, call timer, prepaid
etc
App development
* dsm DSM state machine scripting (use this)
* ivr embedded Python interpreter for simple apps
* py_sems another embedded Python interpreter
Misc
* echo test module to echo the caller's voice
* callback reject the call, call back caller later and have
her enter a number to call in b2bua with media relay
mode
* reg_agent SIP REGISTER to register SEMS' contact to an aor
* sw_prepaid_sip prepaid application
* call_timer B2BUA, ends the call after a certain time
* precoded_announce plays preencoded announcements
Developing and customizing Applications and services:
@ -141,22 +164,14 @@ Requirements:
All requirements are optional.
1. Python version >= 2.3 for the ivr (embedded python interpreter)
and py_sems, optional
2. flite speech synthesizer for TTS in the ivr, optional
3. lame >= 3.95 for mp3 file output, optional. mpg123 for mp3 playback,
optional
4. xmlrpcpp for XMLRPC control, optional
5. spandsp library for DTMF detection and PLC, optional
o Python version >= 2.3 for the ivr (embedded python interpreter)
and py_sems
o flite speech synthesizer for TTS in the ivr
o lame >= 3.95 for mp3 file output, mpg123 for mp3 playback
o spandsp library for DTMF detection and PLC
(SEMS has its own implementations for both)
6. libZRTP SDK (http://zfoneproject.com) for ZRTP, optional
7. libev for jsonrpc, optional
o libZRTP SDK (http://zfoneproject.com) for ZRTP
o libev for jsonrpc
How to get started with SEMS:
@ -164,85 +179,41 @@ How to get started with SEMS:
http://ftp.iptel.org/pub/sems/, unpack and install it
using the usual make && make install. After installation, the
configuration file /usr/local/etc/sems/sems.conf needs to be
adapted.
adapted, especially the parameters "sip_ip", "media_ip",
"load_plugins", "application".
On debian, you can add the iptel.org SEMS repository to
On Debian and Ubuntu, add the SEMS repository from OBS to
/etc/apt/sources.list:
deb http://ftp.iptel.org/pub/sems/debian lenny free
deb-src http://ftp.iptel.org/pub/sems/debian lenny free
and install SEMS from binary packages with:
$ apt-get install sems sems-python-modules
If you want to build SEMS from source on debian, see below.
On Fedora, simply do
deb http://download.opensuse.org/repositories/home:/team-sems/Debian_5.0 ./
and install SEMS packages with:
wget http://download.opensuse.org/repositories/home:/team-sems/Debian_5.0/Release.key \
-O - |apt-key add -
apt-get update && apt-get install sems
If you want to build SEMS from source on debian/derivatives, see below.
On Fedora/CentOS, simply do
$ sudo yum install sems
and sems package will be installed.
You can also 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
You can also follow one of the tutorials linked from the SEMS homepage
(e.g. http://ftp.iptel.org/pub/sems/doc/current/howtostart_noproxy.html).
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/sems/sems_application_development_tutorial),
together with the design overview
together with the design overview
(http://www.iptel.org/files/semsng-designoverview.pdf) and the example
applications (apps/examples/).
Installation:
1. Download SEMS
Download the source tarball from ftp://ftp.iptel.org/pub/sems/,
or get the newest version 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, but in this case some paths
in the config files will need to be adapted.
If you want to install to a different prefix than /usr/local,
use PREFIX=/some/other/prefix
For detailed instructions for some modules, 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 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'.
5. Using SEMS
SEMS needs to be told from the many possible applications that are
loaded which one to run. You can simply set the application
in sems.conf, e.g. application=conference. You can also define an
application mapping, i.e. numbers (R-URIs) that will be mapped to
applications, see the explanation of 'application' parameter in
sems.conf.
Alternatively, the SIP-stack-SER can be configured in ser-sems.cfg
to send all calls directly to one application, in that case the line
if(!t_write_unix("/tmp/sems_sock","sems/app_headers"))
in ser-sems.cfg could be changed to e.g.
if(!t_write_unix("/tmp/sems_sock","conference"))
A sample ser.cfg file in this style can be found at
http://ftp.iptel.org/pub/sems/ser.cfg
SEMS needs to be told from the many possible applications that are
loaded which one to run. You can simply set the application
in sems.conf, e.g. application=conference. You can also define an
application mapping, i.e. numbers (R-URIs) that will be mapped to
applications, see the explanation of 'application' parameter in
sems.conf.
Creating packages on debian (ubuntu, ...):
@ -316,6 +287,7 @@ Authors:
Andreas Granig
Andrey Samusenko
Andriy I Pylypenko
Anton Zagorskiy
B. Oldenburg
Balint Kovacs
Bogdan Pintea
@ -325,6 +297,7 @@ Authors:
Jeremy A
Jiri Kuthan
Juha Heinanen
Matthew Williams
Ovidiu Sas
Peter Lemenkov
Peter Loeppky
@ -333,9 +306,10 @@ Authors:
Rui Jin Zheng
Tom van der Geer
Ulrich Abend
(if you want to be added or removed from this list, please mail to stefan.sayer@gmail.com)
(if you feel you should be on this list, please mail to stefan.sayer@gmail.com)
Special thanks to IPTEGO GmbH and iptelorg GmbH for sponsoring development of SEMS.
Special thanks to IPTEGO GmbH, iptelorg GmbH and TelTech Systems Inc. for
sponsoring development of SEMS.
Contributions:

@ -52,6 +52,12 @@
*
* <ul><li> \ref ModuleDoc_conference </li></ul>
*
* \subsection webconferencingappdoc Web controlled conference rooms
*
* Using the webconference application, conference rooms can be controlled
* from e.g. a web control page, or some other external mechanism:
*
* <ul><li> \ref ModuleDoc_webconference </li></ul>
* \subsection conferencingauthappdoc Authentication for conference rooms (PIN entry)
*
* There are two possibilies how a PIN entry for conference rooms (or for
@ -68,18 +74,14 @@
* application:
* <ul><li> \ref ModuleDoc_pin_collect </li></ul>
*
* \subsection webconferencingappdoc Web controlled conference rooms
*
* Using the webconference application, conference rooms can be controlled
* from e.g. a web control page, or some other external mechanism:
*
* <ul><li> \ref ModuleDoc_webconference </li></ul>
*
*
* \section Back-to-Back User Agent (B2BUA) and SBC applications
*
SEMS has a powerful and flexible B2BUA application, called 'sbc', which
implements flexible routing options, header, message and codec filter, optional RTP relay, SIP authentication, Session Timers, prepaid accounting and call timer etc.
implements flexible routing options, header, message and codec filter,
optional RTP relay, SIP authentication, Session Timers, prepaid accounting
and call timer etc.
<ul><li> \ref ModuleDoc_sbc </li></ul>
@ -132,15 +134,14 @@
* xmlrpc2di (\ref ModuleDoc_xmlrpc2di) exposes DI interfaces as XMLRPC server.
* This is very useful to connect SEMS with other software, that e.g. trigger click2dial
* calls, create registrations at SIP registrar, do monitoring, etc.
*
* jsonrpc (\ref ModuleDoc_jsonrpc) exposes DI interfaces as json-rpcv2 server.
*
* callback application can save lots of mobile calls costs, it calls back caller
* and then the caller can enter a number to be connected to:
*
* <ul><li> \ref ModuleDoc_callback </li></ul>
*
* auth_b2b application is identity change: A B2BUA where on the B leg the caller
* identity and authentication is different. Can be used for example for authenting
* to gateways.
*
* \section morecomponents Other components
*

@ -14,6 +14,7 @@
<li> \ref sbc_profile_codecfilter </li>
<li> \ref sbc_profile_replytranslate </li>
<li> \ref sbc_profile_refuse </li>
<li> \ref sbc_profile_symmetricrtp </li>
</ul>
* Back to \ref AppDoc, to \ref AppDocExample.
@ -115,3 +116,15 @@
Back to \ref ModuleDoc_sbc, \ref AppDoc, to \ref AppDocExample.
*/
/*! \page sbc_profile_symmetricrtp SBC example profile: Symmetric RTP
This sbc profile implements RTP relay with forced symmetric RTP.
\section symmetricrtp_sbcprofile symmetricrtp.sbcprofile.conf
\verbinclude symmetricrtp.sbcprofile.conf
\section Links
Back to \ref ModuleDoc_sbc, \ref AppDoc, to \ref AppDocExample.
*/

Loading…
Cancel
Save