IMS Hizmet Yetkisi

Android 12 itibaren, Android için destek içerir TS.43 Servis Yetkilendirme Yapılandırma , Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VOLTE) içeren hizmetler aktivasyonu için hak doğrulama adımını tanımlayan bir GSMA şartname , IP üzerinden SMS (SMSoIP), eSIM yardımcı cihazlarının (istekte bulunan cihazla ilişkili) Cihazda Servis Aktivasyonu (ODSA) ve veri planı bilgileri.

Bu belirtimi desteklemek için Android, bir hizmet sağlayıcının mobil cihazları IP Multimedya Alt Sistemi (IMS) ağ hizmetlerinin durumu hakkında bilgilendirmesine olanak tanıyan bir IMS hizmeti yetkilendirme özelliği sağlar. Bu hak özelliği kullanılarak IMS hak durumu için GSMA TS.43 tarifnamede göre düzeneğin taşıyıcı yetki sunucusu sorgu sağlar DAP-AKA kimlik herhangi bir kimlik manuel giriş gerek olmadan.

IMS yetkilendirme sunucularına sahip taşıyıcılar, hizmet sağlama için IMS hizmet yetkilendirme özelliğini kullanabilir. Özelliğin benimsenmesi aşağıdaki avantajları sağlar:

  • Bu yetkilendirme özelliği birden fazla ürün ve OEM'de kullanılabildiğinden, taşıyıcılar için test ve sertifika maliyetlerini azaltır.
  • Standart bir Android uygulaması aracılığıyla cihaz üreticileri için geliştirme yükünü azaltır.
  • Özellik açık kaynak olduğu için cihaz üreticilerinin ve operatörlerin özellik için kod katkısına izin verir.
  • Kuzey Amerika taşıyıcıları için acil adres yönetimi sağlar.

Mimari

Aşağıdaki şekil, IMS hizmeti yetkilendirme özelliğinin mimarisini ve davranışını açıklar.

TS.43 yetkilendirme özelliği

Şekil 1. TS.43 yetki özelliği mimarisi

Şekil 1'de gösterildiği gibi, IMS hizmet yetkilendirme özelliğinin mimarisi aşağıdaki bileşenleri içerir:

  • service_entitlement TS.43 Service API statik kütüphane : Bu kütüphane uygular TS.43 şartname, bir taşıyıcının hak sunucusu ile etkileşimde bulunduğunda, ve İFŞA uygulaması dönük her TS.43 kullanımlar için API'ler.
  • ImsServiceEntitlement istemci uygulaması: Bu uygulama TS.43 Servis API kullanır. Uygulama, kullanıcıların hizmetleri etkinleştirmesi için operatörün hizmet portalını oluşturmak için web görünümleri dahil olmak üzere UI öğelerini uygular ve kullanıcı deneyimini uçtan uca yönetmek için diğer Android bileşenleriyle etkileşime girer.

    Bir taşıyıcının TS.43 merkezli hak sunucusu ile çalışmalarına Android'i nasıl yapılandırılacağı hakkında daha fazla bilgi için bkz ImsServiceEntitlement app .

Şekil 1'deki numaralı satırlar, IMS hizmet yetkilendirme özelliğinin bileşenlerinin birbirleriyle nasıl iletişim kurduğunu gösterir. Aşağıda, adımların her biri etiketlendiği şekilde açıklanmaktadır:

(1) istemci uygulaması bir hizmet yetkisi talebini başlatmak için TS.43 hizmet API çağırır.

(2) TS.43 servis API bir EAP-AKA meydan başlatmak için taşıyıcı hakkı sunucusuna bir HTTP isteği gönderir.

(3) TS.43 servis API başlatır telefon API'leri (örneğin, getIccAuthentication ) EAP-AKA parola-cevabım tamamlayın.

DAP-AKA yanıt doğrulandıktan sonra (4) TS.43 hizmet taşıyıcı yetki sunucusu hizmet yetkisi veya yapılandırma verileri alır.

(5) TS.43 hizmet istemci uygulama hizmet hak veya yapılandırma verilerini döndürür.

(6) istemci uygulama verilerini işleyen ve isteğe bağlı olarak yüzey servis aktivasyon kullanıcı için taşıyıcı servis portal hale getirir.

Entegrasyon

Bu bölüm entegre edilmesi için işlem açıklanmaktadır service_entitlement kütüphane ve ImsServiceEntitlement uygulamasını.

Hiçbir Android 12 API bağımlılık olmadığından, service_entitlement kütüphane ve ImsServiceEntitlement uygulaması eski Android platformlara backported edilebilir.

service_yetkilendirme kitaplığı

Çünkü service_entitlement kütüphane statik içine bağlantılıdır ImsServiceEntitlement app başka herhangi bir işlem haline kütüphane entegre etmek için gerekli olan ImsServiceEntitlement app.

service_entitlement kütüphane böyle bir veri planı ve ODSA olarak TS.43 kullanım durumları için kendi uygulamalar ile entegre edilebilir. Kitaplık, EAP-AKA protokolüne dayalı olarak TS.43 dışı yetki kullanım durumları için bir uygulamaya da entegre edilebilir.

