สิทธิบริการ IMS

จาก Android 12 นั้น Android จะรองรับ TS.43 Service Entitlement Configuration ซึ่งเป็นข้อกำหนดของ GSMA ที่กำหนดขั้นตอนการตรวจสอบสิทธิ์สำหรับการเปิดใช้งานบริการต่างๆ รวมถึง Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE) , SMS over IP (SMSoIP), การเปิดใช้งานบริการบนอุปกรณ์ (ODSA) ของอุปกรณ์ที่ใช้ร่วมกัน eSIM (ที่เชื่อมโยงกับอุปกรณ์ที่ร้องขอ) และข้อมูลแผนข้อมูล

เพื่อรองรับข้อกำหนดนี้ Android ได้จัดเตรียมคุณลักษณะการให้สิทธิ์บริการ IMS ที่ช่วยให้ผู้ให้บริการสามารถแจ้งสถานะของบริการเครือข่าย IP Multimedia Subsystem (IMS) แก่อุปกรณ์เคลื่อนที่ได้ คุณลักษณะการให้สิทธิ์นี้ช่วยให้อุปกรณ์ค้นหาเซิร์ฟเวอร์การให้สิทธิ์ของผู้ให้บริการตามที่กำหนดโดยข้อกำหนด GSMA TS.43 สำหรับสถานะการให้สิทธิ์ IMS โดยใช้ การตรวจสอบสิทธิ์ EAP-AKA โดยที่ผู้ใช้ไม่ต้องป้อนข้อมูลรับรองใดๆ ด้วยตนเอง

ผู้ให้บริการที่มีเซิร์ฟเวอร์การให้สิทธิ์ IMS สามารถใช้คุณลักษณะการให้สิทธิ์บริการ IMS สำหรับการจัดเตรียมบริการ การใช้คุณลักษณะนี้มีประโยชน์ดังต่อไปนี้:

  • ลดต้นทุนการทดสอบและการรับรองสำหรับผู้ให้บริการขนส่ง เนื่องจากคุณสมบัติการให้สิทธิ์นี้สามารถใช้ได้กับผลิตภัณฑ์หลายรายการและ OEM
  • ลดค่าใช้จ่ายในการพัฒนาสำหรับผู้ผลิตอุปกรณ์ผ่านแอพ Android มาตรฐาน
  • อนุญาตให้ผู้ผลิตอุปกรณ์และผู้ให้บริการสนับสนุนโค้ดสำหรับคุณลักษณะดังกล่าว เนื่องจากคุณลักษณะนี้เป็นโอเพนซอร์ส
  • ให้การจัดการที่อยู่ฉุกเฉินสำหรับผู้ให้บริการในอเมริกาเหนือ

สถาปัตยกรรม

รูปต่อไปนี้อธิบายสถาปัตยกรรมและลักษณะการทำงานของคุณลักษณะการให้สิทธิ์บริการ IMS

คุณสมบัติการให้สิทธิ์ TS.43

รูปที่ 1 สถาปัตยกรรมคุณลักษณะการให้สิทธิ์ TS.43

ตามที่แสดงในรูปที่ 1 สถาปัตยกรรมของคุณลักษณะการให้สิทธิ์บริการ IMS ประกอบด้วยส่วนประกอบต่อไปนี้:

  • service_entitlement TS.43 ไลบรารีสแตติกของ Service API : ไลบรารีนี้ใช้ข้อกำหนด TS.43 โต้ตอบกับเซิร์ฟเวอร์การให้สิทธิ์ของผู้ให้บริการ และเปิดเผย API ที่เผชิญกับแอปสำหรับกรณีการใช้งาน TS.43 แต่ละรายการ
  • แอปไคลเอ็นต์ ImsServiceEntitlement : แอปนี้ใช้ TS.43 Service API แอปใช้องค์ประกอบ UI รวมถึงการดูเว็บเพื่อแสดงพอร์ทัลบริการของผู้ให้บริการเพื่อให้ผู้ใช้เปิดใช้งานบริการและโต้ตอบกับส่วนประกอบ Android อื่น ๆ เพื่อจัดการประสบการณ์ผู้ใช้ตั้งแต่ต้นจนจบ

    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีกำหนดค่า Android ให้ทำงานกับเซิร์ฟเวอร์การให้สิทธิ์ที่ใช้ TS.43 ของผู้ให้บริการ โปรดดู ที่แอป ImsServiceEntitlement

เส้นที่มีตัวเลขในรูปที่ 1 แสดงให้เห็นว่าองค์ประกอบของคุณสมบัติการให้สิทธิ์บริการ IMS สื่อสารกันอย่างไร ต่อไปนี้จะอธิบายแต่ละขั้นตอนตามที่ระบุไว้:

