IMS Hizmet Yetkisi

Android 12'den itibaren Android, Wi-Fi Üzerinden Ses (VoWiFi), LTE Üzerinden Ses (VoLTE) dahil olmak üzere hizmetlerin etkinleştirilmesi için yetki doğrulama adımını tanımlayan bir GSMA özelliği olan TS.43 Hizmet Yetkilendirme Yapılandırması desteği içerir. , 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 yetkilendirme özelliği, cihazın, kullanıcıların herhangi bir kimlik bilgilerini manuel olarak girmesine gerek kalmadan EAP-AKA kimlik doğrulamasını kullanarak IMS yetkilendirme durumu için GSMA TS.43 spesifikasyonu tarafından tanımlandığı gibi taşıyıcı yetkilendirme sunucusunu sorgulamasına olanak tanır.

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 yetkilendirme ö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 kitaplığı : Bu kitaplık, TS.43 belirtimini uygular, bir taşıyıcının yetkilendirme sunucusuyla etkileşime girer ve her TS.43 kullanım durumu için uygulamaya yönelik API'leri kullanıma sunar.
  • ImsServiceEntitlement istemci uygulaması: Bu uygulama, TS.43 Hizmet API'sini 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.

    Android'in bir operatörün TS.43 tabanlı yetkilendirme sunucusuyla çalışacak şekilde nasıl yapılandırılacağı hakkında daha fazla bilgi için bkz. ImsServiceEntitlement uygulaması .

Ş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ımlardan her biri etiketlendiği şekilde açıklanmaktadır:

(1) İstemci uygulaması, bir hizmet yetkilendirme isteği başlatmak için TS.43 hizmet API'sini çağırır.

(2) TS.43 hizmet API'si, bir EAP-AKA sorgulamasını başlatmak için taşıyıcının yetkilendirme sunucusuna bir HTTP isteği gönderir.

(3) TS.43 hizmet API'si, EAP-AKA sorgulama-yanıtını tamamlamak için telefon API'lerini (örneğin, getIccAuthentication ) çağırır.

(4) TS.43 hizmeti, EAP-AKA yanıtı doğrulandıktan sonra taşıyıcının yetkilendirme sunucusundan hizmet yetkisi veya yapılandırma verilerini alır.

(5) TS.43 hizmeti, hizmet yetkisini veya yapılandırma verilerini istemci uygulamasına döndürür.

(6) İstemci uygulaması verileri işler ve isteğe bağlı olarak, kullanıcının hizmet etkinleştirmesini tamamlaması için taşıyıcının hizmet portalını işler.

Entegrasyon

Bu bölüm, service_entitlement kitaplığını ve ImsServiceEntitlement uygulamasını tümleştirme sürecini açıklar.

Android 12 API bağımlılığı olmadığından service_entitlement kitaplığı ve ImsServiceEntitlement uygulaması daha eski Android platformlarına geri aktarılabilir.

service_yetkilendirme kitaplığı

service_entitlement kitaplığı ImsServiceEntitlement uygulamasına statik olarak bağlı olduğundan, kitaplığı ImsServiceEntitlement app tümleştirmek için ek adımlar ImsServiceEntitlement .

service_entitlement kitaplığı, veri planı ve ODSA gibi TS.43 kullanım durumları için kendi uygulamalarınızla 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:

  • Kitaplıkta uygulanan TS.43 HTTP protokolünü kullanan TS.43 uygulaması: ServiceEntitlement sınıfındaki API'leri kullanın
  • Kitaplıkta uygulanan EAP-AKA protokolünü kullanan TS.43 dışı uygulama: EapAkaHelper sınıfında sunulan API'leri kullanın

ImsServiceYetki uygulaması

Varsayılan olarak Android, ürün bölümünde yüklü olan ImsServiceEntitlement uygulamasını ayrıcalıklı bir uygulama olarak içerir. 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 eklenmelidir.
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 Operatör, kullanıcıların VoWiFi hizmetine kaydolması için bir web portalı kullanıcı arabirimi gerektiriyorsa true olarak ayarlayın. Ö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
KEY_SHOW_VOWIFI_WEBVIEW_BOOL true com.android.imsserviceentitlement/.WfcActivationActivity olarak ayarlayın.
KEY_IMS_PROVISIONING_BOOL Taşıyıcı, arka planda IMS (VoLTE/VoWiFi/SMSoIP) hizmetlerinin ağ provizyonunu gerektiriyorsa true olarak ayarlayın.

Bu, bazı Avrupa taşıyıcıları tarafından istenmektedir.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL KEY_IMS_PROVISIONING_BOOL true ise true olarak ayarlayın.

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 iş ortakları: Aşağıdaki operatörler, TS.43 v5.0 belirtimine göre Android 12'de TS.43 yetkilendirme uygulaması tarafından desteklenir:

  • ABD: CSpire, US Cellular, Cellcom
  • 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 uygulaması, ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value) sistem API'sini kullanarak VoWiFi sağlama durumunu platforma ayarlar. Bu API, VoLTE ( KEY_VOLTE_PROVISIONING_STATUS ile) ve SMSoIP ( KEY_SMS_OVER_IP_ENABLED ile) için de kullanılır.

Sistem kullanıcı arabirimi daha sonra getProvisioningIntValue kullanarak veya sağlama durumu değişikliğini registerProvisioningChangedCallback aracılığıyla izlemek için bir geri arama kaydederek sağlama durumunu okuyabilir.

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

Test amacıyla ImsServiceEntitlement uygulamasının davranışını geçici olarak değiştirmek için aşağıdaki yordamları kullanın. Taşıyıcı yapılandırmalarının nasıl geçersiz kılınacağına ilişkin ayrıntılar için bkz. Taşıyıcı yapılandırmalarını geçersiz kılma .

VoWiFi kayıt işlemini atlama

VoWiFi kayıt işlemini atlamak ve VoWiFi'nin doğrudan açılmasına izin vermek için, KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING taşıyıcı yapılandırmasını geçersiz kılın ve değerini boş bir dizeye ayarlar.

IMS sağlamayı atlama

IMS yetkilendirmesini atlamak, IMS hizmetlerini kullanılabilir kılmak ve kullanıcıların ağ yetkilendirmesi olmadan bu hizmetleri açmasına izin vermek için operatör yapılandırmasını KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL geçersiz kılın ve değerini false olarak ayarlayın.

Yetkilendirme sunucusu URL'sini değiştirme

Yetkilendirme sunucusu URL'sini değiştirmek için KEY_ENTITLEMENT_SERVER_URL_STRING taşıyıcı yapılandırmasını geçersiz kılın ve değerini beklenen URL dizesine ayarlayın. https:// önekini eklemelisiniz.

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ının transporter_volte_provisioning_required_bool'un nasıl geçersiz carrier_volte_provisioning_required_bool ve değerinin false olarak ayarlanmasına ilişkin bir örnektir. 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