The Session Initiation Protocol (SIP) is an application-layer control (signaling) protocol that can establish, modify, and terminate multimedia sessions (conferences) such as Internet telephony calls. SIP, a standard of VoIP signaling, nowadays has already become the research hotspot in many telecommunication and network fields although it was delivered since 1999.People in VoIP research field used to focus on compress algorithms of audio and video, Quality of Service and so on. But for a multimedia communication system via Internet, a signaling protocol for creating, modifying and terminating sessions with one or more participants is as important as any algorithm. Another control protocol is Recommendation H.323 delivered by International Telecommunication Union (ITU). However, Recommendation H.323 is too complex to implement, whereas SIP is a simple, open, light-weight and high-flexibility protocol in a similar way to HTTP, SMTP and other Internet protocols. SIP has been adopted as a main protocol of Next Generation Network which is based on Softswitch.This paper analyses the SIP standard, and designs an IP phone server system named Sling SIPServer based on the SIP core standard. Sling SIPServer system provides some basic functionalities of SIP version 2.0, such as creating, modifying and terminating Internet telephony calls. Sling SIPServer system consists of a SIP Stack programming in Java 1.4 and, a Proxy Server, a Registrar Server and a Redirect Server. What's more, the implementation of SIP Stack refers to the network communication, encoding and parsing the SIP messages, and the transaction management, etc. In addition to SIP core standard, this paper also goes deep into introduces of some related technologies, such as register mechanisms, location services, reliability mechanisms, authentication mechanisms, security and SIP-NAT issues. In the end, this paper introduces some testing scenarios for Sling SIPServer system, including call flows testing, compatibility testing and performance testing. |