หน้า 1 จากทั้งหมด 1

SIP-I คืออะไร ใช้ทำอะไร

โพสต์โพสต์แล้ว: 21 ก.พ. 2010 20:23
โดย voip4share
SIP-I
SIP-I ย่อมาจาก Session Initiation Protocol with encapsulated ISUP ก็คือ SIP message แบบหนึ่งซึ่งเป็นส่วนขยายของ SIP เพื่อให้บรรจุข้อมูลของ ISUP ได้ ข้างในมีข้อมูลของ ISUP อยู่ ทำให้รับส่ง ISUP บนโครงข่าย IP ได้ (เดิมที ISUP รับส่งกันบนลิ้งค์แบบ E1 อ่านรายละเอียดของ ISUP ตอนท้ายของบทความนะครับ)

SIP-I เป็นโปรโตคอลหนึ่งซึ่งใช้เพื่อ สร้าง แก้ไขดัดแปลง และเทอร์มิเนต เชสชั่นการติดต่อสื่อสารโดยหลักการทำงานของโปรโตคอล ISUP รับส่งโดยใช้เทคโนโลยี SIP ไปบนโครงข่าย IP บริการที่สามารถใช้ SIP-I ได้แก่ เสียง ภาพ แฟ็กซ์ และข้อมูล (เช่นข้อความ Instant Messaging)

SIP-I จะเอาข้อมูลของ ISUP ใส่ไปไว้ใน Header ของ SIP Message แล้วส่งผ่าน SIP Trunk (ที่รองรับ SIP-I) อุปกรณ์ที่มันเชื่อมต่ออยู่ ส่วนมากจะใช้เชื่อมต่อระดับผู้ให้บริการรายใหญ่ๆครับ เช่น TOT, TRUE, TT&T, AIS, DTAC เป็นต้นเพื่อใช้ในโครงข่าย NGN (Netxt Generation Network) ของเขา

SIP-I จะคุยกับ SIP แท้ๆไม่ได้นะครับเพราะว่า Header มันไม่เหมือนกัน SIP-I ต้องคุยกับ SIP-I เท่านั้น ถ้าจะเอา SIP-I มาคุยกับ SIP แท้ๆจะต้องใช้อุปกรณ์แปลง เช่น Cisco PGW 2200 ซึ่งมีความสามารถเชื่อมต่อ ISUP กับ SIP-I ได้ สามารถเชื่อมต่อกับโปรโตคอล VoIP แบบอื่นก็ได้ไม่ว่าจะเป็น SIP, H.323 และเชื่อมต่อแบบ E1 ทั้ง PRI และ QSIG

แต่ SIP-T สามารถคุยกับ SIP Endpoint ได้ เพราะเขาออกแบบ SIP-T ให้ทำงานร่วมกับ SIP Endpoint ได้ เพียงแต่ SIP Endpoint มันจะโพรเซสเหมือนเป็น SIP แบบปกติเพราะว่ามันไม่รู้จัก ISUP นั่นเอง

SIP-I และ SIP-T เป็นโปรโตคอลที่มีคุณลักษณะคล้ายๆกัน ทั้งสองโปรโตคอลต่างก็ทำหน้าที่รับส่ง ISUP message ด้วยโปรโตคอล SIP ซึ่งจะช่วยให้เก็บรักษาข้อมูลเดิมของ ISUP ไว้ได้แบบสมบูรณ์ที่สุด ISUP มีใช้งานมานานกว่า 30 ปีแล้ว และมีอยู่หลายเวอร์ชั่นมาก (เรียกว่า variant) ทั้งในระดับการเชื่อมต่อระหว่างประเทศ และการเชื่อมต่อภายในประเทศของประเทศต่างๆ การรับส่ง ISUP ด้วย SIP Message แท้ๆจะทำให้ข้อมูลเดิมของ ISUP ไม่ครบถ้วน จึงมีการคิด SIP-I และ SIP-T ขึ้นมา SIP-I และ SIP-T เป็นของคนละค่ายนะครับ โดยที่ SIP-I เป็นมาตรฐานของ ITU-T ประกาศใช้เมื่อปี 2004 ส่วน SIP-T เป็นมาตรฐานของ IETF หมายเลข 3372 (RFC 3372)

