天天看點

Asterisk電話會議功能主要應用介(1)

MeetMe             

       Asterisk稱作為“會議橋”,但從閱讀源代碼可以了解到其實作的功能包括對即将進入會議的語音通道攜帶的參數的有效性進行檢查;對會議選項參數進行設定且生效,會議選項參數将會在下面介紹;對加入成員的語音通道的語音編解碼進行轉換成線性語音格式;将加入成員的語音通道橋接到會議通道當中,會議通道對應DAHDI驅動中的一個僞裝置,辨別為pseudo;将混音後的線性語音格式轉換為加入會議語音通道的語音格式;最後meetme中的閉循環監控語音通道中的DTMF事件等。

       如何配置Asterisk會議室?

       Asterisk meetme功能可通過以下三種方式配置會議室号碼及密碼:

       1)靜态配置設定會議,靜态會議在meetme.conf中配置,在context為[rooms]下配置會議室,配置使用如下:

              conf => confno[,pin][,adminpin] 

              例如:

              conf => 2345 ;配置設定一個會議号碼為2345的會議室

              conf => 2345,1111 ; 配置設定一個會議号碼為2345的會議室,會議密碼為1111,

              conf => 2345,1111,2222 ; 配置設定一個會議号碼為2345的會議室,會議密碼為1111,                                                   ; 主持人密碼為2222

       2)動态配置設定會議,動态會議室不需要在meetme.conf配置固定的會議号碼,隻需要在撥号方案中使用meetme應用時添加 d 或 D選項,表示動态的增加一個會議室。

       例如:

exten => 12345,1,MeetMe(501,Mpd)

       3) realtime 會議,暫且翻譯為實時會議,實時會議的會議号碼将在資料表中配置設定,此資料表由Asterisk定義,通過extconfig.conf中配置通路資料表的方式。那麼在撥号方案中可以無需再指定會議室号碼,可以保留為空。當使用者撥打進入會議室的分機号時,Asterisk将提示使用者輸入會議号碼和會議密碼,當輸入的資訊與資料表中儲存的一緻時,使用者就可以加入會議室當中,此種方式配置相對複雜,但是應用卻是非常廣泛。

       如何在撥号方案中配置電話會議應用?

       MeetMe([confno][,options[,pin]])

       例如:

       MeetMe(501, 1111,2222) ;其中501為會議室号碼,1111為參會密碼,2222為主持人密碼。

下面将介紹meetme應用的所有選項,引用了Asterisk電話會議中提供的資訊:

         -= Info about application 'MeetMe' =-

[Synopsis]

MeetMe conference bridge.

[Description]

Enters the user into a specified MeetMe conference.  If the <confno> is o

mitted, the user will be prompted to enter one.  User can exit the conference

by hangup, or if the 'p' option is specified, by pressing '#'.

NOTE: The DAHDI kernel modules and at least one hardware driver (or

dahdi_dummy) must be present for conferencing to operate properly. In addition,

the chan_dahdi channel driver must be loaded for the 'i' and 'r' options to

operate at all.

[Syntax]

MeetMe([confno][,options[,pin]])

[Arguments]

confno

    The conference number

options

    a: Set admin mode.

    A: Set marked mode.

    b: Run AGI script specified in ${MEETME_AGI_BACKGROUND} Default:

    'conf-background.agi'.

    NOTE: This does not work with non-DAHDI channels in the same

    conference).

    c: Announce user(s) count on joining a conference.

    C: Continue in dialplan when kicked out of conference.

    d: Dynamically add conference.

    D: Dynamically add conference, prompting for a PIN.

    e: Select an empty conference.

    E: Select an empty pinless conference.

    F: Pass DTMF through the conference.

    i: Announce user join/leave with review.

    I: Announce user join/leave without review.

    l: Set listen only mode (Listen only, no talking).

    m: Set initially muted.

    M[(class)]: Enable music on hold when the conference has a single

    caller. Optionally, specify a musiconhold class to use. If one is not

    provided, it will use the channel's currently set music class, or 'de

    fault'.

    o: Set talker optimization - treats talkers who aren't speaking as

    being muted, meaning (a) No encode is done on transmission and (b) Received

    audio that is not registered as talking is omitted causing no buildup

    in background noise.

    p[(keys)]: Allow user to exit the conference by pressing '#' (default)

    or any of the defined keys. If keys contain '*' this will override option

    's'. The key used is set to channel variable ${MEETME_EXIT_KEY}.

    P: Always prompt for the pin even if it is specified.

    q: Quiet mode (don't play enter/leave sounds).

    r: Record conference (records as ${MEETME_RECORDINGFILE} using format

    ${MEETME_RECORDINGFORMAT}. Default filename is 'meetme-conf-rec-${CON

    FNO}-${UNIQUEID}' and the default format is wav.

    s: Present menu (user or admin) when '*' is received (send to menu).

    t: Set talk only mode. (Talk only, no listening).

    T: Set talker detection (sent to manager interface and meetme list).

    W[(secs)]: Wait until the marked user enters the conference.

    x: Close the conference when last marked user exits

    X: Allow user to exit the conference by entering a valid single digit

    extension ${MEETME_EXIT_CONTEXT} or the current context if that variable

    is not defined.

    1: Do not play message when first person enters

    S(x): Kick the user <x> seconds *after* he entered into the

    conference.

    L([x][:y[:z]]): Limit the conference to <x> ms. Play a warning when

    <y> ms are left. Repeat the warning every <z> ms. The following special

    variables can be used with this option:

        ${CONF_LIMIT_TIMEOUT_FILE}: File to play when time is up.

        ${CONF_LIMIT_WARNING_FILE}: File to play as warning if <y>

        is defined. The default is to say the time remaining.