Was this page helpful?

AEL: 多人會議呼叫(n-way call)

    簡述

    此篇將介紹以 AEL 開發一個多人會議呼叫(n-way call)的功能,此功能主要是利用系統提供的 Meetme 會議功能,結合類似傳統三方通話的會議呼叫方式,其目的除了可實現三人以上的多方會議,還可以將參加會議的方式從原有的與會者被動加入,改成可由主持者主動呼叫與會者。

    系統環境

    Elastix 1.1-8

    Getting Start

    新增會議室

    PBX -> PBX Configuration -> Conferences -> Add Conference

    Conference Number: 1102
    Conference Name: 自定義
    Music on Hold: Yes
    其餘項目為預設值

    設定及編輯 AEL

    編輯 /etc/asterisk/extensions.ael,最下方加入

    // for n-way Call
    #include "/etc/asterisk/my_ael/n-way-calls.ael"

    新增 /etc/asterisk/my_ael/n-way-calls.ael,內容如下。註:my_ael 目錄需手動新增

    context dynamic-nway {
      _XXXX => {
        Answer;
        Set(CONFNO=${EXTEN});
        Set(MEETME_EXIT_CONTEXT=dynamic-nway-invite);
        Set(DYNAMIC_FEATURES=);
        MeetMe(${CONFNO},pdMX);
        Hangup;
      };
    };
    
    
    context dynamic-nway-invite {
      0 => {
        Read(DEST,dial,,i);
        Set(DYNAMIC_FEATURES=nway-inv#nway-noinv);
        Dial(Local/${DEST},,g);
        Set(DYNAMIC_FEATURES=);
        Goto(dynamic-nway,${CONFNO},1);
      };
    
      i => Goto(dynamic-nway,${CONFNO},1);
    };
    
    
    macro ael-nway-start() {
      Set(CONFNO=1102);
      ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1);
      Read(DEST,dial,,i);
      Set(DYNAMIC_FEATURES=nway-inv#nway-noinv);
      Dial(Local/${DEST},,g);
      Set(DYNAMIC_FEATURES=);
      Gosub(dynamic-nway,${CONFNO},1);
    };
    
    macro ael-nway-ok() {
      ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1);
    };
    
    macro ael-nway-notok() {
      SoftHangup(${BRIDGEPEER});
    };
    
    

    註:
    * CONFNO 必須與會議室號碼相同。
    * _XXXX 會議室號碼為四碼,若不為四碼,請自行修改。

    新增 Dynamic feature

    PBX -> Tools -> File Editor -> File: features_applicationmap_custom.conf

    nway-start => *5,caller,Macro,ael-nway-start
    nway-inv => **,caller,Macro,ael-nway-ok
    nway-noinv => *#,caller,Macro,ael-nway-notok
    

    註:
    *5 轉接(第一位)會議室功能碼
    ** 轉接受邀者(第二位以後)進入會議室功能碼
    *# 停止邀請功能碼

    設定儲存後,執行套用指令

    CLI>reload

    若要使 Dynamic feature code 能在通話狀態中啟用,還需以下設定:

    PBX -> Tools -> File Editor -> File: globals_custom.conf

    DYNAMIC_FEATURES=nway-start
    

    註:以上設定可使分機及外線通話,兩者都可以將其轉接至會議室,如果想限定只有分機的通話才能被轉接會議室,請改用以下設定:

    PBX -> Tools -> File Editor -> File: extensions.conf,搜尋 [macro-exten-vm]

    [macro-exten-vm]
    exten => s,1,Macro(user-callerid)
    exten => s,n,Set(DYNAMIC_FEATURES=nway-start) <---------增加這行
    ...
    
    操作流程說明

    -> A 撥給 B,A 和 B 通話中,A 決定要與 B, C, D 召開一個臨時的電話會議。
    -> A 按 *5,B 隨即進入會議室#1102 等待;A 聽到 Tone 撥號音。
    -> A 撥給 C,A 與 C 通話中,A 邀請 C 進入會議室。
    -> A 按 **,C 隨即進入會議室#1102;A 同時也進入會議室#1102。
    -> A, B, C 三人在會議室通話,A 決定在邀請 D 加入會議。
    -> A 在會議中 按 0,A 暫時退出會議,並且聽到 Tone 撥號音。
    -> A 撥給 D,A 與 D 通話中,A 邀請 D 進入多人會議室。
    -> A 按 **,D 隨即進入會議室;A 同時也進入會議室。
    -> A, B, C, D 四人在會議室通話中。
    -> 繼續邀請第五人
    -> ...

    註:
    *5 轉接(第一位)會議室功能碼
    ** 轉接受邀者(第二位以後)進入會議室功能碼
    *# 停止邀請功能碼

    Was this page helpful?
    標籤 (Edit tags)
    • No tags
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core