SIP-T เกิดก่อน SIP-I นะครับ โดย ITU-T เอามาตรฐาน SIP-T ของ IETF มาปรับแต่งให้เป็นเวอร์ชั่นของตัวเองแล้วตั้งชื่อใหม่เป็น SIP-I (ชื่อตามมาตรฐานจริงของ SIP-I คือ ITU-T Q.1912.5 นะครับ) ซึ่งนี้ก็คือสาเหตุที่สองโปรโตคอลนี้เกือบจะเหมือนกันเป๊ะๆ

สนใจอยากรู้รายละเอียดของ ITU-T Q.1912.5 SIP-I ก็ดาวน์โหลดเอกสารนี้อ่านนะครับ รับรองกระจ่างแน่ๆ
SIP-I-T-REC-Q.1912.5-200403-I.pdf
SIP-I Standard
(1.57 MiB) ดาวน์โหลด 1191 ครั้ง


รายละเอียดเกี่ยวกับ ISUP
ISUP ย่อมาจาก ISDN User Part เป็นโปรโตคอลหนึ่งใน Signaling System #7 (SS7) ทำงานที่ Layer 3 หรือ Network Layer ของ OSI Reference Model ซึ่งจะทำหน้าที่ Routing หรือหาเส้นทางในการเชื่อมต่อ ISUP ใช้เพื่อเซ็ตอัพการโทร (Call Setup) ไปยังเลขหมายปลายทางในโครงข่ายโทรศัพท์สาธารณะ (PSTN) หน่วยงานแรกที่คิดค้นโปรโตคอล ISUP คือ ITU-T ครับ
ss7-protocol-suite.png
SS7 Protocol Suite
ss7-protocol-suite.png (5.62 KiB) เปิดดู 12297 ครั้ง

ขั้นตอนการทำงานของ ISUP
เราลองมาดูขั้นตอนการโทรไปเบอร์ปลายทางกันครับ ไม่มีรูปให้ดูนะครับ นึกตามก็แล้วกัน
เมื่อเรายกหูโทรศัพท์ขึ้นมาแล้วก็กดเบอร์ปลายทาง เราซึ่งเปรียบเสมือน Subscriber (หรือผู้ใช้งาน หรือผู้เช่า แล้วแต่จะเรียกครับ) หนึ่ง และปลายทางก็เป็นอีก Subscriber หนึ่ง จะมีชุมสายโทรศัพท์หลายๆชุมสายเข้ามาเกี่ยวข้อง อาจจะเป็นชุมสายภายในประเทศอย่างเดียว หรือชุมสายภายในประเทศร่วมกับชุมสายระหว่างประเทศ ก็ได้ ถ้าเบอร์ปลายทางอยู่ต่างประเทศ เพื่อยินยอมให้ call ถูกเซ็ตอัพอย่างถูกต้อง (โดยที่ชุมสายรองรับ ISUP) ชุมสายจะส่งข้อมูลที่เกี่ยวข้องกับการโทร เช่นเลขหมายปลายทาง (called party number) หรือเลขหมายต้นทาง (calling party number) ไปยังชุมสายต่อไปโดยใช้ ISUP messages ชุมสายโทรศัพท์อาจจะถูกเชื่อมต่อกันด้วยทรั้งค์ E1 Trunks ซึ่งเป็นเส้นทางขนส่งเสียงพูดระหว่างต้นทางและปลายทาง ซึ่งทรั้งค์เหล่านี้ถูกแบ่งแยกออกเป็นแชนแนลหรือไทม์สล๊อต (Timeslots) มีความเร็ว 64 Kbps/Timeslot และ Timeslot หนึ่งสามารถรับส่งได้ครั้งละ 1 call เท่านั้น แต่ละ Timeslot ระหว่างชุมสายของชุมสายจะมีค่าประจำตัวค่าหนึ่งเรียกว่า Circuit Identification Code (CID) ที่ไม่ซ้ำกัน ค่านี้จะถูกรวมอยู่ใน ISUP message ด้วย ชุมสายจะใช้ข้อมูลนี้ร่วมกับข้อมูล Signaling ที่รับเข้ามา (เช่น Called Party Number) เพื่อหาว่าจะใช้ Outbound CIC ไหนมาเชื่อมต่อกับ Inbound CICs เพื่อเป็นเส้นทางให้เสียงพูดวิ่งผ่าน

นอกจากจะใช้ ISUP เพื่อรับส่งข้อมูลที่เกี่ยวข้องกับการโทรแล้วนะครับ ISUP ยังใช้เพื่อแลกเปลี่ยนข้อมูลเกี่ยวกับสถานะและการจัดการกับ Timeslot ที่ยังว่างอยู่ ในกรณีที่มี Call Setup ส่งมาจากชุมสายอื่นแต่ชุมสายนี้มันไม่มี Outbound CIC ว่าง มันก็จะส่งข้อความกลับไปยังชุมมสายที่ส่งมาเพื่อขอ Release เพื่อให้ชุมสายนั้นหาทางส่งออกไปทางอื่นแทน

