> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# RCS Universal Profile 3.0 zengin derin-bağlantı koruyucuları

> Orbit'in RCS'te GSMA Universal Profile 3.0 zengin derin-bağlantılarını nasıl gate'lendirdiği — varsayılan olarak güvenli duruş, koruyucu karar, alıcı başına yetenek işleme ve denetim izi.

# RCS UP3.0 zengin derin-bağlantı koruyucuları

GSMA Universal Profile 3.0 **zengin derin-bağlantı**, bir RCS öneri
çipidir (`rich_link_action`) ve `deep_link`'i UP3.0 aygıtında uygulama
içi açar, `fallback_url`'i diğer her alıcıyı bir tarayıcıya taşır.
Orbit bu URL'lerden birini taşıyan bir gönderimi sevk etmeden önce —
veya diğer UP3.0 yüzeylerinden herhangi birini (MLS uçtan uca şifreleme,
UP3.0 profilinin kendisi) istediğinde — oluşturulmuş istek tek bir
koruyucu değerlendirmesinden geçer ve tek bir karar döndürür: **allow**,
**review** veya **block**.

<Warning>
  Bu sayfadaki her kontrol **tenant-özgü ve varsayılan kapalıdır**.
  Orbit yol geçidir, uyumluluk sahibi değildir: tenant başına rollout
  işaretleri kapalı olarak gelir (hiç etkinleştirmediğiniz bir yetenek
  gönderimleriniz için engellenir, ancak etkinleştirebilirsiniz),
  sessiz saatler ancak *siz* bir pencere yapılandırdığınızda bir
  gönderimi **tutar** — yapılandırma yokluğu gönderim tutulması
  demek değildir — ve derin-bağlantı allowlist'i sizin derlediğiniz bir
  listedir. İki platform tarafı reddetme satırı anti-abuse'dür,
  uyumluluk kuralı değildir: açık bir alıcı STOP'unu onurlandırmak ve
  itibar tarayıcısının zararlı işaretlediği bir URL'yi reddetmek
  (paylaşılan gönderen itibarındaki smishing koruması). Bir işareti
  etkinleştirmek, kendi yasal danışmanınızla verdiğiniz karardır.
</Warning>

## Varsayılan duruş neden varsayılan-güvenli-sözde

UP3.0'ın daha zengin yüzeyleri hem saldırı yüzeyini hem alıcı
deneyimini genişletir: bir zengin derin-bağlantı, alıcıya tıklanabilir
bir uygulama-içi eylem sunar ve MLS uçtan uca şifreleme, mesaj
içeriğini platform incelemesinin ötesine yerleştirir. Orbit'in tutumu,
bir tenant'ın bu yüzeyleri **deliberate, her seferinde bir yetenek**
olarak benimsemesidir:

* UP3.0 profili, MLS E2EE ve E2EE onay işaretleri tümü **varsayılan
  kapalıdır**. Tenant'ın hiç etkinleştirmediği bir yetenek isteyen bir
  gönderim, sevk edilmeden önce reddedilir — UP3.0 trafiği kazara
  gönderemezsiniz.
* Giden URL itibarı teslimatı gate'lendirir: zengin derin-bağlantı ve
  fallback URL'leri gönderimden önce skorlanır ve zararlı bir karar,
  host'u açıkça allowlist'e almadıkça engeller. Bu, paylaşılan gönderen
  itibarının anti-smishing korumasıdır — STOP taşımasından sonra bu
  sayfadaki tek platform tarafı kapısı.
* Tenant-yapılandırılabilir her şey **fail-open anlamında
  varsayılan-açıktır**: yapılandırılmış penceresi olmayan sessiz saatler
  asla bir gönderimi tutmaz, bozuk bir pencere "açık"a çözümlenir ve
  alıcının desteklemediği bir yetenek çipin `fallback_url`'sine
  düşer, başarısız olmak yerine.

## Koruyucu karar

Gönderim yolu, her kapıyı tek bir karar nesnesine birleştirir:

