• 沒有找到結果。

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: &lt;sip:[email protected]>;expires="Wed, 16 Jul 2008 23:04:03 GMT"

</contact>

<bidipipeadv>

&lt;?xml version="1.0" encoding="UTF-8"?>

&lt;!DOCTYPE jxta:PipeAdvertisement>

&lt;jxta:PipeAdvertisement xml:space="preserve"

xmlns:jxta="http://jxta.org">

&lt;Id>urn:jxta:uuid-5EB1105307B9454A8DAEA5C7CF2AD75CD5A6AD46BF7C4DEAB1 90B01C5A50484404&lt;/Id>&lt;Type>JxtaUnicast&lt;/Type>&lt;Name>JXTA SIP BiDiPipe&lt;/Name>&lt;/jxta:PipeAdvertisement>

</bidipipeadv>

<inputpipeadv>

&lt;?xml version="1.0" encoding="UTF-8"?>

&lt;!DOCTYPE jxta:PipeAdvertisement>

&lt;jxta:PipeAdvertisement xml:space="preserve"

xmlns:jxta="http://jxta.org">

&lt;Id>urn:jxta:uuid-5EB1105307B9454A8DAEA5C7CF2AD75C4BFECDD15E854684B9 ACBB19F134ACE904&lt;/Id>&lt;Type>JxtaUnicast&lt;/Type>&lt;Name>JXTA SIP UniPipe&lt;/Name>&lt;/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 收到這個訊息後,兩者原本的連線就結束了。

相關文件