Skip to content

Latest commit

 

History

History

konference

Introduction

App_konference is a channel-independent conference application.

Design goals

Appkonference has several design goals which are different than Meetme:

    * It does not require a zap channel for timing.
    * It is very efficient when used with channels which support DTX (silence
	detection/discontinuous transmission).
    * It can do VAD on channels which do not support DTX (although this 
	is more expensive than just mixing them, but less expensive then
	encoding; therefore it might still be a win). 
    * It presents messages on the Monitor interface for determine which 
	speakers are active. 

Mixing design

    * Minimize encoding/decoding, minimize mixing.
    * Minimize generational loss from trancoding.
    * Usual cases are handled very efficiently:
          o One speaker: That speaker's frame is sent directly to each 
		participant which uses the same codec. It is trancoded 
		_once_ for each additional codec type used by participants.
          o Two speakers: Each speaker gets the other speaker's frames.  
		The two speaker's frames are decoded and mixed, and then 
		encoded _once_ for each codec type used by participants. 

License

Naturally, app_konference is GPL. The SVN repository also includes parts of 
libspeex, which is distributed under a BSD-style license. See LICENSE for more
details.


Getting app_konference

app_konference is available via SVN from its own home on sourceforge:

    * http://sourceforge.net/projects/appkonference


Compiling app_konference

    * download asterisk source
    * modify Makefile to point to your source directory
    * make
    * sudo make install 


Using app_konference

There is no configuration file. Conferences are created on-the-fly.

Dialplan syntax:

Konference(NAME,FLAGS[,MAXUSERS][,TYPE][,SPY][,VADSTART][,VADCONTINUE])

* NAME: whatever you want to identify the conference
* FLAGS: dialplan flags, see Flags.txt for a comprehensive list

* MAXUSERS: limit conference participants to max_users
* TYPE: conference type identifier
* SPY: channel name to spy


CLI Commands

Please look at CLI.txt for a comprehensive list of CLI commands and parameters.


Manager Events

app_konference generates several detailed manager events so that applications
interfacing with the manager API can monitor conferences:

	* ConferenceJoin: join conference
	* ConferenceLeave: leave conference

	* ConferenceDTMF: dtmf received
	* ConferenceState: speaking state changed
	* ConferenceSoundComplete: sound completed

	* ConferenceMemberMute: mute member
	* ConferenceMute: mute conference
	* ConferenceMemberUnmute: unmute member
	* ConferenceUnmute: unmute conference

Benchmarking

It would be nice to have solid benchmarks to present, but a good size 
machine should be able to handle many callers when either (a) they are 
using DTX, or (b) they are listen-only.  It's used often with hundreds of
simultaneous callers.


Discussion

The appkonference-devel mailing list is the place to discuss everything related
to app_konference.  The bug tracker on SourceForge gets a little bit of 
attention now and then.