การลงทะเบียน IMS ครั้งเดียว

Android 12 รองรับรูปแบบการลงทะเบียนแบบครั้งเดียวสำหรับให้บริการฟีเจอร์ MMTEL และ RCS รูปแบบนี้ช่วยให้อุปกรณ์จัดการฟีเจอร์ IMS ทั้งหมดได้ผ่านการลงทะเบียน IMS ครั้งเดียวที่ ImsService ของอุปกรณ์ให้ไว้ และเพื่อปฏิบัติตามข้อกำหนดที่ผู้ให้บริการโทรคมนาคมบางรายกำหนด เมื่อเทียบกับรูปแบบการลงทะเบียนแบบคู่ที่จัดการการลงทะเบียน IMS หลายรายการในอุปกรณ์เครื่องเดียว การลงทะเบียนครั้งเดียวจะช่วยลดการรับส่งข้อมูลในเครือข่ายของผู้ให้บริการและเพิ่มความน่าเชื่อถือ

Android 12 รองรับรูปแบบการลงทะเบียนแบบครั้งเดียวนี้ผ่านสถาปัตยกรรมที่มีชุด API ซึ่งช่วยให้สแต็กโทรศัพท์ของ AOSP จัดการทั้งฟีเจอร์ MMTEL ที่ให้บริการโดย ImsService และฟีเจอร์ RCS ที่ให้บริการโดยแอปรับส่งข้อความ RCS ที่ผู้ใช้เลือกได้ หากต้องการรองรับการลงทะเบียน IMS แบบครั้งเดียว ผู้ผลิตอุปกรณ์และผู้ให้บริการ SoC ต้องใช้ API เหล่านี้เพื่อเปิดใช้ฟีเจอร์ RCS ในแอปรับส่งข้อความ RCS ที่ผู้ใช้เลือก

รูปที่ 1 แสดงสแต็ก IMS ของอุปกรณ์เมื่อใช้รูปแบบการลงทะเบียน IMS แบบครั้งเดียว แอป IMS ทั้งหมดใช้ ImsService เริ่มต้นของอุปกรณ์สำหรับฟีเจอร์ MMTEL และ RCS ผ่านการลงทะเบียน IMS ครั้งเดียว ซึ่งรวมถึงการจัดสรร การส่งต่อข้อความ SIP และการแลกเปลี่ยนความสามารถของผู้ใช้ RCS

สถาปัตยกรรมโหมดการลงทะเบียนแบบรวมครั้งเดียว

รูปที่ 1 สถาปัตยกรรมรูปแบบการลงทะเบียนแบบรวมครั้งเดียว

Android 11 และต่ำกว่ารองรับเฉพาะรูปแบบการลงทะเบียนแบบคู่สำหรับการนำเสนอฟีเจอร์ MMTEL และ RCS โดยที่ MMTEL ให้บริการโดย ImsService ของอุปกรณ์ และฟีเจอร์ RCS จะใช้ร่วมกับบริการดังกล่าวและจัดการสแต็ก IMS ของตนเอง รวมถึงการเชื่อมต่อกับเครือข่ายของผู้ให้บริการอย่างอิสระ

รูปที่ 2 แสดงสถาปัตยกรรมของรูปแบบการจดทะเบียนแบบคู่ ในรูปแบบนี้ แอปแต่ละแอปมีหน้าที่รับผิดชอบในการเชื่อมต่อกับเครือข่ายของผู้ให้บริการและสร้างการลงทะเบียน IMS สำหรับฟีเจอร์ MMTEL และ RCS ImsService ของอุปกรณ์จะใช้ MMTEL, ใช้การเชื่อมต่อข้อมูล IMS ของอุปกรณ์กับเครือข่ายของผู้ให้บริการ และทำงานแยกจากแอป RCS อื่นๆ

สถาปัตยกรรมโหมดการลงทะเบียนแบบคู่

รูปที่ 2 สถาปัตยกรรมรูปแบบการลงทะเบียนแบบคู่

IMS Single Registration API

อุปกรณ์ที่ทำงานร่วมกับผู้ให้บริการที่ต้องใช้การลงทะเบียน IMS แบบครั้งเดียวต้องรองรับ API การลงทะเบียน IMS แบบครั้งเดียวและกำหนดฟีเจอร์ Android PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION รูปที่ 3 แสดง API ที่รองรับการลงทะเบียน IMS แบบครั้งเดียว

