IMS Hizmet Yetkisi

Android 12'den itibaren Android, Wi-Fi Üzerinden Ses (VoWiFi), LTE Üzerinden Ses (VoLTE) gibi hizmetlerin etkinleştirilmesi için yetki doğrulama adımını tanımlayan bir GSMA spesifikasyonu olan TS.43 Hizmet Yetkilendirme Yapılandırması desteğini içerir. , IP üzerinden SMS (SMSoIP), eSIM yardımcı cihazlarının Cihaz Üzerinde Hizmet Aktivasyonu (ODSA) (talep eden cihazla ilişkili) ve veri planı bilgileri.

Bu spesifikasyonu desteklemek için Android, bir servis sağlayıcının mobil cihazlara IP Multimedya Alt Sistemi (IMS) ağ hizmetlerinin durumu hakkında bilgi vermesine olanak tanıyan bir IMS hizmet yetkilendirme özelliği sağlar. Bu yetkilendirme özelliği, cihazın, kullanıcıların herhangi bir kimlik bilgisini 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ığı şekilde operatör yetkilendirme sunucusunu sorgulamasına olanak tanır.

IMS yetkilendirme sunucularına sahip operatörler, hizmet sağlamak için IMS hizmet yetkilendirme özelliğini kullanabilir. Özelliğin benimsenmesi aşağıdaki faydaları sağlar:

  • Bu yetkilendirme özelliği birden fazla ürün ve OEM'de kullanılabildiği için taşıyıcıların test ve sertifikasyon maliyetlerini azaltır.
  • Standart bir Android uygulaması aracılığıyla cihaz üreticilerinin geliştirme yükünü azaltır.
  • Özellik açık kaynak olduğundan cihaz üreticilerinin ve operatörlerin özellik için kodla katkıda bulunmalarına olanak tanır.
  • Kuzey Amerika'daki taşıyıcılar için acil durum adresi yönetimi sağlar.

Mimari

Aşağıdaki şekilde IMS hizmeti yetkilendirme özelliğinin mimarisi ve davranışı açıklanmaktadır.

TS.43 yetkilendirme özelliği

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

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

  • service_entitlement TS.43 Hizmet API'si statik kitaplığı : Bu kitaplık, TS.43 spesifikasyonunu uygular, operatörü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 de dahil olmak üzere kullanıcı arayüzü öğ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 numaralandırılmış satırlar, IMS hizmeti yetkilendirme özelliğinin bileşenlerinin birbirleriyle nasıl iletişim kurduğunu göstermektedir. Aşağıda etiketlenen adımların her biri açıklanmaktadır:

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

(2) TS.43 hizmet API'si, bir EAP-AKA sorgulaması başlatmak için operatörü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 operatörün yetkilendirme sunucusundan hizmet yetkilendirmesi veya yapılandırma verilerini alır.

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

(6) İstemci uygulaması verileri işler ve kullanıcının hizmet aktivasyonunu tamamlaması için isteğe bağlı olarak operatörün hizmet portalını oluşturur.

Entegrasyon

Bu bölümde service_entitlement kitaplığı ile ImsServiceEntitlement uygulamasını entegre etme süreci açıklanmaktadır.

Android 12 API bağımlılığı olmadığından service_entitlement kitaplığı ve ImsServiceEntitlement uygulaması eski Android platformlarına desteklenebilir.

service_entitlement kütüphanesi

service_entitlement kitaplığı ImsServiceEntitlement app statik olarak bağlı olduğundan, kitaplığı ImsServiceEntitlement uygulamasına entegre etmek için herhangi bir ek adım gerekmez.

service_entitlement kitaplığı, veri planı ve ODSA gibi TS.43 kullanım durumları için kendi uygulamalarınızla entegre edilebilir. Kitaplık ayrıca EAP-AKA protokolünü temel alan TS.43 dışı yetkilendirme 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 olmayan uygulama: EapAkaHelper sınıfında kullanıma sunulan API'leri kullanın

ImsServiceEntitlement uygulaması

Varsayılan olarak Android, ayrıcalıklı bir uygulama olarak ürün bölümünde yüklü olan ImsServiceEntitlement uygulamasını 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 dahil edilmelidir.
KEY_FCM_SENDER_ID_STRING Taşıyıcının FCM gönderen kimliği.

Taşıyıcı FCM'yi zorunlu kılmıyorsa 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ı arayüzü gerektiriyorsa true olarak ayarlayın. Örneğin, şartlar ve koşulları kabul etmek veya acil durum adresini girmek.

Bu genellikle Kuzey Amerika'daki operatörler tarafından istenir.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
KEY_SHOW_VOWIFI_WEBVIEW_BOOL true com.android.imsserviceentitlement/.WfcActivationActivity olarak ayarlayın.
KEY_IMS_PROVISIONING_BOOL Operatör arka planda IMS (VoLTE/VoWiFi/SMSoIP) hizmetlerinin ağ provizyonuna ihtiyaç duyuyorsa true olarak ayarlayın.

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

Operatörün yetkilendirme sunucusuna ve web portalına giden HTTP trafiği, varsayılan ağ (örneğin, varsayılan mobil veriler veya Wi-Fi) üzerinden gider.

GMS iş ortakları: Aşağıdaki operatörler, TS.43 v5.0 spesifikasyonuna uygun olarak Android 12'deki TS.43 yetkilendirme uygulaması tarafından desteklenir:

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

IMS provizyonu için ek sistem kullanıcı arayüzü

Bu bölümde, OEM'lerin IMS hizmeti sağlamayla ilgili ek sistem kullanıcı arayüzü öğelerini nasıl destekleyebileceği açıklanmaktadır (örneğin, VoWiFi sağlandığında bir bildirim gösterilirken).

ImsServiceEntitlement uygulaması, ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value) sistem API'sini kullanarak VoWiFi sağlama durumunu platforma ayarlar. Bu API aynı zamanda VoLTE ( KEY_VOLTE_PROVISIONING_STATUS ile) ve SMSoIP ( KEY_SMS_OVER_IP_ENABLED ile) için de kullanılır.

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

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

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

VoWiFi kayıt işlemini atlamak

VoWiFi kayıt işlemini atlayıp VoWiFi'nin doğrudan açılmasına izin vermek için, KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING operatör yapılandırmasını geçersiz kılın ve değerini boş bir dizeye ayarlayın.

IMS sağlamayı atlama

IMS provizyonunu atlamak, IMS hizmetlerini kullanılabilir hale getirmek ve kullanıcıların bu tür hizmetleri ağ provizyonu olmadan 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 taşıyıcı yapılandırması KEY_ENTITLEMENT_SERVER_URL_STRING geçersiz kılın ve değerini beklenen URL dizesine ayarlayın. https:// önekini eklemelisiniz.

Operatör yapılandırmalarını geçersiz kılma

Android 11'den itibaren, operatör yapılandırmasını 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ı carrier_volte_provisioning_required_bool nasıl geçersiz kılınacağına ve değerinin false olarak nasıl ayarlanacağı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