要約

  • RFC 9878は、P-Access-Network-InfoP-Charging-Vectorを2xx応答によって生じるACKには認め、非2xx応答に対するACKには認めない。
  • 配置が適法でも、誰が値を追加したか、情報が新しいか、ベアラー変更が完了したか、料金が正しいかは証明されない。
  • 検証可能な記録には、SIP文脈、ホップごとの保護、NPLI、方向別の中継情報、ベアラー事象、CDR、料金規則、訂正手続きが要る。

課金システムにとって扱いやすいデータは、しばしば強すぎる意味を与えられる。ACKに課金ベクトルがあれば「課金可能」、無ければ「異常」と一つのフラグにしたくなる。しかし、そのACKを生んだ最終応答が200だったのか、失敗応答だったのかを捨てた瞬間、標準が置いた境界も消える。

2025年11月のRFC 9878は、RFC 7315の定義部と配置一覧に残っていた矛盾を正し、RFC 7976を廃止する。実装ごとに解釈が割れる問題を解いた点は重要である。ただし、更新対象はメッセージへの収容条件であり、フィールド値の真実性ではない。

2xx後のACKだけに開く経路

P-Access-Network-Infoは、ネットワークが提供する位置情報NPLIを含み得る。P-Charging-Vectorは、IMS課金IDや関与するオペレーターの識別情報を運ぶ。RFC 9878は、2xx応答を受けて送るACKに限って両者を認める。非2xx応答に対するACKには含めてはならない。

RFC 3261でも、成功応答のACKと失敗応答のACKは同じトランザクション処理ではない。従って監査ログにACKだけを残す設計は不足する。最終応答クラス、Call-ID、双方のtag、CSeq、方向、処理したプロキシを結び付けて初めて、許可された枝だったと説明できる。

NPLIの利用例では、INVITEへの2xxに含まれるSDP answerを受け、プロキシがベアラー変更を始める。IMSのCDRはその時点の位置情報を必要とし、プロキシは取得したNPLIを次のACKに載せられる。情報を運ぶ場所がなかった不整合を、新しい規則が埋める。

ただし「正しい課金に必要」は「この項目だけで請求を証明できる」と同義ではない。NPLIの取得時刻、主張者の権限、ベアラー変更の完了、正しい対話へのCDR結合、契約上の料金適用は、いずれも別の証拠を要する。

六つのヘッダーは同じ許可を持たない

修正表は細かい。P-Associated-URIはREGISTER要求一般ではなく、その2xx応答に現れる。P-Called-Party-IDはREFERを含む列挙済みの要求に限定され、すべての応答には広がらない。P-Visited-Network-IDは100以外の応答に入り得るが、複数の要求メソッドから除外される。P-Charging-Function-AddressesはACKとCANCELには入らない。

この表が答えるのは「この位置で解析してよいか」である。IANAのSIP Parameters登録簿も、名称と参照仕様を共通化するが、個々のメッセージを認証しない。

RFC 9878は、現場の実装がまだ更新されていない可能性にも触れる。ヘッダーが無い理由は旧版、ローカル方針、該当しない利用例、処理失敗のいずれかかもしれない。予期せぬ場所にある場合も、旧解釈、誤実装、信頼されない入力を切り分ける必要がある。存在だけで不正や適合を断定できない。

信頼ドメインでは値が書き換わる

RFC 7315はP-Headerを私的な管理ドメイン、または信頼関係を結ぶドメインの仕組みとして扱う。適切なアクセス技術情報を持つプロキシはnetwork-provided値を追加できる。信頼されない相手へ転送する前には機微な情報を削除し、信頼されない入口から来た内容の妥当性は保証しない。

課金ベクトルは設計上可変である。信頼されたプロキシが挿入、参照、変更、削除するため、保護もホップごとになる。終点で整った一行が見えても、各パラメーターを誰が加えたかは分からない。変換の前後を別の保管記録に残す必要がある。

transit-ioiも完全な経路証明ではない。ネットワーク方針で値が消えたり空値に置換されたりする。さらにRFC 9878は、SIPメソッドと要求方向ごとに、負荷、価格、配分、時間帯などを使って中継網を独立選択できると説明する。INVITEで見えた経路をACKや逆方向、通話全体に転用してはならない。

NPLIはプライバシー面でも重い。セル情報のような機微な値が含まれ得るため、信頼ドメイン外へ出さない規則がある。全SIPログを広い分析基盤に複製すれば、プロトコル証跡を保存する一方で、利用目的とアクセス境界を失う。

請求までの結合を可視化する

保存すべき最小単位は、原文メッセージ、時刻、最終応答クラス、対話・トランザクション座標、方向、プロキシ版、適用中の配置規則である。各P-Headerについて、信頼入口、追加・変更した主体、ホップ保護の結果、変更前後のfingerprintを残す。NPLIには取得時刻、粒度、出所、許可目的も付ける。

次に、SDP answer、ベアラーの確立・変更・解放、CDR生成、rating規則、請求明細を別々に結合する。ICIDは相関キーであって請求権ではない。結合不能は「要照合」という正当な状態であり、ヘッダーの存在で穴埋めしてはならない。