ISUP varients
อย่างที่ผมได้พูดถึงไว้ในตอนต้นของบทความครับว่าในโลกนี้มี ISUP อยู่หลายแบบครับ เวอร์ชั่นต้นฉบับคือฉบับที่ ITU-T ทำขึ้นมา หน่วยงาน ETSI (หน่วยงานที่กำหนดเสป็คของการสื่อสารโทรคมนาคมในทวีปยุโรป) ก็ได้ทำ ISUP เวอร์ชั่นของตัวเองมาใช้งานซึ่งเกือบจะเหมือนกับเวอร์ชั่นเดิมของ ITU-T ทั้งเวอร์ชั่นของ ITU-T และ ETSI ได้ถูกใช้เชื่อมต่อชุมสายโทรศัพท์ระหว่างประเทศและกลายเป็น ISUP ต้นแบบให้แก่ประเทศต่างๆ จึงเกิดเป็น ISUP variant หรือเวอร์ชั่นของประเทศต่างๆแยกย่อยลงมาอีก หลายๆประเทศเอา ISUP ของ ITU-T ไปแก้ไขให้เป็น ISUP ของประเทศตัวเองเพื่อใช้เชื่อมต่อชุมสายโทรศัพท์ภายในประเทศ ตัวอย่างในประเทศสหรัฐอเมริกาก็มีหน่วยงาน ANSI สร้าง ISUP มาใช้ใน ประเทศแถบทวีปอเมริกาเหนือ มีความแตกต่างจาก ISUP ของ ITU-T เล็กน้อย

เวอร์ชั่นต้นแบบ ตามเสป็คของ ITU-T
1984 - ISUP Red Book
1988 - ISUP Blue Book
1991 - ISUP Q.767
1992 - ISUP'92 White Book (segmentation, compatibility, new supplementary services)
1997 - ISUP'97 (new procedures, IN CS1, new supplementary services)

ISUP Messages ประเภทต่างๆ
ISUP Message ประกอบด้วยเฮดเดอร์ขนาดคงที่ซึ่งภายในมีค่า Circuit Identification Code (CIC) และ ISUP Message type ตามด้วย Fixed-Length Part และ Optional Variable-Length part ซึ่งมีค่าขึ้นอยู่กับ Message type ที่กำลังส่ง เราสามารถส่ง ISUP message โดยใช้วิธีการของ Message Transfer Part หรือใช้ Signalling Connnection Control Part (แต่มีใช้ไม่บ่อยเท่าวิธีแรก) โดย Message เหล่านี้ถูกส่งไปใน Stage ต่างๆทั้งตอนทำคอลเซ็ตอัพและตอนวางสาย

ISUP Message แบบต่างๆ
Message ที่ใช้กันมากได้แก่
1. Initial Address Message (IAM)
เป็นข้อความแรกที่ส่งเพื่อแจ้งแก่ชุมสายถัดไปว่ามี call ที่ต้องถูกสร้างบน CIC ที่บรรจุอยู่ในข้อความ ในข้อความก็จะมีเบอร์ต้นทาง เบอร์ปลายทาง ประเภทของบริการ (เสียง หรือข้อมูล) และพารามิเตอร์ออปชั่นอื่นๆอีกจำนวนหนึ่ง
2. Subsequent Address Message (SAM)
ใช้ในกรณีที่เบอร์ปลายทางใน IAM ยังไม่สมบูรณ์ คือมีเบอร์ปลายทางแต่ยังไม่ครบหลัก ซึ่งจะมีการส่ง SAM หนึ่งครั้งหรือหลายครั้งเพื่อส่งตัวเลขที่เหลือมาเพิ่มเติมอีกจนครบ
3. Address Complete Message (ACM)
เป็นข้อความที่ชุมสายปลายทาง (จริงๆ) ชุมสายที่เบอร์ปลายทางต่ออยู่ ส่งกลับมาเมื่อติดต่อกับเบอร์ปลายทางได้และเครื่องโทรศัพท์ปลายทางกำลังดังอยู่ แต่ยังไม่รับสาย
4. Answer Message (ANM)
ชุมสายปลายทางส่งย้อนกลับมาเมื่อปลายทางรับสาย และโดยปกติก็จะเริ่มคิดเงินตั้งแต่ตอนนี้เป็นต้นไปจนกว่าจะวางสาย
5. Release (REL)
ส่งเพื่อขอเคลียร์สายเมื่อฝั่งใดฝั่งหนึ่งวางสาย
6. Release Complete (RLC)
เป็นการตอบรับข้อความ Release จากนั้น Timeslot ก็จะว่างพร้อมให้บริการได้อีกครั้ง นอกจากนั้นยังอาจมีการส่ง RLC (โดยที่ไม่ได้รับ REL มาก่อน) ถ้าชุมสายปลายทางพบว่าไม่สามารถทำให้ Call สมบูรณ์ได้ และชุมสายสุดท้ายก็จะส่ง Release Cause Value มาด้วยเพื่อบอกสาเหตุที่ไม่สามารถเชื่อมต่อไปยังปลายทางได้ เช่น "User Busy"

