SIP Client Process
ทดลอง download source code เกี่ยวกับ SIP จากหนังสือ => Internet Multimedia Communications Using SIP: A Modern Approach Including Java® Practice ซึ่งเขียนไว้ดีมาก
ในส่วนของ SIP Client นั้น ผมเข้าไปศึกษาการทำงานของ SoftPhone3Listener.java ซึ่งมี method หลัก ๆ ที่น่าสนใจแยกการทำงานย่อย ๆ เป็นดังนี้
- ProcessRequest() ได้รับ Request มาจากผู้อื่น
IDLE -> Invite จะกำหนด SDP
-> Mesg ใช้ส่ง Mesg
Established -> Bye
-> Mesg
Ringing -> Cancel => IDLE
WaitAck -> Ack ทำหลังจากรับสายแล้วรอ Ack => Established
- ProcessResponse() ส่ง Request ไปแล้ว ได้รับ Response มาจากผู้อื่น
WaitProv -> <200 => WaitFinal (ALERT)
-> <300 => Established, startMedia()
(ผู้รับรอรับสายก่อนส่ง 180 หาผู้ส่ง)
WaitFinal -> <200 => WaitFinal (ALERT)
-> <300 => Established, startMedia()
-> IDLE
Registering -> =200 => IDLE
-> Unregister
- UserInput() เ็ป็นฟังก์ชันที่รับการทำงานจาก GUI
IDLE -> YES โทรหาผู้รับ สร้าง Invite+SDP => WaitProv
-> SendMesg เริ่มส่งข้อความ
WaitFinal -> No กดตัดสาย => IDLE
Established -> No รับแล้วตัดสาย => IDLE
-> SendMesg (รับแล้วกดส่งข้อความ)
Ringing -> No กดปุ่ม No ไม่รับสาย => IDLE
-> Yes กดปุ่ม Yes เพื่อรับสาย => StartMedia()
(ถ้ารับสายไม่ทันใน 50 วินาที จะส่ง Bye)
ดูรูปประกอบเพื่อความเข้าใจครับ

Source ดาวน์โหลดได้ที่ไหนครับ
ในห้องสมุดคณะผมก็มีหนังสือเล่มนี้
แต่ผมหาที่ดาวน์โหลดไม่เจอครับ
ทางนี้เลยครับ
http://www.elsevierdirect.com/companion.jsp?ISBN=9780123743008