SIP (Session Initiation Protocol) Introduction
เริ่มแรกก็ขออธิบายเกี่ยวกับประวัติของ SIP คร่าวๆก่อนแล้วกันนะครับ โดย SIP นี้เป็นมาตรฐานที่รับส่งข้อมูลกับเครือข่าย VOIP ที่ได้รับความนิยมมากที่สุดในปัจจุบัน โปรโตคอล SIP เริ่มพัฒนาเมื่อปี ค.ศ.1996 ถูกออกแบบโดย Henning Schukzrinne แห่งมหาวิทยาลัย Columbia University และอีกท่านก็คือ Mark Handley แห่ง University College London เมื่อปี 2000 ได้มีการประกาศเป็นมาตรฐาน RFC 2361 โดยกลุ่ม IETF SIP Working Group มีวัตถุประสงค์เพื่อใช้ในติดต่อสื่อสารระหว่างอุปกรณ์ มัลติมีเดีย ปกติ SIP จะใช้งานโปรโตคอลที่พอร์ต TCP,UDP ที่ 5060 ในการส่งสัญญาณลงทะเบียนและมีการส่งสัญญาณเสียงโดยใช้ UDP ระหว่าง 10000-20000 (เมื่อใช้กับระบบ Asterisk)
SIP Message
ต่อมาในหัวข้อนี้เรามาดูกันว่าในการติดต่อสื่อสารกัน ว่าใน SIP Message ที่ส่งไปใน network มีการส่งข้อมูลอะไรกันบ้าง โดยการอธิบายหัวข้อนี้จะใช้การอธิบายโดย การทดลอง จับ packet ด้วย Wireshark แล้วก็มาวิเคราะห์ว่า message ที่ส่งหากันคืออะไร
โดยก็ขออธิบายกันก่อนว่า SIP Message มีอะไรบ้างเพื่อให้รู้คร่าวๆก่อนที่จะไปจับ packet ด้วย wireshark โดย SIP Message สามารถแบ่งได้เป็น 2 ประเภท คือ
- SIP Requests Messages จะเป็นข้อความที่ส่งจาก sip client เป็นผู้ที่สร้างข้อความร้องขอ ซึ่งโดยทั่วไปจะมี 6 ข้อความ ตามอ้างอิงของ RFC 3261 ดังนี้
SIP Requests Messages | ความหมาย |
INVITE | เป็นข้อความเชิญชวนให้ผู้ร่วมสนทนาหรือติดต่อสื่อสาร |
ACK | เป็นข้อความตอบรับจากผู้สนทนา |
OPTION | เป็นข้อความที่ใช้สอบถามถึงความสามารถจอง SIP server และ client |
BYE | เป็นข้อความสิ้นสุดการติดต่อสื่อสาร |
CANCEL | เป็นข้อความยกเลิกการติดต่อสื่อสาร |
REGISTER | เป็นข้อความในการลงทะเบียนกับ SIP server |
- SIP Response Message เป็นข้อความตอบรับจาก SIP Server ที่ใช้ตอบสนองเมื่อมี SIP Request Message ส่งเข้ามา ซึ่งโดยปกติแล้ว สามารถแบ่งออกได้เป็น 6 กลุ่ม
SIP Response Messages | ความหมาย |
1XX | Information Messages |
2XX | Successful Answers |
3XX | Redirection Answers |
4XX | Method Failures |
5XX | Server Failures |
6XX | Global Failures |
ตัวอย่างของ Response Message เช่น
200 OK คือ ติดต่อได้สำเร็จ
180 Ringing คือ บอกให้ทราบว่ากำลังรอการติดต่อจาก SIP Client ปลายทาง
400 Bad Request คือ ความต้องการผิดพลาด
401 Unauthorized คือ การไม่ได้รับสิทธิ์ในการลงทะเบียน
403 Forbidden คือ ไม่อนุญาติ
404 Not Found คือ ไม่พบ (ผู้ใช้งาน)
408 Request Timeout คือ หมดเวลาในการส่งการร้องขอ
500 Server internal Error เกิดความผิดพลาดจากภายใน server
502 Bad Gateway คือ Gateway ผิดพลาด
ุ600 Busy Everywhere คือ ไม่ว่าง
603 Decline คือ ถูกปฏิเสธ