IMS hizmetine erişim hakkı

Android 12'den itibaren Android, TS.43 Service Entitlement Configuration'ı destekler. Bu, GSMA spesifikasyonudur ve kablosuz bağlantı üzerinden görüşme (VoWiFi), LTE üzerinden görüşme (VoLTE), IP üzerinden SMS (SMSoIP), eSIM eşlik eden cihazların cihaz üzerinde hizmet etkinleştirme (ODSA) (istekte bulunan cihazla ilişkili) ve veri planı bilgileri dahil olmak üzere hizmetlerin etkinleştirilmesi için hak doğrulama adımını tanımlar.

Android, bu spesifikasyonu desteklemek için bir IMS hizmeti yetkilendirme özelliği sunar. Bu özellik, bir servis sağlayıcının IP Multimedia Subsystem (IMS) ağ hizmetlerinin durumu hakkında mobil cihazları bilgilendirmesine olanak tanır. Bu hak özelliği, kullanıcıların herhangi bir kimlik bilgisi girmesini gerektirmeden EAP-AKA kimlik doğrulaması kullanarak cihazın IMS hak durumu için GSMA TS.43 spesifikasyonunda tanımlandığı şekilde operatör hak sunucusunu sorgulamasına olanak tanır.

IMS yetkilendirme sunucularına sahip operatörler, hizmet sağlama için IMS hizmeti yetkilendirme özelliğini kullanabilir. Bu özelliği kullanmanın avantajları şunlardır:

  • Bu hak özelliği birden fazla ürün ve OEM'de kullanılabildiğinden operatörlerin test ve sertifika maliyetlerini azaltır.
  • Standart bir Android uygulaması aracılığıyla cihaz üreticilerinin geliştirme maliyetini azaltır.
  • Özellik açık kaynaklı olduğundan cihaz üreticilerinin ve operatörlerin bu özelliğe kod katkısında bulunmasına olanak tanır.
  • Kuzey Amerika'daki operatörler 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 yararlanma hakkı ö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 Service API statik kitaplığı: Bu kitaplık, TS.43 spesifikasyonunu uygular, operatörün yetkilendirme sunucusuyla etkileşime girer ve her TS.43 kullanım alanı için uygulamaya yönelik API'ler sunar.
  • ImsServiceEntitlement istemci uygulaması: Bu uygulama TS.43 Service API'yi kullanır. Uygulama, kullanıcıların hizmetleri etkinleştirmesi için operatörün hizmet portalını oluşturmaya yönelik web görünümleri de dahil olmak üzere kullanıcı arayüzü öğelerini uygular ve kullanıcı deneyimini baştan sona yönetmek için diğer Android bileşenleriyle etkileşime girer.

    Android'i bir operatörün TS.43 tabanlı yetkilendirme sunucusuyla çalışacak şekilde yapılandırma hakkında daha fazla bilgi için ImsServiceEntitlement uygulaması başlıklı makaleyi inceleyin.

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

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

(2) TS.43 hizmet API'si, 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 meydan okuma-yanıtını tamamlamak için telefoni API'lerini (örneğin, getIccAuthentication) çağırır.

(4) TS.43 hizmeti, EAP-AKA yanıtı doğrulandıktan sonra operatörün hak sunucusundan hizmet hakkı veya yapılandırma verileri 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ştirme işlemini tamamlaması için operatörün hizmet portalını oluşturur.

Entegrasyon

Bu bölümde, service_entitlement kitaplığının ve ImsServiceEntitlement uygulamasının entegrasyon süreci açıklanmaktadır.

Android 12 API bağımlılığı olmadığından service_entitlement kitaplığı ve ImsServiceEntitlement uygulaması, daha düşük Android platformlarına geri taşınabilir.

service_entitlement kitaplığı

service_entitlement kitaplığı, ImsServiceEntitlement uygulamasına statik olarak bağlandığından kitaplığın ImsServiceEntitlement uygulamasına entegre edilmesi için ek bir adım gerekmez.

