2017年6月25日日曜日

Asterisk入門 -- その1


Asterisk を使うには・・・






よく使う、sip.conf ファイルと、extentions.conf を理解する必要があります。


sip.conf は基本的なことがらを定義するファイルで、内線番号の定義や、収容する回線の定義、レジスト定義などを行います。





例えば、ひかり電話を収容して(レジストして接続することを「収容」といいます)、その属性などを定義します。また、内線の定義もここで行います。



Raspberry Pi 3へAsteriskを構築する -- その1 に記載したものを例にして説明しましょう。







sip.conf ファイルの事例:





[general]              ; 全般的な定義をするセクションです。先頭に記載します
context=default     ; このセクションはデフォルトで扱うことを示します


                           ; デフォルト以外で扱うコンテキストを次行以降に記載します
bindport=5062      ; sipのポートを指定します。通常は5060で、この場合は記述省略可
bindaddr=0.0.0.0  ; sipのIPアドレスで 0.0.0.0 はすべてのアドレスを許可の意味


language=ja         ; 言語は日本語を使用する指定です
dsiallow=all          ; コーデックをすべて不許可にします


allow=ulaw           ; コーデックとして、μLaw(G.711.μ)を使用(許可)します
allow=alaw           ; コーデックとして、aLaw(G.711.a)を使用します
allow=gsm           ; コーデックとして、GSMを使用します

localnet=192.168.xxx.0/255.255.255.0 ; ローカルネットワークのアドレスとマスク

  
※ コーデックの記載順序が優先度を表します。ulaw,alaw,gsm のように記述


   しても構いません。


  ※ コーデックは、一般には上の3つを指定しておけば、問題ありません。


   sipのセッション確立時にお互いのコーデックを何にするかを決めています。


   ほかにも例えば、opus なんていま最強といわれるコーデックもありますが、


   残念ながら、まだメジャーではありませんので、相手合ってのことで、

   実際的に使われず、結局、μLaw、aLaw、GSMあたりに落ち着きます。

   GSMは2G携帯電話のコーデックとして有名です。

   μLawは、ひかり電話が使っています。

   「μ」とは記述せずに、「u」で代替しています(1バイト表現のためです)




[201]                  ; 内線201の定義を行うセクションです(内線番号は任意です)
type=friend         ; 発着信できる設定です。peerが発信専用、userが着信専用です
defaultuser=201  ; ユーザー名を201にします
secret=パスワード(任意); 内線201のパスワードを設定します


host=dynamic      ; ホストを特定しない場合に、こう指定します
canreinvite=no     ; noはRTP(音声)をAsteriskが中継します。yesは中継しません





  ※ パスワードは、乗っ取りなどの防止のため、できる限り長い(16文字以上


   くらい)、大小文字、記号、数字を含む文字列を推奨します。





ほかにもいくつか用意されたコンテキスト(各行の定義をこのように呼びます)がありますが、詳しくは、ネットで調べるか(http://www.st-asterisk.com/http://www.st-asterisk.com/ など)、できれば「高橋 隆雄の Asterisk 徹底活用ガイド」Kindle 版で約 3,000円、をオススメします。




この本は大きな図書館には置いてあるかもしれません(?)。私の近隣では船橋市に1冊だけあり、居住する市の図書館が取り寄せてくれましたけど。





高橋 隆雄氏は、日本における Asterisk の神様のような方です。





ひかり電話を収容するには、光ルーターの「電話設定→内線設定→内線番号・編集」で指定した内容を次のように記述します。


これは、FUSION や、ブラステル、050Plus などの収容でも同様ですが、050Plus はチョット特殊で、コンテキストも TLS を指定する必要があります。





register => 光ルーターの内線番号:パスワード:ユーザID@hikari-denwa/200





のように記述します。これを [general] セクションの中に記述します(最初の内線コンテキストのセクション、事例では [201] セクションとの間)に記載します。





「=>」は Asterisk 特有の記述の仕方で、上例では、「レジストは以下を行います」の意味になります。



また、ひかり電話のコンテキストは次のように記述します。



[hikari-denwa]

type=friend

context=default

secret=パスワード

bindport=5062

username=ユーザID

fromuser=3

host=192.168.xxx.yyy               ; ひかり電話を設定した光ルーターのアドレス

fromdomain=192.168.xxx.yyy   ; (同上)

insecure=port,invite                ; port: どのポートも受け入れる、invite: 着信時認証不要

dtmfmode=inband                  ; inband: 音声チャネルでプッシュトーンを流す

disallow=all

allow=ulaw

allow=alaw

allow=gsm





「hikari-denwa」は任意のSIPサーバー名になります。この名前は、extensions.conf で


発信時の sip サーバーの指定に使います。


その後の番号「200」は、エクステンション番号といい、extensions.conf の中で紐付きます。記載しない場合は、特殊なエクステンション番号「s」と結び付きます。
















0 件のコメント:

コメントを投稿