(1) แอปไคลเอนต์เรียกใช้ API บริการ TS.43 เพื่อเริ่มต้นคำขอให้สิทธิ์บริการ

(2) API บริการ TS.43 ส่งคำขอ HTTP ไปยังเซิร์ฟเวอร์การให้สิทธิ์ของผู้ให้บริการเพื่อเริ่มต้นความท้าทาย EAP-AKA

(3) API บริการ TS.43 เรียกใช้ API ทางโทรศัพท์ (เช่น getIccAuthentication ) เพื่อตอบคำถาม EAP-AKA

(4) บริการ TS.43 ได้รับสิทธิ์บริการหรือข้อมูลการกำหนดค่าจากเซิร์ฟเวอร์การให้สิทธิ์ของผู้ให้บริการหลังจากตรวจสอบการตอบสนอง EAP-AKA แล้ว

(5) บริการ TS.43 ส่งคืนสิทธิ์บริการหรือข้อมูลการกำหนดค่าไปยังแอปไคลเอนต์

(6) แอพไคลเอนต์จัดการข้อมูลและแสดงพอร์ทัลบริการของผู้ให้บริการเพื่อให้ผู้ใช้เปิดใช้งานบริการเสร็จสิ้น

บูรณาการ

ส่วนนี้อธิบายกระบวนการในการรวมไลบรารี service_entitlement และแอป ImsServiceEntitlement

เนื่องจากไม่มีการพึ่งพา Android 12 API ไลบรารี service_entitlement และแอป ImsServiceEntitlement สามารถแบ็คพอร์ตไปยังแพลตฟอร์ม Android รุ่นเก่าได้

service_entitlement ห้องสมุด

เนื่องจากไลบรารี service_entitlement ลิงก์แบบสแตติกกับ ImsServiceEntitlement app จึงไม่ต้องมีขั้นตอนเพิ่มเติมในการรวมไลบรารีเข้ากับแอป ImsServiceEntitlement

ไลบรารี service_entitlement สามารถรวมเข้ากับแอปของคุณเองสำหรับกรณีการใช้งาน TS.43 เช่น แผนข้อมูลและ ODSA ไลบรารียังสามารถรวมเข้ากับแอพสำหรับกรณีการใช้งานการให้สิทธิ์ที่ไม่ใช่ TS.43 ตามโปรโตคอล EAP-AKA

ข้อมูลต่อไปนี้อธิบาย API ที่จะใช้สำหรับกรณีการใช้งานดังกล่าว:

  • แอป TS.43 ที่ใช้โปรโตคอล TS.43 HTTP ที่ใช้งานในไลบรารี: ใช้ API ในคลาส ServiceEntitlement
  • แอปที่ไม่ใช่ TS.43 ที่ใช้โปรโตคอล EAP-AKA ที่ใช้งานในไลบรารี: ใช้ API ที่เปิดเผยในคลาส EapAkaHelper

แอป ImsServiceEntitlement

ตามค่าเริ่มต้น Android จะรวมแอป ImsServiceEntitlement ที่ติดตั้งในพาร์ติชันผลิตภัณฑ์เป็นแอปที่มีสิทธิพิเศษ ในการกำหนดค่าแอป ให้ใช้คีย์ CarrierConfig ต่อไปนี้:

สำคัญ ค่า
KEY_ENTITLEMENT_SERVER_URL_STRING URL เซิร์ฟเวอร์การให้สิทธิ์ของผู้ให้บริการ ต้องรวม https:// นำหน้าด้วย
KEY_FCM_SENDER_ID_STRING ID ผู้ส่ง FCM ของผู้ให้บริการ

อย่าตั้งค่านี้หากผู้ให้บริการไม่ต้องการ FCM
KEY_SHOW_VOWIFI_WEBVIEW_BOOL ตั้งค่า true หากผู้ให้บริการต้องการ UI พอร์ทัลเว็บสำหรับผู้ใช้ในการสมัครบริการ VoWiFi เช่น การยินยอมตามข้อกำหนดและเงื่อนไขหรือป้อนที่อยู่ฉุกเฉิน

ผู้ให้บริการในอเมริกาเหนือมักต้องการสิ่งนี้
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
ตั้งค่าเป็น com.android.imsserviceentitlement/.WfcActivationActivity หาก KEY_SHOW_VOWIFI_WEBVIEW_BOOL เป็น true
KEY_IMS_PROVISIONING_BOOL ตั้งค่า true หากผู้ให้บริการต้องการการจัดเตรียมเครือข่ายของบริการ IMS (VoLTE/VoWiFi/SMSoIP) ในเบื้องหลัง

