クラウドPBX、twilio を VoIPフォンで使う(Panasonic KX-UT248)
SIP、VoIP というとその手軽さから、アプリフォン、ソフトフォンを使う事例が多いと思いますが、業務の中で電話として使おうと思うと専用の VoIPフォンを導入したほうがいろいろと楽ができます。
非VoIP のビジネスホンと違ってアプリとの連携ができるので、CTI(顧客から着信があったときに、顧客情報などを表示するシステム)と連携したりもカンタンにできます。
写真は、Panasonic の KX-UT248 という VoIPフォンです。2012年ころの発売で、2021年現在はすでに製造終了となっています。
KX-UT123、KX-UT136 というコールセンターのオペレータなどが使う姉妹機の長女的モデルで、コールセンターのハイパーバイザーなどが使うようなクラスの電話機と思われます。
基本的にはコールセンター向けモデルだと思うので一般企業で使っているところはほとんどないと思いますが、うちではとても気に入っていて 2012年から全社的に導入していて、台数を増やしながら全社員(プラス予備機)を運用しています。受注生産だったらしく、いつも発注すると数カ月後にベトナムの工場から送られてきました。(代理店さんいわく、名古屋ではほぼうちしか使ってないそうです)
余談ですが、さらに上位機種に KX-UT670 という Android を搭載したカラー液晶モデルもあります(ありました)。こちらも 2台ほど導入してみましたが、あまりにも使いづらく、バグだらけだったため、リース終了を待たず突き返してしまいました。(1年ほどでタッチ液晶パネルがほぼ反応しなくなり、その後もハングアップを繰り返すような状況)
SAXA や NEC、Nakayo などビジネスホンメーカも SIPフォンは作っていますが、いずれも自社IP-PBX用に専用設計されているので、汎用IP-PBX で使うと様々な機能が使えなかったりします。
その点、Panasonic は自社IP-PBX を持っていないので、この KX-UTシリーズは汎用SIPフォンとして設計されていて、とても使いやすいです。
Panasonic 以外だと、老舗と言えるのがアメリカ合衆国ボストンに本社を置く Grandstream社です。Android用の VoIPアプリで紹介した GS Wave を開発しているのも Grandstream です。最近では、中華人民共和国アモイの Yealink が積極的に展開しています。筆者が VoIP を構築するようになった 2005年ころは、アメリカ合衆国の Cisco、ドイツの snom などが定番メーカでした。このあたりは最後に少し昔話をしておきましょうか。
さて、KX-UT248 を例に、VoIPフォンを twilio で使う設定を入れ込んでいきます。
下準備として、twilio console の Programmable Voice でテストに使っている SIP Domain の Credential に Username 3003 を追加しておいてください。(手順は https://note.com/sqm/n/ne9444977a914 に書いてあります)
KX-UT248 だけではないのですが、この手の VoIPフォンの設定は、電話機に設定した IPアドレス宛にブラウザから http/https でアクセスして行います。KX-UT248 の場合、初期状態ではこの設定画面へ入れません。
KX-UT248 の場合は、設定、ネットワーク設定、内蔵Web、という設定項目があるのでこれをオープンに変えます。
まずは、SIP関係の設定です。VoIPタブ、SIP設定の回線2 を選択します。初めて設定する場合は、もちろん回線1 でも大丈夫です。
電話番号に内線番号を入れます。(今回は、3003 としました。)
SIPサーバーのレジストラサーバーアドレスとプロキシサーバーアドレスに、自分の SIPドメイン名の、ロケーションエッヂサーバ名を入れます。(例:fugafuga.sip.tokyo.twilio.com)
今までの設定例では、SIPポートに、5061 を使ってきました。これは、twilio と SIPクライアントの間の通信に TLS という暗号方式を使うためです。
残念なことに、2012年発売の Panasonic KX-UT248 ではこの TLS をサポートしていません。生データを送る形になりますが、UDP を使います。twilio で UDP を使う場合は、ポート番号は 5060 になります。(twilio の仕様です)
SIPサービスドメイン、サービスドメインにもロケーションエッヂサーバ名を入れます。
SIP認証の認証ID と認証パスワードは Credential で入れたものを使います。
SIPトランスポートプロトコル、トランスポートプロトコルは UDP を選択します。(TLS にも対応してください、Panasonic さん)
NAT のキープアライブ間隔に 60~300 くらいで数字を入れておきます。これはお使いのルータの NAPT設定に従います。NAPT では Dynamic に NAPTテーブルを更新していくのですが、使われていない変換テーブルは期限切れで削除されてしまいます。削除を防ぐために、NAPT の内部側から定期的にパケットを発出します。定番のエッヂルータ、YAMAHA RTX1200(RTX1210/RTX1220含む)のデフォルトの IPアドレスマップの消去タイマーは 900秒、NEC UNIVERGE IX2215 のデフォルトの変換テーブルの有効期限は 3,600秒ですので、ここは最大値の 300 で問題ないと思います。
ここまで設定したら、「登録」ボタンをクリックします。
次に、この回線に関する細かな設定を行いますので、VoIP設定の回線2 を選択してください。
基本的になにも変えなくても動作します。ただ、twilio の仕様でコーデックは ITU-T G.711 μ-law を使うことになっています。Panasonic の機械では PCMU と表記されます。
他のコーデックを使おうとしても使えないので、無効にするか優先度を下げておきます。
コーディック優先度(正しくは、codec / コーデックです。たぶん、Panasonic のスペルミス。マニュアルではちゃんとコーデックになっています)の項目で、PCMU 以外の優先度を 2 に下げておきます。ちなみにそれぞれの中身は、
G722 = ITU-T G.722。サンプリング周波数16KHz、48~64kbps
PCMA = ITU-T G.711 A-law。サンプリング周波数8kHz、64kbps。遅延が少ない、ヨーロッパでよく使われている
G726-32 = ITU-T G.726。サンプリング周波数8kHz、32kbps。遅延が少ない、パケットが欠落しても品質が損なわれにくい。コードレス電話で使われれていることが多い
G729A = ITU-T G.729a。サンプリング周波数8kHz、8kbps。遅延が大きく、音質は悪い。VoIPでよく使われる
PCMU = ITU-T G.711 μ-law。サンプリング周波数8kHz、64kbps。遅延が少なく音質が良い。米国、日本でよく使われている。日本で VoIP やるなら、これ一択で問題なし
この中で、まともな回線(1チャンネルで 64kbps以上)を確保できているのであれば、ITU-T G.711 μ-law 以外を使うメリットはありません。G.711 μ-law と A-law 以外のコーデックは 3G時代のように、64kbps すら安定して確保できないとか、著しく計算能力の低い組み込み用CPU しか使えない、という用途のためのものと考えて良いです。
通話相手と同じコーデックが使えれば、メディアのトランスレートの必要がないので遅延が少なくなります。日本の多くの SIPクライアントでは ITU-T G.711 μ-law をサポートしていますので、こちらもそれを使っておくのが良いでしょう。
最後に、「登録」ボタンをクリックします。
多くの VoIPフォンは NAPTルータ配下にあると思います。(2021年現在、グローバルIPv4アドレスを付与した VoIPフォンがあるとは考えられないので)
SIP では処理の中でグローバルアドレスを必要とするので、それをどう検出するかを指定します。やはり手軽なのは STUN なので、STUNサーバを設定します。
ネットワーク設定タブ、グローバルアドレス検出をクリックし、STUNサーバーの STUNサーバーアドレスに stun.l.google.com、STUNサーバーポートに 19302 を設定します。
最後に「登録」ボタンをクリックします。
ここまで設定すれば、twilio に SIP Registration できているはずです。機器情報タブ、VoIPステータスと進むと、回線番号2 のところの VoIPステータスが登録になっているはずです。
ここが登録中になっていると、設定が間違っています。内容を確認してください。
また、なにも表示されていないときは、回線2 が Enabled になっていません。この設定を変えるには、設定ファイルのプロビジョニングという作業が必要で(KX-UT248 に http経由で設定ファイルをダウンロードさせる)、この設定ファイルの中で、
LINE_ENABLE_2="Enabled"
の設定が必要です。
追記:
電話機能、電話機能設定、回線N と進むとディスプレイネームという設定項目があります。これはナンバーディスプレイの文字バージョンで、内線で電話するときなどに自分が誰なのかを通知して発信することができます。
IP-PBX と相手の電話機が対応していれば使える機能なのですが、twilio の場合は相性問題があって特定の文字列が含まれていると動かなかったりします。(エラーも吐かずに落ちるので、原因究明に手間取りました)
ディスプレイネームは必要ないので twilio に SIP Registration するときは空欄のママ使ってください。(プロビジョニングファイルだと、DISPLAY_NAME_N という設定項目になります)
追記終わり。
twilio console の Registered SIP Endpoints でも SIP Registration が確認できます。
隠してあるところに、ネットワークのグローバルIPv4アドレス、KX-UX248 の MACアドレスが書いてあります。
最後に、もうひとつだけ設定が必要です。
KX-UT248 では 6回線を収容できるのですが、どの回線を使って発信するか、を選択するのに機能ボタンを割り当てる必要があります。(回線1 しか使わない、などの環境であれば設定は不必要です)
電話設定タブ、機能ボタン設定を開きます。
空いているボタンに、内線ボタンを割り当てます。ボタン情報は、1,2 とします。1 がこの回線に割当てた着信音、2 が回線2 を意味します。ボタン名はわかりやすければ何でもいいです。
このボタンの番号、KX-UT248 の画面を見たとき、左上から下に向かって、4、3、2、1 右上から下へ 8、7、6、5 の順になります。
最後に「登録」ボタンをクリックします。
ここまで設定すれば、発着信ができるようになります。回線を割り当てた機能ボタンを押してから、ダイヤルするか、ダイヤルする番号を入れたあとに機能ボタンを押すと発信します。
3003宛に着信すると、機能ボタンが点灯します。
お疲れさまでした。これで、VoIPフォンを twilio で使うための設定ができました。今後も機会があれば別の機種での設定例を紹介していきたいと思います。
余談
最後に余談として、2005年から VoIP を取り扱ってきた筆者の昔話を書いておきます。
2005年ころの VoIP はいまとはだいぶ違っています。もちろん、twilio はまだありません。(twilio社は2008年創業)
なにしろ、いまでは当たり前に使っている SIP すらメジャーではありませんでした。当時の VoIP は、電話機というよりパソコンのソフトを使っての通話を想定していて、Skype や IRQ といったいわゆるメッセンジャーアプリのおまけ機能でした。
プロプライエタリなソフトなので中でなにをやってるかは知る由もありませんが、たぶん SIP は使っていないはずです。当時の技術的に H.323 というプロトコルがメジャーだったため、H.323 を拡張したものを使っていたと考えられます。H.323 は非力な CPU でも扱いやすいので、20世紀後半に発売されていたビデオ電話のできる機種では比較的広く使われています。いまでも、SIP の裏でメディア用のプロトコルとして使われています。(H.323 では呼の制御などに、H.225、H.245 などを使っていましたが、これを人間が扱いやすいものに置き換えたのが SIP と考えても良いです)
私はといえば、最初に扱ったのは Cisco の電話機でした。Cisco では当時の汎用規格である H.323 と並んで、自社規格である SCCP というプロトコルを使っていました。IP-PBX としては、Cisco のスイッチに Cisco Unified Communications Manager というアプリケーションを追加することで対応できます。
電話機としては、Cisco Unified IP Phone 7961G という機種をよく使いました。KX-UX248 と似たような機種で、6回線を収容でき、液晶パネルもついていてあれこれと作り込めるので便利でした。大量に仕入れても 1台10万円くらいする高級機です。
とある上場企業の本社移転にともなう電話システムの総入れ替えでビジネスホン(というか、アナログ交換機?)からの VoIP置き換え案件を請け負った際は、日本国内の電話機の在庫が足りなくて、急遽シンガポールから空輸で取り寄せたりしました。(10台に 1台は初期不良で動かないというトラブルに見舞われて、構築中に台数が足りなくなってきた)
なお、デフォルトでは SCCP を使うようになっていますが、SIP用ファームウェアを入れることで SIP でも扱うことができるようになります。(もちろん、IP-PBX側も SIP にする必要がありますが)
自社ではドイツsnom社の、snom 220、snom 105 という電話機もよく使いました。コールセンター用に作られた機種だと思いますが、大量に出回っていて安価で購入できました。こちらは SIP を使います。これでずいぶん SIP を勉強しました。2021年現在と違って、当時(2007年くらい?)は VoIP なんてやってる人はほとんどおらず、情報もほとんどないので電話機をながれるすべてのパケットを解析し、どうやって動くかを逐一確認していきます。この経験があるので、twilio のあらゆるログがいつでもカンタンに見られる仕組みは感動的に助かっているのです。
ちなみにパケットの解析を行うときは、通称バカハブと呼ばれる L2スイッチが必要です。インテリジェントではない、ただの L2スイッチです。市場で売られているいわゆる「ハブ」は正しくはスイッチングハブと良い、バカハブではありません。2005年ころは、まだバカハブ(非スイッチングハブ)がどこでも買えたので、これを使って wireshark や tshark と組み合わせて、pcap形式のパケットダンプを見ていました。
2021年現在、バカハブは手に入りにくいので違う方法を使います。NETGEAR GS105E など、ポートミラーリングという機能が付いた L2スイッチがあります。設定によって、ポート間でやりとりされるパケットを、別のポートにミラーしてくれる機能です。バカハブとは違いますが、パケットの取得が目的ならこれが使えます。
上の写真はいつも使っている GS105E です。ポート5 に接続した機器のパケットを、ポート4 で見ることができます。(ポート4 につないだ機器は、ネットワークには繋げられません)
小型ですので、一つ持っていると便利です。
Cisco の電話機も世代が新しくなり、7965G あたりからカラー液晶になりました。2007年頃です。
Cisco の電話機といえば、Cisco Unified Wireless IP Phone CP-7921G という、Wi-Fi対応の VoIPフォンも使っていました。スマホがまだない時代ですので、電話といえば転送しか無かったのですが、これを使うと 03番号で着信した呼を、ネットワーク経由(エンドは 3G回線)で直接取ることができます。当時の携帯回線の細さ、不安定さを考えると、Wi-Fi端末で通話することはカンタンではなかったのですが Wi-Fi さえ使えればどこでも 03番号で発着信できたので重宝しました。
というのは、当時、自社の本社と、1km ほど離れた大学内に研究所があって、研究所には固定電話をひいていませんでした。もちろん携帯電話(実際は定額通話ができる PHS でした。京ぽんこと、AH-K3001V を全社員で使っていました)を使えばいいので要らなかったのですが、とった外線をそのまま内線でまわせないのが不便でした。(いわゆる、折返し、しかできない)
7921G を持ち歩くことで(最後は、研究所にも置きっぱなしにしてた)、本社が無人になっても外線を着信できるし、発信するときも発信元が 03番号になるということでとても便利でした。
この頃から、IVR をやったり、コールバックシステムなども作ったりしています。
コールバックシステムは、携帯電話から発信をしたいときに、携帯電話の番号を使いたくない(相手に通知したくない)、また通話料を抑えたい、という目的で使います。
携帯電話から発信すると、20円(税別)/30秒などのけっこう高い通話料がかかってきます。これを、03番号などの固定回線から発信すれば、8円(税別)/3分など、約1/10 の通話料で通話することができます。
そこで、IP-PBX から固定回線で発信、携帯電話との間は VoIP で接続する、という仕組みです。
当時は例によってスマホがありません。当然、VoIPアプリもありません。そこで、通話料が無料になる 050番号サービスを活用しました。
具体的には、SoftBank の回線を契約すると、050番号が使えるサービスがあります。そして、相手が SoftBank の携帯電話であれば、通話料が無料になるというサービスを使います。
SoftBank からは FXSポート(電話機をつなぐ端子)のついた端末が貸し出されます。ふつうはここへ、電話機をつなぐのですが、これを LINKSYS SPA-3102 という FXOポートのある VoIPゲートウェイ端末と接続します。これで、SPA-3102 が SIPクライアントになるので、あとは IP-PBX に収容してしまいます。
コールバックを設定するところは、時代柄、電子メイルを使っていました。とあるアドレス宛に、電話番号だけを書いたメイルを送ると自分の電話機に 050番号から電話がかかってきます。FreeBSD + qmail という、当時の定番の組み合わせで動かしていました。
この電話に出ると、IP-PBX が相手の電話番号に発信し、つながったらブリッヂしてくれます。会社で一旦誰かがとった電話を転送することもできます。
余談の余談ですが、LINKSYS は安価なネットワーク機器をたくさん作っていて便利に使っていたのですが、あまりに人気になりすぎて Cisco に買われてしまいました。SPA-3102 は終売になって手に入らなくなったのですが、あまりに需要が多いことからコピー品が大量に出回るようになり、2021年現在でもコピー品が手に入ります。いま、同じようなシステムを組むとしたら Grandstream の FXO/FXSポート端末が付いた VoIPゲートウェイを使います。
このコールバックシステムは、その後 VoIP + スマホの SIPクライアントに置き換えられ、現在でも使えるようになっています。
いちばん最初に使った VoIP はなんだったか、記憶をさかのぼってみたら 2003年の BBフォンかもしれません。SoftBank(当時は Yahoo!BB のブランド名)が駅前でホームゲートウェイを配りまくって話題になったアレです。2000年くらいというのは、ISP各社がユーザ獲得に向けて投資しまくってた時期で、ホームゲートウェイを配るくらいはやりかねなかったのですが、実際にやった SoftBank が叩かれまくったやつです。(他の ISP は特典入り CD-ROM の頒布程度だった)
私は駅前でもらったわけではなく、引っ越しに伴って回線契約をして(まさかの ADSL です)、それに伴って 050番号の付いた VoIP回線を手に入れました。
これは確か専用の電話機を貸してもらって使ってたので、IP-PBX に収容といった使い方はしていません。
当時住んでた吉祥寺の家に、NTT東日本の Bフレッツが開通することになり、この Yahoo!BB の 1Mbps くらいしか出ない激遅 ADSL回線は解約し、Bフレッツで快適 100Mbps 生活になります。
この Bフレッツのオプションサービスで、ひかり電話を契約しました。そういえば、2003年ころというのは固定電話を引くのに「電話加入権」が必要でした。知らない方も居ると思うので説明しておくと、明治時代に固定電話が普及する際に、あまりにも回線の開通希望者が多かったので、申込みを抑制するために逓信省(後に電話事業は電電公社として分社化、NTT各社として民営化された)が「加入権」を売り出し、これを買った人だけが回線を引いてもらえる仕組みになりました。もちろん、戦後には固定回線は普及しきってこんな制度は不必要だったのですが、無くしてしまうとすでに買った人が損をするということで 21世紀になってもまだ残っていたよくわからない制度でした。
加入権は要らなくなれば譲渡もできたので、回線を解約した人が要らなくなった加入権を売りに出しており、中古の加入権というのが安く買えました。私もこれを買って回線をひきました。
話をひかり電話に戻すと、当時、Bフレッツを契約してひかり電話をオプションに加えると、PR-200NE(NECアクセステクニカ製)といったひかり電話対応ONU が貸し出されました。ただの FXSポート付きの HGW に見えるのですが、この HGW の LAN側から、SIP で VoIPクライアントをぶら下げられる機能が付いていました。NTT からも、この SIP を使った WiFi 電話機などが販売/レンタルされていました。
ここに、IP-PBX を接続すると、簡易ビジネスホンのようなことができるので、ここからいろいろいじって VoIP を使うようになってきます。その後、HGW より上位(ONU の直後あたり)からパケットを投げると、ひかり電話の SIPサーバに直接 Registration できることも判明し、HGW をすっ飛ばしてひかり電話を直収した IP-PBX なども作っていました。仕様的には、NTT が用意した OG410Xa、OG810Xa、OG410Xi、OG810Xi といった VoIPゲートウェイが用意されているので、これで一旦 FXSポートをもらって主装置のアナログインタフェイス、もしくは INS64用に BRIインタフェイスに接続して収容します。IP-PBX に収容する場合は、一旦アナログになった信号を、再び VoIPゲートウェイで SIP などに変換して、SIP Trunk で接続します。要は、ここの無駄な変換をすっ飛ばしてしまうわけです。(たぶん、NTT側は相性問題を少なくするために、ゲートウェイを決め打ちにしちゃいたいんだと思います)
ずいぶんと長い余談になりましたが、VoIP関係のエピソードは尽きないので、また機会があったらお話したいと思います。(なおエピソードは思い出した順であって時系列ではないのでご注意ください。年やサービス名、機種名などは記憶で書いてるので間違っているかもしれません)
目次
twilio に SIPクライアントを追加するときの注意(特にスマホ)
クラウドPBX、twilio を VoIPフォンで使う (この記事)
twilio + GRANDSTREAM VoIPフォンでカスタム保留音
アナログ電話回線を FXO ATA、Grandstream HT813 を使って Twilio に収容
この記事が気に入ったらサポートをしてみませんか?