通話が切れる:30秒後、15〜30分後
「ちょうど何秒で」切れるのは回線不良ではなくタイマーです。どちらかの側が何かを待ち、待ちきれずに正しく通話を切っています。そのため、切れるまでの時間から原因はほぼ特定できます。約32秒 — 通話開始の確認が届いていない。約15分または約30分 — 通話の延長が通っていない。着信が最初の数分しか機能しない — ルーターが電話機への経路を閉じている。以下では各ケースの仕組みを言葉で説明し、対処法を示します。
電話機の共通設定は「SIP電話機の設定」、その他の症状は症状別の診断をご覧ください。
まず管理画面で確認する#
- 通話履歴 — 切れた通話を開きます。「通話」には秒単位の通話時間が表示されます。0:31〜0:33なら第1のケースの特徴、約15:00または29:30なら第2のケースです。同じ場所に**「電話を切った側」(発信者、従業員、PBX)と「切断理由」**があります。
- エコーテスト
*43を長めに:ダイヤルして45秒そのままにします。*43も通話であり、通話開始の確認は同じ経路を通ります。32秒で切れたなら電話機とPBXの間の故障、持ちこたえたなら店舗の電話機とネットワークは正常なので、さらに調べます(外線通話、通信事業者)。 - 端末のカード → 「稼働状況」:「接続なし」が定期的に発生するなら、ルーターが電話機への戻り経路を閉じています(第3のケース参照)。
- カード内の**「端末に発信」**を、最後の通話から10分後に実行:呼び出し音が鳴れば電話機への経路は生きており、店舗が緑でも無音ならルーターが原因です。
- 専用PBXでのSIPトレース:
ACKなしの200 OKが繰り返され、その後BYEなら第1のケース、通話の途中でINVITEやUPDATEの後にBYEなら第2のケースです。
30〜32秒での切断#
なぜこうなるのか#
通話の開始は3つのメッセージのハンドシェイクです。「発信」(INVITE)—「応答」(200 OK)—「了解、開始」(ACK)。応答した側は「了解」を受け取るまで「応答」を繰り返します。SIPプロトコルの規則では、「了解」が64 × T1 = 64 × 0.5秒 = 32秒以内に届かなければ通話を終了しなければなりません。この間すでに音声は流れているため、30秒間は問題なく、その後通話が自然に落ちます。
つまり、32秒での切断はACK確認がどこかで失われていることを意味します。原因を頻度の高い順に挙げます。
- ルーターのSIP ALG。 ルーターが制御メッセージ内のアドレスを書き換え、確認が誤った場所に送られるか破棄されます。常に最初に確認すべき点です。
- パケットが大きすぎる。 電話機で多数のコーデックが有効になっていると、通話の記述が約1300バイトを超えて膨らみ、UDPでは「断片」(フラグメント)に分かれて送信されます。多くのルーターやファイアウォールはフラグメントを黙って破棄するため、まさにそのメッセージが失われます。SIPプロトコルはそのようなメッセージにTCPへの切り替えを明確に要求しています。
- メッセージ内の内部アドレス。 電話機が自身について内部アドレス(
192.168.x.x)を書き込み、確認がそこへ送られます。当社のPBXはこれを自動で修正し、実際にメッセージが届いた場所へ応答しますが、通信事業者にはそのような保護がない場合があります。その場合、外線通話だけが切れます。 - 二重NAT、または通話の最初のメッセージは通すが以降を遮断する厳格なファイアウォール。
ネットワーク管理者向け:どちらの側が電話を切るか
RFC 3261(§13.3.1.4)によれば、200 OKを返した側はT1からT2の間隔でそれを繰り返し、ACKなしで64 × T1が経過するとBYEリクエストでセッションを終了します。T1のデフォルトは500ミリ秒(§17.1.1.1)で、ここから32秒となります。
- 電話機への着信:
200 OKを送るのは電話機、ACKはPBX。電話機への経路でACKが失われると、電話機が通話を切ります。 - 電話機からの発信と
*43:200 OKを送るのはPBX、ACKは電話機。PBXへの経路でACKが失われると、PBXが通話を切ります。 - フラグメンテーション: RFC 3261 §18.1.1 — リクエストが1300バイトを超える場合(または経路MTUから200バイト以内の場合)、クライアントは輻輳制御付きのTCPで送信しなければなりません。当社のPBXは同じポート5060でTCPを受け付けます。
対処法#
各ステップの後に長い*43(45秒)とテスト通話を繰り返してください。効果がなければ次へ進みます。
- ルーターのSIP ALG(「SIP Helper」「SIP Passthrough」「SIP用ALG」)を無効化し、ルーターを再起動します。主要メーカーでの場所は「ネットワーク、ルーター、インターネット」をご覧ください。
- 電話機に3つのコーデック(G.711 PCMA、G.711 PCMU、G.722)だけを残し、他は無効にします。メッセージが短くなり、分割されなくなります。
- ステップ2で解決しない場合はトランスポートをTCPに切り替えます(ポートは同じ5060)。TCPは長いメッセージを正しく分割するため、フラグメンテーションがなくなります。当社のPBXはUDPとTCPの両方を受け付けます。
- 外線通話だけが切れ、
*43と内線は持ちこたえるなら、PBXと通信事業者の間の故障です。切れた通話の時刻をいくつかサポートまでお送りください。 - 二重NATを解消します。プロバイダーのルーターをブリッジモードにするか、電話機を直接接続してください。
15分または30分での切断#
なぜそうなるのか#
長い通話の間、双方はときどき通話がまだ続いていることを確認します — これがセッションタイマーです。間隔は通話の開始時に取り決められ、一方は間隔の半分で通話を「延長」することを約束し、もう一方は延長を待ちます。当社のPBXではセッションタイマーは**1800秒(30分)**の間隔で有効になっています。これは、通信が黙って途切れた通話が何時間もぶら下がって回線を占有しないようにするために必要です。
そこから2つのパターンが生まれます:
- 約15分 — 間隔の半分で延長が送信されたものの、通りませんでした:相手側が拒否したか、応答を受け取らなかったのです;
- 約29.5分 — 延長がまったくなく、それを待っていた側が間隔の満了より少し早く電話を切りました。
延長が通らない理由:
- ルーターが制御メッセージの通り道を閉じた。 通話中の音声は途切れずに流れますが、制御メッセージは沈黙します。電話機でkeep-aliveが無効になっていると、ルーターは数分後に制御メッセージ用の「扉」を閉じ、PBXから電話機への延長が届かなくなります。
- 電話機が延長の方式を理解しないか、拒否する — 古いファームウェア、非標準のパラメータで「Session Timer」が有効になっている。
- SIP ALGが延長メッセージを破損する。
- 通信事業者のタイマー — 外線通話のみが、いつも同じ分で切断される場合。
PBXは、電話機も対応している場合にのみ通話中にタイマーを有効にします ⚠️ verify。ほとんどのデスクフォンでは「Session Timer」は工場出荷時に無効になっており(YealinkとGrandstreamではドキュメント上)、その場合通話中のタイマーはまったくありません。
ネットワーク管理者向け:PBX側の値
timers=yes— タイマー対応;timers_sess_expires=1800— 間隔1800秒;timers_min_se=90— 90秒未満はPBXが受け付けません(shared/sip/advanced-options.json、グループprotocol)。- RFC 4028では延長は間隔の半分(900秒)で送信され、それを受け取らなかった側は満了のmin(32秒, 間隔 / 3)前に
BYEでセッションを終了します — 約1768秒。 - 無音による切断はPBXは行いません(
rtp_timeout=0)。そのため「音のない通話」自体は切断されません。 - 専用PBXでは同じ値が「SIP詳細設定」(「セッションタイマー」、「セッション更新、秒」)にあります。プロバイダーの要求がない限り変更する必要はありません。
対処方法#
- 電話機でkeep-aliveを有効にする — 通話中も制御メッセージの通り道を開いたままにします。Yealink:Account → Advanced → Keep Alive Type(DefaultまたはOptions)とKeep Alive Interval — 30秒(工場出荷値)。
- ルーターのSIP ALGを無効にする。
- 電話機で**「Session Timer」**を有効にしていた場合は、工場出荷値(オフ)に戻すか、間隔を1800秒に設定します:Yealink — Account → Advanced → Session Timer / Session Expires;Grandstream — Account → SIP Settings → Session Timer(Enable Session Timer、Session Expiration)。
- 電話機のファームウェアを更新する — 通話延長のエラーは新しいバージョンで修正されていることがよくあります。
- 外線通話のみが、いつも同じ分で切れる場合は、通話時刻をサポートまでお送りください:通信事業者とタイマーを照合します。
着信が電源投入後の最初の数分しか機能しない#
なぜそうなるのか#
電話機はルーターの背後にあり、PBXは電話機が最後のメッセージで開いた「扉」を通じてしか電話機に到達できません。ルーターはそのような扉を長くは保持しません — 家庭用ルーターでは無音が30秒から数分続いた後に閉じます。電話機が頻繁に何かを送信している間(電源投入直後の登録、keep-alive)は扉は開いています。静かになると閉じ、PBXからの着信はルーターで行き止まりになります。
管理画面の店舗は緑のままであることがあります:電話機は登録を自分から、内側から更新し、それは通りますが、外側から電話機に入ることはもうできません。再起動が「治す」のは、扉を新たに開くからです — 一時的に。
当社のPBXは、こちら側から60秒ごとに各端末を「つながっていますか?」というリクエストで確認します:この逆方向のパケットも扉を開いたままにします — ただしルーターが扉を1分より長く閉じる場合に限ります。端末が応答しなければ、PBXはそれを利用不可とみなし、店舗は消灯し、「稼働状況」に障害が表示されます。
対処方法#
各手順の後、10分間のアイドル後に着信を確認してください(「端末に発信」ボタンまたは隣の内線から)。以降は効果がなかった場合のみ進めてください。
- 電話機でkeep-aliveを有効にする、間隔は20〜30秒。Yealink:Account → Advanced → Keep Alive Type / Keep Alive Interval(工場出荷値はDefaultと30秒);Fanvilでは回線の詳細設定にあるKeep Alive Type。
- ルーターのSIP ALGを無効にする — これも扉を「忘れがち」です。
- 電話機の登録有効期限(Expires / Register Expiration)を60〜120秒に短縮する — 電話機がより頻繁に自分で扉を開くようになります。60秒未満は当社のPBXが受け付けません(
423 Interval Too Brief)。 - 専用PBXでは端末をより頻繁に確認できます:「SIP詳細設定」→「疎通確認、秒」 — 60の代わりに20〜30。これはPBX側から扉を保持しますが、制御トラフィックが増えます;電話機のkeep-aliveのほうが確実です。
- 二重NAT(プロバイダーのルーター+自分のルーター)— 扉が2つあり、閉じ方も異なります:1つをなくしてください — 「ネットワーク、ルーター、インターネット」。
Wi-Fiからモバイルインターネットへの切り替え時の切断#
なぜそうなるのか#
店舗のWi-Fiとモバイルインターネットは別々のアドレスです。通話は一方のアドレスから始まり、PBXは通話開始時に音声がどこから来ているかを記憶します。セキュリティ上の理由から、PBXはそのアドレスからの音声しか受け付けません。スマートフォンがモバイルネットワークに切り替わると、音声は新しいアドレスから届くようになり、PBXにとっては別のストリームになります。一方で制御メッセージは、すでに存在しない古いアドレスに送られ続けます。あるネットワークで始まった通話は、別のネットワークに移るとほぼ必ず切れます。これは技術そのものの制約であり、故障ではありません。
同じことの裏側として、スマートフォンが切り替えている間、ソフトフォンは登録を失い、その数秒間は着信が届きません。Androidはさらにバックグラウンドアプリをスリープさせます。詳しくは概要のソフトフォンのセクションをご覧ください。
対処方法#
- 通話中はネットワークを切り替えない: Wi-Fiの圏内を出る前に通話を終えてください。
- スマートフォンで、電波の弱いWi-Fiからモバイルネットワークへの自動切り替えをオフにしてください(iPhoneでは「Wi-Fiアシスト」、AndroidではWi-Fi設定の「モバイルネットワークに切り替える」)。現在これがカフェの出入り口で通話を切っています。
- ソフトフォンにバックグラウンドでの動作を許可し、バッテリー節約の対象から外してください。そうすればネットワーク変更後に再登録が早くなります。
- 通話を落とせない場所(フロント、受付)では、スマートフォンではなく卓上電話またはDECT子機を設置してください。
サポートに送るもの#
- 切断された複数の通話の日時(分単位まで)、番号と内線番号
- 何秒で切断されるか(通話履歴では「通話」)と、毎回同じかどうか
- すべての通話が切断されるのか、外線のみか。長時間の
*43(45秒)は維持されるか - 電話機の機種とファームウェア(端末タグの行)、keep-aliveとSession Timerが有効かどうか
- ルーターの機種、SIP ALGがオフかどうか、プロバイダーのルーターがもう一台あるかどうか
- 専用PBXの場合、再現した切断のSIPトレースのテキスト
お問い合わせ方法は「サポート」をご覧ください。
よくある質問#
なぜ切断が30秒でも40秒でもなく、32秒目なのですか?#
この数値がSIPプロトコル自体に組み込まれているからです。通話開始の確認は64間隔×0.5秒、つまり32秒待ちます。毎回同じように「約30秒」で切れるなら、たとえストップウォッチが31秒や33秒を示しても、これが原因です。時間の一部は呼び出し音と応答に使われています。
SIP ALGをオフにしたのに、30秒目の切断が残っています。他に何がありますか?#
経路上のすべてのルーターでALGがオフになっていることを確認してください(プロバイダーのルーターには独自の設定があることがよくあります)。電話機には3つのコーデックを残し、トランスポートTCPを試してください。外線通話のみが切断され、*43が45秒維持される場合は、通信事業者側の区間が原因です。通話の時刻を送ってください。
店舗は緑なのに着信が来ない。これも「切断」ですか?#
これは着信が有効化後の最初の数分しか機能しないのセクションと同じ仕組みです。登録は内側から更新されますが、外側から電話機への扉はすでに閉じています。確認方法は10分間の待機後に「端末に発信」すること、対処法は電話機のkeep-aliveです。
PBXのセッションタイマーを単にオフにできますか?#
できます(専用PBXの「SIP詳細設定」)。ただしこれは症状を治療するものであり、原因ではありません。制御メッセージの経路が閉じているか壊れているために延長が通らず、同じ経路が通話転送や保留にも必要になります。さらにタイマーがないと、無言で切断された通話が何時間も残り、回線を占有します。まずkeep-aliveとSIP ALGです。
関連セクション#
- 電話が動かない: 症状別の診断 — 発信はできるが着信がない場合も含む
- 音が出ない、片側しか聞こえない、エコー、「ロボット」
- 登録できない: 表示とエラーコード — 「登録されて消える」、
423 Interval Too Brief - 電話のネットワーク、ルーター、インターネット — SIP ALGをオフにする場所、二重NAT
- SIP電話の設定 — 店舗のネットワーク、通信品質の確認
- 通話履歴とSIPトレース
出典#
- RFC 3261 — SIP:
ACKを受信するまでの200 OKの再送と64 × T1によるセッション終了(§13.3.1.4)、T1 = 500 ms(§17.1.1.1)、1300バイトを超えるメッセージのTCPへの移行(§18.1.1) — https://www.rfc-editor.org/rfc/rfc3261 - RFC 4028 — Session Timers: インターバルの中間での延長、期限切れ前のmin(32秒, インターバル / 3)での
BYE— https://www.rfc-editor.org/rfc/rfc4028 - Yealink SIP-T2/T3/T4/T5/CP920 Administrator Guide V86.60 — Keep Alive Type / Interval(工場出荷時Default、30秒)、Session Timer(工場出荷時はオフ、Session Expires 1800秒、インターバルの半分で更新)
- Grandstream GRP261x/262x/263x Administration Guide — Session Timer: Enable Session Timer(工場出荷時「No」)、Session Expiration、Min-SE — https://documentation.grandstream.com/knowledge-base/grp261x-grp262x-grp263x-series-administration-guide/
- Zoiper 5 User Guide v1.0.7 — UDPとパケットサイズの制限、ルーターのNATタイムアウト — https://www.zoiper.com/pdf/User%20Guide%20Zoiper%205%20v.1.0.7.pdf
- PBXコード:
shared/sip/advanced-options.json(timers=yes、timers_sess_expires=1800、timers_min_se=90、qualify_frequency=60、minimum_expiration=60、rtp_timeout=0、force_rport、rewrite_contact)、sip-edge/asterisk/rtp.conf(strictrtp=yes)、sip-edge/sipsync/linecheck.go(エコーテスト*43、チェック上限300秒)