บทความนี้ต้องการตรวจสอบความถูกต้องจากผู้เชี่ยวชาญในเรื่องนั้น ๆ โปรดเพิ่มพารามิเตอร์ reason หรือ talk ลงในแม่แบบนี้เพื่ออธิบายปัญหาของบทความ |
Session Initiation Protocol (SIP) คือ โพรโทคอลหรือเกณฑ์วิธีเพื่อใช้งานด้านมัลติมีเดีย เช่น การส่งข้อมูลเสียงหรือวิดีโอบนเครือข่าย IP ได้รับการพัฒนาโดย IETF และ SIP ถือว่าเป็นโพรโทคอลที่เหนือกว่าโพรโทคอลอื่นในแง่ของการที่สามารถปรับใช้และนำไปพัฒนาได้ง่ายกว่า โดยตัวโพรโทคอลเองมีความสามารถในการสร้าง (create) , ปรับ (modify) และ ยกเลิก (terminate) การติดต่อสื่อสารระหว่างโหนดที่เป็นแบบหนึ่งต่อหนึ่ง (unicast) หรือแบบกลุ่ม (multicast) ได้ ซึ่ง SIP สามารถปรับเปลี่ยนที่อยู่ (address), หมายเลขพอร์ต, เพิ่มสายผู้สนทนา และสามารถเพิ่มหรือลดการส่งข้อมูลมิเดีย (media stream) บางประเภทได้ ตัวอย่างของโปรแกรมประยุกต์ (application) ที่อาศัย SIP ในการเชื่อมต่อ เช่น การประชุมด้วยวิดีโอ (video conferencing), การกระจายข้อมูลภาพและเสียง (streaming multimedia distribution), การส่งข้อความด่วน (instant messaging), การส่งไฟล์ (file transfer) และ เกมออนไลน์ เป็นต้น
SIP ถูกออกแบบโดยนาย Henning Schulzrinne และนาย Mark Handly ตั้งแต่ปี ค.ศ. 1996 โดยเวอร์ชันล่าสุดถูกประกาศใน RFC 3261 โดย IETF Network Working Group และในปี ค.ศ. 2000 SIP ได้ถูกใช้เป็นส่วนหนึ่งของระบบ IP Multimedia Subsystem (IMS) ของ 3GPP ซึ่งมาตรฐานการส่งสัญญาณมัลติมีเดียแบบ IP-based บนระบบ โทรศัพท์เคลื่อนที่ (cellular) อีกด้วย
โพรโทคอล SIP ทำงานอยู่บน Application Layer และถูกออกแบบโดยไม่คำนึงถึงชนิดของ Transport Layer ที่ใช้ในการส่งข้อมูล SIP สามารถทำงานบน Transmision Control Protocol (TCP), User Datagram Protocol (UDP), หรือ Stream Control Transmission Protocol (SCTP) ได้ โพรโทคอล SIP ทำงานในลักษณะ text-based ซึ่งมีลักษณะการทำงานคล้าย Hypertext Transfer Protocol (HTTP) และ Simple Mail Transfer Protocol (SMTP)
การออกแบบโพรโทคอล
โพรโทคอล SIP ถูกออกแบบมาคล้ายกับโพรโทคอล HTTP ในส่วนของการร้องขอและการตอบรับ (request/response) ระหว่างลูกข่าย (client) ซึ่งเป็นผู้เริ่มต้นการเชื่อมต่อ โดยส่งการร้องขอ (request) การทำงานบางอย่างกับเครื่องแม่ข่าย (server) และ SIP ยังใช้ข้อมูล header, กฎการเข้ารหัส และหมายเลขสถานะ (status codes) เหมือนกับ HTTP อีกด้วย
ในการส่งสัญญาณมีเดีย SIP จะต้องทำงานร่วมกับโพรโทคอลอื่น ๆ ในการส่งสัญญาณ แต่ SIP เท่านั้นที่จะถูกใช้เป็นตัวเริ่มต้นการสื่อสาร (communication session) โดยปกติ SIP ฝั่งลูกข่าย (client) จะใช้โพรโทคอล TCP หรือ UDP พอร์ตหมายเลข 5060 หรือ 5061 ในการเชื่อมต่อกับเครื่องแม่ข่าย (server) หรือ SIP endpoint โดยพอร์ตหมายเลข 5060 จะใช้ในการส่งสัญญาณแบบไม่เข้ารหัส (non-encrypted signaling traffic) ส่วนพอร์ตหมายเลข 5061 จะใช้ในกรณีที่มีการส่งสัญญาณแบบเข้ารหัส และจะทำงานร่วมกับ Transport Layer Security (TLS) อีกที โดยหลัก ๆ แล้ว SIP จะทำหน้าที่ติดต่อหรือยกเลิกการส่งสัญญาณเสียงหรือภาพวิดีโอ ซึ่งในโปรแกรมประยุกต์หลายชนิดจะใช้ SIP ในการส่งข้อมูลมิเดียเช่น โปรแกรม instant messaging ที่สามารถส่งภาพและเสียงพร้อมกันได้ นอกจากนี้ยังมีเอกสารหลากหลายฉบับที่เกี่ยวข้องกับ SIP ซึ่งถูกประกาศโดย IETF เช่น Real-time Transport Protocol (RTP), Session Description Protocol (SDP) โดย SDP จะถูกใช้ร่วมกับ SIP สำหรับการทำข้อตกลง (negotiate) รูปแบบตัวแปรที่ใช้ในการเชื่อมต่อข้อมูลมิเดีย เช่น หมายเลขพอร์ต, โพรโทคอล, การเข้ารหัสสัญญาณมิเดีย (codecs) โดยข้อมูลของ SDP เหล่านี้จะถูกส่งภายใต้ข้อมูลของ SIP packet body อีกที
เป้าหมายในการออกแบบโพรโทคอล SIP ก็เพื่อใช้เป็นมาตรฐานในการเริ่มต้นการส่งสัญญาณโทรศัพท์ (signaling and call setup protocol) บนเครือข่ายแบบ IP-based และสามารถทำงานร่วมกับ public switched telephone network (PSTN) ที่มีอยู่เดิมได้ทันที และ SIP ถูกออกแบบมาโดยอ้างอิงถึงการเชื่อมต่อกันระว่าง proxy server และ user agents เพื่อให้มีลักษณะคล้ายกับการทำงานของโทรศัพท์มากที่สุด เช่น การส่งหมายเลข (dialing a number), การส่งสัญญาณกระดิ่ง (ringing), การส่งสัญญาญรอการเชื่อมต่อ (ring back) และการส่งสัญญาณสายไม่ว่าง (busy tone)
โพรโทคอล SIP ยังเพิ่มความสามารถพิเศษให้กับโพรโทคอล Signaling System 7 (SS7) อีกด้วย ถึงแม้ทั้งสองโพรโทคอลจะทำงานแตกต่างกันมาก เพราะ SS7 เป็นโพรโทคอลที่ทำงานอยู่บนแกนกลางของระบบเครือข่ายที่เชื่อมต่อกับเครื่องลูกข่ายจำนวนมาก ซึ่งจะแตกต่างกับ SIP ที่เป็นโพรโทคอลที่ทำงานแบบ peer-to-peer ที่ทำงานระหว่าง endpoint กับ endpoint
ถึงแม้ว่าจะมีโพรโทคอลหลากหลายที่ใช้งานบน VoIP signaling protocols แต่ SIP ยังเป็นที่นิยมในการสื่อสารแบบ IP community มากกว่า telecommunications industry นอกจาก SIP แล้วยังมีโพรโทคอล H.323 ของ International Telecommunication Union (ITU) ที่ทำงานลักษณะเดียวกันอีกด้วย
เอกสารการทำงานของ SIP เวอร์ชัน 2.0 ประกาศครั้งแรกใน RFC 2543 และถูกปรับปรุงอีกครั้งใน RFC 3261
ส่วนประกอบเครือข่าย SIP
- User Agent (UA) คือ แอปพลิเคชันที่ทำหน้าที่ส่งและรับ SIP messages และจัดการเซสชั่นของการเชื่อมต่อ โดยที่ User Agent (UA) สามารถทำหน้าที่เป็น User Agent Client (UAC) และ User Agent Server (UAS) ได้
- User Agent Client (UAC) คือไคลเอนต์ที่ส่ง SIP request ไปยัง User Agent Server (UAS)
- User Agent Server (UAS) คือแม่ข่ายที่รับ request และส่ง response กลับไปหาไคลเอนต์
โดยทั่วไปจะที่ไม่กำหนดตายตัวว่า UA ใดต้องเป็น UAC หรือ UAS ตลอดเวลาขึ้นอยู่กับเซสชั่นนั้นว่าทำหน้าที่อะไร
- Network Servers แบ่งออกเป็น 2 ชนิด
- Proxy server มี 2 ชนิดคือแบบ Stateful และ Stateless แบบ Stateful จะจำเซสชั่นการร้องขอของแต่ละไคล์เอนต์ที่กำลังรอการตอบกลับไว้และจะไม่ทำการส่งต่อการร้องขอซ้ำที่มาจากเซสชั่นที่เดิม ส่วน Stateless จะไม่มีการเก็บเซสชั่น ดังนั้นการร้องขอซ้ำจะถูกส่งต่อไปยังปลายทางทุกครั้งเพราะ Stateless จะไม่มีการจดจำว่าเคยส่งไปแล้วหรือยัง โดยทั้งสองแบบจะทำหน้าเป็นทั้ง UAC และ UAS ที่ทำหน้าที่รับและส่งต่อ SIP Message ของไคลเอนต์ไปยังเครื่องแม่ข่ายอื่น ๆ โดย Proxy server จะส่งข้อมูลในนามของไคลเอนต์ แต่จะมีการเปลี่ยนแปลงข้อมูลผู้ส่งใน SIP Header จากที่อยู่ของไคลเอนต์เป็นที่อยู่ของ Proxy server แทน และเครื่องแม่ข่ายปลายทางจะติดต่อกับไคลเอนต์ผ่าน Proxy server อีกทีหนึ่ง
- Redirect server จะทำหน้าที่รับ SIP request จากไคลเอนต์ จากนั้นจะส่งผลลัพธ์เป็นที่อยู่ของเครื่องแม่ข่ายถัดไปไปยังเครื่องไคลเอนต์ โดยที่ Redirect server จะไม่มีการส่งต่อข้อมูล SIP messages ไปยังเครื่องแม่ข่ายอื่น ๆ เหมือน Proxy server
- การกำหนดที่อยู่ของผู้รับและผู้ส่ง (Addressing) SIP จะระบุที่อยู่ของผู้รับและผู้ส่งในรูปแบบของ SIP URLs (SIP Universal Resource Locators) โดยจะอยู่ในรูปแบบ sip:ชื่อยูสเซอร์@ที่อยู่เครื่อง ตัวอย่างเช่น sip:john@example.com, sip:6680001@111.11.11.1 เป็นต้น
ตัวอย่าง SIP's Call flow
- แบบ Point to Point
Alice Bob | | | 1. INVITE | |- ---------------------->| | 2. 180 Ringing | | <-----------------------| | | | 3. 200 OK | | <-----------------------| | 4. ACK | |- ---------------------->| | RTP Media | | <============>| | | | 5. BYE | | <----------------------- | | 6. 200 OK | |- ----------------------> | | |
- แบบ Via Proxy server โทรจาก John's Soft phone ไปยัง Bob's SIP Phone โดยที่ John's Soft phone ส่งข้อมูลผ่าน Proxy server ที่ชื่อ site-a.com ส่วน Bob's SIP Phone ส่งข้อมูลผ่าน Proxy server ที่ชื่อ site-b.com
site-a.com............site-b.com . proxy proxy . . . John's .......................................................... Bob's softphone SIP Phone | | | | John | 1. INVITE | | | เริ่มต้นโทรออก |-----------------> | 2. INVITE | | | 3. 100 Trying |---------------> | 4. INVITE | | <---------------- | 5. 100 Trying |----------------> | | |<-------------- | 6. 180 Ringing | Bob John | | 7. 180 Ringing |<---------------- | ได้ยินสัญญาณโทรเข้า ได้ยิน Ringback tone | 8. 180 Ringing |<--------------- | 9. 200 OK | หรือ Music on hold |<--------------- | 10. 200 OK |<--------------- | Bob รับสาย | 11. 200 OK |<--------------- | | | <--------------- | | | | 12. ACK F12 | |- -------------------------------------------------------> | | RTP Media Session | สนทนา |<==============================> | สนทนา | 13. BYE | | <-------------------------------------------------------- | Bob วางหู | 14. 200 OK | John วางหู |--------------------------------------------------------> | | |
ตัวอย่าง SIP Request
INVITE sip:junk@realm SIP/2.0 Route: <sip:192.168.0.79;lr> Via: SIP/2.0/UDP 192.168.0.200:5060;branch=z9hG4bKrfpISNp7Z6jqn From: sip:original@192.168.0.79;tag=aEJISW8Nwm To: sip:junk@realm Supported: 100rel, sec-agree Contact: sip:original@192.168.0.200 CSeq: 5714 INVITE Call-ID: 34VISPImLSPTBk0OgCZ3lgbCyjup48 s: subject Max-Forwards: 70 Content-Type: application/sdp Content-Length: 157 v=0 o=original 3326093141 3326093142 IN IP4 192.168.0.200 s=SipSession c=IN IP4 192.168.0.200 t=0 0 m=application 49152 TCP Chipflip a=direction:both
รายละเอียดของ SIP Messages
1xx: การร้องขอและจัดเตรียมทรัพยากรของระบบ (Provisional)
Code | Description | References |
---|---|---|
100 | Trying. | RFC 3261 |
180 | Ringing. | RFC 3261 |
182 | Queued. | RFC 3261 |
183 | Session progress. | RFC 3261 |
2xx:การตอบกลับการร้องขอว่ากระทำสำเร็จ (Success)
Code | Description | References |
---|---|---|
200 | OK. | |
202 | Accepted. | RFC 3265 |
204 | No Notification. |
3xx: การส่งต่อและการร้องขอเพิ่มเติมเพื่อทำให้การร้องขอสมบูรณ์ (Redirection)
Code | Description | References |
---|---|---|
300 | Multiple choices. | RFC 3261 |
301 | Moved permanently. | |
302 | Moved temporarily. | |
305 | Use proxy. | |
380 | Alternative service. |
4xx: การตอบกลับข้อผิดพลาดที่เกิดจากไคลเอนต์ (Client error)
Code | Description | References |
---|---|---|
400 | Bad request. | |
401 | Unauthorized. | |
402 | Payment required. | |
403 | Forbidden. | |
404 | Not found. | |
405 | Bad request. | |
406 | Not acceptable. | |
407 | Proxy authentication required. | |
408 | Request timeout. | |
410 | Gone. | |
412 | Conditional request failed. | RFC 3903 |
413 | Request entity too large. | |
414 | Request-URI too long. | |
415 | Unsupported media type. | |
416 | Unsupported URI scheme. | |
417 | Unknown Resource-Priority. | RFC 4412 |
420 | Bad extension. | |
421 | Extension required. | |
422 | Session Interval too small. | RFC 4028 |
423 | Interval too brief. | |
428 | Use Identity Header. | RFC 4474 |
429 | Provide referrer identity. | RFC 3892 |
433 | Anonymity Disallowed. | RFC 5079 |
436 | Bad Identity-Info. | RFC 4474 |
437 | Unsupported Certificate. | RFC 4474 |
438 | Invalid Identity Header. | RFC 4474 |
439 | First Hop Lacks Outbound Support. | RFC 5626 |
440 | Max-Breadth Exceeded. | RFC 5393 |
470 | Consent needed. | RFC 5360 |
480 | Temporarily unavailable. | |
481 | Call/Transaction does not exist. | |
482 | Loop detected. | |
483 | Too many hops. | |
484 | Address incomplete. | |
485 | Ambiguous. | |
486 | Busy here. | |
487 | Request terminated. | |
488 | Not acceptable here. | |
489 | Bad event. | RFC 3265 |
491 | Request pending. | |
493 | Undecipherable. | |
494 | Security agreement required. | RFC 3329 |
5xx: การตอบกลับข้อผิดพลาดที่เกิดจากเครื่องแม่ข่าย (Server error)
Code | Description | References |
---|---|---|
500 | Server internal error. | RFC 3261 |
501 | Not implemented. | |
502 | Bad gateway. | |
503 | Service unavailable. | RFC 3261 |
504 | Server timeout. | |
505 | Version not supported. | |
513 | Message too large. | |
580 | Precondition Failure. | RFC 3312 |
6xx: การร้องขอไม่สามารถดำเนินการได้ (Global failure)
Code | Description | References |
---|---|---|
600 | Busy everywhere. | |
603 | Decline. | |
604 | Does not exist anywhere. | |
606 | Not acceptable. |
ตัวอย่างภาษา Perl
use Net::SIP;
- create new agent
my $ua = Net::SIP::Simple->new ( outgoing_proxy => '192.168.0.10', registrar => '192.168.0.10', domain => 'example.com', from => 'me', auth => [ 'me', 'secret' ], );
- Register agent
$ua->register;
- Invite other party, send anncouncement once connected
$ua->invite ('you', init_media => $ua->rtp ('send_recv', 'announcement.pcmu-8000' ), asymetric_rtp => 1, );
- Mainloop
$ua->loop;
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
bthkhwamnitxngkartrwcsxbkhwamthuktxngcakphuechiywchayineruxngnn oprdephimpharamietxr reason hrux talk lnginaemaebbniephuxxthibaypyhakhxngbthkhwamemuxwangaethkni ihphicarnaechuxmoyngkhakhxnikbokhrngkarwiki Session Initiation Protocol SIP khux ophrothkhxlhruxeknthwithiephuxichngandanmltimiediy echn karsngkhxmulesiynghruxwidioxbnekhruxkhay IP idrbkarphthnaody IETF aela SIP thuxwaepnophrothkhxlthiehnuxkwaophrothkhxlxuninaengkhxngkarthisamarthprbichaelanaipphthnaidngaykwa odytwophrothkhxlexngmikhwamsamarthinkarsrang create prb modify aela ykelik terminate kartidtxsuxsarrahwangohndthiepnaebbhnungtxhnung unicast hruxaebbklum multicast id sung SIP samarthprbepliynthixyu address hmayelkhphxrt ephimsayphusnthna aelasamarthephimhruxldkarsngkhxmulmiediy media stream bangpraephthid twxyangkhxngopraekrmprayukt application thixasy SIP inkarechuxmtx echn karprachumdwywidiox video conferencing karkracaykhxmulphaphaelaesiyng streaming multimedia distribution karsngkhxkhwamdwn instant messaging karsngifl file transfer aela ekmxxniln epntn SIP thukxxkaebbodynay Henning Schulzrinne aelanay Mark Handly tngaetpi kh s 1996 odyewxrchnlasudthukprakasin RFC 3261 ody IETF Network Working Group aelainpi kh s 2000 SIP idthukichepnswnhnungkhxngrabb IP Multimedia Subsystem IMS khxng 3GPP sungmatrthankarsngsyyanmltimiediyaebb IP based bnrabb othrsphthekhluxnthi cellular xikdwy ophrothkhxl SIP thanganxyubn Application Layer aelathukxxkaebbodyimkhanungthungchnidkhxng Transport Layer thiichinkarsngkhxmul SIP samarththanganbn Transmision Control Protocol TCP User Datagram Protocol UDP hrux Stream Control Transmission Protocol SCTP id ophrothkhxl SIP thanganinlksna text based sungmilksnakarthangankhlay Hypertext Transfer Protocol HTTP aela Simple Mail Transfer Protocol SMTP karxxkaebbophrothkhxlophrothkhxl SIP thukxxkaebbmakhlaykbophrothkhxl HTTP inswnkhxngkarrxngkhxaelakartxbrb request response rahwanglukkhay client sungepnphuerimtnkarechuxmtx odysngkarrxngkhx request karthanganbangxyangkbekhruxngaemkhay server aela SIP yngichkhxmul header kdkarekharhs aelahmayelkhsthana status codes ehmuxnkb HTTP xikdwy inkarsngsyyanmiediy SIP catxngthanganrwmkbophrothkhxlxun inkarsngsyyan aet SIP ethannthicathukichepntwerimtnkarsuxsar communication session odypkti SIP fnglukkhay client caichophrothkhxl TCP hrux UDP phxrthmayelkh 5060 hrux 5061 inkarechuxmtxkbekhruxngaemkhay server hrux SIP endpoint odyphxrthmayelkh 5060 caichinkarsngsyyanaebbimekharhs non encrypted signaling traffic swnphxrthmayelkh 5061 caichinkrnithimikarsngsyyanaebbekharhs aelacathanganrwmkb Transport Layer Security TLS xikthi odyhlk aelw SIP cathahnathitidtxhruxykelikkarsngsyyanesiynghruxphaphwidiox sunginopraekrmprayukthlaychnidcaich SIP inkarsngkhxmulmiediyechn opraekrm instant messaging thisamarthsngphaphaelaesiyngphrxmknid nxkcakniyngmiexksarhlakhlaychbbthiekiywkhxngkb SIP sungthukprakasody IETF echn Real time Transport Protocol RTP Session Description Protocol SDP ody SDP cathukichrwmkb SIP sahrbkarthakhxtklng negotiate rupaebbtwaeprthiichinkarechuxmtxkhxmulmiediy echn hmayelkhphxrt ophrothkhxl karekharhssyyanmiediy codecs odykhxmulkhxng SDP ehlanicathuksngphayitkhxmulkhxng SIP packet body xikthi epahmayinkarxxkaebbophrothkhxl SIP kephuxichepnmatrthaninkarerimtnkarsngsyyanothrsphth signaling and call setup protocol bnekhruxkhayaebb IP based aelasamarththanganrwmkb public switched telephone network PSTN thimixyuedimidthnthi aela SIP thukxxkaebbmaodyxangxingthungkarechuxmtxknrawang proxy server aela user agents ephuxihmilksnakhlaykbkarthangankhxngothrsphthmakthisud echn karsnghmayelkh dialing a number karsngsyyankrading ringing karsngsyyayrxkarechuxmtx ring back aelakarsngsyyansayimwang busy tone ophrothkhxl SIP yngephimkhwamsamarthphiessihkbophrothkhxl Signaling System 7 SS7 xikdwy thungaemthngsxngophrothkhxlcathanganaetktangknmak ephraa SS7 epnophrothkhxlthithanganxyubnaeknklangkhxngrabbekhruxkhaythiechuxmtxkbekhruxnglukkhaycanwnmak sungcaaetktangkb SIP thiepnophrothkhxlthithanganaebb peer to peer thithanganrahwang endpoint kb endpoint thungaemwacamiophrothkhxlhlakhlaythiichnganbn VoIP signaling protocols aet SIP yngepnthiniyminkarsuxsaraebb IP community makkwa telecommunications industry nxkcak SIP aelwyngmiophrothkhxl H 323 khxng International Telecommunication Union ITU thithanganlksnaediywknxikdwy exksarkarthangankhxng SIP ewxrchn 2 0 prakaskhrngaerkin RFC 2543 aelathukprbprungxikkhrngin RFC 3261swnprakxbekhruxkhay SIPUser Agent UA khux aexpphliekhchnthithahnathisngaelarb SIP messages aelacdkaresschnkhxngkarechuxmtx odythi User Agent UA samarththahnathiepn User Agent Client UAC aela User Agent Server UAS id User Agent Client UAC khuxikhlexntthisng SIP request ipyng User Agent Server UAS User Agent Server UAS khuxaemkhaythirb request aelasng response klbiphaikhlexnt odythwipcathiimkahndtaytwwa UA idtxngepn UAC hrux UAS tlxdewlakhunxyukbesschnnnwathahnathixair Network Servers aebngxxkepn 2 chnidProxy server mi 2 chnidkhuxaebb Stateful aela Stateless aebb Stateful cacaesschnkarrxngkhxkhxngaetlaikhlexntthikalngrxkartxbklbiwaelacaimthakarsngtxkarrxngkhxsathimacakesschnthiedim swn Stateless caimmikarekbesschn dngnnkarrxngkhxsacathuksngtxipyngplaythangthukkhrngephraa Stateless caimmikarcdcawaekhysngipaelwhruxyng odythngsxngaebbcathahnaepnthng UAC aela UAS thithahnathirbaelasngtx SIP Message khxngikhlexntipyngekhruxngaemkhayxun ody Proxy server casngkhxmulinnamkhxngikhlexnt aetcamikarepliynaeplngkhxmulphusngin SIP Header cakthixyukhxngikhlexntepnthixyukhxng Proxy server aethn aelaekhruxngaemkhayplaythangcatidtxkbikhlexntphan Proxy server xikthihnung Redirect server cathahnathirb SIP request cakikhlexnt caknncasngphllphthepnthixyukhxngekhruxngaemkhaythdipipyngekhruxngikhlexnt odythi Redirect server caimmikarsngtxkhxmul SIP messages ipyngekhruxngaemkhayxun ehmuxn Proxy serverkarkahndthixyukhxngphurbaelaphusng Addressing SIP carabuthixyukhxngphurbaelaphusnginrupaebbkhxng SIP URLs SIP Universal Resource Locators odycaxyuinrupaebb sip chuxyusesxr thixyuekhruxng twxyangechn sip john example com sip 6680001 111 11 11 1 epntntwxyang SIP s Call flowaebb Point to Point Alice Bob 1 INVITE gt 2 180 Ringing lt 3 200 OK lt 4 ACK gt RTP Media lt gt 5 BYE lt 6 200 OK gt aebb Via Proxy server othrcak John s Soft phone ipyng Bob s SIP Phone odythi John s Soft phone sngkhxmulphan Proxy server thichux site a com swn Bob s SIP Phone sngkhxmulphan Proxy server thichux site b com site a com site b com proxy proxy John s Bob s softphone SIP Phone John 1 INVITE erimtnothrxxk gt 2 INVITE 3 100 Trying gt 4 INVITE lt 5 100 Trying gt lt 6 180 Ringing Bob John 7 180 Ringing lt idyinsyyanothrekha idyin Ringback tone 8 180 Ringing lt 9 200 OK hrux Music on hold lt 10 200 OK lt Bob rbsay 11 200 OK lt lt 12 ACK F12 gt RTP Media Session snthna lt gt snthna 13 BYE lt Bob wanghu 14 200 OK John wanghu gt twxyang SIP RequestINVITE sip junk realm SIP 2 0 Route lt sip 192 168 0 79 lr gt Via SIP 2 0 UDP 192 168 0 200 5060 branch z9hG4bKrfpISNp7Z6jqn From sip original 192 168 0 79 tag aEJISW8Nwm To sip junk realm Supported 100rel sec agree Contact sip original 192 168 0 200 CSeq 5714 INVITE Call ID 34VISPImLSPTBk0OgCZ3lgbCyjup48 s subject Max Forwards 70 Content Type application sdp Content Length 157 v 0 o original 3326093141 3326093142 IN IP4 192 168 0 200 s SipSession c IN IP4 192 168 0 200 t 0 0 m application 49152 TCP Chipflip a direction bothraylaexiydkhxng SIP Messages1xx karrxngkhxaelacdetriymthrphyakrkhxngrabb Provisional Code Description References100 Trying RFC 3261180 Ringing RFC 3261182 Queued RFC 3261183 Session progress RFC 3261 2xx kartxbklbkarrxngkhxwakrathasaerc Success Code Description References200 OK 202 Accepted RFC 3265204 No Notification 3xx karsngtxaelakarrxngkhxephimetimephuxthaihkarrxngkhxsmburn Redirection Code Description References300 Multiple choices RFC 3261301 Moved permanently 302 Moved temporarily 305 Use proxy 380 Alternative service 4xx kartxbklbkhxphidphladthiekidcakikhlexnt Client error Code Description References400 Bad request 401 Unauthorized 402 Payment required 403 Forbidden 404 Not found 405 Bad request 406 Not acceptable 407 Proxy authentication required 408 Request timeout 410 Gone 412 Conditional request failed RFC 3903413 Request entity too large 414 Request URI too long 415 Unsupported media type 416 Unsupported URI scheme 417 Unknown Resource Priority RFC 4412420 Bad extension 421 Extension required 422 Session Interval too small RFC 4028423 Interval too brief 428 Use Identity Header RFC 4474429 Provide referrer identity RFC 3892433 Anonymity Disallowed RFC 5079436 Bad Identity Info RFC 4474437 Unsupported Certificate RFC 4474438 Invalid Identity Header RFC 4474439 First Hop Lacks Outbound Support RFC 5626440 Max Breadth Exceeded RFC 5393470 Consent needed RFC 5360480 Temporarily unavailable 481 Call Transaction does not exist 482 Loop detected 483 Too many hops 484 Address incomplete 485 Ambiguous 486 Busy here 487 Request terminated 488 Not acceptable here 489 Bad event RFC 3265491 Request pending 493 Undecipherable 494 Security agreement required RFC 3329 5xx kartxbklbkhxphidphladthiekidcakekhruxngaemkhay Server error Code Description References500 Server internal error RFC 3261501 Not implemented 502 Bad gateway 503 Service unavailable RFC 3261504 Server timeout 505 Version not supported 513 Message too large 580 Precondition Failure RFC 3312 6xx karrxngkhximsamarthdaeninkarid Global failure Code Description References600 Busy everywhere 603 Decline 604 Does not exist anywhere 606 Not acceptable twxyangphasa Perluse Net SIP create new agent my ua Net SIP Simple gt new outgoing proxy gt 192 168 0 10 registrar gt 192 168 0 10 domain gt example com from gt me auth gt me secret Register agent ua gt register Invite other party send anncouncement once connected ua gt invite you init media gt ua gt rtp send recv announcement pcmu 8000 asymetric rtp gt 1 Mainloop ua gt loop bthkhwamkhxmphiwetxr xupkrntang hruxekhruxkhayniyngepnokhrng khunsamarthchwywikiphiediyidodykarephimetimkhxmuldkhk