SIP คืออะไร ภาษาที่ระบบ VoIP ใช้สื่อสาร
ชุดบทความ “เข้าใจ VoIP ตั้งแต่พื้นฐานถึงระดับผู้เชี่ยวชาญ” ตอนที่ 2/12
ในตอนที่ 1 เราเข้าใจแล้วว่า VoIP คือการส่งเสียงผ่านอินเทอร์เน็ต แต่ยังมีคำถามสำคัญที่ยังไม่ได้ตอบ: “เมื่อคุณกดโทรหาใครสักคน ระบบ VoIP รู้ได้อย่างไรว่าจะไปหาใคร ทำให้เสียงเรียกดังอย่างไร รู้ได้อย่างไรว่าอีกฝั่งรับสายแล้ว และรู้ได้อย่างไรว่าวางสายแล้ว?”
คำตอบคือ SIP Session Initiation Protocol “ภาษา” ที่อุปกรณ์ VoIP ใช้คุยกันเพื่อจัดการทุกขั้นตอนของสายโทรศัพท์
ถ้า VoIP คือ “ระบบขนส่งเสียง” SIP ก็คือ “ผู้จัดการที่ดูแลทุกอย่างตั้งแต่ต้นจนจบ” จัดให้สายเชื่อมต่อกัน ดูแลให้ทุกอย่างพร้อม และจัดการให้สายจบลงอย่างเรียบร้อย
บทความนี้จะอธิบาย SIP ให้เข้าใจได้โดยไม่ต้องมีพื้นฐานเทคนิค ใช้การเปรียบเทียบกับสิ่งที่คุ้นเคยในชีวิตประจำวัน
1. SIP คืออะไร เริ่มจากชื่อ
SIP ย่อมาจาก Session Initiation Protocol
ลองแยกทีละคำ:
Session คือ “ช่วงเวลาของการสื่อสาร” ตั้งแต่เริ่มกดโทรจนถึงวางสาย ทุกครั้งที่มีคนโทรหากันจะเกิด session ขึ้นมาหนึ่งอัน
Initiation คือ “การเริ่มต้น” SIP ถูกออกแบบมาเพื่อ “เริ่ม” session แต่ในทางปฏิบัติมันทำมากกว่าแค่เริ่ม มันจัดการทุกอย่างตั้งแต่เริ่มจนจบ
Protocol คือ “ข้อตกลง” หรือ “ภาษา” ที่อุปกรณ์ใช้คุยกัน เหมือนกฎจราจรที่ทุกคนต้องปฏิบัติตาม รถจึงจะวิ่งได้โดยไม่ชนกัน
รวมกันแล้ว SIP ก็คือ ข้อตกลงที่อุปกรณ์ VoIP ใช้ในการจัดการสายโทรศัพท์ ตั้งแต่เริ่มต้น ดำเนินไป จนจบ
จุดสำคัญที่ต้องเข้าใจก่อนอ่านต่อ
SIP ไม่ใช่เสียง นี่คือจุดที่คนเข้าใจผิดบ่อยที่สุด SIP ไม่ได้ “ส่งเสียง” SIP ทำหน้าที่แค่ “จัดการ” บอกว่าใครจะโทรหาใคร ใช้วิธีบีบอัดเสียงแบบไหน ส่งเสียงไปที่ IP address อะไร พอร์ตอะไร เมื่อตกลงกันเสร็จ ก็วางมือ ปล่อยให้เสียงวิ่งไปทาง RTP (Real-time Transport Protocol) แทน
เปรียบเทียบ: SIP เหมือน พนักงานต้อนรับในร้านอาหาร ที่จัดให้คุณนั่งโต๊ะ บอกว่าเชฟกำลังเตรียมอาหาร บอกว่าอาหารพร้อมแล้ว และจัดให้คุณเช็คบิลตอนกลับ แต่พนักงานต้อนรับไม่ได้ทำอาหาร อาหาร (เสียง) มาจากครัว (RTP) ส่วนพนักงานต้อนรับ (SIP) แค่ “จัดการ” ทุกอย่างให้ราบรื่น
2. SIP ทำงานอย่างไร เล่าผ่านเรื่องจริงที่เกิดทุกครั้งที่คุณโทร
ลองติดตามว่าเกิดอะไรขึ้นเมื่อ “สมชาย” โทรหา “สมหญิง” ผ่านระบบ VoIP โดยเล่าเป็นบทสนทนาระหว่างโทรศัพท์ของสมชาย (Alice) กับโทรศัพท์ของสมหญิง (Bob) ผ่าน IP PBX ที่เป็นตัวกลาง
ฉากที่ 1: สมชายกดโทร INVITE
สมชายกดเบอร์ 200 (extension ของสมหญิง) แล้วกดปุ่มโทร โทรศัพท์ของสมชายส่ง SIP INVITE ไปยัง IP PBX
INVITE เหมือนจดหมายที่บอกว่า: “สมชาย (extension 100) อยากคุยกับสมหญิง (extension 200) โดยใช้ codec G.711 ส่งเสียงไปที่ IP 192.168.1.10 พอร์ต 10000”
ข้อมูลเกี่ยวกับ codec, IP address และพอร์ตที่จะส่งเสียง ถูกบรรจุอยู่ในส่วนที่เรียกว่า SDP (Session Description Protocol) ซึ่งฝังอยู่ใน INVITE เหมือนเอกสารแนบในอีเมล SDP บอกว่า “ฉันรองรับ codec อะไรบ้าง ส่งเสียงไปที่ไหน” ให้อีกฝั่งเลือก
ฉากที่ 2: IP PBX รับเรื่อง 100 Trying
IP PBX ได้รับ INVITE แล้วตอบกลับว่า 100 Trying ซึ่งแปลว่า “ได้รับแล้ว กำลังดำเนินการ” เหมือนพนักงานต้อนรับบอกว่า “รับทราบครับ กำลังตามหาคุณสมหญิงให้”
100 Trying เป็นข้อความชั่วคราว (provisional response) ที่บอกว่า “อย่าส่งมาอีก ฉันรับแล้ว” ป้องกันไม่ให้โทรศัพท์ของสมชายส่ง INVITE ซ้ำเพราะคิดว่าข้อความหาย
ฉากที่ 3: โทรศัพท์สมหญิงดัง 180 Ringing
IP PBX ส่ง INVITE ต่อไปยังโทรศัพท์ของสมหญิง โทรศัพท์ของสมหญิงเริ่มดัง แล้วตอบกลับว่า 180 Ringing ซึ่งแปลว่า “กำลังเรียกอยู่ รอสมหญิงรับสายสักครู่”
IP PBX ส่ง 180 Ringing กลับไปให้โทรศัพท์ของสมชาย ตอนนี้สมชายได้ยินเสียง “ตู้ด ตู้ด” ในหูฟัง เสียงนั้นอาจมาจากฝั่งสมหญิง (remote ringback tone) หรือโทรศัพท์ของสมชายสร้างขึ้นเอง (local ringback tone) ขึ้นอยู่กับการตั้งค่า
ฉากที่ 4: สมหญิงรับสาย 200 OK
สมหญิงยกหูรับสาย โทรศัพท์ของสมหญิงส่ง 200 OK กลับมา พร้อม SDP ที่บอกว่า “ฉันเลือก codec G.711 ส่งเสียงมาที่ IP 192.168.1.20 พอร์ต 20000”
200 OK เหมือนพนักงานต้อนรับบอกว่า “คุณสมหญิงว่างแล้ว เชิญนั่งคุยกันได้เลย”
ฉากที่ 5: ยืนยันรับทราบ ACK
โทรศัพท์ของสมชายได้รับ 200 OK แล้วส่ง ACK (Acknowledgement) กลับไป แปลว่า “รับทราบ เข้าใจแล้ว เริ่มคุยกันเลย”
ตั้งแต่ตอนนี้ SIP หยุดทำงาน ชั่วคราว เหมือนพนักงานต้อนรับเดินไปดูแลโต๊ะอื่น ปล่อยให้สมชายกับสมหญิงคุยกัน เสียงจริง ๆ จะวิ่งผ่าน RTP โดยตรงระหว่างโทรศัพท์ทั้งสองเครื่อง ไม่ผ่าน SIP อีก
ฉากที่ 6: คุยกันอยู่ RTP ทำงาน
ระหว่างที่คุยกัน เสียงของสมชายถูกเข้ารหัสด้วย G.711 แล้วส่งเป็นแพ็กเก็ต RTP จาก IP 192.168.1.10:10000 ไปยัง IP 192.168.1.20:20000 ในทิศตรงข้ามเสียงของสมหญิงก็วิ่งกลับมาเช่นกัน
SIP ไม่เกี่ยวข้องกับขั้นตอนนี้เลย RTP ทำงานของมันเอง ส่งแพ็กเก็ตเสียงขนาดเล็ก (20 มิลลิวินาทีต่อแพ็กเก็ต) อย่างต่อเนื่อง
ฉากที่ 7: สมชายวางสาย BYE
เมื่อสมชายกดวางสาย โทรศัพท์ของสมชายส่ง BYE ไปยังอีกฝั่ง แปลว่า “จบการสนทนา ขอปิด session”
โทรศัพท์ของสมหญิงตอบกลับ 200 OK (สำหรับ BYE) แปลว่า “รับทราบ ปิด session แล้ว” ทั้งสองฝั่งหยุดส่ง RTP ทุกอย่างจบลง
สรุปเรื่องเล่าเป็นลำดับ
สมชายกดโทร → INVITE → IP PBX ตอบ 100 Trying → โทรศัพท์สมหญิงดัง 180 Ringing → สมหญิงรับสาย 200 OK → สมชายยืนยัน ACK → คุยกันผ่าน RTP → สมชายวางสาย BYE → สมหญิงตอบรับ 200 OK
ทั้งหมดนี้เกิดขึ้นภายในเสี้ยววินาทีก่อนที่คุณจะได้ยินเสียงเรียก
3. SIP Messages คืออะไร
SIP messages เป็นคำสั่งที่ใช้สื่อสารให้เข้าใจกันระหว่างผู้โทรกับผู้รับสายโทรศัพท์ แบ่งออกเป็น 2 กลุ่มหลัก
กลุ่มที่ 1: Requests (คำขอ) ฝั่งผู้โทรส่งไป
INVITE “ขอเริ่มสาย” ส่งเมื่อกดโทร พร้อมข้อมูล SDP
ACK “รับทราบ” ส่งหลังจากได้รับ 200 OK เป็นการยืนยันว่าได้ข้อมูลครบแล้ว
BYE “ขอจบสาย” ส่งเมื่อกดวางสาย
CANCEL “ยกเลิก” ส่งเมื่อกดวางสายก่อนที่อีกฝั่งจะรับ (เช่น โทรแล้วเปลี่ยนใจ)
REGISTER “ลงทะเบียน” โทรศัพท์ VoIP ส่ง REGISTER ไปยัง IP PBX เพื่อบอกว่า “ฉันคือ extension 100 ฉันอยู่ที่ IP นี้ ส่งสายมาหาฉันได้ที่นี่” เหมือนพนักงานเข้ามาถึงออฟฟิศแล้วบอกว่า “ฉันมาแล้ว นั่งที่โต๊ะนี้”
OPTIONS “สอบถามความสามารถ” ส่งเพื่อถามว่าอีกฝั่งรองรับ codec อะไร ฟีเจอร์อะไร ยังออนไลน์อยู่หรือไม่ ใช้เป็น keep-alive เพื่อตรวจสอบว่าอีกฝั่งยังทำงานอยู่
กลุ่มที่ 2: Responses (การตอบกลับ) ฝั่งผู้รับตอบกลับ
SIP Responses ใช้ตัวเลข 3 หลัก คล้ายกับ HTTP status code ที่ใช้ในเว็บไซต์ (ใครเคยเห็น “404 Not Found” จะคุ้นเคย) แบ่งเป็น 6 กลุ่มตามตัวเลขหน้า:
1xx Provisional (ชั่วคราว): กำลังดำเนินการอยู่ ยังไม่จบ
- 100 Trying “กำลังหาทางไป”
- 180 Ringing “กำลังเรียก เสียงดังอยู่”
- 183 Session Progress “กำลังเตรียมการ อาจมีเสียง early media ส่งมาก่อน”
2xx Success (สำเร็จ): ทำได้แล้ว
- 200 OK “สำเร็จ” ใช้ได้กับทุก request (INVITE, BYE, REGISTER)
3xx Redirection (เปลี่ยนเส้นทาง): ไปหาที่อื่นแทน
- 301 Moved Permanently “ย้ายไปถาวร ติดต่อที่ใหม่”
- 302 Moved Temporarily “ย้ายไปชั่วคราว”
4xx Client Error (ฝั่งผู้โทรมีปัญหา): คำขอไม่ถูกต้อง
- 401 Unauthorized “ไม่ได้ยืนยันตัวตน ต้อง login ก่อน”
- 403 Forbidden “ไม่มีสิทธิ์”
- 404 Not Found “หาเบอร์นี้ไม่เจอ” (เหมือน 404 ของเว็บ)
- 486 Busy Here “สายไม่ว่าง กำลังคุยอยู่”
- 408 Request Timeout “รอนานเกินไป ไม่มีคนรับ”
5xx Server Error (ฝั่ง server มีปัญหา): ระบบมีปัญหา
- 500 Server Internal Error “เกิดข้อผิดพลาดภายใน”
- 503 Service Unavailable “ระบบไม่พร้อมให้บริการ”
6xx Global Failure (ทุกที่มีปัญหา): ไม่มีทางสำเร็จ
- 603 Decline “ปฏิเสธสาย” (อีกฝั่งกด reject)
ไม่ต้องจำทั้งหมด แค่รู้จัก INVITE, 200 OK, BYE, 180 Ringing, 486 Busy, 401 Unauthorized ก็เพียงพอสำหรับเข้าใจ SIP ในระดับพื้นฐาน
4. SIP Address “ที่อยู่” ของ VoIP
ระบบไปรษณีย์มีที่อยู่, อีเมลมี email address, SIP ก็มี SIP URI (Uniform Resource Identifier) เป็นที่อยู่ของตัวเอง
รูปแบบ: sip:ชื่อ@โดเมน เช่น sip:100@pbx.company.com
ดูเผิน ๆ จะคล้าย email address มาก แทนที่จะเป็น somchai@company.com กลายเป็น sip:100@pbx.company.com ความคล้ายนี้ไม่ใช่เรื่องบังเอิญ SIP ถูกออกแบบให้ใช้ง่ายเหมือนอีเมล
องค์ประกอบ:
sip: บอกว่าเป็น SIP protocol (ถ้าเข้ารหัสจะเป็น sips:) 100 คือ “ชื่อผู้ใช้” ในที่นี้คือหมายเลข extension @** คือตัวแบ่ง เหมือนอีเมล pbx.company.com** คือโดเมนของระบบ VoIP (IP PBX) ขององค์กร
ในทางปฏิบัติ ผู้ใช้ทั่วไปไม่ต้องพิมพ์ SIP URI แค่กดหมายเลข extension (เช่น 100) หรือเบอร์โทร (เช่น 021234567) แล้วระบบจะแปลงเป็น SIP URI ให้อัตโนมัติ
5. SIP กับ RTP การทำงานคนละหน้าที่แต่สอดคล้องกัน
หลายคนยังสับสนว่า SIP กับ RTP ต่างกันตรงไหน ลองคิดแบบนี้:
SIP = ผู้จัดการ (Signaling)
SIP ทำหน้าที่ “จัดการ” ทุกอย่างที่ไม่ใช่เสียง ได้แก่ เริ่มสาย (INVITE), เสียงเรียก (180), รับสาย (200 OK), วางสาย (BYE), โอนสาย (REFER), พักสาย (re-INVITE with hold SDP), ประชุมสาย (การ INVITE หลายคน)
SIP ส่งเป็น text (ข้อความอ่านได้) ทำให้ debug ง่าย เปิด Wireshark มาก็อ่าน SIP message ได้เลย ต่างจากโปรโตคอลเก่าอย่าง H.323 ที่ส่งเป็น binary (อ่านไม่ออก)
RTP = คนส่งของ (Media)
RTP ทำหน้าที่ “ส่งเสียงจริง ๆ” แพ็กเก็ตเสียง (และวิดีโอ) ที่วิ่งอย่างต่อเนื่องระหว่างสองฝั่ง RTP ไม่สนใจว่าสายเริ่มอย่างไร ใครโทรหาใคร มันแค่รับแพ็กเก็ตเสียงจากฝั่งหนึ่งแล้วส่งไปอีกฝั่ง ทำไปเรื่อย ๆ จนกว่า SIP จะบอกให้หยุด (BYE)
SIP + RTP ใช้ “ถนน” คนละเส้น
จุดที่สำคัญมาก: SIP กับ RTP ใช้ พอร์ตคนละช่วง และอาจวิ่ง คนละเส้นทาง บนเครือข่ายด้วยซ้ำ
SIP ใช้พอร์ต 5060 (ไม่เข้ารหัส) หรือ 5061 (เข้ารหัสด้วย TLS)
RTP ใช้พอร์ตในช่วง 10000–20000 (ตัวเลขจริงขึ้นอยู่กับการตั้งค่า) แต่ละสายใช้พอร์ตคู่หนึ่ง
ผลคือ: ถ้า firewall เปิดพอร์ต SIP (5060) แต่ไม่เปิดพอร์ต RTP (10000–20000) จะเกิดปัญหา “โทรติดแต่ไม่มีเสียง” SIP ทำงานได้ (สายเชื่อมต่อ) แต่ RTP ผ่านไม่ได้ (เสียงมาไม่ถึง) นี่คือปัญหาอันดับ 1 ของระบบ VoIP ที่พบบ่อยที่สุด
6. SDP คืออะไร
SDP (Session Description Protocol) คือข้อมูลที่ฝังอยู่ใน SIP INVITE (และ 200 OK) เพื่อบอกรายละเอียดว่าจะส่งเสียง (media) กันอย่างไร
SDP เหมือน “รายการสั่งอาหาร” ที่ลูกค้าส่งให้ร้าน:
ส่งอาหารไปที่ไหน IP address และพอร์ตที่จะรับ RTP (เช่น 192.168.1.10:10000)
อาหารแบบไหน Codec ที่รองรับ เรียงตามลำดับที่ชอบ (เช่น G.722 > G.711 > G.729)
ดื่มอะไร DTMF method ที่ใช้ (RFC 2833 หรือ SIP INFO)
ฝั่ง INVITE ส่ง SDP บอกว่า “ฉันรองรับ codec เหล่านี้” (offer) ฝั่ง 200 OK ตอบกลับว่า “ฉันเลือก codec นี้” (answer) กระบวนการนี้เรียกว่า Offer/Answer Model เมื่อตกลงกันได้ ทั้งสองฝั่งก็เริ่มส่ง RTP ตาม codec ที่เลือกไว้
7. REGISTER บอกระบบว่า “ฉันอยู่นี่”
ก่อนจะรับสายได้ โทรศัพท์ VoIP ต้อง “บอกระบบก่อนว่าฉันอยู่ที่ไหน” ทำผ่าน SIP REGISTER
ลองนึกภาพพนักงานมาถึงออฟฟิศ สิ่งแรกที่ทำคือบอก receptionist ว่า “ฉันมาแล้ว นั่งที่โต๊ะนี้ ส่งสายมาหาฉันได้เลย” นั่นคือ REGISTER
โทรศัพท์ VoIP ส่ง REGISTER ไปยัง IP PBX ทุก ๆ ช่วงเวลาหนึ่ง (เช่น ทุก 60 วินาที ถึง ทุก 3600 วินาที) เพื่อบอกว่า “ฉันยังอยู่นะ ส่งสายมาได้” ถ้า IP PBX ไม่ได้รับ REGISTER ตามกำหนด จะถือว่าโทรศัพท์เครื่องนั้นออฟไลน์แล้ว สายที่โทรมาจะถูกส่งไป voicemail แทน
REGISTER เป็น request ที่ถูกโจมตีบ่อยที่สุด แฮกเกอร์จะส่ง REGISTER ปลอมเพื่อพยายาม “ยึดครอง” extension ของคนอื่น (Registration Hijacking) หรือ brute force เดารหัสผ่าน นี่คือเหตุผลที่ต้องมี SBC ป้องกัน
8. SIP Trunk “สายโทรศัพท์แบบ IP” เชื่อมกับโลกภายนอก
ถ้า IP PBX คือ “ตู้ชุมสาย” ของบริษัท SIP Trunk ก็คือ “สายโทรศัพท์” ที่เชื่อมตู้ชุมสายกับเครือข่ายโทรศัพท์ภายนอก (PSTN) เพื่อให้โทรเข้า-ออกเบอร์โทรศัพท์ปกติได้
สมัยก่อน ใช้สาย ISDN PRI (สายทองแดงขนาดใหญ่ 1 เส้นให้ 30 ช่องสนทนา) หรือสาย analog (สายทองแดง 1 เส้นต่อ 1 สาย)
สมัยนี้ ใช้ SIP Trunk ซึ่งเป็น “สายโทรศัพท์เสมือน” ที่วิ่งผ่านอินเทอร์เน็ต ไม่ต้องมีสายทองแดงเลย ผู้ให้บริการ SIP Trunk จะจัดสรร concurrent channels (จำนวนสายพร้อมกัน) และ DID numbers (เบอร์โทรจากภายนอก) ให้ตามที่ตกลงกัน
ข้อดีของ SIP Trunk: เพิ่ม/ลดจำนวนสายได้ทันทีไม่ต้องลากสายใหม่, ค่าโทรถูกกว่า ISDN โดยเฉพาะสายต่างประเทศ, Failover ได้ง่าย (มี SIP Trunk 2 เจ้า ถ้าเจ้าแรกล่มก็สลับไปเจ้าที่สอง), รองรับ Direct Routing สำหรับ Microsoft Teams
จุดที่ต้องระวัง: SIP Trunk ที่วิ่งผ่านอินเทอร์เน็ตสาธารณะ ควรมี SBC (Session Border Controller) เป็นตัวป้องกัน ไม่ควรต่อ SIP Trunk เข้า IP PBX โดยตรงโดยไม่มี SBC
9. ทำไม SIP ถึงนิยมใช้มากกว่าเมื่อเทียบกับ H.323
ก่อนที่ SIP จะกลายเป็นมาตรฐานของ VoIP มีโปรโตคอลอื่นที่เคยเป็นที่นิยมคือ H.323 ซึ่งพัฒนาโดย ITU-T (หน่วยงานโทรคมนาคมระหว่างประเทศ) ในปี 1996
SIP ชนะ H.323 ใน 4 ด้านสำคัญ:
อ่านง่าย (text-based) SIP messages เขียนเป็นข้อความที่มนุษย์อ่านได้ (คล้าย HTTP) ทำให้ debug ง่าย เปิด Wireshark มาก็อ่าน SIP INVITE ได้เลย ส่วน H.323 ใช้ ASN.1/BER encoding ที่เป็น binary ต้องมีเครื่องมือเฉพาะทางในการถอดรหัส
เรียบง่ายกว่า SIP มีแค่ไม่กี่ message (INVITE, BYE, REGISTER ฯลฯ) ส่วน H.323 มีโปรโตคอลย่อยหลายตัว (H.225 สำหรับ call setup, H.245 สำหรับ capability exchange, RAS สำหรับ registration) ทำให้ซับซ้อนกว่ามาก
ยืดหยุ่นกว่า SIP ถูกออกแบบให้ขยายได้ง่าย ใช้ header แบบ HTTP ที่เพิ่มฟีเจอร์ใหม่ได้โดยไม่ต้องเปลี่ยนโครงสร้าง ส่วน H.323 เปลี่ยนแปลงยากเพราะใช้มาตรฐาน binary ที่เข้มงวด
ชุมชนนักพัฒนาใหญ่กว่า SIP เป็นมาตรฐานของ IETF (Internet Engineering Task Force) ชุมชนเดียวกับที่สร้าง HTTP, SMTP, DNS ทำให้นักพัฒนาเว็บและอินเทอร์เน็ตเรียนรู้ SIP ได้ง่าย มี open-source implementation มากมาย (Asterisk, FreeSWITCH, Kamailio)
ปัจจุบัน SIP กลายเป็นมาตรฐานหลักของ VoIP ทั่วโลก H.323 ยังมีใช้ในระบบเก่าบางระบบ แต่ไม่มีการพัฒนาใหม่อีกแล้ว
10. SIP สำหรับการสื่อสารด้านเสียงในปัจจุบัน ทำไมยังสำคัญในปี 2026
Microsoft Teams Direct Routing
องค์กรที่ต้องการใช้ Microsoft Teams เป็นระบบโทรศัพท์ ต้องเชื่อมต่อกับ PSTN ผ่าน SIP Trunk + SBC ที่ได้รับ certification จาก Microsoft SIP คือภาษาที่ SBC ใช้คุยกับ SIP Trunk provider ฝั่งหนึ่ง และคุยกับ Microsoft Teams อีกฝั่งหนึ่ง
SIP + WebRTC
WebRTC (ที่เราเขียนถึงในบทความก่อนหน้า) ส่งเสียงผ่านเบราว์เซอร์โดยไม่ต้องติดตั้งอะไร แต่เบื้องหลัง WebRTC Gateway หรือ SBC จะแปลง WebRTC ให้เป็น SIP เพื่อเชื่อมต่อเข้ากับระบบ VoIP ที่มีอยู่
SIP + Security
SIP ปกติส่งเป็น plaintext (ข้อความเปล่า) ไม่เข้ารหัส ใครก็ดักอ่านได้ ในยุคปัจจุบัน SIP over TLS (SIPS) คือมาตรฐานขั้นต่ำที่ควรใช้ เข้ารหัส signaling ด้วย TLS แล้วเข้ารหัส media ด้วย SRTP เพื่อปกป้องทั้งข้อมูลการโทรและเนื้อหาการสนทนา
สรุป
SIP คือโปรโตคอลที่ระบบ VoIP ใช้ในการจัดการสายโทรศัพท์ ตั้งแต่เริ่มโทร (INVITE), เสียงเรียก (180 Ringing), รับสาย (200 OK), จนถึงวางสาย (BYE) SIP ทำหน้าที่เป็น “ผู้จัดการ” ไม่ได้ส่งเสียง แต่จัดการให้ทุกอย่างพร้อมเพื่อให้ RTP ส่งเสียงได้
สิ่งที่ต้องจำ 3 ข้อ:
SIP จัดการ (signaling), RTP ส่งเสียง (media) ทั้งสองทำงานคนละหน้าที่ ใช้พอร์ตคนละช่วง
SIP URI คล้าย email address sip:100@pbx.company.com
SIP Trunk คือสายโทรศัพท์แบบ IP เชื่อม IP PBX กับเครือข่ายโทรศัพท์ภายนอก ควรมี SBC ป้องกันเสมอ