SIP - การส่งข้อความ

ข้อความ SIP มีสองประเภท - requests และ responses.

  • บรรทัดเปิดของคำร้องขอประกอบด้วยวิธีการที่กำหนดคำร้องขอและ Request-URI ที่กำหนดตำแหน่งที่จะส่งคำร้องขอ

  • ในทำนองเดียวกันบรรทัดเปิดของการตอบกลับมีรหัสตอบกลับ

ขอวิธีการ

SIP requestsคือรหัสที่ใช้สร้างการสื่อสาร เพื่อเสริมพวกเขามีSIP responses ซึ่งโดยทั่วไปจะระบุว่าคำขอสำเร็จหรือล้มเหลว

คำขอ SIP เหล่านี้ซึ่งเรียกว่า METHODS ทำให้ข้อความ SIP สามารถทำงานได้

  • วิธีการสามารถถือได้ว่าเป็นคำขอ SIP เนื่องจากพวกเขาร้องขอการดำเนินการเฉพาะที่จะดำเนินการโดยตัวแทนผู้ใช้หรือเซิร์ฟเวอร์อื่น

  • วิธีการแบ่งออกเป็นสองประเภท -

    • วิธีการหลัก

    • วิธีการขยาย

วิธีการหลัก

มีหกวิธีหลักตามที่กล่าวไว้ด้านล่าง

เชิญ

INVITE ใช้เพื่อเริ่มเซสชันกับตัวแทนผู้ใช้ กล่าวอีกนัยหนึ่งคือใช้เมธอด INVITE เพื่อสร้างเซสชันสื่อระหว่างตัวแทนผู้ใช้

  • INVITE สามารถมีข้อมูลสื่อของผู้โทรในเนื้อหาข้อความ

  • เซสชันจะได้รับการพิจารณาจัดตั้งขึ้นหาก INVITE ได้รับการตอบกลับสำเร็จ (2xx) หรือมีการส่ง ACK

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

  • คำเชิญที่ส่งภายในกล่องโต้ตอบที่สร้างขึ้นเรียกว่าไฟล์ re-INVITE.

  • Re-INVITE ใช้เพื่อเปลี่ยนลักษณะของเซสชันหรือรีเฟรชสถานะของกล่องโต้ตอบ

เชิญตัวอย่าง

รหัสต่อไปนี้แสดงวิธีการใช้ INVITE

INVITE sips:[email protected] SIP/2.0 
   Via: SIP/2.0/TLS client.ANC.com:5061;branch = z9hG4bK74bf9 
   Max-Forwards: 70 
   From: Alice<sips:[email protected]>;tag = 1234567 
   To: Bob<sips:[email protected]>
   Call-ID: [email protected]  
   CSeq: 1 INVITE 
   Contact: <sips:[email protected]> 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY 
   Supported: replaces 
   Content-Type: application/sdp 
   Content-Length: ...  
   
   v = 0 
   o = Alice 2890844526 2890844526 IN IP4 client.ANC.com 
   s = Session SDP 
   c = IN IP4 client.ANC.com 
   t = 3034423619 0 
   m = audio 49170 RTP/AVP 0 
   a = rtpmap:0 PCMU/8000

บาย

BYE เป็นวิธีที่ใช้ในการยุติเซสชันที่กำหนดขึ้น นี่คือคำขอ SIP ที่สามารถส่งโดยผู้โทรหรือผู้รับสายเพื่อสิ้นสุดเซสชัน

  • ไม่สามารถส่งโดยพร็อกซีเซิร์ฟเวอร์

  • โดยปกติคำขอ BYE จะกำหนดเส้นทางตั้งแต่ต้นจนจบโดยข้ามพร็อกซีเซิร์ฟเวอร์

  • ไม่สามารถส่ง BYE ไปยัง INVITE ที่รอดำเนินการหรือเซสชันที่ยังไม่ได้สร้าง

ลงทะเบียน

