| The purpose of this paper is to design and implement a mobile cross-platform IM system, which fuse two open source technology VoIP and XMPP. I hope it can become an independent stable and comprehensive functional app with the characteristics of my enterprise.In this paper, the design and implementation of the mobile cross-platform IM system "KingKing" aims to satisfy the user to use network traffic complete phone calls and SMS transceiver demand as a traditional phone, thoroughly making Wifi resource and utilization rate of network plan to reach perfection, especially wants to reduce the user’s social cost of used in long-distance roaming, and other special demand. And on this basis, implement the basic video calls, voice messages, network text messages, image video file transportation and other communication functions.This paper firstly through the detailed research and analysis of VoIP and XMPP protocol. Description and deployed the basic concept,historical background, technical principle, related standard protocol and other core knowledge of both VoIP and XMPP. Then research and analysis on the two open source frameworks Linphone and jabber/XMPP that are both based on the technology of VoIP and XMPP. According to this two frameworks, I have shown the cases of some examples and explanation for practice and theory. After that, I analyzed and designed the architecture, business requirements, persistent storage, core functional API and other modules of "KingKing" system basing on the support of these techniques and frameworks.This paper mainly on the technical implementation two mainstream iOS, Android platform as the main implementation platform. Basing on the source of code Linphone, jabber/XMPP and other open source framework, I have done some source code refactor according to my design to integrate those two open source framework into my app "KingKing" IM system. With Linphone, jabber/XMPP library cross-platform C characteristics of open source framework itself, "KingKing" has a basic implementation on the iOS, Android compatibility Linphone, jabber/XMPP, and can be run directly. "KingKing" can use Linphone underlying class library for VoIP calls, calls can be implemented into the background model and normal use XMPP, SMS, etc. I have used ASIHttpRequest synchronization network queue technology for the two framework network requests for the merge sort control, so the those two will not conflict or network resources. The "KingKing" IM system is just a preliminary trial version, functionality and performance still need further study and improve, also need to focus on some technical details of the problem may come up in the future. |