İçeriğe geç
Genel · 4 dk okuma · 11

SIP 180 Ringing İçinde RPID ile Connected Line Kimlik Güncelleme

RPID nedir? Remote-Party-ID, SIP provisional response'lar içinde karşı tarafın doğrulanmış kimliğini taşımak için kullanılan başlıktır. Özellikle SIP 180 Ringing message içinde, arayan tarafın ekranındaki bilgiyi aranan tarafın gerçek kimliği ile güncellemek için kullanılır. Yani 180 Ringing response içindeki RPID, connected line update işlemini yapar. Bu yazıda 180 Ringing response içinde RPID'nin teknik rolünü, RFC karşılıklarını ve P-Asserted-Identity (PAI) ile farkını örnek paketlerle inceleyeceğiz.

1. RPID (Remote-Party-ID) Teknik Tanımı

Remote-Party-ID başlığı ilk olarak draft-ietf-SIP-privacy-04 içinde tanımlanmıştır. Draft 2002'de expire olmuş ve yerini resmi standart olarak RFC 3325 P-Asserted-Identity almıştır. RFC 3325 şunu söyler: Bazı sağlayıcılar hala Remote-Party-ID kullanmaktadır ancak bu başlık P-Asserted-Identity ile değiştirilmiştir.

Format:

Remote-Party-ID: "Display Name" <SIP: user@domain>;party=calling|called;privacy=off|full;screen=yes|no
  • party: Kimlik kime ait? calling = arayan, called = aranan. 180 Ringing içinde genelde party=called olur.
  • privacy: off göster, full gizle.
  • screen: yes = operatör doğruladı, no = doğrulanmadı.

2. SIP 180 Ringing ve Provisional Response Kavramı

RFC 3261 Section 21.1.2'ye göre 180 Ringing, aranan kullanıcının uyarıldığını bildiren geçici bir yanıttır (provisional response). INVITE sonrası early dialog içinde gönderilir.

180 Ringing message ile 183 Session Progress response farkı: 180 sadece çalıyor durumunu bildirir, 183 ise erken medya (early media) taşıyabileceğini belirtir. Her ikisi de kimlik güncellemesi taşıyabilir.

3. Neden 180 Ringing İçinde RPID? COLP İlişkisi

RPID'nin 180 içindeki ana kullanım amacı Connected Line Identification Presentation (COLP)'dir. Bu kavram RFC 4916 Connected Identity ile standardize edilmiştir.

Sadece basit bir isim gösterme değil, 3 senaryo vardır:

  1. Called Party Update: Hunt group aranır, çağrı asıl kullanıcıya yönlenir. 180 içindeki RPID arayanın ekranını günceller.
  2. Calling Party Update: Ters yönde arananın ekranını güncellemek için kullanılır.
  3. Yönlendirme ile Birlikte: RPID tek çözüm değildir. Yönlendirme nedenini göstermek için Diversion [RFC 5806] veya History-Info [RFC 7044] başlıkları da 180 response içinde kullanılır.

Yön Tablosu

Yön RPID party Ne Güncellenir?
Arayan -> Aranan calling Arananın ekranındaki arayan bilgisi
Aranan -> Arayan called Arayanın ekranındaki aranan bilgisi (180 Ringing içinde)

4. Gerçek SIP 180 Ringing Paketi - Satır Bazlı Analiz

SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 10.0.0.10:5060;branch=z9hG4bK123
From: "1001" <SIP:1001@domain.com>;tag=abc
To: <SIP:1002@domain.com>;tag=xyz
Call-ID: 12345@pbx
CSeq: 1 INVITE
Contact: <SIP:1002@192.168.1.20>
Remote-Party-ID: "Satis" <SIP:1002@domain.com>;party=called;privacy=off;screen=yes
P-Asserted-Identity: <SIP:1002@domain.com>
Content-Length: 0
  • To:...;tag=xyz: Early dialog kuruldu.
  • Remote-Party-ID: "Satis"... party=called: Arayana "Aradığın kişi artık Satis" mesajı. screen=yes proxy tarafından doğrulandı demek.
  • P-Asserted-Identity: Aynı kimliğin RFC 3325 uyumlu versiyonu.

