You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sems/doc/Readme.conference.txt

139 lines
5.0 KiB

*******************************
* Conferencing plug-in README *
*******************************
Description:
------------
The 'conference' plug-in works very easy:
every call having the same request URI will
be in the same conference room.
Dialout feature:
----------------
Dialout is supported through AVT tones. Somebody
who has been 'dialed out' cannot use this functionnality
due to billing issues. If you still want that, you can
turn it out in the code (search for 'if(dialedout)').
keys:
- '#*' to trigger dialout. Then type in the number and finish with '*'.
- you be first connected to the callee only
- press '*' to connect the callee to the conference.
- press '#' to drop the call.
Dialout is only enabled if dialout_suffix is defined (see below).
Configuration:
--------------
These are needed if you store audio files in file system:
audio_path: directory where conference audio files are kept (optional,
defaults to /usr/local/lib/sems/audio)
default_announce: Announcement to be played to the first participant as
he enters the conference room. If default_announce
does not start with '/' char, default_announce is
appended to audio_path. (optional, defaults to
audio_path/default.wav) If P-Language header or
Language P-App-Param header parameter exists,
announcement file
audio_path/lonely_user_msg/r-uri-host/default_<language>.wav,
or audio_path/lonely_user_msg/default_<language>.wav
(if exists) is used instead of default_announce file.
join_sound: sound to be played to all the participants
when a new one joins the conference. If join_sound does not
start with '/', join_sound is appended to audio_path.
(optional)
drop_sound: sound to be played to all the participants
when a participant leaves the conference.
If drop_sound does not start with '/', drop_sound is
appended to audio_path. (optional)
These are needed if you store audio files in MySQL database:
mysql_host: host where MySQL server is running (optional, defaults
to 'localhost')
mysql_user: MySQL username (mandatory, no default)
mysql_passwd: MySQL password (mandatory, no default)
mysql_db: database where audio is stored
mysql_db must contain two tables as follows:
CREATE TABLE default_audio (
id int(10) unsigned NOT NULL auto_increment,
application varchar(32) NOT NULL,
message varchar(32) NOT NULL,
`language` char(2) NOT NULL default '',
audio mediumblob NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY application (application,message,`language`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE domain_audio (
id int(10) unsigned NOT NULL auto_increment,
application varchar(32) NOT NULL,
message varchar(32) NOT NULL,
domain varchar(128) NOT NULL,
`language` char(2) NOT NULL default '',
audio mediumblob NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY application (application,message,domain,`language`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
The first one stores default audio files and the latter domain specific
audio files. Application value must be 'conference' and message values
are 'first_participant_msg', 'join_snd', and 'drop_snd'. Language value
is a two letter code of a language or '' if language is unknown.
When an audio file is fetched from database, it is stored in /tmp
directory.
These are independent of audio storage:
dialout_suffix: suffix to be append to the numbered entered by
the user. Example: @iptel.org
playout_type: adaptive_playout, adaptive_jb, or simple:
select playout mechanism.
adaptive_playout : Adaptive Playout buffer
(default, recommended)
adaptive_jb : Adaptive Jitter buffer
simple : simple (fifo) playout buffer
See sems core documentation for an explanation of the
methods.
max_participants: Maximum number of participants in a conference.
Default = 0 (unlimited)
Adding participants with "Transfer" REFER:
------------------------------------------
The "Transfer REFER" is a proprietary REFER call flow which transfers a
SIP dialog and session to another user agent ('taker'). If the transfer
REFER is accepted, the one transfering the call just "forgets" the dialog
and associated session, while the taker can send a re-Invite, thus overtaking
the dialog and session. For this to work, both transferer and taker must
be behind the same record routing proxy, and the callers user agent must
properly support re-Invite (updating of contact, and session, as specified
in RFC3261).
The transfer request sent out has two headers, which are needed by the
entity taking the call:
P-Transfer-RR : route set of the call
P-Transfer-NH : next hop
Note that while this request has the method 'REFER', it does not follow rfc3515,
for example the Refer-To header is not used. Also, the behavior implemented by SEMS
here is in no way standard conform and should only be used between two SEMS instances
placed behind the same last record-routing proxy.