คำขอ REGISTER ดำเนินการลงทะเบียนตัวแทนผู้ใช้ คำร้องขอนี้ถูกส่งโดยตัวแทนผู้ใช้ไปยังเซิร์ฟเวอร์ผู้รับจดทะเบียน

  • คำขอ REGISTER อาจถูกส่งต่อหรือพร็อกซีจนกว่าจะถึงผู้รับจดทะเบียนที่มีสิทธิ์ของโดเมนที่ระบุ

  • มันมี AOR (Address of Record) ในไฟล์ To ส่วนหัวของผู้ใช้ที่กำลังลงทะเบียน

  • คำขอลงทะเบียนประกอบด้วยช่วงเวลา (3600 วินาที)

  • ตัวแทนผู้ใช้รายหนึ่งสามารถส่งคำขอ REGISTER ในนามของตัวแทนผู้ใช้อื่น นี้เรียกว่าthird-party registration. ที่นี่From แท็กมี URI ของบุคคลที่ส่งการลงทะเบียนในนามของบุคคลที่ระบุไว้ใน To หัวข้อ.

ยกเลิก

CANCEL ใช้เพื่อยุติเซสชันที่ไม่ได้สร้างขึ้น ตัวแทนผู้ใช้ใช้คำขอนี้เพื่อยกเลิกการพยายามโทรที่รอดำเนินการก่อนหน้านี้

  • สามารถส่งโดยตัวแทนผู้ใช้หรือพร็อกซีเซิร์ฟเวอร์

  • ยกเลิกคือไฟล์ hop by hop การร้องขอกล่าวคือมันผ่านองค์ประกอบระหว่างตัวแทนผู้ใช้และรับการตอบสนองที่สร้างโดยองค์ประกอบสถานะถัดไป

ACK

ACK ใช้เพื่อรับทราบคำตอบสุดท้ายของวิธีการเชิญ ACK ไปในทิศทางของ INVITE.ACK เสมออาจมีเนื้อหา SDP (ลักษณะของสื่อ) หากไม่มีใน INVITE

  • ไม่สามารถใช้ ACK เพื่อแก้ไขคำอธิบายสื่อที่ส่งไปแล้วใน INVITE เริ่มต้น

  • พร็อกซีที่มีสถานะที่ได้รับ ACK ต้องพิจารณาว่าควรส่งต่อ ACK แบบดาวน์สตรีมไปยังพร็อกซีหรือตัวแทนผู้ใช้อื่นหรือไม่

  • สำหรับการตอบกลับ 2xx ครั้ง ACK จะสิ้นสุดลง แต่สำหรับการตอบกลับสุดท้ายอื่น ๆ ทั้งหมดจะทำงานแบบกระโดดต่อฮอปเมื่อมีพร็อกซีที่เกี่ยวข้อง

ตัวเลือก

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

วิธีการขยาย

ติดตาม

SUBSCRIBE ถูกใช้โดยตัวแทนผู้ใช้เพื่อสร้างการสมัครสมาชิกเพื่อวัตถุประสงค์ในการรับการแจ้งเตือนเกี่ยวกับเหตุการณ์เฉพาะ

  • ประกอบด้วยไฟล์ Expires ฟิลด์ส่วนหัวที่ระบุระยะเวลาของการสมัครสมาชิก

  • หลังจากระยะเวลาผ่านไปการสมัครสมาชิกจะสิ้นสุดลงโดยอัตโนมัติ

  • การสมัครสมาชิกสร้างกล่องโต้ตอบระหว่างตัวแทนผู้ใช้

  • คุณสามารถสมัครใหม่ได้อีกครั้งโดยส่ง SUBSCRIBE อื่นภายในกล่องโต้ตอบก่อนถึงเวลาหมดอายุ

  • จะได้รับ 200 OK สำหรับการสมัครสมาชิกจาก User

  • ผู้ใช้สามารถยกเลิกการสมัครได้โดยการส่งวิธีการสมัครอื่นที่มีค่าหมดอายุเป็น 0 (ศูนย์)

แจ้ง

ตัวแทนผู้ใช้ใช้ NOTIFY เพื่อรับเหตุการณ์เฉพาะ โดยปกติการแจ้งเตือนจะทริกเกอร์ภายในกล่องโต้ตอบเมื่อมีการสมัครสมาชิกระหว่างผู้สมัครสมาชิกและผู้แจ้ง

  • ทุกการแจ้งเตือนจะได้รับการตอบสนอง 200 ตกลงหากได้รับการแจ้งเตือน

  • NOTIFY มีไฟล์ Event ฟิลด์ส่วนหัวระบุเหตุการณ์และไฟล์ subscriptionstate ฟิลด์ส่วนหัวที่ระบุสถานะปัจจุบันของการสมัครสมาชิก

  • การแจ้งเตือนจะถูกส่งเสมอเมื่อเริ่มต้นและสิ้นสุดการสมัครสมาชิก

