การแสดงผล (WebRTC)

บทนี้อธิบายการตั้งค่าการแสดงผลเป็นผู้เข้าร่วม WebRTC ในบท ผู้เข้าร่วม SIP จะอธิบายการรวมผู้เข้าร่วมเพิ่มเติม

หมายเหตุสำคัญ: WebRTC ทำงานได้เฉพาะผ่าน HTTPS และมีใบรับรองที่ถูกต้อง ถ้าไม่ใช่จะไม่สามารถสร้างการเชื่อมต่อเสียงได้

สถานีสัญญาณ

โทรศัพท์บนการแสดงผลไม่สามารถตอบรับการโทรโดยตรงได้ ดังนั้นจึงต้องส่งสัญญาณแยกจากกันผ่าน ข้อความ หรือกองโซนทางกายภาพ แล้วผู้ใช้สามารถสร้างการเชื่อมต่อเสียงกับฝ่ายตรงข้ามได้โดยการโทรจากการแสดงผล

เพื่อรับสัญญาณ สามารถส่งคำสั่งโดยตรงผ่าน TCP/UDP- หรือ HTTP-อินเตอร์เฟซจากฝ่ายตรงข้าม ถ้าแพลตฟอร์มนั้นสนับสนุนการทำเช่นนี้ หรือสามารถตรวจจับการโทรเข้ามาโดยใช้ Asterisk AMI-อินเตอร์เฟซหรือกับเหตุการณ์ แผนการเลือกหมายเลข วิธีสุดท้ายนี้ง่ายที่สุดในการใช้งาน

การตั้งค่า

ต่างจากโทรศัพท์ การตั้งค่าที่อยู่ของการแสดงผลจะถูกสร้างโดยอัตโนมัติจากเซิร์ฟเวอร์ ดังนั้นไม่ต้องตั้งค่า SIP ที่อยู่

เพื่อใช้โทรศัพท์บนการแสดงผล โทรศัพท์นี้จะถูกแทรกลงในหน้า โดยใช้ปลั๊กอิน ไลบรารี เมื่อการตั้งค่าของโทรศัพท์สมบูรณ์และระบบโทรศัพท์ Asterisk เริ่มทำงานสำเร็จ FAB (Floating Action Button) จะปรากฏในมุมขวาล่างของการแสดงผล ซึ่งจะอนุญาตให้ผู้ใช้สร้างการเชื่อมต่อ

การตั้งค่าของ VoIP ของโทรศัพท์แบ่งออกเป็นสองส่วน การตั้งค่าเซิร์ฟเวอร์สำหรับการแสดงผลจะทำใน อินเตอร์เฟซเครือข่าย หรือใน การเข้าถึงจากระยะไกล ทั้งหมดของการตั้งค่าสำหรับโทรศัพท์จะทำใน อินฟราสตรักเจอร์ ใน เครือข่าย โทรศัพท์ การตั้งค่าทั้งสองส่วนมีลักษณะคล้ายกัน ดังนั้นต้องระวังที่จะทำการตั้งค่าไหน การตั้งค่านั้นมักจะใช้กับเซิร์ฟเวอร์ในเครือข่ายเดียวกัน ดังนั้นโดยปกติแล้วการตั้งค่าจะถูกแชร์จากโทรศัพท์ไปยังทั้งหมดของการเชื่อมต่อเครือข่าย

การใช้งานทั่วโลก