แพลตฟอร์ม API ที่รองรับการลงทะเบียน IMS แบบครั้งเดียว

รูปที่ 3 แพลตฟอร์ม API ระดับสูงที่รองรับการลงทะเบียน IMS แบบครั้งเดียว

อุปกรณ์ Android ที่รองรับการลงทะเบียน IMS ครั้งเดียวซึ่งเป็นส่วนหนึ่งของสแต็กโทรศัพท์ AOSP จะต้องรองรับ AOSP API ทั้งหมดที่อธิบายไว้ในตารางต่อไปนี้

API Surface Area RCS App API IMS API ของผู้ให้บริการ คำอธิบาย
การจัดสรร RCS ProvisioningManager ImsConfigImplBase อนุญาตให้ OEM หรือผู้ให้บริการระบุแอปเพื่ออัปเดตสถานะการจัดสรร RCS หากผู้ให้บริการใช้กลไกการให้สิทธิ์ของผู้ให้บริการที่เป็นกรรมสิทธิ์ นอกจากนี้ ImsService ยังต้องรองรับ AutoConfigurationServer (ACS) มาตรฐานสำหรับการเตรียมอุปกรณ์ให้กับผู้ให้บริการที่ไม่ใช้กลไกที่เป็นกรรมสิทธิ์ด้วย
การส่งต่อข้อความ SIP SipDelegateManager SipTransportImplBase อนุญาตให้แอป RCS เชื่อมโยงแท็กฟีเจอร์ RCS ที่เฉพาะเจาะจงกับอุปกรณ์ ImsService ก่อน จากนั้นจึงส่งและรับข้อความ SIP และการอัปเดตการลงทะเบียน IMS ที่เชื่อมโยงกับแท็กฟีเจอร์ RCS เหล่านั้น
การแจ้งเตือนสำหรับผู้ให้บริการโดยเฉพาะ ConnectivityManager DataCallResponse อนุญาตให้แอปฟังการแจ้งเตือน QoS ในซ็อกเก็ตที่เชื่อมโยงกับพอร์ตในเครื่องที่เฉพาะเจาะจง
การตรวจสอบสิทธิ์ GBA bootstrapAuthenticationRequest GbaService อนุญาตให้แอป RCS ตรวจสอบสิทธิ์กับเครือข่ายและคีย์เข้าถึงที่ใช้สำหรับฟีเจอร์ RCS เช่น การโอนไฟล์
การแลกเปลี่ยนความสามารถของผู้ใช้ RCS ImsRcsManager RcsCapabilityExchangeImplBase ช่วยให้ AOSP สามารถส่งความสามารถของ MMTEL และ RCS ไปยัง ImsService ของผู้ให้บริการเพื่อให้เผยแพร่ภายใต้เอนทิตีเดียวกันไปยังเครือข่ายสำหรับการแลกเปลี่ยนความสามารถของผู้ใช้ RCS ได้ และยังอนุญาตให้แอปอื่นๆ ที่สนใจความสามารถ RCS ของรายชื่อติดต่ออย่างน้อย 1 รายสามารถค้นหาเครือข่ายเพื่อดูความสามารถ RCS ของรายชื่อติดต่อได้

ความปลอดภัยและสิทธิ์

Android 12 เปิดตัวสิทธิ์ต่อไปนี้เพื่อให้การเข้าถึงเครือข่ายของผู้ให้บริการและข้อมูลของผู้ใช้เป็นไปอย่างปลอดภัย

แอปรับส่งข้อความที่มีฟีเจอร์ RCS จะต้องกำหนดสิทธิ์ android.permission.PERFORM_IMS_SINGLE_REGISTRATION เงื่อนไขต่อไปนี้ต้องตรงตามข้อกำหนดเพื่อให้ได้รับสิทธิ์นี้

  • แอปต้องติดตั้งเป็นแอปที่มีสิทธิ์ ซึ่งหมายความว่าแอปได้รับการติดตั้งไว้ล่วงหน้าในอุปกรณ์และได้รับอนุญาตให้เข้าถึงสิทธิ์ที่มีสิทธิ์
  • คุณต้องตั้งค่าแอปเป็นบทบาท SMS เริ่มต้นของผู้ใช้โดยใช้ RoleManager

