2017-07-05

Raspberry Pi 3へAsteriskを構築する -- その2

その1では、Asteriskのインストールと簡単な使い方を設定しました。

今回は本格的な設定をしていきます。

まず、ひかり電話を収容してみます。

HGW(ホームゲートウェイ)をWeb画面で開きます。

左側にメニューがあり、「電話設定」→「内線設定」と進みます。

[内線番号一覧] の表が表示されます。

この表で、TEL1/TEL2は、HGWの後ろの電話ジャックに対応しています。
通常は、ここに電話機を接続して使っているはずです。

3番目以降がスマホなどを内線接続する設定になっています。

この中の一つをAsteriskに収容するのです。つまり、HGWからみるとAsteriskは内線子機として接続されるようにするわけです。

何番目を使っても結構です。表の右の方に「編集」とあり、これをクリックすると内線編集画面に移ります。



MACアドレスに、AsteriskサーバーのMACアドレスを ab:cd:ef:gh:ij:kl と入力します。MACアドレスは Asteriskサーバーの端末から、ifconfigして、eth0の「ハードウェアアドレス」を記述します。
ニックネーム/ユーザID/パスワードは任意の文字列で置き換えても結構ですが、内線番号/ユーザID/パスワードは、Asteriskに収容するときに使いますから記録しておいてください。画面例では、ユーザIDは数字文字になっていますが、このときの 0007 の「000」は文字列です。
0007≠7 ですから「000」が有効な文字列であることを留意してください。

とくに、ユーザID/パスワードは盗みにくい文字列にすることをオススメします。

設定し終えたら、下の方にある [設定] [戻る] ボタンの [設定] をクリックして、設定内容を反映させ、[戻る] ボタンで一つ前の画面に戻ります。


次に、Asterisk側に収容する設定をします。「収容」とは、この場合Asteriskサーバーにレジストすることです。

/etc/asterisk/sip.conf をエディターで開いて、[general] セクションの中に、次のコンテキストを記述します。
必ず、1桁目から記述してください。「コロン(:)」で区切ります。

  register => 内線番号:パスワード:ユーザID@任意の名前/任意の数字

「内線番号」は、HGWでの「内線番号」です。
「パスワード」は同じく、HGWでの「パスワード」です。
「ユーザID」も同様です。
「任意の名前」はひかり電話に付ける名前で、英小文字・数字・ハイフンからなる文字列です。例えば、「hikari-denwa」のように記述します。

この名前は、ひかり電話の属性などを定義するセクション名になります。
また、実際に呼び出しや着信時の振る舞いを定義する際の「サーバー名」に相当します。

「/」の後ろの「任意の数字」は、あとで述べる「エクステンション番号」になります。
例えば、「200」と記述します。

HGWでの設定時の画面を事例にすると、

  register => 7:4682e6j3:0007@hikari-denwa/200

となります。

例えば、ひかり電話に着信があったとします。
Asteriskとの関係は、次のようになるのです。

  ひかり電話着信 → 内線呼び出し (内線7もその一つ) → Asteriskにレジストされたひかり電話サーバーに着信 (子機として着信) → Asteriskの振る舞い定義した内容 (200番のエクステンション) に従い動作

と、なります。「振る舞い定義」はこれもあとで記述しますが、extensions.conf に記述した内容に従う、ということです。

Asteriskに収容した子機から発信の場合は次のようになります。

  Asterisk子機発信 → Asteriskの振る舞い定義した内容に従い動作 → HGWの内線 (例では7番) が発信 → ひかり電話本体が発信

となります。このときに、「振る舞い」で音声ストリームを流すとか、ダイヤルキー番号を受けるとか、留守電につなぐとか、Fax送受信するとか、ほかの内線子機に受け渡す (内線ボイスワープ) とか、外線に転送するとか、外線からひかり電話を経由して発信する、とかができるわけです。

次に、同じ sip.conf の [general] セクションに続いて、収容したひかり電話の属性などを記述します。これも1桁目から記述してください。

   ↓先頭は必ず、1桁目から記述
  [hikari-denwa] ; ひかり電話に付けた名前のセクション
  ;** ひかり電話のコンテキスト
  type=friend                           ; 双方向(送受信)可能なこと
  secret=パスワード                  ; パスワードはレジスト時のものと同じ
  bindport=5060                      ; UDPポート番号
  username=ユーザID                ; ユーザIDはレジスト時のものと同じ
  fromuser=7                           ; ひかり電話のHGW上の内線番号
  host=vvv.xxx.yyy.zzz               ; HGWのIPアドレス
  fromdomain=vvv.xxx.yyy.zzz   ; HGWのIPアドレス
  context=default                     ; デフォルトのコンテキストであることを示す
  insecure=port,invite               ;
  dtmfmode=inband
  disallow=all
  allow=ulaw
  allow=gsm
  allow=alaw

なお、「セミコロン(;)」は以降がコメントであることを示します。
1桁目がセミコロンで始まっている場合は、その行がコメント行であることを示し、行の途中から始まっている場合は、その文字以降がコメントであることを示します。

引き続いて、Asterisk内線子機のコンテキストを記述したセクションをおきます。
また、ほかの電話(例えばブラステルなど)を収容するには、ひかり電話のレジストに引き続いて、記述します。また、これの定義セクションも併せてひかり電話のセクションに引き続いて記述します。

  register => ユーザID@softphone.spc.brastel.ne.jp:パスワード:ユーザID@softphone.spc.brastel.ne.jp

ブラステルの場合、ユーザIDは、「ユーザID@softphone.spc.brastel.ne.jp」がユーザIDになります。

また、後ろに「/番号」を記述していませんが、発信だけに使用の場合は、省略できます(記述してもかまいません)。


その3に続きます。








0 件のコメント: