All the devices are connected via ethernet (100 Mbit) in the same LAN environment. They all know each others identity (ip, MacAddress)
One external entry phone device (EXT), with only one application installed (External EntryPhone application)
Many internal entry phone devices (INT) (with many applications, one is Internal Entry Phone application)
Application Server with Asterisk 18.104.22.168, Tomcat 5.5 that communicates with a MySQL Database where all the information are stored (devices' identity, macaddress, ip)
Main behaviour of the applications
The external device is made of two main views. The first view is the main view, launched at boot. It contains the labels of the apartments (each one related to a sublist of internal devices that have to be called). The second view is displayed when an videocall is established, displaying the local video preview (taken from the device's camera). No remote view is displayed. The second view also contains some other stuff (one button that terminates the videocall, one slider to increase/decrease the speaker volume).
When a label from the first view is pressed, all the internal devices connected to that particular apartment have to be called, playing a customizable ringtone, playing the audio and video preview sent from the external entryphone - see below - (if needed, we can limit the number of internal devices related with each apartment, but at least 4).
The internal entry phone device application is made of one single view, that displays the video sent from the external device. Some other feature are displayed (button to terminate the video call, mute button, volume slider to increase/decrease the speaker volume). By default all the audio is sent to the speakerphone (the internal devices are placed inside the wall, so there is no way of accessing the headphone plug or access the physical volume buttons).
The external and internal devices automatically register in the SIP provider (Asterisk) in a background service, launched at boot time. The main difference between the 2 devices (INT and EXT) is that the external entry phone application is always visible to the user (so services and activities are running), while the internal entry phone application is visible only during the videocall (but the service that manages the SIP protocol communication is always active, so that it can react to the calls and display the application view).
Audio and video have to be of a very high quality.
Audio is supposed to manage echo cancellation, with a loud and clear sound to the speaker.
Video is supposed to have a resolution of 640*480 (we currently have 352*288 but it is not enough). External Entry Phone is Portrait-oriented, while internal entry phone is Landscape-oriented.
Asterisk is a requirement (we will integrate some other physical telephone hardware beside our Ainol Android devices), so we ask you to find the correct configuration for audio/video/session timers. We don't have restrictions about the version of Asterisk, if you believe we need to upgrade our 22.214.171.124 version there is no problem.
What we need
We don't need any definitive graphical layout, we will give you only the main structure and size of the views.
We need the code (activities, services, configurations, libraries) to accomplish the videocall as described before.
We need you to give us all the source code, with a minimal documentation (also inline code comments in English are ok).
We may need some further assistance in the integration of the code into our devices, with eventual bug resolution.
Please check attachment for further details, any further explanation will be given ASAP.