E61 三日目

 この週末はコレにかかりっきりです。

■Windows Live Messenger

 噂の1.0を台湾NOKIAのサイトで発見しました。これだとインストール時に仕様言語を尋ねられるので、Englishを選んでやればとりあえず使えます。

 まだメッセージのやりとりをしてないんですが、とりあえずこちらから送ったメッセージは文字化けせずに見えています。相手側でちゃんと読めるか、相手のメッセージも読めるかは、追々検証しますが、他のブログで使えてるということだったので大丈夫でしょう。

■VoIPで問題発生(1) 発信編

 Asterisk経由でひかり電話へ発信する際、どうしてもかけられない番号があることに気付きました。Asteriskのログを調べると、どうも電話帳にハイフン入りで登録された番号が、そのまま(ハイフンを抜かずに)ひかり電話ルーターに渡されてエラーになっている模様。実はE61の電話番号欄は入力時にハイフンがはじかれる(無視される)仕様になっていて、原則ハイフン無しが前提の模様。ただ今回のようにvCardからインポートした場合や、コピペなどを使うと入れられてしまいます。

 結局、着信時の名前表示も不安定だったりして、結局電話帳から全部ハイフンを除去してしまったんですが、一応苦労して作ったAsterisk側で発信時に電話番号からハイフンを除去するレシピを載せておきます。

exten => _0.,1,Cut(EXTEN1=EXTEN,-,1)
exten => _0.,2,Cut(EXTEN2=EXTEN,-,2)
exten => _0.,3,Cut(EXTEN3=EXTEN,-,3)
exten => _0.,4,Dial(SIP/${EXTEN1}${EXTEN2}${EXTEN3}@ntttel,60,r)
exten => _0.,5,Congestion

 Ver1.4ではFILTERという関数で任意の文字を除去できるみたいなんですが、ウチはまだ1.0。結局Cutコマンドでハイフンをデリミタに3つの変数に代入し、それを並べるという手を取っています。つまり、番号が3セグメントであること前提のややダサい方法です。第2引数がデリミタ、第3引数がどのセグメントを残すかの指定で、

exten => _0.,1,Cut(EXTEN1=EXTEN,-,1&2&3)

のように複数セグメントも指定できるんですが、この場合はデリミタも残ってしまうというやや納得の行かない仕様なので、しかたなく変数3つを使うハメになりました。

■VoIPで問題発生(2) 着信編

 お次は更に深刻な問題です。Asterisk経由でSIPプロトコルで着信した場合、発信者IDは「sip:09012345678@192.168.0.1」のようになります。@以降はAsteriskサーバーのIPアドレスです。着信通知ダイアログには「”09012345678″」と出るんですが、着信履歴には「sip:09012345678@192.168.0.1」で残っており、当然のことながら、電話帳に書かれた電話番号とマッチしないため、発信者番号が名前に変換されないのです。これは致命的に不便です。

 あれこれAsterisk側をいじってみましたが解決せず。というかE61のSIPクライアントとしての挙動としては正しい仕様な気がしました。かなり残念感の漂う解決策としては、電話帳に「sip:09012345678@192.168.0.1」も併記するしかないようです。ただ、普通の電話番号欄では数字以外入力できないので、SIP欄を使います。この場合、先頭の「sip:」はなくてもマッチしてくれるようです。

 ここで更に問題発生。WAN側からつないだ場合には@以降がグローバルIPアドレスになってしまいます。いくらなんでも自宅無線LANで使う時とWANから使う時のそれぞれの為に電話帳に更にSIP欄を追加するのは避けたいっ!ということでこちらは解決策を発見。Asteriskのsip.confの[general]セクションに

fromdomain=tel.hoge.com

 のようにホスト名を指定しておきます。これで、E61側では常に「sip:09012345678@tel.hoge.com」のように表示されます。最初「Asterisk」など適当な単語にしてみたんですが、リーチャブルなホスト名でないと履歴から発信する際にエラーになります。


 

「E61 三日目」への5件のフィードバック

  1. 初めまして。E61について情報を集めていたらこちらにたどり着きました。
    E61をひかり電話の子機のように使用することは可能ですか?

  2. こんにちは。
    ひかり電話もE61もSIPという標準規格に沿ってはいますが、ひかり電話ルーターは融通が利かないので、SIPならなんでもOKというワケにはいかないようです。
    ウチの場合はLinuxサーバーにAsteriskというフリーのPBX(交換機)サーバーソフトを入れて、それをひかり電話ルーターに子機登録し、E61はAsteriskに収容、という間接的な実現方法をとっています。
    またAsteriskが登録できるのはひかり電話ルーターの中でもRT-200KIという機種で、最近のRT-200NEなどではAsteriskのソースコードにパッチを当てて細工をしないとダメなようです。
    あと、E61にはVoIP設定をすると、「文字」ボタンでの文字種切替がABCから先に進まなくなる(漢字に戻せなくなる)というバグがあります。「記号」ボタンの長押しでメニューからなら切り替えできますが、文字入力がかなり不便になることは免れません。

  3. さっそくの返答ありがとうございます。
    私は特に知識も無く、どうのようにすればいいのか
    検討もつきませんが、高橋 隆雄さんのAsteriskに
    ついて書かれた著書を読み、ネットで情報を集めて
    トライするつもりです。
    またこちらに質問しに伺うかもしれませんが
    どうぞよろしくお願いします。
    ありがとうございました。

  4. 以前こちらで質問させて頂いたものです。
    どうにか今週中には手元にX01NKが届き、全然わからないながらもひかり電話の子機化に挑戦するつもりす。
    そこでもう一つだけ質問させて頂けないでしょうか?私の今の無線環境は、RT-200KIからかなり離れているため、200KIにLANケーブルで接続したバッファローの無線LANルーターからの無線を使用しています。
    この場合や、マクドナルドなどのアクセスポイントでも子機として使用することはできるでしょうか?
    質問ばかりで申し訳ありませんが、どうぞよろしくお願いします。

  5. こんにちは。
    上のコメントにも書いていますが、そもそもE61などの一般的なSIP端末をRK-200KIに子機登録できるかどうかはあまり情報がありません。基本的にはNTTの製品しか登録できないんじゃないかと思います。
    E61を子機にしている人たちは、Asteriskなどの交換機ソフトを使ったサーバーを仲介させていると思います。またインターネット経由の登録も200KI単体ではできないはずです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)