ブログ

当社のブログです。
不定期で更新致しますのでお楽しみに!

ブログ一覧

Asteriskでひかり電話と050利用時に着信先を区別したい

久々にAsteriskの設定を変える機会があったのでメモを残したいと思います。
弊社では外出が多いので社内電話システムをクラウドPBXにしており、
ひかり電話の03番号や050の受付回線に着信するとクラウドPBX経由で、
社内に設置のGRANDSTREAMの固定電話数台と社員のスマホに着信する
仕組みを採用しております。

クラウドPBXといっても零細企業の弊社では有料サービスを
借りる程ではないためVPS上にFreePBXをインストールし、
VPNで社内と接続することでオレオレクラウドPBXを運用してます。

で、今回の話題の鳴り分なのですが今までは業務上としては、
03宛に着信しても050に着信しても両方対応できていたのですが、
業務繁忙のため、番号毎に担当を設けることになりました。
そうすると問題になるのが通常のひかり電話だとHGWが着信番号を
通知してこないのでAsterisk側でそのままでは入電経路がわからない!

そこでちょっとAsteriskのConfigを追加してあげることで、
050宛に着信したのか、03宛に着信したのか区別することが可能になります。
あとはInboud roureでそれぞれ目的の内線やRingに向ければ解決です。

弊社はAsterisk 20でやってますが19とかでも同じだと思います。

1、ひかり電話のTrunkの設定でContextを設定する。
弊社では[from-NTThikari]と付けましたがなんでも構いません。

2、”extensions_custom.conf”に以下のように設定する
[from-NTThikari] ←ここは”1”で設定したContextと同じになるようにすること!
exten => _.,1,Goto(from-pstn,${CUT(CUT(PJSIP_HEADER(read,To),@,1),:,2)},1)

3、Inbound RoutesのDIDにそのまま03XXXXXXXXのようにご自身の番号をセット

これで03宛に着信がくるとHGWから送られてくるSIP HeaderのTOにセットされている
電話番号を利用して鳴り分に利用することが可能です。

具体的にどこ参照してんのか?ということで弊社で取ったTcpdumpを
参考までに掲載しておきます。