สิ่งนี้จำเป็นสำหรับผู้ให้บริการในยุโรปบางราย
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL ตั้งค่า true ถ้า KEY_IMS_PROVISIONING_BOOL เป็น true

การรับส่งข้อมูล HTTP ไปยังเซิร์ฟเวอร์การให้สิทธิ์ของผู้ให้บริการและพอร์ทัลเว็บจะผ่านเครือข่ายเริ่มต้น เช่น ข้อมูลมือถือเริ่มต้นหรือ Wi-Fi

พาร์ทเนอร์ GMS: ผู้ให้บริการต่อไปนี้ได้รับการสนับสนุนโดยแอปการให้สิทธิ์ TS.43 ใน Android 12 ตามข้อกำหนด TS.43 v5.0:

  • สหรัฐอเมริกา: CSpire, US Cellular, Cellcom
  • ฝรั่งเศส: ส้ม

UI ของระบบเพิ่มเติมสำหรับการจัดเตรียม IMS

ส่วนนี้อธิบายวิธีที่ OEM สามารถสนับสนุนองค์ประกอบ UI ของระบบเพิ่มเติมที่เกี่ยวข้องกับการจัดเตรียมบริการ IMS (เช่น เมื่อแสดงการแจ้งเตือนเมื่อมีการเตรียมใช้งาน VoWiFi)

แอป ImsServiceEntitlement ตั้งค่าสถานะการจัดเตรียม VoWiFi ลงในแพลตฟอร์มโดยใช้ API ของระบบ ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value) API นี้ยังใช้สำหรับ VoLTE (พร้อม KEY_VOLTE_PROVISIONING_STATUS ) และ SMSoIP (พร้อม KEY_SMS_OVER_IP_ENABLED )

จากนั้น UI ของระบบสามารถอ่านสถานะการจัดเตรียมได้โดยใช้ getProvisioningIntValue หรือโดยการลงทะเบียนการโทรกลับเพื่อตรวจสอบการเปลี่ยนแปลงสถานะการจัดเตรียมผ่าน registerProvisioningChangedCallback

เอาชนะการกำหนดค่าสำหรับการทดสอบ

ใช้ขั้นตอนต่อไปนี้เพื่อเปลี่ยนการทำงานของแอป ImsServiceEntitlement ชั่วคราวเพื่อวัตถุประสงค์ในการทดสอบ สำหรับรายละเอียดเกี่ยวกับวิธีการแทนที่การกำหนดค่าของผู้ให้บริการ โปรดดูที่ การ แทนที่การกำหนดค่าของผู้ให้บริการ

ข้ามขั้นตอนการสมัคร VoWiFi

หากต้องการข้ามขั้นตอนการลงทะเบียน VoWiFi โดยอนุญาตให้เปิด VoWiFi ได้โดยตรง ให้แทนที่การกำหนดค่าผู้ให้บริการ KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING และตั้งค่าเป็นสตริงว่าง

ข้ามการจัดเตรียม IMS

หากต้องการข้ามการจัดเตรียม IMS การให้บริการ IMS และอนุญาตให้ผู้ใช้เปิดบริการดังกล่าวโดยไม่ต้องจัดเตรียมเครือข่าย ให้แทนที่การกำหนดค่าผู้ให้บริการ KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL และตั้งค่า false

การเปลี่ยน URL เซิร์ฟเวอร์การให้สิทธิ์

หากต้องการเปลี่ยน URL ของเซิร์ฟเวอร์การให้สิทธิ์ ให้แทนที่การกำหนดค่าผู้ให้บริการ KEY_ENTITLEMENT_SERVER_URL_STRING และตั้งค่าเป็นสตริง URL ที่คาดไว้ คุณต้องใส่คำนำหน้า https://

เอาชนะการกำหนดค่าผู้ให้บริการ

จาก Android 11 คำสั่งลบล้างการกำหนดค่าผู้ให้บริการมีมาให้ในตัวและพร้อมใช้งานด้วยสิทธิ์ของรูท

คำสั่งต่อไปนี้เป็นตัวอย่างของการแทนที่คีย์การกำหนดค่าผู้ให้บริการ carrier_volte_provisioning_required_bool และตั้งค่า false คุณสามารถเรียกใช้คำสั่งได้หลายครั้งเพื่อแทนที่การกำหนดค่าหลายรายการ

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

หากต้องการล้างการแทนที่ทั้งหมด ให้ใช้คำสั่งต่อไปนี้:

adb shell cmd phone cc clear-values

หากต้องการข้อมูลเพิ่มเติม ให้รันคำสั่งต่อไปนี้:

adb shell cmd phone cc