service_entitlement kitaplığı, veri planı ve ODSA gibi TS.43 kullanım alanları için kendi uygulamalarınıza entegre edilebilir. Kitaplık, EAP-AKA protokolüne dayalı TS.43 dışı yetkilendirme kullanım alanları için de bir uygulamaya entegre edilebilir.

Bu tür kullanım alanları için kullanılacak API'ler aşağıda açıklanmıştı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 kullanıma sunulan API'leri kullanın.

ImsServiceEntitlement uygulaması

Android, varsayılan olarak ürün bölümüne yüklenen ImsServiceEntitlement uygulamasını ayrıcalıklı 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 Operatörün yararlanma hakkı sunucusu URL'si. https:// öneki eklenmelidir.
KEY_FCM_SENDER_ID_STRING Operatörün FCM gönderen kimliği.

Kargo şirketi 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, hüküm ve koşulları kabul etme veya acil durum adresi girme.

Bu genellikle Kuzey Amerika'daki operatörler tarafından zorunlu tutulur.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
KEY_SHOW_VOWIFI_WEBVIEW_BOOL, true ise com.android.imsserviceentitlement/.WfcActivationActivity olarak ayarlayın.
KEY_IMS_PROVISIONING_BOOL Kargo şirketi, IMS (VoLTE/VoWiFi/SMSoIP) hizmetlerinin arka planda ağda sağlanmasını gerektiriyorsa true olarak ayarlayın.

Bu, belirli Avrupalı operatörler tarafından zorunlu tutulur.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL KEY_IMS_PROVISIONING_BOOL değeri true ise true olarak ayarlayın.

Bir operatörün hak sunucusuna ve web portalına yönelik HTTP trafiği, varsayılan ağ (ör. varsayılan mobil veri veya kablosuz ağ) üzerinden gerçekleşir.

GMS iş ortakları: Android 12'deki TS.43 yetkilendirme uygulaması, TS.43 v5.0 spesifikasyonuna uygun olarak aşağıdaki operatörleri destekler:

  • ABD: CSpire, US Cellular, Cellcom
  • Fransa: Orange

IMS sağlama için ek sistem kullanıcı arayüzü

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

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ı arayüzü daha sonra getProvisioningIntValue kullanarak veya registerProvisioningChangedCallback aracılığıyla sağlama durumu değişikliğini izlemek için geri çağırma kaydettirerek sağlama durumunu okuyabilir.

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

Test amacıyla ImsServiceEntitlement uygulama davranışını geçici olarak değiştirmek için aşağıdaki prosedürleri kullanın. Operatör yapılandırmalarını geçersiz kılma hakkında ayrıntılı bilgi için Operatör yapılandırmalarını geçersiz kılma başlıklı makaleyi inceleyin.

VoWiFi kayıt işlemini atlama

VoWiFi kayıt sürecini atlamak ve VoWiFi'nin doğrudan açılmasına izin vermek için operatör yapılandırmasını geçersiz kılın KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING ve değerini boş dize olarak ayarlayın.

IMS temel hazırlığını atlama

IMS hizmetlerinin kullanılabilir hale getirilmesi ve kullanıcıların bu hizmetleri ağ hazırlığı olmadan etkinleştirmesine izin verilmesi için IMS hazırlığını atlamak üzere operatör yapılandırmasını KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL geçersiz kılın ve değerini false olarak ayarlayın.

Hak sunucusu URL'sini değiştirme

Hak sunucusu URL'sini değiştirmek için operatör yapılandırmasını geçersiz kılın KEY_ENTITLEMENT_SERVER_URL_STRING ve değerini beklenen URL dizesi olarak ayarlayın. https:// önekini eklemeniz gerekir.

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şik olarak bulunur ve kök ayrıcalıklarıyla kullanılabilir.

Aşağıdaki komut, operatör yapılandırma anahtarını geçersiz kılma carrier_volte_provisioning_required_bool ve değerini false olarak ayarlama örneğidir. Birden fazla 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 edinmek için aşağıdaki komutu çalıştırın:

adb shell cmd phone cc