——–
02:34:48.018975 tap_voip Out IP sipedemo.local.sip > 192.168.X.X.sip: SIP: SIP/2.0 200 OK
E`.y”.@.@…… ………e..SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.X.X:5060;rport=5060;received=192.168.X.X;branch=z9hG4bK291358527
Call-ID: 468619045@192.168.X.X
From: <sip:anonymous@anonymous.invalid>;tag=368508610
To: “03XXXXXXXX” <sip:03XXXXXXXX@192.168.X.X>;tag=9e43156e-5043-4f0d-80a0-8407da769d25
CSeq: 2 BYE
Server: FPBX-16.0.40.7(20.4.0)
Content-Length: 0
——–

なお、参考までに以下のようなHeaderの050番号の場合は、
”exten => _.,1,Goto(from-pstn,${CUT(CUT(PJSIP_HEADER(read,To),@,2))},1)”とすることで
電話番号ではないですがアカウント名?的なユニークな情報をToとして取得することができるので、
電話番号ではないですがDIDにセットすることが可能です。

03:02:24.095581 eth0 In IP XXXXXXX > sip.domain.tld.sip: SIP: BYE sip:XXX.XXX.XXX.X:5060 SIP/2.0
E…Z…4.ENw….,……….BYE sip:XXX.XXX.XXX.X:5060 SIP/2.0
Via: SIP/2.0/UDP XXX.XXX.XXX.X:5060;branch=z9hG4bK69eb980a;rport
Max-Forwards: 70
From: “08012345678” <sip:08012345678@XXX.XXX.XXX.X:5060>;tag=as38f9f65c
To: <sip:99991230001@XXX.XXX.XXX.X:506>;tag=5bb93ac5-caa4-472f-834f-92e0349ca7fc

→”99991230001”が取り出せますね!

外出の多い中小企業の皆様や個人事業主の皆様
超安価なVPSベースのクラウドPBX利用してみませんか?
リモートワーク等で固定電話に出られない方にもおすすめです。
弊社ではメールベースでしたら無料でご相談をお受けしております。
構築もオープンソースを積極的に活用するため非常に低額で
ご利用頂けるかと思いますのでご検討ください!

snap install coreでエラーが出るとき

たまにはエンジニアとしての記事を。
仕事がら毎日Linuxサーバを構築したり、設定を変えたりしているのでその時に起きた問題を
メモがてら更新したいと思います。

記念すべき1回目はマイナーな問題です。

Let’s Encryptを設定するために、最近推奨されている”snap”をインストールして、
coreをインストールするときにしばしばこんなエラーが出ます。

# snap install core
error: too early for operation, device not yet seeded or device model not acknowledged

これはタイミング的にコピペ作業とかしていると発生しますが、
回避方法はとても簡単で少し(1分ぐらい)待ってから再度実行すると解決します。

少し待ってから再実行すると以下のように実行されます。

# snap install core
2021-10-02T00:33:52+09:00 INFO Waiting for automatic snapd restart…
Warning: /var/lib/snapd/snap/bin was not found in your $PATH. If you’ve not
restarted your session since you installed snapd, try doing that.
Please see https://forum.snapcraft.io/t/9469 for more details.

まだWarningが出てるんじゃないか?と思われるかもしれませんが、
これは単にsnapへのPATHが設定されていないことを警告しているだけなので、
このままでも特に問題はありません。
気になる方は.bashrcなどに指定されたPATHを設定してあげればよいかと思います。

オフィスの固定電話

Raspberry Pi

皆様のオフィスや店舗等ではリモートワークを導入されておりますでしょうか。
完全に無人にならない業種についてはあまり問題にはならないかもしれませんが、
100%リモートワークを達成すると、オフィスは無人になるため、
当然ですがオフィスの代表電話や固定電話は無人だと鳴りっぱなしで
誰も出れませんよね。
留守番電話をセットしても録音されたものを聞くのはいつになるのか・・・・。

そして、誰が出社していたとしても電話が多いと最少人数の出勤では、
電話まで対応しきれないケースもあるかと思います。

なので、ボイスワープと呼ばれるNTTの電話転送サービスを契約して、
リモート中の社員の携帯や社長の携帯等に転送されている会社も多いと聞きます。

しかし、ボイスワープは基本的に転送先は1つなので電話を一人で
対応することになりますし、オフィスから転送先までの電話代は
ボイスワープ契約者の負担です。
したがって、かかってきた電話についてもコストがかかります。

当社も同様の悩みがあります。
ただ、当社は小規模なのでコロナに関係ないころから
オフィスが不在がちなのもありますが・・・。

そこで当社では以下の方法でこの問題を解決しました。

まず、前提条件ですがオフィスの電話はNTTのひかり電話です。

通常、このひかり電話機器に必要な台数の市販の電話機等をつけて
固定電話として利用するのが普通です。

当社では、ここにraspberry piという超小型の手のひらにのるサイズの
コンピュータをひかり電話のパソコン用ポート(LAN)につなげております。

Raspberry Pi

 

 

 

 

 

 

写真では基板が剥き出しですが、実際はアルミ素材の放熱性にすぐれた
ケースも購入してケースに組み込んでいます。
基本的にファンが無いので無音でオフィスに置いても静かですし、
手のひらぐらいの大きさしかないので邪魔にはなりません。

で、このコンピュータにAsterisk(FreePBX)と呼ばれるオープンソースの
ソフトウェアベースのPBX(電話交換機)をインストールしています。

これにより社内の電話はすべてIPベースの内線となっており、
スマートフォンにもIP電話アプリをいれることで内線での
通話が可能になっています。

なので、携帯電話に電話をしても内線番号で発信すれば通話料はゼロ円です。

つまり、無料。

そして、オフィスの固定電話にかかってきた電話は指定した
内線すべてに着信することが出来るので、外にいてもオフィスの
固定電話に誰かが応答することが可能です。
特定の一人だけが電話番になることがなくなるわけです。

そして隠れたもう一つのメリットがこの内線から電話をかけると、
相手に通知される番号は携帯からかけたとしてもオフィスの固定電話の番号です。
そのため、相手に携帯番号を知られることもありませんし、
オフィスから電話しているように見せることが可能です。
さらに、通話料金は通常の固定電話からの発信となるので携帯電話より断然安い!!
もっと言えば、インターネットさえあれば海外からかけても固定電話の料金で
国内通話として発着信可能です。
もちろん、内線番号でかければ地球の裏側にいる社員でも通話料は無料!

他には、時間外は留守番電話やおかけなおしくださいのオリジナルな
ガイダンスにすることもできたり、受けた電話を切らずにそのまま
別のリモートワーク先の人に転送することだってできちゃいます。

手のひらサイズのコンピュータ1つであたかもオフィスに全員が
居るようになるとは凄いものです。

そんなコンピュータですが、やっぱお高いんでしょ?と思われていませんか?
種類や構成・環境にもよりますが、電源や記憶媒体など必要なパーツを
全て購入してもほぼ1万円以下です。
そして特別なお店でもなく、Amazonとかでも気軽に買えます。

とはいっても買ってきたら使えるわけではなく、
このソフトウェアPBXを作る作業が必要です。
その作業は当社が自社の実例をもとに御社の希望に沿って作ることが可能ですので、
ぜひ、ご興味あれば当社までご連絡ください。

とはいっても環境要因とか色々言ってきて無駄に高いハード売りつけられないか?
とご心配な方はご自身でハードはお買い求め頂いてもかまいません。

なぜなら、当社ではこのコンピュータ単体での販売はしてませんので、
必要となればAmazon等で買って実費でご請求するだけです、、、
なのでお客様が買っても当社が買っても同じで当社に利益はありません(笑)
*買う前にご相談はしてくださいね。
せっかく買っても使えない環境も中にはありますので。

当社ではこのカスタマイズ毎のお見積りで費用を計算致しますので、
構成がシンプルであればとても安いですし、
社員がとても多くて複雑な振り分けとかすれば
それなりのお値段になりかもしれませんが、従来のPBXを買うより遥かに安いです。

まずは本当にできるの?といったご質問やもっと詳しい仕組みが知りたいとか、
なんでもお気軽にこちらのフォームからご相談ください。
メリット、デメリット隠さずに正直にお答え致します。