Asterisk、更に更新

 Asteriskの設定を更に煮詰めてみました。

■050番号へかける時だけプロバイダIP電話で発信させる

 現在、我が家は主番号045のNTTひかり電話回線と、050番号のプロバイダIP電話回線へ発信できるのですが、NTT提供のルーター&VoIPアダプタ環境だと、普通にダイヤルすると050で発信、頭に0000をつけるとNTTで発信となります。しかしNTT回線をひかり電話にすると、もはや050発信は同一基盤番号相手の無料通話しか価格メリットはないワケで、それ以外は一般的なNTT番号を通知して発信したいと思う訳です。つまり、デフォルトはひかり発信で、何かしらのプレフィクスをつけたら050発信、としたい。

 9発信すると050というのはすぐに設定できました。ただたいていの電話機には電話帳登録してある番号の先頭に特定の数字を付加、ということが簡単にはできないので不便です。どうせなら050番号相手に発信した時は自動的にIP電話で発信、くらいはやりたい。これが結構ハマりました。

 最初、ダイヤルプランを定義する、extension.confに

exten => _050.,1..(050発信処理)
exten => _0.,1….(NTT発信処理)

のようにしてみました。正規表現的に言えば、「_」は先頭にマッチ、「.」は任意の桁にマッチの意味です。しかし、どうしても上がスルーされて下にマッチしてしまいます。前回書いた本にも、日本語のWikiにも情報がなく、仕方ないのでもっともAsterisk情報が集まっていると言われる海外のWikiを読みあさって、こんなドキュメントを発見。どうも、extention.confに書いたパターンを内部的にソートしてから適用するらしく、記述順に関わらず_050.よりは_0.が先にマッチしてしますようです。CLIから

show dialplan [コンテクスト名]

で表示される順が、実際に適用される順のようです。

 で、解決法としては、

exten => _050.,1,…
include => ntttel

[ntttel]
exten => _0.,1,…

のように、後からマッチさせたい部分を別コンテクストに追い出して、メインコンテクストでincludeすれば、includeされた部分の適用順位は下がるとのことです(複数includeさせた場合はさせた順)。

 実際、これで上手くいきました。本当は、050番号の中でも、ウチのプロバイダと無料通話提携しているところへ発信する場合だけ、といった分岐をしたいのですが、適用範囲を全部定義するとextensions.confがやたら長くなって管理が大変そうなので断念。

■VoIPアダプタをATAとして利用する

 プロバイダIP電話サービスをAsteriskで待ち受けることに成功したので、NTT東日本からレンタルしているVoIPアダプタ(\380/月)は返却できそう、と思ったんですが、ふと思い立って実験。あっさり、Asterisk配下にREGIST成功しました(^^)/。管理画面から、普通にサーバー情報を手動設定し、UPnPをオフにしただけです。つまり、VoIPアダプタに接続したアナログ電話をAsteriskの内線端末として利用できるワケです。今まではAsteriskより上(ひかり電話側)にあるRT-200KI配下だったので、050着信した場合には鳴らなかったんですが、これでバッチリです。こういう働きをするアダプタをATAと呼ぶのですが、日本語で扱えて入手もしやすい製品として、このNTTのVoIPアダプタは狙い目かも知れません。レンタル継続決定w。

■留守番電話機能

  留守番電話機能も順調。応答時に特定のナンバーをプッシュするとメッセージ再生フローに分岐するといった、市販の留守電と遜色ない動作も成功。ただし、Asteriskで電話をとってしまうと、FAXやエアコンの遠隔操作デバイスが機能しなくなるので、これは後日専用番号を取得してから利用することに。

 機能としては、吹き込まれた音声ファイルをメールに添付して送信したりとかもできるのでまた色々遊べそう。

 そういえば、普通の電話機と違って、HDD容量はタンマリあるので、通話は無条件に録音しとくなんてライフログ的な試みもできたりするワケだなぁと思ってみたり。

 

 

 

 

 

「Asterisk、更に更新」への4件のフィードバック

  1. いつも参考にさせていただいてます。
    VOIPアダプタをATAとして利用するに関して、
    再起動時はRegを含めうまく動くのですが、
    約30分でRegistryが解放されてしまします。(Voipランプも消えます)
    アダプタはWebCasterV110、ルータはRT200KI、AsteriskhaV1.4です。
    どうか秘訣を教えていただけませんか?お願いします。

  2. こんにちは。
    ウチのアダプタはコレなので、参考にはならないかも知れません。
    http://www.ntt-west.co.jp/kiki/consumer/flets/voip/index.html
    sip.confを見直しましたが、特にこのアダプタに特別な設定をした形跡はありませんでした。基本的にgeneralにあるmaxexpireの値(ウチは3600=1時間)のうちに端末側からRegist要請がなければ解放されてしまうってことだと思いますので、V110にRegsit周期の設定があればそれを3600より短くしてみてはいかがでしょう?(ウチのVoIPアダプタには特にそういう設定はないです)。あとは、maxexpireを延ばしてみる位でしょうか?
    直接のお役に立てなそうですみません。VoIP-Infoの掲示板か2chのAsteriskスレあたりで聞いてみた方が情報が集まるかも知れません。

  3. 早速のご返答感謝します。
    WevCasterにもmaxexpire等Regist周期を設定する機能がありません。残念です。
    あと、1つだけ。
    「UPnPをオフにしただけです」とありますが、オンだとだめですか?
    2chなどいくつかの掲示板にも投稿してますが、応答がない状況です。

  4. V110に設定はないですか。
    ちなみに「maxexpireを延ばしてみる」と書いたのはsip.confの話です。無限に延ばしても問題でしょうが、単純にちょっとだけ周期が間に合ってないだけならいけるかなと。ただ、考えてみると、それならregist/unregistを繰り返す、という現象になりそうですね。やはり別の理由で更新自体が上手くいってないんでしょうか。
    UPnPの件はだいぶ前のことなのでよく覚えてないですが、わざわざ書くくらいなので必要だったんだと思います。ウチは200KIとは別にルーターがあって、200KIはひかり電話のためだけに動いているという変則構成で、こうしないとVoIPルーターが200KIにつなぎにいってしまう、とかそんな理由だった気がします。
    後はVoIP-Infoのこのトピックにある方法でモニタリングしてみる位ですかねぇ(Mr.Qさんの書いてる方法)。
    http://bbs.voip-info.jp/forum/viewtopic.php?showtopic=1838

コメントを残す

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

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