IMS hizmetine erişim hakkı

Android 12'den itibaren Android, TS.43 Service Entitlement Configuration'ı destekler. Bu, GSMA spesifikasyonudur ve hizmetlerin etkinleştirilmesi için hak doğrulama adımını tanımlar. Bu hizmetler arasında Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE), SMS over IP (SMSoIP), eSIM eşlik eden cihazların (istekte bulunan cihazla ilişkili) cihaz üzerinde hizmet etkinleştirme (ODSA) ve veri planı bilgileri yer alır.

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ılardan herhangi bir kimlik bilgisi girmelerini istemeden 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 yetkilendirme özelliği

1. şekil. 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 static library: Bu kitaplık, TS.43 spesifikasyonunu uygular, bir 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şimde bulunur.

    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ı, bir hizmet yetkilendirme isteği başlatmak için TS.43 hizmet API'sini çağırır.

(2) TS.43 hizmet API'si, EAP-AKA sorgusu başlatmak için operatörün yetkilendirme sunucusuna bir HTTP isteği gönderir.

(3) TS.43 hizmet API'si, EAP-AKA sorgu-yanıtını tamamlamak için telefoni API'lerini (ör. 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ı, eski Android platformlarına geri taşınabilir.

service_entitlement kitaplığı

service_entitlement kitaplığı ImsServiceEntitlement app'ye 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 bir uygulamaya da 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 Mobil 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.

Yararlanma hakkı 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ı carrier_volte_provisioning_required_bool nasıl geçersiz kılacağınız ve değerini false olarak nasıl ayarlayacağınızla ilgili bir örnektir. 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