เพื่อให้การแสดงผลสามารถสร้างการเชื่อมต่อเสียงได้ทั่วโลก แพ็กเก็ต UDP ของ WebRTC ต้องถึงโทรศัพท์ภายใน ถ้าอยู่ในเครือข่ายเดียวกันหรือเชื่อมต่อผ่าน VPN แพ็กเก็ตจะไปถึงเซิร์ฟเวอร์โดยตรงและการสื่อสารทำงานได้ แต่ถ้าเรียกใช้การแสดงผลจากเครือข่ายอื่น IP ที่อยู่ของเซิร์ฟเวอร์จะไม่สามารถเข้าถึงได้ มีวิธีแก้ไขสองวิธี:

  • STUN เซิร์ฟเวอร์: แยก NAT IP ทุกตัวและให้ที่อยู่เหล่านั้นกับการแสดงผล ซึ่งจะพยายามสร้างการเชื่อมต่อไปยังทุกๆ ที่อยู่ของ IP
  • TRUN เซิร์ฟเวอร์: สร้างการเชื่อมต่อเสียงโดยตรงผ่าน TURN ด้วยความหมายว่า การสื่อสารจะถูกเปลี่ยนทางไปยัง TURN

ข้อมูลทั้งหมดเกี่ยวกับการตั้งค่าให้ดูในบท STUN และ TRUN เซิร์ฟเวอร์

แป้นพิมพ์

ใต้แท็บขวาบนการตั้งค่าของ โทรศัพท์ สามารถกำหนด แป้นพิมพ์สำหรับการแสดงผลได้ ดูตัวอย่างของแผนที่ปุ่มโทรศัพท์ปกติ:

!1;!2;!3
!4;!5;!6
!7;!8;!9
[icon:material/emergency]:*;!0;!#

หรือการใช้งานของปุ่มเปิดประตู:

[icon:material/door_open] [txt:Open]:*1234#

แต่ละตัวเลขจะถูกแบ่งด้วยเครื่องหมายพิมพ์ทับกันในแต่ละบรรทัด ถ้ามีเนื้อหาเป็นค่าว่าง ปุ่มนั้นจะถูกข้ามได้ แต่ละปุ่มสามารถมีข้อความที่แตกต่างกัน ข้อความจะถูกเขียนโดยใช้เครื่องหมายสองจุดก่อนรหัส สนับสนุนตัวแทน [icon:] และ [txt:] สำหรับการแปล การใส่เครื่องหมายอัพโหลดก่อนข้อความจะเพิ่มขนาดตัวอักษรของแผนที่ปุ่ม ถ้ามีการใช้งานรหัสอย่างเดียว รหัสนั้นจะไม่ถูกส่งออก ถ้าแทรกบรรทัดว่าง แผนที่ใหม่จะเริ่มต้น

สำคัญ: ทุกๆ รหัสจะแสดงในรูปแบบข้อความธรรมดาในการแสดงผลและสามารถอ่านได้ง่าย

ตัวอักษรที่ถูกต้องคือ 0-9, A-D, * และ # ก็สามารถใส่การหยุดชั่วคราวโดยใช้เครื่องหมายจุลภาค (,) เพื่อการหยุดชั่วคราวที่ยาวนานกว่า ให้ซ้ำเครื่องหมายจุลภาคหลายๆ ครั้ง

การแก้ปัญหา

เพื่อตรวจสอบว่าการเชื่อมต่อภายนอกสามารถสร้างได้จริง หรือไม่ ควรใช้คอนโซลของ Chrome Browser ซึ่งสามารถเรียกใช้ผ่าน URL chrome://webrtc-internals/

ในส่วน ICE candidate grid สามารถแสดงความต้องการของที่อยู่ IP ได้

ปัญหาที่ทราบแล้ว

  • ไม่สามารถสร้างการเชื่อมต่อได้บนอุปกรณ์ iOS ที่เก่าเมื่อใช้แอพเว็บในโหมดเต็มหน้าจอ (PWA) สถานะ 01.10.2019 (iOS13.1)
  • บนอุปกรณ์ iOS บางตัว อัตราเสียงอาจจะต่ำมาก การกดปุ่มไมโครโฟนสองครั้ง (การเปลี่ยนเสียง) จะเพิ่มระดับเสียง
  • ไม่สามารถสร้างการเชื่อมต่อได้โดยไม่ใช้ HTTPS เพราะส่วนใหญ่ของเบราว์เซอร์ต้องการการเชื่อมต่อเสียงที่ปลอดภัย