| Alan        | Şekil                                                           | Anlam                                                                                                                                                  |
| ----------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `decision`  | `allow` \| `review` \| `block`                                  | Toplam sonuç. Herhangi bir `block`-ciddiyet neden `block`'u zorlar; aksi halde herhangi bir `warn` neden `review` (tut) verir; aksi halde `allow`.     |
| `blocked`   | boolean                                                         | Kolaylık işaret: `decision === "block"` ise `true`.                                                                                                    |
| `reasons[]` | `{ code, severity, detail }`                                    | Değerlendirme sırasına göre ateşlenen her sinyal. `severity`, `block` (reddet), `warn` (tut) veya `info` (bilgi)'dır.                                  |
| `flags`     | `{ requiresUniversalProfile3, requiresE2ee, contentScanBlind }` | Gönderim hakkında türetilmiş gerçekler, denetim izine taşan. `contentScanBlind`, platform içerik tarayıcısının inceleyemediği bir E2EE yükü işaretler. |

Değerlendirme alıntılanmış nen kodları:

| Kod                      | Ciddiyet | Ne zaman ateşlenir                                                                                                                                                     |
| ------------------------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `rollout_up3_disabled`   | block    | Gönderim `universal_profile_3` istiyor ama tenant'ın UP3.0 rollout işareti kapalı.                                                                                     |
| `rollout_mls_disabled`   | block    | Gönderim `mls_e2ee` istiyor ama tenant'ın MLS/E2EE rollout işareti kapalı.                                                                                             |
| `recipient_opted_out`    | block    | Alıcı RCS veya bir eşdeğer kanalda aktif bir STOP'a sahip (aşağıya bakın).                                                                                             |
| `e2ee_scan_ack_required` | block    | Gönderim MLS E2EE istiyor ama tenant içerik-tarama kör noktasını onaylamadı ve yasal bir temel kaydetmedi.                                                             |
| `deep_link_malicious`    | block    | Bir zengin derin-bağlantı veya fallback URL `malicious` tarandı ve host'u allowlist'inizde değil.                                                                      |
| `deep_link_suspicious`   | warn     | Allowlist'siz bir URL `suspicious` tarandı — inceleme için tutulur, reddedilmez.                                                                                       |
| `quiet_hours`            | warn     | Alıcının yerel saati sessiz saatler pencereniz içinde — pencere kapanana kadar tutulur, asla kesin-blok edilmez.                                                       |
| `content_scan_blind`     | info     | Gönderim E2EE; platform içerik moderasyonu yükünü inceleyemez. Gönderime izin verildiğinde bile karar üzerinde yüzeyler, böylece kör nokta denetim kaydına damgalanır. |

**Onay eşitliği.** STOP, kanallar arası taşır ama asla yeni bir gating
rejimi icat etmez: RCS veya herhangi bir eşdeğer kanalda kayıtlı açık
bir alıcı opt-out, UP3.0 gönderimini sıradan bir RCS gönderimini
tam olarak bastırdığı gibi bastırır. Karar opt-out'u genişletmez —
daha zengin bir kanalın mevcut bir opt-out'u atlamasını reddeder.

**Sessiz saatler çözümleme.** Pencere, `[0, 24)` aralığındaki tamsayı
saatlerde `<startHour, endHour>`, alıcının yerel saatidir ve
gece yarısını geçebilir (`21 → 8`, 21:00'den 07:59'a kadar tutar).
Boş bir pencere (`start === end`) veya sınırdışı bir sınır
**açık** olarak çözümlenir — bozuk bir yapılandırma, her gönderimi
sessizce gate'lemek yerine açık olarak başarısız olur. Pencere içine
düşen geçerli bir saat, sadece bir `warn` tutuşu üretir; asla
engellemez.

## Tenant operatör kılavuzu

