投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


(無償、寄付歓迎) logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)

★LibreOfficeの導入事例★
詳細について

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

2018年5月31日木曜日

【FreePBX 13.0.190.11】VOIPゲートウェイとしての設定/SIP端末ごとに発着信の外線番号を区別する【RasPBX raspbx-03-12-2017】【Raspberry Pi 2】


環境は、RasPBX raspbx-03-12-2017 である。


■設定の概要

外線←[VOIP Gateway] ← [RasPBX] ← [SIP Phones]

RasPBX を上記の位置で、次のように用いたい。
RasPBX は、上流の VOIP Gateway にレジストし、着信を受ける。
下流にある SIP Phone は、RasPBX にレジストして、さらにその着信を受ける。
つまり、外線から着信があると、RasPBX を経て、SIP Phones に着信するようにしたい。
また、これらの SIP Phones から RasPBX 、VOIP Gateway を経て発信したい

外線電話番号は複数ある。
それぞれの外線番号に着信があれば、外線ごとに関連付けたSIP Phoneが着信するようにする。
また、逆も、各SIP Phoneが発信するとき関連付けた電話番号で発信するようにする。

VOIP Gatewayは、外線番号ごとにRasPBXがレジストできるようアカウントを備えているものとする。
VOIP Gatewayで外線番号に着信があれば、レジストしているRasPBX内のSIPデバイスが応答する。

そこで次のように、RasPBXを設定する。



■RasPBXでの設定

以下では、例として、トランク(外線)、エクステンションを一対一で紐づけしている。
複数の外線番号があってもこれらの一連の設定を並列させれば良い。

設定が完了すれば、「Apply Config」ボタンを押して設定を有効にするのを忘れないこと。


○「Extensions」(内線)の設定
RasPBXにおいて、SIP Phoneのためのアカウントを作成する。

RasPBX のWEBコントロール画面にログインし、
画面上部に並ぶ設定項目の「Applications」から、「Extensions」を開く

下記の手順で、SIP Phoneごとにアカウントを作成する。

「+ Add Extension」を押しメニューから「+ Add New Chan_SIP Extension」を選択する。
 そして、開いた画面で、次の項目を設定する。

<General タブ>
User Extension ←内線番号(Outbound Routes の設定でも使用する。)
yyy101
Display Name ←発信者の名称(番号ではない)
exten-0xxxxxyyy1
Outbound CID ←外線電話番号(Trunkに発信される場合、そのTrunkに登録したCallerIDを上書きする)
0xxxxxyyy1
Secret ←パスワード(このアカウントを使用するSIP端末の認証)


○「Trunk」(外線接続)の設定
上流 VOIP Gateway の外線番号アカウントへの接続情報を作成する。

RasPBX のWEBコントロール画面にログインし、
画面上部に並ぶ設定項目の「Connectivity」から、「Trunks」を開く

「+ Add Trunk」を押しメニューから「+ Add SIP Trunk」を選択する。

<General タブ>
Trunk Name ←トランク名
trunk-0xxxxxyyy1
Outbound CallerID ←外線電話番号
0xxxxxyyy1
<Dial Number Manipulation Rules タブ>

ここでは設定しない。後で設定する「Outbound Routes」でパターンマッチングによりトランクを指定する。

<sip Setting タブ>  (※)各パラメーターの値の説明は下に記した。
<Outgoing>
Trunk Name ←トランク名(一意であること。内部で使用される。)
trunk-0xxxxxxxx1
PEER Details ←例えば次のように設定する。
host=192.168.1.20
fromuser=0xxxxxyyy1
username=0xxxxxyyy1
type=friend
insecure=invite,port
host は、上流のVOIP Gatewayのアドレスを指定する。

<Incoming>
USER Context
0xxxxxyyy1
USER Details
context=from-sip-trunk-0xxxxxyyy1
Register String ←レジスト情報(着信先エクステンション)
0xxxxxyyy1@192.168.1.20/0xxxxxyyy1

(※)「パラメーター説明」

0xxxxxyyy1 は、外線番号である。

context は、着信時に呼が流れていくコンテクストである。

Register String は、上流 VOIP Gateway にレジストするための情報を設定する。
次の書式で入力する。

(@よりも前の部分の書式)
ユーザ名@ ←パスワードなしの場合
ユーザ名:パスワード@
ユーザ名:パスワード:認証ユーザ名@ ←認証ユーザ名が別になっている場合

