RT-200NE対応パッチ
NTT東日本のひかり電話対応ルータ RT-200NE をAsteriskで使用するためのパッチです。
なお、RT-200NEを使用しない場合には、このパッチを適用する必要はありません。
目次
ダウンロード
Asteriskのバージョンによって使用可能なパッチが異なりますので注意してください。
Asterisk 1.2系
- - Asterisk 1.2.7~1.2.17 までで使用可能版
- ftp://ftp.voip-info.jp/asterisk/patch/local/1.2/channels/chan_sip.c.rt200ne.070417-01.patch
- http://ftp.voip-info.jp/asterisk/patch/local/1.2/channels/chan_sip.c.rt200ne.070417-01.patch
- - Asterisk 1.2.18~1.2.32 までで使用可能版
- ftp://ftp.voip-info.jp/asterisk/patch/local/1.2/channels/chan_sip.c.rt200ne.070719-01.patch
- http://ftp.voip-info.jp/asterisk/patch/local/1.2/channels/chan_sip.c.rt200ne.070719-01.patch
Asterisk 1.4系
- - Asterisk 1.4.0 (注:Asterisk 1.4.0でのみ使用可能)
- ftp://ftp.voip-info.jp/asterisk/patch/local/1.4/channels/chan_sip.c.rt200ne.070417-00.patch
- http://ftp.voip-info.jp/asterisk/patch/local/1.4/channels/chan_sip.c.rt200ne.070417-00.patch
- - Asterisk 1.4.1 (注:Asterisk 1.4.1でのみ使用可能)
- ftp://ftp.voip-info.jp/asterisk/patch/local/1.4/channels/chan_sip.c.rt200ne.070417-01.patch
- http://ftp.voip-info.jp/asterisk/patch/local/1.4/channels/chan_sip.c.rt200ne.070417-01.patch
- - Asterisk 1.4.2~1.4.26
- ftp://ftp.voip-info.jp/asterisk/patch/local/1.4/channels/chan_sip.c.rt200ne.070417-02.patch
- http://ftp.voip-info.jp/asterisk/patch/local/1.4/channels/chan_sip.c.rt200ne.070417-02.patch
- - Asterisk 1.4.27~
- ftp://ftp.voip-info.jp/asterisk/patch/local/1.4/channels/chan_sip.c.rt200ne.070417-00.patch
- http://ftp.voip-info.jp/asterisk/patch/local/1.4/channels/chan_sip.c.rt200ne.070417-00.patch
Asterisk 1.6系
- - Asterisk 1.6.0(パッチ・イニシャル・リリース)
- ftp://ftp.voip-info.jp/asterisk/patch/local/1.6/channels/chan_sip.c.rt200ne.081006-01.patch
- http://ftp.voip-info.jp/asterisk/patch/local/1.6/channels/chan_sip.c.rt200ne.081006-01.patch
- - Asterisk 1.6.0~1.6.0.17(差分修正版:通常はこちらを使用してください)
- ftp://ftp.voip-info.jp/asterisk/patch/local/1.6/channels/chan_sip.c.rt200ne.090204-01.patch
- http://ftp.voip-info.jp/asterisk/patch/local/1.6/channels/chan_sip.c.rt200ne.090204-01.patch
- - Asterisk 1.6.0.18~
- ftp://ftp.voip-info.jp/asterisk/patch/local/1.6/channels/chan_sip.c.rt200ne.091227-00.patch
- http://ftp.voip-info.jp/asterisk/patch/local/1.6/channels/chan_sip.c.rt200ne.091227-00.patch
Asterisk 1.6.1系
- - Asterisk 1.6.1(1.6.1.0)~1.6.1.9
- ftp://ftp.voip-info.jp/asterisk/patch/local/1.6/channels/chan_sip.c.rt200ne.090509-01.patch
- http://ftp.voip-info.jp/asterisk/patch/local/1.6/channels/chan_sip.c.rt200ne.090509-01.patch
- - Asterisk 1.6.10~
- ftp://ftp.voip-info.jp/asterisk/patch/local/1.6/channels/chan_sip.c.rt200ne.091228-01.patch
- http://ftp.voip-info.jp/asterisk/patch/local/1.6/channels/chan_sip.c.rt200ne.091228-01.patch
Asterisk 1.6.2系
- - Asterisk 1.6.2(1.6.2.0)~
- ftp://ftp.voip-info.jp/asterisk/patch/local/1.6/channels/chan_sip.c.rt200ne.091228-10.patch
- http://ftp.voip-info.jp/asterisk/patch/local/1.6/channels/chan_sip.c.rt200ne.091228-10.patch
Asterisk 1.8系
- Asterisk 1.8.5まで
- ftp://ftp.voip-info.jp/asterisk/patch/local/1.8/channels/chan_sip.rt200ne.101024-01.patch
- http://ftp.voip-info.jp/asterisk/patch/local/1.8/channels/chan_sip.rt200ne.101024-01.patch
- Asterisk 1.8.6から(1.8.9.0まで確認)
Asterisk 11系
- Asterisk 11.9.0まで
- Asterisk 11.10.0から
↑このパッチ、channels/sip/include/sip.h への #define 追加が漏れているようです…
パッチ方法
Asteriskのソースディレクトリにダウンロードし
# patch -p0 < パッチファイル
で、実行してください。パッチファイルはソースのベースディレクトリからの差分になっています。
使用方法
sip.confの[general]セクションにRT-200NEのIPアドレスを書きます。
rt200ne=192.168.0.1
複数台のRT-200NEを接続する場合には次のように複数行で書きます。
rt200ne=192.168.0.1 rt200ne=192.168.0.2 rt200ne=192.168.0.3
なおデフォルトでは最大、4台までのRT-200NEが登録可能です。この数を増やすにはMAX_RT200NEの数値を増やしてmakeしなおしてください。資源節約のため、この値はコンパイル時オプションです。
Expireyは現在のところ以下のように3600で指定しています。
maxexpirey=3600 defaultexpirey=3600
REGISTERは普通に書きます。
;RT-200NE register => 内線番号:パスワード:ユーザID@192.168.0.1/exten
例えばこんな感じです。
register => 3:pass:0003@192.168.0.1/1000
なおAsteriskを登録する内線番号の端末属性はRT-200NE側で「音声端末」に設定しておく必要があります。
RT-200NE用のセクションは次の例を参考にしてください(要らないものもあるかも)。
insecure=veryは発信者番号を通知してこない相手からの接続を受け付けるのに必要なはずです(注:Asterisk 1.4系ではinsecure=inviteを指定してください_。
[192.168.0.1] type=friend secret=pass Port=5060 username=0003 fromuser=3 host=192.168.0.1 contexet=default insecure=very dtmfmode=inband canreinvite=no disallow=all allow=ulaw pickupgroup=1
RT-200NEが複数台ある場合には、それぞれのIPアドレスについてセクションを作成してください。
ダイアルするにはextensions.confに以下のように記述します(0で始まる場合は、ひかり電話でダイアルする例)。
exten => _0.,1,Set(CALLERID(num)=03xxxxxxxx) exten => _0.,2,Set(CALLERID(name)=03xxxxxxxx) exten => _0.,3,Dial(SIP/${EXTEN}@192.168.0.1,60,T)
念のためCaller IDを自分のひかり電話番号に設定していますが、これは要らないかもしれません。
着信番号
複数番号を契約しており、どの番号に着信したかを知るには RT-200NE を参照してください。
マイナンバー(複数番号)を使用する場合
どの番号に着信したかを知る方法はSIPのヘッダを見ることでも可能ですが、RT-200NE側が着信番号を特定の端末(アナログでもIPでも)に縛るのを利用すると、Asteriskは複数の端末としてRT-200NEに対してRegisterすることで複数番号で別な処理を走らせることができます。
注意:機種によっては複数REGISTERできないものもあります。また複数REGISTERしても同時には使用できない場合もありますので注意してください。
注意2:RT-200NE,PR-200NEでもファームの最新バージョンでは複数Registerができません。
- Registerひとつで着信番号を切り分ける方法はRT-200NE#複数番号の切り分け
-----sip.conf ;RT-200NE-1 register => 内線番号1個目:パスワード1個目:ユーザID1個目@rt200ne-1/1番目の着信exten ;RT-200NE-2 register => 内線番号2個目:パスワード2個目:ユーザID2個目@rt200ne-2/2番目の着信exten
内線番号やユーザ名はRT-200NEに登録したそれぞれ「別な」IP端末のものを指定します。
それぞれのセクションをsip.confに記述します。
[rt200ne-1] type=friend secret=パスワード1個目 username=ユーザID1個目 fromuser=内線番号1個目 fromdomain=192.168.0.1 host=192.168.0.1 contexet=default insecure=port,invite dtmfmode=inband canreinvite=no disallow=all allow=ulaw pickupgroup=1 [rt200ne-2] type=friend secret=パスワード2個目 username=ユーザID2個目 fromuser=内線番号2個目 fromdomain=192.168.0.1 host=192.168.0.1 contexet=default insecure=port,invite dtmfmode=inband canreinvite=no disallow=all allow=ulaw pickupgroup=1
この場合にはfromdomainを付けないとregisterできません。
着信extenの書き方は通常通りです。先のregister=>で別な着信用extenを指定しておけばいいだけです。
発信する場合にはそれぞれの番号に対応する内線(SIPピア)からダイアルします。発信者番号に何を通知するかの指定がRT-200NEでしかできないためです。
1個目の番号から発信するならば
Dial(SIP/${EXTEN}@rt200ne-1)
2個目の番号から発信するならば
Dial(SIP/${EXTEN}@rt200ne-2)
のようにしてそれぞれの内線から発信を実行する必要があります。 この方法で、マイナンバーで5番号を取り、それを全部Asteriskで使用する場合には、Asteriskが5つの内線としてregisterする必要があるためRT-200NEのアナログポートは使えなくなります。
しくみ
rt200ne= に設定したIPアドレスとピアのIPアドレスが一致した場合、URIを組み立てなおします。rt200ne= に一致しないアドレスに関してはURIを組み立て直さないためRT-200NE以外のSIPチャネルには影響を与えない「はず」です。 最初[general]のところでパラメータ名を複数指定するのにスマートな方法がないので悩んでたんですが、Asteriskのパラメータ取り込み構造上、同じ名前でエントリを複数書くと次々と取り込まれるので、内部の配列に書き込んでいけばよかったわけでして。
CLIコマンド
CLIコマンドに sip show rt200neが追加されています。
*CLI> sip show rt200ne RT-200NE at .. - 192.168.0.1 - 192.168.0.2