วันอังคารที่ 15 กันยายน พ.ศ. 2552

เริ่มรู้จักโปรโตคอล SIP กันก่อน

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 ประเภท คือ

  1. SIP Requests Messages จะเป็นข้อความที่ส่งจาก sip client เป็นผู้ที่สร้างข้อความร้องขอ ซึ่งโดยทั่วไปจะมี 6 ข้อความ ตามอ้างอิงของ RFC 3261 ดังนี้

SIP Requests Messages

ความหมาย

INVITE

เป็นข้อความเชิญชวนให้ผู้ร่วมสนทนาหรือติดต่อสื่อสาร

ACK

เป็นข้อความตอบรับจากผู้สนทนา

OPTION

เป็นข้อความที่ใช้สอบถามถึงความสามารถจอง SIP server และ client

BYE

เป็นข้อความสิ้นสุดการติดต่อสื่อสาร

CANCEL

เป็นข้อความยกเลิกการติดต่อสื่อสาร

REGISTER

เป็นข้อความในการลงทะเบียนกับ SIP server

  1. 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 คือ ถูกปฏิเสธ