2014年7月16日水曜日

asteriskの保留音

asteriskは、保留音もかなり細かく設定できます。

musiconhold.conf を編集して設定します。

musiconhold.confの例
[default]
mode=files
directory=moh
random=yes
digit=*
 
[test]
mode=files
directory=moh/test

[default]
 クラスの指定。
 特別なことをしなければ[default]クラスだけに記述しておけばOK.

mode=files
 wavファイルを使用する場合、"files"を指定。
 mp3の場合は、"mp3"を指定。

directory=moh
 保留音の音楽データが保存されているフォルダの指定。
 /var/lib/asterisk 以下のフォルダを指定。

random=yes
 フォルダ内にある音楽をランダムで再生する指定。
 これが指定されていない場合は、保留音が最後まで再生されるとフォルダ内の次のファイルが再生されます。
 再生順は、
  sort=alpha もしくは、sort=random で指定できます。

digit=*
 保留中に、指定したキーを押すと、曲が切り替わるようになります。



使用できるwavファイルは、
 8kHz,モノラルのファイルです。
 音量は、-10dBぐらいがうるさくなくてよさそう。
 ハイパスフィルターで100Hzより下をカットしておくと電話機で聞きやすいかも。

MP3は試していません。



■ダイアルプランで保留音を切り替える

 exentions.conf で、保留音の制御も可能です。

 exten => 1234,1,SetMusicOnHold(class)
 のように設定すると、"1234"番にかけた場合の保留音は、class指定したクラスの設定が使われます。


■呼び出し時に音楽が鳴らせる

 exten => 1234,1,Dial(SIP/xxxx,,m(class))

 のように、Dialのパラメータ"m"を指定すると、保留音を呼び出し音として再生します。
 メロディコールみたいなやつですね。
 クラスを指定しなければdefaultクラスの設定が使用されます。

 

2014年7月15日火曜日

asteriskの内線転送

asteriskの内線転送は2種類あります。

1.ブラインド転送
  転送先の内線の受話器をあげた瞬間に発信してきた人につながります。

2.仲介転送
  転送先と転送元の人が会話でき、転送元の人が受話器を置くと、発信者とつながります。

asteriskはデフォルトではブラインド転送が#キーに割り当ててあります。
日本では仲介転送が普通なので、仲介転送を#キーに割り当てます。


feature.conf
[featuremap]
blindxfer => *1        ; Blind transfer  (default is #)!
atxfer => #            ; Attended transfer
これで変更できます。

内線300に転送する場合は、通話中に"#300"で、相手は保留中となり、内線300を呼び出します。
内線300と会話した後、受話器を置くと転送されます。

もし転送先が応答しない場合は、20秒ほどで元の通話相手につながります。


asteriskにはコール・パークという、相手を保留にし、決められてた内線番号に電話することで接続できる機能もある。
デフォルトでは#700で相手を保留にするのと同時に、パーク番号が電話機から通知されます。
そのパーク番号を伝えて、パーク番号にかけてもらって転送をする方法があります。

これらのキーマップを確認するには、CLIで「features show」コマンドを使います。
*CLI> features show
Builtin Feature           Default Current
---------------           ------- -------
Pickup                    *8      *8    
Blind Transfer            #       *1    
Attended Transfer                 #    
One Touch Monitor                      
Disconnect Call           *       *0    
Park Call                              
One Touch MixMonitor                    
Dynamic Feature           Default Current
---------------           ------- -------
(none)
Feature Groups:
---------------
(none)
Call parking (Parking lot: default)
------------
Parking extension     :      700
Parking context       :      parkedcalls
Parked call extensions:      701-720
Parkingtime           :      45000 ms
Comeback to origin    :      yes
Comeback context      :      parkedcallstimeout (comebacktoorigin=yes, not used)
Comeback dial time    :      30
MusicOnHold class     :      default
Enabled               :      Yes

2014年7月14日月曜日

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発信できるんだけど、それ以上はチャンネルアップオプションを申し込む必要があるので、空いてる他の番号で発信するようにしてみた。
これだと、相手が拒否した時とかよろしくないので、もうちょっと何とかする。