หากไม่เป็นไปตามเงื่อนไขทั้ง 2 ข้อนี้ แอปจะถูกปฏิเสธไม่ให้เข้าถึงสิทธิ์ android.permission.PERFORM_IMS_SINGLE_REGISTRATION ซึ่งหมายความว่าแอปของบุคคลที่สามไม่ได้รับอนุญาตให้เข้าถึง RCS Single Registration API เนื่องจากต้องมีการรับรองจากผู้ให้บริการในอุปกรณ์

สิทธิ์ android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE เมื่อให้สิทธิ์แก่แอปที่มีสิทธิ์ READ_CONTACTS ด้วย จะอนุญาตให้แอปขอความสามารถ RCS ของหมายเลขโทรศัพท์โดยใช้ RcsUceAdapter เงื่อนไขต่อไปนี้ต้องตรงตามข้อกำหนดจึงจะให้สิทธิ์นี้ได้

  • แอปต้องติดตั้งเป็นแอปที่มีสิทธิ์ ซึ่งหมายความว่าแอปได้รับการติดตั้งไว้ล่วงหน้าในอุปกรณ์และได้รับอนุญาตให้เข้าถึงสิทธิ์ที่มีสิทธิ์
  • แอปต้องได้รับการกำหนดบทบาทอย่างใดอย่างหนึ่งต่อไปนี้ RoleManager

    • แอปรับส่งข้อความเริ่มต้น: ตั้งค่าโดยผู้ใช้
    • แอปโทรศัพท์เริ่มต้น: ตั้งค่าโดยผู้ใช้
    • แอปรายชื่อติดต่อเริ่มต้น: บทบาทที่เปิดตัวใน Android 12 ซึ่งอนุญาตให้ OEM กําหนดชื่อแพ็กเกจผ่านค่าการวางซ้อนของอุปกรณ์ config_systemContacts ซึ่งต้องสอดคล้องกับแอปรายชื่อติดต่อของอุปกรณ์ จากนั้นแอปดังกล่าวจะได้รับบทบาทรายชื่อติดต่อ

หากต้องการเข้าถึง APN ของ IMS โดยใช้ ConnectivityManager เพื่อตั้งค่าและจัดการการรับส่งข้อมูล แอปจะต้องขอสิทธิ์ android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS ด้วย

ตัวอย่างและแหล่งที่มา

Android มีแอปใน AOSP ที่ใช้แอปรับส่งข้อความทดสอบที่รองรับการรับส่งข้อความ RCS ขั้นพื้นฐานเพื่อวัตถุประสงค์ในการทดสอบและการพัฒนา คุณดาวน์โหลดแอปได้ ที่ testapps/TestRcsApp เมื่อติดตั้งแอปในอุปกรณ์แล้ว ผู้ใช้จะตั้งค่าแอปเป็นแอปรับส่งข้อความเริ่มต้นได้ และจะมีสิทธิ์ที่จำเป็นในการเข้าถึง IMS Single Registration API

นอกจากนี้ Android ยังมีตัวอย่างการใช้งาน ImsService สำหรับ RCS ด้วย ดูซอร์สโค้ดได้ที่ /testapps/ImsTestService

การใช้งาน

โปรดดูรายละเอียดการติดตั้งใช้งานเพิ่มเติมโดยดาวน์โหลดการลงทะเบียน IMS แบบครั้งเดียวใน Android

การตรวจสอบความถูกต้อง

หากต้องการตรวจสอบการติดตั้งใช้งานการจดทะเบียนครั้งเดียวของ IMS ให้ทำดังนี้

  • ตรวจสอบว่าชุดทดสอบ CtsTelephonyTestCases ผ่านชุดทดสอบ CTS
  • ติดตั้งและเรียกใช้ TestRcsApp เพื่อเรียกใช้กรณีทดสอบการลงทะเบียนครั้งเดียวพื้นฐานระหว่างการผสานรวม
  • ผ่านการรับรองของผู้ให้บริการสำหรับกรณีทดสอบการลงทะเบียน IMS แบบครั้งเดียว