IP電話について雑記

# はじめに
[電話はなぜつながるのか](https://www.amazon.co.jp/%E9%9B%BB%E8%A9%B1%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A4%E3%81%AA%E3%81%8C%E3%82%8B%E3%81%AE%E3%81%8B-%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84NTT%E9%9B%BB%E8%A9%B1%E3%80%81IP%E9%9B%BB%E8%A9%B1%E3%80%81%E6%90%BA%E5%B8%AF%E9%9B%BB%E8%A9%B1%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98-%E7%B1%B3%E7%94%B0-%E6%AD%A3%E6%98%8E/dp/4822282864)という本をたまたまBookOffで見つけて購入した結果、IP電話になんとなく興味がわいたので調べてみました。

# とりあえず私が覚えておきたいこと
・内線と外線の連携にはPBXが必要。
・IP電話網と公衆電話網の接続にはVoIP GWが必要。
・通常、IP PBXはVoIP GWの機能を兼ねる。
・VoIP GWがNATトラバーサルを担当する。
・SIPサーバを経由しての呼制御を挟んだのちRTPで直接の通信をする。

# PBXについて
そもそも電話は電話線を用いて行うものです。内線での発着信、内線と外線との連携はPBX（private branch exchanger）が担います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/ac49c699-e9fe-cfaf-ff44-733d374eed11.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/e9073823-2c4a-2a0d-7150-e8efc8261bce.png)
[こちら](https://boxil.jp/mag/a2545/)から。

# IP-PBXについて
TCP/IPネットワークを利用して内線通話システムを構築します。スマートフォンやPCを電話機として使えます。
専用サーバを用いるハードウェアタイプと汎用サーバに専用ソフトをインストールするソフトウェアタイプがあります。
IP-PBXはIP電話機を利用する場合に必須であり、IPネットワークにて電話通信を行いたいだけであれば必ずしも必要というわけではないです。
[こちら](https://www.infraexpert.com/study/telephony1.html)

## 呼制御
IP電話間での音声通信はTCP/IP通信にて行われるため、相互のIPアドレスとポート番号が必要ですが、荷電側は受電側の情報を有していません。そのため、SIPサーバ（多分大体の場合IP-PBXと同居している）に問い合わせます。このような電話の発着信の処理を呼制御と呼び、IP電話での呼制御を行うためのプロトコルがSIPです。

呼制御は以下の4つのステップで行われます。
①AからBあてにSIPメッセージの送信。パケットの宛先はSIPサーバで、ポート番号5060番を用いたINVITEメッセージを送る。
②SIPサーバからBに**INVITE**メッセージを転送。
③BからSIPサーバ宛に応答メッセージ（**200 OK**）。SIPサーバはAに転送（**200 OK**）。
④AからSIPサーバに**ACK**メッセージを送信。SIPサーバはBに転送。
④RTPを用いてAとBの間で直接RTP通信。
⑤**BYE**リクエストを送信してセッションの切断を要求。
　AとB（着呼側と発呼側）のどちらから送信してもよい。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/3bf0afef-3a6e-8d26-f4f0-b58e545fd495.png)

まあこんな図はなくとも[先述のサイト](https://www.infraexpert.com/study/telephony1.html)にて具に書かれているのですが。

### 主なリクエストメッセージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/edb428bf-bda4-3f45-98b2-e636d6736b47.png)
[こちら](https://www.infraexpert.com/study/telephony4.html)から
試験では、**INVITE**メッセージ、**ACK**メッセージ、**BYE**メッセージ、**REGISTER**メッセージ、**REFER**メッセージをよく見た。
REGISTERはUAの位置情報を登録するためのもの。

### SIP UA（User Agent）の認証
SIPサーバは**HTTPダイジェスト認証**で通信相手のUAを認証します。
①UAはSIPサーバに認証情報の付与されていないリクエストを送信する。
②SIPサーバは**401 Unauthorized** のステータスコードと共に**チャレンジ値**をUAに返信する。
③UAはユーザ名と受信チャレンジ値とパスワードから生成したハッシュ値である**レスポンス値**を再度SIPサーバに送信する。
④SIPサーバは受信したレスポンス値が自身で生成したものと同一であればUAを認証し、**200 OK**のステータスコードを返信する。

## 積み残した用語と微めも
**VoIP**
IPネットワーク上で音声通話を実現する技術のこと。代表的な規格としてSIPやH.323がある。SIPやH.323が呼制御を行います。

**SIP**
セッションを制御する機能。
IP電話において、IP電話アダプタがSIPサーバに電話番号を含んだメッセージを送り、相手のIPアドレスを把握するために利用します。そのほか、相手のIPアドレスと電話番号の管理や、通信履歴の管理や課金のための通話時間の記録などを行います。

**RTP**
各パケットのペイロードの音声データを、RTPヘッダの情報に従い一定間隔で再生します。シーケンス番号とタイムスタンプが用いられます。
シーケンス番号：パケットの順番
タイムスタンプ：先頭からの相対的な時間

というかこの章の内容は大体[ここ](https://www.infraexpert.com/study/study36.html)に書かれているのですけれどね。いつもお世話になっております。

**VoIPゲートウェイ**
アナログ電話網とTCP/IPネットワークを取り次ぐ装置。先のinfraexpertにモデルの構成図があります。

**NATトラバーサル**
INVITEメッセージのSIPヘッダ及びSIPメッセージには送信元/宛先IPが記載されているが、当該メッセージを含むパケットがNATされる際にはVoIP GWにてVoIP GWのWAN側IPに書き換えられる。
VoIP GW内のアドレスを参照して直接のRTP通信の宛先が決まるため、INVITEリクエストの書き換えをしないと着呼側からのレスポンスが届かない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/ec075c13-f1c1-64ba-5bf9-d1761bbee905.png)
[こちら](https://www.infraexpert.com/study/telephony4.html)

# テレビ会議について
IP電話とは別物のようです。Web会議とも別物とのことです。

基本的には専用線を用いたPoint to Point接続をします。複数拠点間の接続をする場合には、MCU（Multipoint Control Unit）を用います。MCUは、同時接続している各拠点の映像・音声・その他のデータをまとめて受け取り、各端末が見やすいよう画面合成などの処理を施してデータを各端末に送り返します。
MCUでN人分の情報をまとめてN個の画面を作成するので、N人が同時接続していてもN-1人分の情報が送られてくるわけではなく、トラフィック量は変わりませんが、高画質、高音質にするほどよりMCUのスペックが必要になります。
各端末のプロトコルを終端し、合成・切り替え後の信号を送出先の端末に応じたプロトコルに変換するゲートウェイ機能を持つため、異種端末をMCUに収容でき、多地点TV会議への参加が可能になります。

PolycomとかBluejeansとかいろいろなベンダの製品があるようですが、正直私は使ったことがないのでイメージが全くつかないですし、あんまり調べすぎるとドツボにはまりそうな上、今後はとりあえずTeamsやWebexを使っておけばいいかとそうしたサービスに移行する人が大半だと思いますので、移行割愛です。
困ったら[ここ](https://www.vtv.co.jp/)を見てみましょう。

# おまけ
**UCaaS**
Unified Communication as a Service
音声、ビデオ会議、メール、チャットなどの統合コミュニケーション（UC）をインターネット経由でサービスとして提供すること。クラウドを通して利用できる総合コミュニケーションツール。
※UC：一元的なプラットフォームで様々な通信サービスを提供すること。ビデオ、音声、Web会議、チャットなど。


**AUXポート**
電話回線を利用してモデム経由でルータの設定や管理をする際に使用します。こんなのです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469705/1bb0e797-e51a-7416-bfa3-e93ee4691627.png)
Ciscoルータのポートについて一覧化されています。[こちら](http://atnetwork.info/ccna/ciscointerface.html)。





# 参考
[電話はなぜつながるのか](https://www.amazon.co.jp/%E9%9B%BB%E8%A9%B1%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A4%E3%81%AA%E3%81%8C%E3%82%8B%E3%81%AE%E3%81%8B-%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84NTT%E9%9B%BB%E8%A9%B1%E3%80%81IP%E9%9B%BB%E8%A9%B1%E3%80%81%E6%90%BA%E5%B8%AF%E9%9B%BB%E8%A9%B1%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98-%E7%B1%B3%E7%94%B0-%E6%AD%A3%E6%98%8E/dp/4822282864)
[PBXとは？電話交換機の仕組みを図解！意味や種類、選び方](https://boxil.jp/mag/a2545/)
[IP Telephony](https://www.infraexpert.com/study/telephony1.html)
[IP Phoneの技術](https://www.infraexpert.com/study/study36.html)
[IP電話とは - SIPとは](https://www.infraexpert.com/study/telephony4.html)
[Ciscoルータのインタフェース](http://atnetwork.info/ccna/ciscointerface.html)
[VTVジャパン株式会社](https://www.vtv.co.jp/)