0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SIPフォン(ソフトフォン)入門:仕組み・構成・設定ポイントまとめ

Posted at

この記事は筆者オンリーのAdvent Calendar 202510日目の記事です。

VoIP(IP電話)を触り始めると、まず出てくるのが SIP と SIPフォン(ソフトフォン) です。
この記事では、ZoiperのようなSIPソフトフォンを例にしつつ、SIPフォンが何をしていて、通話がどう成立するのか を、実装・検証に役立つ観点でまとめます。

SIPフォン(ソフトフォン)とは?

SIPフォンは、SIP(Session Initiation Protocol)を使って通話の開始・終了などの制御を行う端末(アプリ)です。
スマホ/PCアプリとして動くものは特に ソフトフォン と呼ばれます。

例:Zoiper / Linphone / MicroSIP / Bria など

できること:発信、着信、保留、転送、DTMF、録音…など(アプリ次第)

ポイントはこれです:

SIPは「通話の制御(シグナリング)」

音声データ自体は主にRTP(Real-time Transport Protocol)で流れる

SIPで通話が成立するまでの流れ(超ざっくり)

通話は大きく 2つの経路 で動きます。

  1. シグナリング(SIP)

「誰に電話するか」

「通話を開始していいか」

「どのIP/ポートで音声を送るか」

「どのコーデックで話すか」

を決める通信です。

代表的なSIPメッセージ:

REGISTER:この端末はここに居ます(着信先の登録)

INVITE:通話したいです(発信)

BYE:切ります(終話)

ACK:確定しました(確立)

OPTIONS:生存確認・機能確認など

  1. メディア(RTP)

実際の音声(パケット)が流れる経路

通常、UDPで流れることが多いです(低遅延優先)

SIPとSDP:音声の「取り決め」はSDPでやる

INVITE などのSIPメッセージには、しばしば SDP(Session Description Protocol) が含まれます。
SDPには例えば以下が入ります:

音声を送る宛先IP/ポート

利用コーデック(G.711 / Opus / G.729など)

メディアの種類(audio/video)

方向(sendrecv / sendonly / recvonly など)

つまり、

SIP:通話開始の合図

SDP:音声の送り方の合意

RTP:実際の音声

という役割分担です。

典型的な構成:SIPサーバ(PBX)とソフトフォン

現実的には、SIPフォン単体で完結するより、真ん中に SIPサーバ(PBX) がいることが多いです。

よくある構成要素:

UA(User Agent):ZoiperなどのSIPフォン

Registrar:REGISTERを受けて「どこに居るか」を管理

Proxy:INVITEなどを中継して呼制御

PBX:内線・外線・IVR・録音などの機能を持つ(例:Asterisk / FreeSWITCH)

SIPアカウント設定でよく出てくる項目

Zoiper等でアカウントを作るときに出る典型項目です。

SIP server / Domain:例 sip.example.com

Username / Auth user:認証に使うID

Password:認証パスワード

Port:UDP 5060(典型)、TLSは5061など

Transport:UDP / TCP / TLS

Outbound proxy:指定が必要な環境もある

※サービスやPBXの設定によって表記が微妙に違いますが、「どこにREGISTER/INVITEを投げるか」「何で認証するか」が本質です。

コーデックの話(音が出ない原因にもなる)

SIP通話で「つながるけど無音」「片通話」になるとき、コーデック不一致 が原因のことがあります。

よくあるコーデック例:

G.711 (PCMU/PCMA):昔からの定番。軽いが帯域はそこそこ使う

Opus:高音質・可変・低遅延寄り(使える環境なら強い)

G.729:帯域は小さいがライセンス事情が絡むことも

検証ではまず G.711を許可 しておくと切り分けがラクなことが多いです。

NAT越え(ここが一番ハマりやすい)

ソフトフォンが家庭/社内LANなどNAT配下にいると、SIP/RTPが外から戻って来られずハマります。

代表的な対策・キーワード:

STUN:自分のグローバル側アドレス/ポートを知る

TURN:どうしてもダメなとき中継する

ICE:STUN/TURNを組み合わせて経路選択する仕組み

SIP ALG:ルータの「親切機能」だが、壊すことも多い(無効化推奨のケース多い)

症状例:

発信はできるが着信できない

つながるが片方の音声だけ聞こえない(片通話)

セキュリティ:SIPも平文だと覗ける

検証用途ではUDP 5060で平文SIPを使うこともありますが、本番や外部接続では注意。

SIP over TLS:シグナリング暗号化

SRTP:音声(RTP)の暗号化

認証情報の保護、盗聴対策、なりすまし対策につながります

デバッグの基本(困ったらここを見る)

ソフトフォンのログ:SIPメッセージの送受信が見えることが多い

tcpdump / Wireshark:

sip フィルタでINVITE/REGISTERを見る

rtp で音声が飛んでいるか見る

切り分け順(おすすめ)

REGISTERできているか

INVITE→200 OK→ACK まで行くか(通話確立)

RTPが双方向に流れているか

コーデック一致しているか

NAT / ファイアウォール疑う

まとめ:SIPフォン理解の最短ルート

SIPは「通話の開始/終了などの制御」

音声はRTPで流れる

SDPで「どのIP/ポートに」「どのコーデックで」を合意

実運用はPBX(Asterisk等)を挟むことが多い

ハマりどころはNATとコーデック

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?