wiki:AsteriskUnidenWonderTalks

Asterisk:ユニデンのワンダートークスを接続する

Asteriskに、ユニデンのワンダートークス(WonderTalks)というビジネスホンを接続する。

「ステーションリンク」としての接続

ワンダートークスでは、内線番号100番台ごと(XX00~XX99)に1台のSIPサーバを使用することに決まっている。これらSIPサーバ同士を相互に接続し、全体として、4桁の内線番号による内線網を構築できる。ワンダートークスでは、この機能を「ステーションリンク」と呼んでいる。

ここでは、「ステーションリンク」で接続する先のSIPサーバとしてAsteriskを指定することによって、ワンダートークスとAsteriskを相互に接続する。つまり、ワンダートークスのSIPサーバをだまして、AsteriskをワンダートークスのSIPサーバだと思いこませる。

実はそんなに難しくない。ワンダートークスがSIPのUser-Agentヘッダなどを見ているかもしれないと覚悟していたけれど、そんなことはなかった。

; WonderTalksの「ステーションリンク」
[wondertalks]
type=friend
host=XXX.XXX.XXX.XXX    ; ワンダートークスのSIPサーバのIPアドレス。
nat=never               ; UnidenはrportがあるSIP要求を破棄する。

キーポイントは「nat=never」。 これを指定しない場合、ワンダートークスからAsteriskへの発信は出来るが、逆ができない。 ワンダートークスを含むユニデン製のSIP機器はどうやら、SIPのViaヘッダにrportオプションが付いていると、そのSIP要求全体を完全に無視するらしい。 「nat=never」を指定すると、Asteriskはrportオプションを使わない。

ワンダートークスを呼ぶとき発信者名(CallerID Name)は数字だけにする

CallerIDには「CallerID Number」と「CallerID Name」とがあります。 このうち、CallerID Nameに数字以外の物が入っていると、ワンダートークスではうまくないです。

  • 漢字が入っていると、表示できないため、
    • 着信中の画面には「ナイセン」とだけ表示される。
    • 着信履歴に残らない。
  • アルファベットが入っている場合は表示できるが、着信履歴から発信しようとすると発信できない。

こんなようなことをして発信者名を発信者番号と同じにするとうまくいきます。

; 内線(ワンダートークス)
exten => _20XX,1,SetCIDName(${CALLERIDNUM})
exten => _20XX,n,Dial(SIP/wondertalks/${EXTEN})
exten => _20XX,n,Hangup

IP電話外線としての接続

近々書きます。AsteriskにFusion IP電話のふりをさせる

ステーションリンクとIP電話外線の両方同時はダメ

近々書きます。残念ながら両方同時には動作しない。回避方法は、Asteriskを2つ動かすこと。