ตัวอย่าง Call Flow
มาดูตัวอย่างการโฟวล์ของ Call แบบง่ายๆกันครับ ซึ่งมีสวิตซ์แค่ 2 ตัวแลกเปลี่ยน ISUP message กัน
basic-isup-call-flow.png
ISUP Call Flows
basic-isup-call-flow.png (10.59 KiB) เปิดดู 12297 ครั้ง

รายละเอียดของ call flow อธิบายไว้ไว้ในข้อกำหนด ITU-T Recommendation Q.784.1
T-REC-Q.784.1-199607-I.pdf
ITU-T Recommendation Q.784.1
(556.62 KiB) ดาวน์โหลด 646 ครั้ง


รูปแบบ Message ของ ISUP
Signaling Information Field (SIF) สำหรับทุกๆ ISUP Message Signal Units (MSU) มีส่วนประกอบดังต่อไปนี้
- Routing Label
- Circuit Identification Code
- Message Type
- Mandatory Fixed Part
- Mandatory Variable Part
- Optional Part
isup-sif-header.png
ISUP Header
isup-sif-header.png (10.63 KiB) เปิดดู 12297 ครั้ง

Routing Label
แสดง Point Codes ของโหนดต้นทางและปลายทางในโครงข่าย มันยังมีฟิลด์ Signaling Link Selection ซึ่งถูกใช้เพื่อเลือกหนึ่งเร้าท์จากหลายๆเร้าท์ที่ MSU สามารถใช้เชื่อมต่อระหว่าง 2 โหนดใดๆ
Circuit Identification Code
ถูกใช้เพื่อระบุว่าจะใช้ Trunk ไหนระหว่าง 2 ชุมสาย ในการรับส่งคอล ในบางเวอร์ชั่นของ ANSI ISUP จะกำหนดว่า CIC สามารถมีบิต Significant 14 บิตแทนที่จะเป็น 12 บิตอย่างในรูป
Message Type
แสดงชนิดของ ISUP message การปรากฏและรูปแบบของอีก 3 ส่วนที่ยังเหลือถูกกำหนดด้วย message type นี้
Mandatory Fixed Part
ถ้ามีก็จะบรรจุ Mandatory Fixed-Length Parameter ที่เกี่ยวข้องกับ Message Type
Mandatory Variable Part
ถ้ามีก็จะบรรจุ Mandatory Variable-Length Parameters ที่เกี่ยวข้องกับ Message Type
Optional Part
ถ้ามี ภายในก็จะมี Optional Parameters ที่ถูกยินยอมให้รวมเข้าไปใน Message Type

เมื่อ ISUP ถูกส่งโดยใช้ Signaling Connection Control Part (SCCP) จะมีการเอา ISUP ไปใส่ไว้ในส่วนที่เรียกว่า User Data parameter (NSDU) ของ SCCP ซึ่งจะมีเพียงแค่ 4 ฟิล์ดสุดท้ายเท่านั้น ได้แก่ Message Type, Mandatory Fixed Part, Mandatory Variable Part และ Optional Part ส่วน Routing Label และ Circuit Identification Code จะถูกตัดทิ้งไป

Re: SIP-I คืออะไร ใช้ทำอะไร

โพสต์โพสต์แล้ว: 21 ส.ค. 2014 17:59
โดย dddjae1
ขอบคุณค้าบ กำลังศึกษาเรื่องนี้พอดีด้วย พอดีกำลังจะเปลี่ยนถ่ายเทคโนโลยี มาเป็น SIP ค้าบ :D