**Bir yeteneği etkinleştir.** Üç rollout işareti — UP3.0, MLS E2EE ve
E2EE içerik-tarama onayı — tenant başına ve varsayılan kapalıdır. Önce
UP3.0'ı etkinleştirin; UP3.0 işareti olmayan bir MLS gönderimi, her iki
kapıda da başarısız olur. Kör-nokta onayı kaydedilene kadar bir
gönderimde `mls_e2ee` istemeyin: gerçek uçtan uca şifreleme, o kanalda
platform tarafı CSAM ve medya-tehdit taramasını kaldırır ve platform,
siz sahip olana kadar her şifreli gönderimi tutar. Bu onay, E2EE'nin
gönderilebilir olmasını sağlayan koşullamadır — platform, sizin imza
atmadığınız bir kanalı şifre-kör yapmayacaktır.

**Alıcıyı önce kontrol et.** UP3.0 desteği, alıcı ve bot başına
müzakere edilir — bir MSISDN'e zengin derin-bağlantı oluşturan bir bot,
sonrakiyle UP 2.x konuşuyor olabilir. Bir kampanyadan önce yetenek
kontrolünü (aşağıdaki endpoint yüzeyi) çalıştırın ve
`universalProfileVersion` ve `featureFlags`'ı okuyun:

* `featureFlags.richLinkSupported` — alıcı `rich_link_action`'ı gerçek
  bir derin-bağlantı olarak işler. `false` olduğunda, alıcı bunun yerine
  `fallback_url`'ı açar; bu yüzden çip üzerinde her iki URL gerekir.
* `universalProfileVersion: "3.0"` — zengin derin-bağlantılar ve MLS
  için taban. 2.x müzakere eden bir alıcı çipi işleyemez; planlayın.
* Pozitif kararlar 24 saat önbelleğe alınır, böylece bir segment
  üzerinde bir gönderim öncesi süpürme ucuzdur.

**UP3.0 desteklenmediğinde fallback.** Yetenek kontrolü veya
gönderim içi inline kontrol başarısız olursa, RCS gönderimi
`RCS_NOT_SUPPORTED` ile kısa devre yapar ve organizasyon seviyeniz
kanallar arası fallback zincirininizi ilerler (tipik olarak RCS →
SMS). RCS'yi destekleyen ancak sadece `fallback_url`'ı işleyen bir
alıcı bir hata yolu değildir — bu, UP3.0 olmayan aygıtlarda çipin
tasarımlı düşüşüdür.

