Raspberry Piでひかり電話を持ち歩こう③ひかり電話編
Raspberry PiでIP-PBX構築第3弾!
前回、内線通話まで完成。今度はひかり電話をAsteriskに収容します!
FreePBXで外線通話を収容するにはConnectivityメニューからTrunksを選択します。
設定する回線の種類を選ぶ画面が出てくるのでAdd SIP Trunks を選択。
Trunk Nameに回線の表示名を入力。
続いて、 こんな感じに入力します。
Trunk Name システム内で処理する回線名を指定。
PEER Detailsひかり電話の回線について指定。(192.168.1.1はルータのIPアドレスなので環境に合わせて読み替えて。)
username=[ユーザID]
type=friend
secret=[パスワード]
insecure=invite,port
fromdomain=192.168.1.1
host=192.168.1.1
fromuser=[内線番号]
dtmfmode=inband
disallow=all
context=from-trunk
allow=ulaw
USER Context ひかり電話の外線番号を指定?
USER Details 着信時の設定?
context=from-trunk
Register String SIPサーバーへのレジストコマンドを指定。
[内線番号]:[パスワード]:[ユーザID]@192.168.1.1/[Asterisk内線番号]
IPアドレスの後に「/内線番号」を指定する事により外線着信時にどの内線番号が呼び出されるかを指定できます。
グループ着信や自動応答も使用可能。
グループ着信や自動応答を使用する場合はInbound Routesを使用しないといけないようです。(補足記事はこちら)
指定をしない場合はInbound Routesから着信番号別の呼び出し内線など細かく指定可能です。
とりあえず、ここまで入力できたらSubmitを押してApply Configを押します。
これで、外線から着信があると指定した内線番号が呼び出されます!
とりあえずテスト!
スマホでSIPアプリを立ち上げてひかり電話にダイヤルしてみます。
無事、着信できました。
ひかり電話はナンバーディスプレイに加入していない場合「anonymous@192.168.1.1」と通知されます。
(IP電話通信網なのに番号通知が有料ってのはちょっと納得いかないけど・・・)
続いて外線発信の設定。
ConectivityメニューのInbound Routesから設定します。
Add Routeを押してRoute Nameを設定します。
続いてルールの設定。
Dial Patterns that will use this Routeの項目にダイヤルプランを設定。
このルールに一致した場合しか外線発信は許可されません。
今回、設定した基本的な例
1XX 【110、119、117等など1で始まる3桁の番号】
0ZZXXXXXXX 【1桁目が0 2,3桁目が1~9 残り7桁が0~9】
0ZZXXXXXXXX 【1桁目が0 2,3桁目が1~9 残り8桁が0~9】
0N0XXXXXXXX 【1桁目が0 2桁目が2~9 3桁目が0 残り8桁が0~9】
このような記述にしました。
普通に電話をかけるなら何処にでもダイヤル出来るように【*】だけ登録すればいいのですが・・・
SIPはインターネットに公開する予定なので不正利用を防止する目的で国内以外への発信は出来ないように制限しています。
実際に知らない間に海外電話を使われて100万単位の請求が届いているという例も多々あるようなので要注意です!
海外発信の010や0033等の00から始まるダイヤルを規制する為にこんな感じの制限にしました。
また、不正利用対策としてprefixを指定するのもありです。
プレフィックスは頭に任意の数字を付けてからダイヤルをした場合のみ外線回線を利用する設定で企業のビジネスホン等で頭に「9」等をダイヤルしてから相手先電話番号をダイヤルするアレです。
いろいろ対策をしたところで突破されて不正利用される可能性はゼロではないので海外に電話をする事が無い場合は116で海外発信停止をしてもらったほうがいいと思うけど…
最期にOptional Destination on Congestionの項目に条件一致時に使用するトランクを選択
いつも通りSubmitとApply Configを押して設定完了!
試しに外線発信してみよう!
無事、外線発信が出来ればOK!
とりあえず、コレで自宅Wifi圏内ではひかり電話を自由に使えるようになった・・・(元々ひかり電話はスマホに対応してるけれど・・・)
次回は自宅以外での使用への対応とPUSH着信!
ディスカッション
コメント一覧
RasPBXの有益な情報ありがとうございます。たいへん参考にして読ませていただきました。
当方もauひかり電話を利用しており、スマホをRasPBXの子機として登録し、
スマホ2台をSIPクライアントとして内線通話は出来たのですが、
ひかり電話を外線で使う設定がうまく出来ません。
Trunkの設定でユーザーID、パス、Domainなどを入力するあたりが間違っているのかな
と思っているのですが、アドバイスをいただけないでしょうか。
※ここのユーザー情報は、ひかり電話(Sonet)のIDがよく分らないため、
SIPサーバであるRaspberry PiのIPアドレスとユーザーIDは内線番号を入れています。
(auはセルフID、Sonetはネット接続IDや会員ページ用ユーザーIDがありますが、違うような気がしてます)
ご覧いただきありがとうございます!
TRUNK設定に記述するID、パスワードはルーターの内線の項目で設定するものです。
ひかり電話 内線等で検索すれば説明したサイトが出てくると思います。
また、NTTよりレンタルを受けているルーターの機種によってはAsteriskにパッチを当てないとレジスト出来ない場合があります。
コレに関してもAsterisk ひかり電話 パッチ等で検索すれば出てくると思います。
また、当方で実用開始直後から無数の不正アクセスがありますのてルーター外に公開する場合は不正利用の対策を完了してから公開するようにしてください。
設定頑張ってください!
こんにちわ。
当方もこちらのサイトを元にFreePbxの設定を勉強させて頂いております。
回線の違い(当方So-netフォン使用)ありますが、どうにか発信まで出来る様
こぎつけましたが、どの様な設定をしても着信ができずに困っております。
個人的に怪しいと思っているのが、trunksのIncoming Settingsの記述かな?と
思っております。
現在、context=from-trunkに設定しているのですが、これが問題なのでしょうか?
ご教示頂きたくお願い申し上げます。
ご覧いただき有難うございますw
So-netフォンの設定を全く知らないのでなんとも言えませんが…
FreePBXのSystemStatusでIP Trunk Registrationsはちゃんと緑になっていますか?
登録したTRUNKの数が全てレジストできていればIncomingSettingsの方の問題かと思います。
レジストができていないようでしたらSo-netフォンのレジスト設定の仕方に問題があります。
「Asterisk So-netフォン」などで検索するとレジスト方法が出てくると思いますのでそちらを参考にやってみてはいかがでしょうか?
はじめまして。こんにちは。
最近IP-PBXの存在を知り、こちらのサイトを参考に設定しています。
記事の中に
>[内線番号]:[パスワード]:[ユーザID]@192.168.1.1/[Asterisk内線番号]
>IPアドレスの後に「/内線番号」を指定する事により外線着信時にどの内線番号が呼び出されるかを指定できます。
>グループ着信や自動応答も使用可能。
と書かれていたので、Asterisk内線番号の部分にRingGroupで作成した番号を指定しました。
ところが相手の電話機から
the number you have dialed is not in service please check the number and try again
と流れ、着信できません。
ご教授ください。
当方ではグループ着信はテストしていませんので詳しくはお答え出来ないのですが…
レジスト設定に個別の内線番号を指定して着信は出来ていますか?
また、内線でのグループ着信は出来ていますか?
この両方が問題ないのであればレジスト設定からではなくInboundの設定からグループを指定してテストしてみてはいかがでしょうか?
アドバイスありがとうございます。
内線からグループに発信した場合は正常に全ての端末が鳴ります。
また、Inboundの設定を使った場合も正常に全ての端末が鳴ります。
今回、Inboundを使用しなかった理由は接続先のひかり電話ルーターが複数(正確には今後増える予定)なので、Inboundの設定を使用してしまうと鳴らし別けができなくなってしまうと考えてこのような方法を使えないかと思った限りです。
もう少し原因の切り分けに望んでみようと思います。
グループ着信に関してはネットでみつけた情報を元に書いてしまったため情報間違いかもしれません。
inboundを使ってなり分ける方法は把握しています。
レジスト設定の「Asterisk内線番号」のところにひかり電話の外線番号(0312345678等)を入力してください。
これによりTrunkと電話番号がセットになります。
電話番号を指定したらInbound設定のDIDNoに外線番号を入力してSet Destinationを指定すればTrunk別の着信になるお思います。
当方では回線も端末もひとつしか使っていないため確認はしていませんが理屈的には行けると思うのですが…
お試しください。
うまくいきました!!
思わず拍手してしまったくらいです。
本当にありがとうございます。
ピンバック & トラックバック一覧
フリーダウンロードゲー