Aşağıda, bu tür kullanım durumları için kullanılacak API'ler açıklanmaktadır:

  • Kullanım API'ler: kütüphanede uygulanan TS.43 HTTP protokolünü kullanarak TS.43 uygulaması ServiceEntitlement sınıfında
  • Kullanım maruz API'ler: kütüphanede uygulanan EAP-AKA protokolü kullanılarak Olmayan TS.43 uygulaması EapAkaHelper sınıfında

ImsServiceYetki uygulaması

Varsayılan olarak, Android içeren ImsServiceEntitlement ayrıcalıklı uygulaması olarak ürün bölüme kurulması uygulamayı. Uygulamayı yapılandırmak için aşağıdaki CarrierConfig anahtarlarını kullanın:

Anahtar Değer
KEY_ENTITLEMENT_SERVER_URL_STRING Taşıyıcının yetkilendirme sunucusu URL'si. https:// öneki dahil edilmelidir.
KEY_FCM_SENDER_ID_STRING Taşıyıcının FCM gönderen kimliği.

Taşıyıcı tarafından FCM istenmiyorsa bu değeri ayarlamayın.
KEY_SHOW_VOWIFI_WEBVIEW_BOOL Ayarlayın true kullanıcıların VoWiFi hizmetine kaydolmak için taşıyıcı bir web portalı UI gerektiriyorsa. Örneğin, şartlar ve koşulları kabul etmek veya bir acil durum adresi girmek.

Bu genellikle Kuzey Amerika'daki taşıyıcılar için gereklidir.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
Ayarlayın com.android.imsserviceentitlement/.WfcActivationActivity ise, KEY_SHOW_VOWIFI_WEBVIEW_BOOL olduğunu true .
KEY_IMS_PROVISIONING_BOOL Ayarlayın true taşıyıcı IMS (VOLTE / VoWiFi / SMSoIP) arka planda hizmetlerin hazırlama ağını gerektiriyorsa.

Bu, bazı Avrupa taşıyıcıları tarafından istenmektedir.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL Ayarlayın true eğer KEY_IMS_PROVISIONING_BOOL olduğunu true .

Bir operatörün yetkilendirme sunucusuna ve web portalına giden HTTP trafiği, örneğin varsayılan mobil veri veya Wi-Fi gibi varsayılan ağ üzerinden gider.

GMS ortakları: Aşağıdaki taşıyıcılar TS.43 v5.0 şartname ardından Android 12'de TS.43 hak uygulaması tarafından desteklenir:

  • ABD: CSpire, ABD Hücresel
  • Fransa: Turuncu

IMS sağlama için ek sistem kullanıcı arabirimi

Bu bölüm, OEM'lerin IMS hizmet provizyonu ile ilgili ek sistem UI öğelerini nasıl destekleyebileceğini açıklar (örneğin, VoWiFi sağlandığında bir bildirim gösterirken).

ImsServiceEntitlement uygulama setleri kullanarak platforma durumuna karşılık VoWiFi ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value) sistem API. Bu API ile (seksen için kullanılan KEY_VOLTE_PROVISIONING_STATUS ) ve (ile SMSoIP KEY_SMS_OVER_IP_ENABLED ).

Sistem UI sonra kullanarak hazırlık durumunu okuyabilir getProvisioningIntValue veya içinden provizyon devlet değişimini izlemek için geri arama kaydederek registerProvisioningChangedCallback .

Test için geçersiz kılma yapılandırmaları

Geçici olarak değiştirmek için aşağıdaki işlemleri kullanın ImsServiceEntitlement test amaçlı uygulama davranışı. Bkz taşıyıcı yapılandırmaları geçersiz kılmak ilgili ayrıntılı bilgi için taşıyıcı yapılandırmaları geçersiz kılma .

VoWiFi kayıt işlemini atlama

VoWiFi doğrudan açık olmasını sağlayan, VoWiFi kayıt işlemini atlamak için, taşıyıcı yapılandırma geçersiz KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING ve boş bir dizeye değerini ayarlar.

IMS sağlamayı atlama

IMS IMS hizmetleri kullanılabilir hale ve kullanıcıların ağ, geçersiz kılma taşıyıcı yapılandırma sağlama olmadan bu tür hizmetlerini açmak için izin hazırlık atlamak için KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL ve onun değerini false .

Yetkilendirme sunucusu URL'sini değiştirme

Hak sunucusu URL geçersiz kılma taşıyıcı yapılandırma değiştirmek için KEY_ENTITLEMENT_SERVER_URL_STRING ve beklenen URL dizesine değerini ayarlayın. Sen içermelidir https:// ön eki.

Taşıyıcı yapılandırmalarını geçersiz kılma

Android 11'den itibaren, taşıyıcı yapılandırma geçersiz kılma komutları yerleşiktir ve kök ayrıcalıklarıyla kullanılabilir.

Aşağıdaki komut taşıyıcı yapılandırma anahtarı geçersiz kılmak örneğidir carrier_volte_provisioning_required_bool ve bu değeri ayarlamak false . Birden çok yapılandırmayı geçersiz kılmak için komutu birden çok kez çalıştırabilirsiniz.

adb root
adb shell cmd phone cc set-value -p carrier_volte_provisioning_required_bool false

Tüm geçersiz kılmaları temizlemek için aşağıdaki komutu kullanın:

adb shell cmd phone cc clear-values

Daha fazla bilgi almak için aşağıdaki komutu çalıştırın:

adb shell cmd phone cc