ブログ
これまでに経験してきたプロジェクトで気になる技術の情報を紹介していきます。
Asteriskでコールパーク設定
Okuda
3 years
Asteriskサーバにコールパーク設定をしてみます。
Asterisk13以降は features.conf
でパーキング設定ができなくなっているので res_parking.conf
を使用します。
res_parking.confの編集
[general]
;hintも自動生成するようになっていますので、
;デフォルトのパーキングロット
[default]
;パークさせる番号は700
parkext => 700
;パークされる位置は700-709
parkpos => 701-709
;パーキングのhintを自動生成する
;BLFを持つ電話機では701~709をBLFに設定することでパークロットの使用中確認とピックアップが行えます。
parkinghints = yes
;タイムアウトしたら元を呼び返す設定
parkingtime => 60
comebacktoorigin = yes
その他の設定は
オプション名 | タイプ | デフォルト値 | 説明 |
---|---|---|---|
context | String | parkedcalls | コールパークのコンテキスト名前 |
parkext | String | このパーキングロットへの内線番号 | |
parkext_exclusive | Boolean | no | yesの場合、parkextで登録されている内線は、このパーキングロットにのみパークされます |
parkpos | Custom | 701-750 | パーク中の通話を取得するために使用できるパークスペースの数値範囲 |
parkinghints | Boolean | no | yesの場合、パーキングスペースのヒントを自動的に追加します |
parkingtime | Unsigned Integer | 45 | 通話が保留されるまでの時間(秒単位) |
parkedmusicclass | String | パーク中の通話に使用する音楽クラス 指定されていない場合は、デフォルトを使用します |
|
comebacktoorigin | Boolean | yes | yesの場合は、誰も応答しなかった場合はタイムアイト、noの場合は転送をおこなった番号に返す |
comebackdialtime | Unsigned Integer | 30 | 保留中の通話がタイムアウトしたときにパークした番号にコールバックする内線のタイムアウト |
comebackcontext | String | parkedcallstimeout | comebacktoorigin = noの場合、パークされたコールがタイムアウト時にPBXに入るコンテキスト |
courtesytone | String | サウンドファイルの名前が提供されている場合は、これをトーンとして使用します | |
parkedplay | Custom | caller | Who we should play the courtesytone to on the pickup of a parked call from this lot |
parkedcalltransfers | Custom | no | パークされたコールがピックアップされたとき、またはタイムアウトしたときに、DTMF転送機能を誰に適用するか |
parkedcallreparking | Custom | no | パークされたコールがピックアップされたとき、またはタイムアウトしたときに、DTMFパーキング機能を誰に適用するか |
parkedcallhangup | Custom | no | yesの場合、パークされたコールがピックアップされたとき、またはタイムアウトしたときに、DTMFハングアップ機能を適用する |
parkedcallrecording | Custom | no | yesの場合、コール中の通話がピックアップまたはタイムアウトしたときに、DTMFMixMonitor録音機能適用する |
findslot | Custom | first | 通話をパークする必要があるパーキングスペースを特定するときに使用するルール |
extensions.confの編集
[general]
;CLIによるextenの変更を許可するか禁止するかを指定
writeprotect = no
[globals]
[default]
exten => _20XX,1,NoOp(内線呼出)
exten => _20XX,n,Dial(PJSIP/${EXTEN},60,r)
exten => _20XX,n,NoOp(アンサー)
exten => _20XX,n,Answer()
exten => _20XX,n,NoOp(ハングアップ)
exten => _20XX,n,Hangup
;700番台はコールパーキング用です
;コールパーキング
exten => 700,1,NoOp(コールパーキング)
exten => 700,n,Park()
;パーキングロットをインクルード
;パーキングロット名はデフォルトなので「parkedcalls」
include => parkedcalls
設定の反映
service asterisk restart
CLIで確認
asterisk -cvvvvr
dialplan show parkedcalls
#output
[ Context 'parkedcalls' created by 'res_parking/default' ]
'700' => 1. Park() [res_parking]
'701' => hint: park:701@parkedcalls [res_parking/default]
1. ParkedCall(default,701) [res_parking/default]
'702' => hint: park:702@parkedcalls [res_parking/default]
1. ParkedCall(default,702) [res_parking/default]
'703' => hint: park:703@parkedcalls [res_parking/default]
1. ParkedCall(default,703) [res_parking/default]
'704' => hint: park:704@parkedcalls [res_parking/default]
1. ParkedCall(default,704) [res_parking/default]
'705' => hint: park:705@parkedcalls [res_parking/default]
1. ParkedCall(default,705) [res_parking/default]
'706' => hint: park:706@parkedcalls [res_parking/default]
1. ParkedCall(default,706) [res_parking/default]
'707' => hint: park:707@parkedcalls [res_parking/default]
1. ParkedCall(default,707) [res_parking/default]
'708' => hint: park:708@parkedcalls [res_parking/default]
1. ParkedCall(default,708) [res_parking/default]
'709' => hint: park:709@parkedcalls [res_parking/default]
1. ParkedCall(default,709) [res_parking/default]
確認手順
attendedで転送
- 2002 が 2001に発信
- 2001 が 応答
- 2001 が attended で 2003 に発信
- 2003 が 応答
- 2001 が 2002 に伝える
- 2001 が 2003 に転送
- 2002 と 2003 が通話
blindで転送
- 2002 が 2001に発信
- 2001 が 応答
- 2001 が blind で 2003 に発信
- 2002 と 2003 が通話
パークコールのコンテキストを分ける場合
defaultのコンテキストがない場合はdefaultコンテキストが初期値で自動で生成されます。
defaultコンテキストのparkextの初期値は700となっています。
res_parking.conf
の設定
[general]
[default]
[park700]
context => park700
parkext => 700
parkpos => 701-709
;通話をパークする必要があるパーキングスペースを特定するときに使用するルール
findslot => next
;yesの場合、parkextで登録されている内線は、このパーキングロットにのみパークされます
parkext_exclusive=yes
;転送をおこなった番号に返す
comebacktoorigin = no
;パークされたコールがピックアップされたとき、またはタイムアウトしたときに、DTMF転送機能をcallerに適用する
parkedcalltransfers = caller
;パークされたコールがピックアップされたとき、またはタイムアウトしたときに、DTMFパーキング機能をcallerに適用する
parkedcallreparking = caller
[park710]
context => park710
parkext => 710
parkpos => 711-719
findslot => next
parkext_exclusive=yes
comebacktoorigin = no
parkedcalltransfers = caller
parkedcallreparking = caller
extensions.conf
の設定
[default]
...
;コールパーキング
exten => _70X,1,NoOp(コールパーキング)
exten => _70X,1,ParkedCall(park700,${EXTEN})
exten => _70X,n,Hangup()
exten => _71X,1,NoOp(コールパーキング)
exten => _71X,1,ParkedCall(park710,${EXTEN})
exten => _71X,n,Hangup()
;パーキングロットをインクルード
include => park700
include => park710
Asteriskでコールパーク設定
Asteriskでコールパーク設定
2021-08-10 10:27:20
2021-08-23 14:02:55
コメントはありません。