เผยแพร่

PUBLISH ถูกใช้โดยตัวแทนผู้ใช้เพื่อส่งข้อมูลสถานะเหตุการณ์ไปยังเซิร์ฟเวอร์

  • PUBLISH มีประโยชน์มากเมื่อมีแหล่งข้อมูลเหตุการณ์หลายแหล่ง

  • คำขอเผยแพร่คล้ายกับการแจ้งเตือนยกเว้นว่าจะไม่ถูกส่งในกล่องโต้ตอบ

  • คำขอเผยแพร่ต้องมีไฟล์ Expires ฟิลด์ส่วนหัวและ Min-Expires ฟิลด์ส่วนหัว

อ้างอิง

REFER ถูกใช้โดยตัวแทนผู้ใช้เพื่ออ้างถึงตัวแทนผู้ใช้อื่นเพื่อเข้าถึง URI สำหรับไดอะล็อก

  • REFER ต้องมีไฟล์ Refer-Toหัวข้อ. นี่เป็นส่วนหัวที่จำเป็นสำหรับการอ้างอิง

  • REFER สามารถส่งภายในหรือภายนอกกล่องโต้ตอบ

  • 202 Accepted จะทริกเกอร์การร้องขอการอ้างอิงซึ่งระบุว่าตัวแทนผู้ใช้รายอื่นยอมรับการอ้างอิง

ข้อมูล

เอเจนต์ผู้ใช้ใช้ INFO เพื่อส่งข้อมูลการส่งสัญญาณการโทรไปยังตัวแทนผู้ใช้รายอื่นซึ่งมีการสร้างเซสชันสื่อ

  • นี่คือคำขอแบบ end-to-end

  • พร็อกซีจะส่งต่อคำขอ INFO เสมอ

อัปเดต

UPDATE ใช้เพื่อแก้ไขสถานะของเซสชันหากไม่ได้สร้างเซสชัน ผู้ใช้สามารถเปลี่ยน Codec ด้วย UPDATE

หากมีการสร้างเซสชันจะใช้การเชิญซ้ำเพื่อเปลี่ยนแปลง / อัปเดตเซสชัน

PRACK

PRACK ใช้เพื่อรับทราบการรับโอนการตอบสนองชั่วคราวที่เชื่อถือได้ (1XX)

  • โดยทั่วไป PRACK ถูกสร้างขึ้นโดยไคลเอนต์เมื่อได้รับการตอบสนองชั่วคราวที่มีไฟล์ RSeq หมายเลขลำดับที่เชื่อถือได้และก supported:100rel หัวข้อ.

  • PRACK มีค่า (RSeq + CSeq) ในรูปแบบ rack หัวข้อ.

  • วิธีการ PRACK ใช้กับการตอบกลับชั่วคราวทั้งหมดยกเว้นการตอบกลับแบบพยายาม 100 ครั้งซึ่งไม่มีการขนส่งอย่างน่าเชื่อถือ

  • PRACK อาจมีเนื้อหาของข้อความ อาจใช้เพื่อแลกเปลี่ยนข้อเสนอ / คำตอบ

ข้อความ

ใช้เพื่อส่งข้อความโต้ตอบแบบทันทีโดยใช้ SIP โดยปกติ IM จะประกอบด้วยข้อความสั้น ๆ ที่แลกเปลี่ยนกันแบบเรียลไทม์โดยผู้เข้าร่วมสนทนาด้วยข้อความ

  • MESSAGE สามารถส่งภายในกล่องโต้ตอบหรือภายนอกกล่องโต้ตอบ

  • เนื้อหาของ MESSAGE จะอยู่ในเนื้อหาของข้อความเป็นไฟล์ MIME ไฟล์แนบ.

  • 200 OK โดยปกติจะได้รับการตอบกลับเพื่อระบุว่าข้อความถูกส่งไปที่ปลายทางแล้ว