(@よりも後ろの部分の書式)
@サーバーアドレス/着信先エクステンション

上記の場合、from-sip-trunk-0xxxxxyyy1 コンテキストの、0xxxxxyyy1 エクステンションに着信することになる。
これらは、RasPBXの内部の動作で使用されるものである。



○「Inbound Routes」(着信先端末)の設定
上記のトランクで設定した外線からの着信時、どのSIP Phone に着信させるか設定する。

RasPBX のWEBコントロール画面にログインし、
画面上部に並ぶ設定項目の「Connectivity」から、「Inbound Routes」を開く。

「+ Add Inbound Routes」を押す。

<General タブ>
Description ←このインバウンド設定についての説明
in-0xxxxxyyy1
DID Number ←外線番号(トランクで設定した外線番号)
0xxxxxyyy1
Set Destination
==choose one== のドロップダウンリストから、Extensions を選択し、設定済みの Extension をリストから、着信させるSIP端末を選択する。


○「Outbound Routes」(外線の選択方法)の設定
ダイヤルパターン、発信元のSIP Phone内線番号に応じて、トランク(上記で外線を登録ししたもの)を選択する。

RasPBX のWEBコントロール画面にログインし、
画面上部に並ぶ設定項目の「Connectivity」から、「Outbound Routes」を開く。

<Route Settings>
Route Name
out-0xxxxxyyy1
Route CID
0xxxxxyyy1
Trunk Sequence for Matched Routes
trunk-0xxxxxyyy1

<Dial Patterns>
ダイヤルパターンを2行入力できるように、右端「+」ボタンを一度押す。
match pattern ←例えば、次のように二パターン設定しておく。(1から始まる3桁の特殊番号、0から始まる任意の長さの通常の電話番号にマッチする。)
1XX
.0
/ CallerID ←発信元内線番号で、一致するときのみこのトランクで発信するようになる。(上記、2パターンそれぞれにおいて指定しておく。)
yyy101


設定が完了すれば、「Apply Config」ボタンを押して設定を有効にするのを忘れないこと。

2018年5月12日土曜日

【Linux CentOS 6】指定したディレクトリ以下のファイルやディレクトリに対してまとめて処理を行う方法(たとえばパーミッション変更)


指定したディレクトリ(/DATA)以下にある全てのディレクトリのパーミッションを変更

# date ; IFS_orginal=$IFS ; IFS=$'\n' ; for i in `find /DATA -type d` ; do chmod 775 "$i" ; done ; IFS=$IFS_orginal ; date


指定したディレクトリ(/DATA)以下にある全てのファイルのパーミッションを変更

# date ; IFS_orginal=$IFS ; IFS=$'\n' ; for i in `find /DATA -type f` ; do chmod 664 "$i" ; done ; IFS=$IFS_orginal ; date



処理の最初と最後に、dateコマンドを実行することによって、処理にかかった時間がわかるようにしている。

find /DATA -type は、 処理結果を用いる必要があるのでバッククォートで括ること。


(区切り文字に注意)
$IFS は、区切り文字を指定する。
区切り文字がデフォルトの空白の場合、下記に挙げる処理において、
ディレクトリやファイル名に空白が存在すると、その箇所で分断され、不適切な処理となる。
for i in `find /DATA -type d`
上記の変数iには、パスが分断された不適切な値が渡されて、続くchmodで、エラーとなる。

そのため、次のようにして、区切り文字を空白でなく、改行に変更する。

IFS_orginal=$IFS で、現在の区切り文字を保存する。
IFS=$'\n' で、区切り文字を改行に変更する。
IFS=$IFS_orginal で、区切り文字を元に戻す。

すると、パス全体が適切に変数iに渡され、続くchmodに正しくパスが渡される。
(続くchomodの段階では、"$i" のように、ダブルクォーテーションで括ることも忘れないこと。)


<参考>
・【Linux CentOS 6 bash】 変数の前方後方パターンマッチによる部分消去方法、複数行ファイルのforループによる処理方法について【シェルスクリプト】
< http://akira-arets.blogspot.jp/2015/04/forrowsintexttodo-patternmatchonvar.html > 2018年5月12日

・【Linux CentOS5】ディレクトリ階層に分けて置かれた複数のファイルを条件指定で抽出し、別のディレクトリにまとめてコピーする【xargsと、cpコマンドの組み合わせ】
< http://akira-arets.blogspot.jp/2011/07/linuxxargscp.html > 2018年5月12日

投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad