Http://www.cnblogs.com/lovers/articles/2624693.html
1. Development Environment Configuration
After downloading the sipdroid source code, it cannot be directly imported into eclipse. Otherwise, it cannot be used or compiled.
First, update the project by referring to the built.txt file under the project directory using command line.
For example, Android update project-P.-T 2 (here-P refers to -- path-T refers to -- target)
Because it is an open-source software and requires version control, you can install subclipse (see the official website)
In this way, you can import the project to eclipse.
2. Below are some materials I recently collected for developing Android Video Communication Technology:
Currently, the following software is available on Android mobile phones that support video passing and has been implemented:
Sipdroid, Qik, Fring for Android.
(Skype recently revealed that it will also develop video call software on Android:
Http://www.opda.cn/2010/05/30/skype-mobile-coming-to-android-this-year-possibly-with-video-calling)
Below are some web links (some include video calls)
Qik: http://www.pin5i.com/showtopic-android-use-qik-for-video-chat.html
Fring for Android:
Http://bbs.goapk.com/viewthread.php? Tid = 8887 & extra = Page % 253d1% 2526amp % 3 borderby % 253 ddateline % 2526amp % 3 bfilter % 253d2592000
Http://v.youku.com/v_show/id_XMTc2OTgxMTA4.html
Sipdroid: (video calls of sipdroid already implemented in foreign countries)
Http://v.youku.com/v_show/id_XMTc3MTIzNjY0.html
Among the above three software, sipdroid is an open-source software project. Fring for Android is free but not open-source Qik is charged.
In terms of call quality, sipdroid is better than Fring for Android.
The following is a brief introduction to the most promising sipdroid:
Sipdroid is an open-source Sip/VoIP client software developed for Android mobile phones.
It provides the telephone communication service through the SIP provider, and also provides the video communication service in its latest version 1.5.5beta.
It runs on the standard SIP protocol. Because the android kernel itself does not provide the SIP protocol stack, the sipdroid software directly implements the SIP protocol stack through JNI.
It can provide VoIP services in the following networks: WLAN, 3G, and EDGE networks. It can even communicate with users like Skype, Google Talk, MSN, Yahoo, aim, and ICQ. However, you must register an account with some sip providers (free and charged). sipdroid strongly recommends using the SIP provider pbxes to get the service.
The main features of video calls are as follows:
What types of video CILS are supported?
There are three levels of operation for video CILS.
Sending
By pressing the menu button and choosing "Send video" you can start video transmission to a SIP Phone with video.
Processing ing
This is not supported natively. If you are registered to pbxes and the other party starts sending video it will show up on the Android phone.
Streaming
When you start sending video as described abve while you are in a call to a regular phone, and you have a pbxes premium account, the other party can open your webcall URL, click on your photo and see your video.
Streaming can also be used if you call somebody on his Android phone who is not registered to pbxes. Then he can still open your webcall URL from his mobile browser and see you.
Sipdroid only supports the following features and functions:
· Change number format (e.g. Convert the + codes)
· Music on hold
· Support of several modes for DTMF tones
· Support for NAT (Network Address Translation)
· Simultaneous outbound calling
· Screening anonymous callers
· Time-based routing for incoming cballs
· Attended call transfer
· Conferences
· Video transition tion (video transmission is supported by sipdroid natively)
· Trigger callback or callthru (if no suitable data network available)
· Callto Skype users
For details about the sipdroid open source software, refer to the official website:
Http://code.google.com/p/sipdroid/ (which may require Wall-over access)
For the principle of implementing video calls using sipdroid, my current understanding is:
The sender transmits the video data to the video streaming media server and then transmits the data to the receiver. The details are not very clear at present, because many communication protocols are involved.
The source code of sipdroid can be downloaded from the official website: It looks like a few MB.
The development environment requires eclipse and subclipse (SVN client) plug-ins.
Subclipse Official Website: http://subclipse.tigris.org/servlets/ProjectProcess? Pageid = p4wyua
Below are some reference links:
SIP: http://baike.baidu.com/view/51013.htm
Pbxes: http://baike.baidu.com/view/2380496.htm
Pbxes Official Website: https://www1.pbxes.com/index_e.php (need to overturn the wall)
Edge: http://baike.baidu.com/view/84625.htm? Fr = ala0_1
3. Source Code Analysis of sipdroid org. sipdroid. sipua. Phone
The core function of this package is to provide voice calls, including incoming call display and call history records,
Buttongridlayout. Java
This class is mainly used to set the display format, which inherits from the parent class: viewgroup.
Call. Java
This class provides information about the phone call status. It interacts with the connection class because the connection Class determines the status of the current call.
Callcard. Java
This class was initially thought to be a card-related class. In fact, it is essentially a class that provides the UI element. It will display different interface changes from the beginning to the end of the call. Is a very huge class, which provides a lot of debugging functions. After reading it, I will have a further understanding of how to debug the android program.
Callinfo. Java
This class is used to find the information of the dial-up person for a given phone number. Therefore, this class will interact with the database in the contacts background.
Connection. Java
This class provides information about the call connection, and records the history of each connection.
Phone. Java
This is an interface class that provides mobile phone status information.