**Derin-bağlantı allowlist'ini derle.** Sahip olduğunuz host'lar,
itibar gating'den muaf tutulabilir: bir giriş, tam host'u veya herhangi
bir alt alan adını eşler (örn. `acme.example`, `acme.example` ve
`t.acme.example`'ı kabul eder). Yalnızca kendi alan adlarınız için
kullanın — üçüncü taraf bir kısaltıcıyı allowlist'e almak, her alıcı
için smishing ekranını kaldırır.

## Endpoint yüzeyi

Tüm gönderimler ve yetenek kontrolleri
`https://api.orbit.devotel.io/api/v1` kökündedir.

| Endpoint                              | Amaç                                                                                                                                    |
| ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `POST /messages/rcs`                  | RCS mesajını gönder. Koruyucu değerlendirme, her gönderide sevk etmeden önce inline çalışır.                                            |
| `GET /rcs/capability/{botId}/{phone}` | Belirli bir bot üzerinden bir alıcının yeteneğini yokla; `isCapable`, `features`, `universalProfileVersion` ve `featureFlags` döndürür. |

Derin-bağlantının kendisi, gönderim yükünde bir öneri-çip eylemidir:

```json theme={null}
{ "action": {
    "text": "Track Order",
    "postback_data": "track_12345",
    "rich_link_action": {
      "deep_link": "https://app.acme.example/track/12345",
      "fallback_url": "https://www.acme.example/track/12345",
      "app_link": "acme://track/12345",
      "tracking_params": { "campaign": "order-updates" }
    } } }
```

`deep_link` (UP3.0 aygıt hedefi) ve `fallback_url` (diğer her alıcı)
her ikisi de zorunlu HTTPS URL'leridir; `app_link` ve `tracking_params`,
işlenen eyleme taşınan isteğe bağlı metadata'dır. Her iki URL — artı
fallback — itibar taramasının gönderimden önce skorladığı şeylerdir.
Tam çip sözleşmesi (`open_url` ile karşılıklı dışlama, çip sınırları,
carousel yerleşimi) [RCS kanal sayfasında](/channels/rcs).

## Çalışılmış örnek: engellendi, yeniden yayınlandı, kanıtlandı

**1. Kirli gönderim engellenir.** `fallback_url`'i itibar beslemesinin
zaten listelediği bir üçüncü taraf bağlantı kısaltıcısına işaret eden
bir kampanya çipi gönderirsiniz. Koruyucu şu döndürür:

```json theme={null}
{
  "decision": "block",
  "blocked": true,
  "reasons": [
    { "code": "deep_link_malicious", "severity": "block",
      "detail": "A rich deep-link or fallback URL was flagged malicious by URL reputation. Remove or allowlist the destination before sending." }
  ],
  "flags": { "requiresUniversalProfile3": true, "requiresE2ee": false,
             "contentScanBlind": false }
}
```

Gönderim hiç sevk edilmez — alıcı bağlantıyı hiç görmez.

**2. Temiz bir URL ile yeniden yayınlayın.** Çipi kendi alanınıza
yeniden yönlendirip tekrar gönderirsiniz. Şimdi karar
`{ "decision": "allow", "reasons": [] }` ve mesaj sevk edilir. Host
sadece `suspicious` taranmış olsaydı, gönderim sevk veya blok
yerine inceleme için tutulur (`decision: "review"`) — hedefi
doğruladıktan sonra serbest bırakabileceğiniz bir karantina.

**3. Red-team: allowlist'e aldığınız host.** Allowlist'inizde
`acme.example` var. Bir red-team testi, `deep_link`'i
`https://acme.example.evil.example/phish` olan bir çip gönderir —
alan dizenizle *biten* ama onun alt alan adı olmayan bir host.
Eşleşme tam-host veya `host.endsWith("." + entry)` olduğundan,
`acme.example.evil.example` allowlist'te **değil**, zararlı skoru
dir ve gönderim engellenir. Bu, benzeriliği yakalayan güvenli
varsayılandır.

## Denetim izi

Her karar, geri okuyabileceğiniz bir kayıt bırakır:

* `reasons[]` kodları (`deep_link_malicious`, `rollout_up3_disabled`,
  `recipient_opted_out`, `e2ee_scan_ack_required`, `quiet_hours`,
  `content_scan_blind`) makine-okunabilir ve mesaj denetim izine
  damgalanır; böylece engellenen veya tutulan bir gönderim kendini
  sonradan açıklar.
* `flags.contentScanBlind` işaretleyicisi, izin verilen her E2EE
  gönderimiyle birlikte gider — denetim kaydı, platformun yükünü göremediğini
  korur, böylece sonraki bir inceleme "tarama bulgusu yok" ile "temiz
  tarandı"yı karıştıramaz.
* Engellenen gönderimler mesaj durumunda ve teslimat logunda yüzeyler;
  bir yetenek-kontrol kısa devresi `RCS_NOT_SUPPORTED` olarak okunur
  ve bir itibar blok karar nedenleriyle geri okunur.
* `deep_link_*` kararının arkasındaki URL itibar bulguları,
  SMS/oluşturma taraması üzerinde taşınan aynı sinyallerdir — bir
  tarayıcı, bir denetim şekli, kanallar arası.

## İlgili referanslar

* [RCS kanalı](/channels/rcs) — çip sözleşmesi, yetenek kontrolü ve
  fallback zinciri.
* [RCS katılım kılavuzu](/guides/rcs-onboarding) — marka → ajan →
  doğrula → başlat.
* [Gönderim Kapıları](/compliance/send-gates) — sessiz saatler, DNC,
  RND ve diğer gönderim-anı kapıları.
* [Onay Yönetimi](/compliance/consent-management) — STOP eşitliğinin
  okuduğu onay kayıtları.
* [Opt-Out ve Bastırma Listeleri](/compliance/opt-out-suppression) —
  alıcı-opt-out kapısının onurlandırdığı bastırma katmanı.