5. RPID vs PAI vs From vs Diğerleri

Başlık RFC / Draft 180 Ringing'de Kimlik Taşıyabilir mi?
From RFC 3261 Hayır, güncellenmez
Remote-Party-ID draft-ietf-SIP-privacy-04 Evet, yaygın
P-Asserted-Identity RFC 3325 Evet, operatörler için zorunlu
History-Info RFC 7044 Evet, yönlendirme zincirini verir
Diversion RFC 5806 Evet, legacy yönlendirme

Trust Domain Nedir? RFC 3324 ve RFC 3325'te tanımlanan, birbirine güvenen SIP proxy'lerin oluşturduğu ağdır. PAI ve RPID sadece bu domain içinde güvenilirdir. Domain dışına çıkarken Privacy: id ile gizlenir.

6. Uygulama: Asterisk PJSIP ve chan_sip

PJSIP (Güncel - pjsip.conf)

[endpoint-1002]
type=endpoint
trust_id_inbound=yes
send_rpid=yes
send_pai=yes

chan_sip (Legacy - SIP.conf)

[1002]
trustrpid=yes
sendrpid=rpid

Yealink: Account > Advanced > Caller ID Source = RPID + PAI + FROM

Operatör Notu: 【entity-Türk Telekom¦canonical_name=Türk Telekom】 IMS gibi operatörler RPID'i siler, sadece PAI kabul eder. En stabil yöntem: Trunk'a giden tarafta send_pai=yes, içeride her ikisini birden göndermektir.

7. Wireshark ile Tespit

Kullanabileceğin filtreler:

# Sadece 180 Ringing message
SIP.Status-Code == 180

# RPID veya PAI içeren 180 response
SIP.Status-Code == 180 && (SIP contains "Remote-Party-ID" || SIP contains "P-Asserted-Identity")

# Belirli numara
SIP.Remote-Party-ID contains "1002"

8. Çağrı Akış Diyagramı

sequenceDiagram
 participant A as Arayan 1001
 participant PBX as PBX
 participant C as Aranan 1002
 A->>PBX: INVITE To: 1000 (Grup)
 PBX->>C: INVITE
 C->>PBX: 180 Ringing + RPID: Satis party=called
 PBX->>A: 180 Ringing + RPID: Satis party=called
 Note over A: Ekran: Satis çalıyor
 C->>PBX: 200 OK
 PBX->>A: 200 OK

9. Karar Matrisi: Ne Zaman Ne Kullanmalı?

Senaryo Önerilen Aksiyon
Şirket içi IP telefonlar arası COLP RPID + PAI birlikte gönder
Operatöre giden SIP Trunk Sadece PAI
Grup / Queue'da ekran güncelleme 180 Ringing içinde party=called RPID
Gizli numara privacy=full + Privacy: id

10. Sıkça Sorulan Sorular

RPID ile PAI arasındaki fark nedir?

RPID draft standarttır ve party parametresi ile yön bilgisi taşır. PAI, RFC 3325 ile gelen resmi standarttır.

Yealink neden RPID göstermiyor?

Caller ID Source ayarı FROM olarak kalmıştır. RPID + PAI + FROM yapın ve Connected Line Presentation ayarını aktif edin.

SIP trunk RPID geçirmiyor ne yapmalıyım?

Operatörler genelde siler. PJSIP'de send_pai=yes yaparak PAI gönderin.

Asterisk PJSIP send_pai ve send_rpid nedir?

send_pai giden 180 Ringing message içinde PAI oluşturur, send_rpid ise RPID oluşturur. Birlikte kullanılabilir.


Kaynaklar: RFC 3261, RFC 3324, RFC 3325, RFC 4916, RFC 7044, RFC 5806, draft-ietf-SIP-privacy-04

İç Link Önerisi: SIP INVITE nedir | SIP 183 Session Progress | P-Asserted-Identity | Asterisk Caller ID Yönetimi

Paylaş: