asteriskで短縮ダイアル

内線6XXで、あらかじめ設定しておいた電話番号へダイアルするようにします。
XXは短縮番号。

extensions.confに、すべて書いてしまうと大変なことになるので、短縮ダイアルリストを別ファイルにし、extensions.confは、そのリストを読み込んでダイアルする部分のみ記述します。


speeddial-list.conf
このファイルに、短縮番号のリストを作成します。
例)
SD_00=05012345678    ;短縮00
SD_01=0334445566     ;短縮01
SD_02=012345689       ;短縮02

extensions.conf
[globals]

#include "speeddial-list.conf"     ;[glabals]でリストを読まなければならない


;
;短縮ダイアル
;
[speeddial]

exten => _6XX,1,NoOp(短縮ダイアル : ${EXTEN:1})     ;コンソールに短縮番号表示
exten => _6XX,n,GotoIf($["${SD_${EXTEN:1}}" = ""]?null) ;短縮登録されてなければガイダンス
exten => _6XX,n,Macro(outbound,${SD_${EXTEN:1}})    ;マクロで外線発信
exten => _6XX,n,Busy

exten => _6XX,n(null),Answer()
exten => _6XX,n,Wait(1)
exten => _6XX,n,Playback(privacy-incorrect)     ;「番号が間違っています」
exten => _6XX,n,Busy

;
;外線発信マクロ
;
[macro-outbound]
; ${ARG1} - ダイアル番号
exten => s,1,Dial(SIP/外線コンテキスト1/${ARG1},,rT)
exten => s,n,Dial(SIP/外線コンテキスト2/${ARG1},,rT) ;上のダイアルが失敗するとこっちでダイアル
exten => s,n,Busy


;
;デフォルトコンテキスト
;
[default]

include => speeddial               ;通常呼ばれるコンテキストで短縮ダイアルを有効にする

これで、speeddial-list.confをいじるだけで短縮ダイアルを変更できますね。

asteriskの再起動か、設定ファイルのリロードは必要だけど・・・・・

外線発信マクロは、fusionは1番号あたり同時に2発信できるんだけど、それ以上はチャンネルアップオプションを申し込む必要があるので、空いてる他の番号で発信するようにしてみた。
これだと、相手が拒否した時とかよろしくないので、もうちょっと何とかする。


コメント

このブログの人気の投稿

asteriskの内線転送

APK Expansion Filesのサンプルを動かしてみた

asteriskの保留音