Chapter 6 Conclusion
6.2 Future Work
本研究中仍然少數的設計尚未實作完成,如下所示:
z SIP Service Finder 在本研究中尚未被實現出來,但它的設計概念已非常地明確,未 來可以將考慮實作這個功能。
此外,還有一些未來可行的研究方向,能使本研究更趨完整,敘述如下:
z 本論文並沒有實現 AAA(Authentication, Authorization, and Accounting)的機制,未來 可以將 Halo[15]的設計實現在我們的系統中。
z 還有一些 SIP 網路單元並未在此論文中實現,如 Presence Server 以及 PSTN 閘道 (public switched telephone network gateway)等,都可以繼續進行實作。
最後,本研究申請加入 JXTA™ Community Projects 後,仍會持續地更新,以期能達到 最完善的成果。
1 jxta: JXTA™ Community Projects, https://jxta.dev.java.net/.
37
Reference
[1] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J. Peterson, R. Sparks, M.
Handley, and E. Schooler, “SIP: Session Initiation Protocol,” RFC 3261, June 2002.
[2] J. Rosenberg and H. Schulzrinne, “Session Initiation Protocol (SIP): Locating SIP Servers,” RFC 3263, June 2002.
[3] D. Bryan, P. Matthews, E. Shim, and D. Willis, “Concepts and Terminology for Peer to Peer SIP,” Internet Draft draft-ietf-p2psip-concepts-01 (work in progress), November 2007.
[4] J. Shi, Y. Ji, H. Zhang, and Y. Li, “A Hierarchical P2P-SIP Architecture,” Internet Draft draft-shi-p2psip-hier-arch-00, August 2006.
[5] E. Shim, S. Narayanan, and G. Daley, “An Architecture for Peer-to-Peer Session
Initiation Protocol (P2P SIP),” Internet Draft draft-shim-sipping-p2p-arch-00, February 2006.
[6] D. Bryan, B. Lowekamp, and C. Jennings, “dSIP: A P2P Approach to SIP Registration and Resource Location,” Internet Draft draft-bryan-p2psip-dsip-00, February 2007.
[7] C. Jennings, B. Lowekamp, E. Rescorla, J. Rosenberg, S. Baset, and H. Schulzrinne,
“REsource LOcation And Discovery (RELOAD),” Internet Draft draft-bryan-p2psip-reload-03 (working in progress), February 2008.
[8] M. Zangrilli and D. Bryan, “A Chord-based DHT for Resource Lookup in P2PSIP,”
Internet Draft draft-zangrilli-p2psip-dsip-dhtchord-00, February 2007.
[9] M. Zangrilli and D. Bryan, “A Bamboo-based DHT for Resource Lookup in P2PSIP,”
Internet Draft draft-zangrilli-p2psip-dsip-dhtbamboo-00, February 2007.
[10] jxta: JXTA™ Community Projects, https://jxta.dev.java.net/.
38
[11] B. Traversat, A. Arora, M. Abdelaziz, M. Duigou, C. Haywood, J.C. Hugly, E. Pouyoul, and B. Yeager, “Project JXTA 2.0 Super-Peer Virtual Network,” Sun Microsystems, Inc., May 2003.
[12] B. Traversat, M. Abdelaziz, and E. Pouyoul, “Project JXTA: A Loosely-Consistent DHT Rendezvous Walker,” Sun Microsystems, Inc.
[13] MjSip, http://www.mjsip.org/.
[14] L. Veltri, “MjSip-Mini-Tutorial,” Department of Information Engineering at University of Parma, April 2005.
[15] Fu-Kuo Tseng, “Halo: A Hierarchical Identity-Based Public Key Infrastructure for Peer-to-Peer Opportunistic Collaboration,” Institute of Computer Science and Engineering as National Chiao Tung University, June 2008.
39
Appendix A
JXTA SIP Peer 處理註冊要求時,儲存在本地快取中的 User Binding Advertisement:
1030
Adv/uuid-5EB1105307B9454A8DAEA5C7CF2AD75CF56D4F7C608E4EA2BA0BEA59F2B6D4 5401
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jxtasip:UserBindingAdvertisement>
<jxtasip:UserBindingAdvertisement xmlns:jxta="http://jxta.org">
<id>
urn:jxta:uuid-5EB1105307B9454A8DAEA5C7CF2AD75CF56D4F7C608E4EA2BA0BE A59F2B6D45401
</id>
<name>
[email protected] </name>
<contact>
Contact: <sip:[email protected]>;expires="Wed, 16 Jul 2008 23:04:03 GMT"
</contact>
<bidipipeadv>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jxta:PipeAdvertisement>
<jxta:PipeAdvertisement xml:space="preserve"
xmlns:jxta="http://jxta.org">
<Id>urn:jxta:uuid-5EB1105307B9454A8DAEA5C7CF2AD75CD5A6AD46BF7C4DEAB1 90B01C5A50484404</Id><Type>JxtaUnicast</Type><Name>JXTA SIP BiDiPipe</Name></jxta:PipeAdvertisement>
</bidipipeadv>
<inputpipeadv>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jxta:PipeAdvertisement>
<jxta:PipeAdvertisement xml:space="preserve"
xmlns:jxta="http://jxta.org">
<Id>urn:jxta:uuid-5EB1105307B9454A8DAEA5C7CF2AD75C4BFECDD15E854684B9 ACBB19F134ACE904</Id><Type>JxtaUnicast</Type><Name>JXTA SIP UniPipe</Name></jxta:PipeAdvertisement>
</inputpipeadv>
</jxtasip:UserBindingAdvertisement>
40
Appendix B
在下列的實驗結果中,為了讓訊息的簡潔,我們可能會省略 SIP 訊息的 body 與對應的 Content-Length、Content-Type header 欄位。
Registration
Alice 在 User Agent 啟動時向 Proxy A 註冊。
REGISTER sip:alpha.net SIP/2.0
Via: SIP/2.0/UDP 140.113.216.104:5060;rport;branch=z9hG4bK91295 Max-Forwards: 70
To: "Alice" <sip:[email protected]>
From: "Alice" <sip:[email protected]>;tag=z9hG4bK42295646 Call-ID: [email protected]
CSeq: 1 REGISTER
Contact: <sip:[email protected]>
Expires: 3600
User-Agent: mjsip stack 1.6 Content-Length: 0
JXTA SIP Peer A 收到回應 200 OK 給 Alice。
SIP/2.0 200 OK
Via: SIP/2.0/UDP 140.113.216.104:5060;branch=z9hG4bK91295;rport=5060 To: "Alice" <sip:[email protected]>
From: "Alice" <sip:[email protected]>;tag=z9hG4bK42295646 Call-ID: [email protected]
CSeq: 1 REGISTER Server: JXTA SIP
Contact: <sip:[email protected]>;expires=3600 Content-Length: 0
接著 JXTA SIP Peer A 會產立 User Binding Advertisement,並發佈出去。
Session Setup
Bob 向 [email protected] 發出邀請。
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 140.113.216.114:5060;rport;branch=z9hG4bK18756 Max-Forwards: 70
To: <sip:[email protected]>
From: "Bob" <sip:[email protected]>;tag=z9hG4bK20581794 Call-ID: [email protected]
CSeq: 1 INVITE
Contact: <sip:[email protected]>
Expires: 3600
User-Agent: mjsip stack 1.6 Content-Length: 159
Content-Type: application/sdp v=0
o="Bob" <sip:[email protected]> 0 0 IN IP4 140.113.216.114
41 s=Session SIP/SDP
c=IN IP4 140.113.216.114 t=0 0
m=audio 21000 RTP/AVP 0 a=rtpmap:0 PCMU/8000
JXTA SIP Peer B 收到 Bob 的要求,透過 Pipe 傳送給 JXTA SIP Peer A,它會收到以下的 訊息,並傳送給 Alice。
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 140.113.216.114:5060;branch=z9hG4bK18756;rport=5060 Max-Forwards: 70
To: <sip:[email protected]>
From: "Bob" <sip:[email protected]>;tag=z9hG4bK20581794 Call-ID: [email protected]
CSeq: 1 INVITE
Contact: <sip:[email protected]>
Expires: 3600
User-Agent: mjsip stack 1.6 Loop-Tag: d629edbe1477dc Content-Length: 159
Content-Type: application/sdp v=0
o="Bob" <sip:[email protected]> 0 0 IN IP4 140.113.216.114 s=Session SIP/SDP
c=IN IP4 140.113.216.114 t=0 0
m=audio 21000 RTP/AVP 0 a=rtpmap:0 PCMU/8000
Alice 的 UA 收到後,發出 100 Trying 的訊息給 JXTA SIP Peer A
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 140.113.216.114:5060;branch=z9hG4bK18756;
received=140.113.216.119;rport=5060 To: <sip:[email protected]>
From: "Bob" <sip:[email protected]>;tag=z9hG4bK20581794 Call-ID: [email protected]
CSeq: 1 INVITE
Server: mjsip stack 1.6 Content-Length: 0
JXTA SIP Peer A 收到 Alice 的回應後,透過 Pipe 傳回 JXTA SIP Peer B,JXTA SIP Peer B 收到直接傳回給 Bob。接著 Alice 的 UA 會發出 180 Ringing 的訊息給 Proxy A,並且開 始響鈴。
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 140.113.216.114:5060;branch=z9hG4bK18756;
received=140.113.216.119;rport=5060 To: <sip:[email protected]>
From: "Bob" <sip:[email protected]>;tag=z9hG4bK20581794 Call-ID: [email protected]
CSeq: 1 INVITE
Server: mjsip stack 1.6 Content-Length: 0
42
同樣,JXTA SIP Peer A 收到後經由 Pipe 傳給 JXTA SIP Peer B,而 JXTA SIP Peer B 再回 傳給 Bob,此時 Bob 的 UA 也會進入響鈴的模式。然後 Alice 接聽後,Alice 的 UA 就會 傳送 200 OK 的訊息給 JXTA SIP Peer A。
SIP/2.0 200 OK
Via: SIP/2.0/UDP 140.113.216.114:5060;branch=z9hG4bK18756;
received=140.113.216.119;rport=5060
To: <sip:[email protected]>;tag=afee2211bc7a4b3b From: "Bob" <sip:[email protected]>;tag=z9hG4bK20581794 Call-ID: [email protected]
CSeq: 1 INVITE
Contact: <sip:[email protected]>
Server: mjsip stack 1.6 Content-Length: 159
Content-Type: application/sdp v=0
o="Bob" <sip:[email protected]> 0 0 IN IP4 140.113.216.114 s=Session SIP/SDP
c=IN IP4 140.113.216.104 t=0 0
m=audio 21000 RTP/AVP 0 a=rtpmap:0 PCMU/8000
JXTA SIP Peer A 同樣透過 Pipe 把訊息傳回給 JXTA SIP Peer B,JXTA SIP Peer B 再傳給 Bob。Bob 的 UA 收到後就會回傳 ACK 給 JXTA SIP Peer B。
ACK sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 140.113.216.114:5060;rport;branch=z9hG4bK71609 Max-Forwards: 70
To: <sip:[email protected]>;tag=afee2211bc7a4b3b From: "Bob" <sip:[email protected]>;tag=z9hG4bK20581794 Call-ID: [email protected]
CSeq: 1 ACK
Contact: <sip:[email protected]>
Expires: 3600
User-Agent: mjsip stack 1.6 Content-Length: 0
JXTA SIP Peer B 藉由 Pipe 傳給 JXTA SIP Peer A,最後 Alice 的 UA 收到後,Bob 與 Alice 之間的 media session 就建立完成了。
Session Termination
延續剛才 Alice 與 Bob 的連線,此時 Alice 掛斷,Alice 的 UA 會發出 BYE 給 Bob。JXTA SIP Peer A 先收到這個訊息,經由 JXTA SIP Peer B 最後傳給了 Bob。
BYE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 140.113.216.104:5060;branch=z9hG4bK84558;rport=5060 Max-Forwards: 70
To: "Bob" <sip:[email protected]>;tag=z9hG4bK20581794 From: <sip:[email protected]>;tag=afee2211bc7a4b3b
43 Call-ID: [email protected] CSeq: 1 BYE
User-Agent: mjsip stack 1.6 Loop-Tag: 3242267e52e0f1 Content-Length: 0
Bob 的 UA 收到後會回應 200 OK 的訊息。
SIP/2.0 200 OK
Via: SIP/2.0/UDP 140.113.216.104:5060;branch=z9hG4bK84558;
received=140.113.216.104;rport=5060
To: "Bob" <sip:[email protected]>;tag=z9hG4bK20581794 From: <sip:[email protected]>;tag=afee2211bc7a4b3b Call-ID: [email protected]
CSeq: 1 BYE
Server: mjsip stack 1.6 Content-Length: 0
當 Alice 的 UA 收到這個訊息後,兩者原本的連線就結束了。