
Hello, dear Habrovchane!
Continuing the theme of choosing the software development environment, specifically Delphi XE6, which we touched on in the
previous publication , we consider it our duty to go straight to demonstrating what can be done using the capabilities of this programming language, the talent of developers, and the Firemonkey platform.
Immediately make a reservation, this post will not highlight the problems of development, especially since you can learn about this from
an interview with the head of the development department of our company, Alexei Glyzin, which he took from a well-known Delphi developer blogger
Alexander Bozhko . We will introduce you to the result, which was achieved using Delphi XE6. So, let's begin.
')
Under the cat you will find a detailed description of the functionality, the announcement of the features implemented in the code, GUI, useful features, future plans and much more ...
ATTENTION! Many screenshots! ..
Sphere Live is a free multiplatform videoconferencing system with an unlimited number of participants in the form of symmetrical and asymmetric lectures with integrated billing system, file sharing and cloud storage functions, as well as protection of user information (correspondence, sent and transmitted files, video and audio communication ).
Who is our product targeted at?
The Sphere Live project is focused on the widest audience of users, both on a regular user, who is always “in touch” and on a businessman who needs to hold conferences and meetings remotely, monitor the work of employees “out of the office” through the functions of displaying the desktop and remote access to the camera, as a part-time student, who chose the format of distance learning, and for any teacher, consultant, blogger.
The project was implemented “for myself”, and we wanted to solve the following tasks:
- provide high-quality and reliable communication during an audio / video call;
- organize group video calls;
- have a tool to send multiple files with unlimited amounts of information to an unlimited number of recipients at the highest possible speed;
- “share” files;
- have a complete history of all types of calls and messages sent and sent files;
- integrate the translator in the chat for communication in different languages;
- to be sure that no one will have access to the information I have transmitted, even the software developer;
- know that no one will listen to your conversation;
- create a tool for conducting mutual settlements within the program itself in order to organize paid audio / video calls in order to simplify the task of raising funds and reduce the likelihood of non-payment for the services rendered: individual and group consultations, lectures, etc .;
- the ability to transfer and view any files on mobile devices;
- to ensure work with files only in the program in order to preserve the author’s rights as much as possible;
- save traffic for the user due to the unique technology of transferring audio / video streams and files;
- to organize convenient and reliable storage with unlimited volume.
This is just a small list of tasks that we have already decided at the code level. The implementation of individual tasks in the interface, we just want to show you today. The remaining functions and implemented tasks will appear in each new version that we plan to release weekly with a detailed change history and review on Habré in our blog and on the site.
The principle of implementing privacy in Sphere Live
Before the demonstration, we want to say a few words about how we solved the privacy tasks, because This is one of the most discussed issues on the web.
Firstly, we managed to ensure complete confidentiality from “3 persons” at the level of the client-server application architecture. There is no access to the database. It simply does not exist "from the outside." The client application does not get any access to the database. It only "communicates" with the server. And the server, in turn, using controllers and a specially designed interpreter, operates with user data: correspondence with its contacts, files sent / sent to him / him, access to his profile and information contained in it. In general, the whole organization is engaged in the server, or rather, the server. Therefore, information leakage is possible only if the user has provided a login and password to the “3rd person”. However, in this case, we have provided additional options for protection in the system architecture. In case of losing the login and password, the program will inform you about the authorization of new unknown devices, incl. and SMS and e-mail, and allow them to block.
Secondly, to protect information from the developer, we have integrated such a “feature” as additional information encryption - this applies to both files and chat modes in an audio / video call session.
One of the elements of anti-listening protection is a feature of the audio / video transmission protocol developed by us:
moreover, to connect to a “conversation” it is necessary not only to know all the protocols and principles of the software, but it is impossible to connect to the conversation unnoticed, that is, the participants of the conversation will always be able to understand that someone has connected to them, since one more “participant” will be added, otherwise it is simply impossible to connect to the conversation.
Physical intrusion and removal of information from the file storage also will not lead to anything, in other words, if you encrypted a file before sending (let's say you yourself), and then use the tool built into our program, then it’s impossible to read this file. It is not enough to know who sent the files and when. It is not enough to even know the username and password of the user whose files you want to receive. As we described above, the architecture of the application and the entire system provides for such an option: you will not only be informed about the attempt to authorize from an unknown device, but also about all actions of this client (this option has already been implemented and is currently undergoing testing. In our program it will appear soon). In addition, a unique file storage system allows files only to clients to which the file belongs.
We’ll stop on this for now, otherwise you don’t have the patience to finish reading our article to the end (it’s too voluminous).
Please note that this article does not contain information about the competitive advantages of the program and PR (this will be a little later). The purpose of this article is to get your opinion about our application and get feedback.
Start: where to download, how to install, launch the application
We are currently testing new servers, and client applications may be disabled. You will be able to understand what happened to disconnect if you notice the following: messages do not come or your messages do not reach the addressee, cannot make a call or you cannot be reached, the login process is not determined during the authorization process, files are not sent or not received. These situations are short-lived, but for the application to resume, it must be restarted. We apologize for the inconvenience in the beta version of our software. We plan to finish testing new servers by the end of August.
It should be noted that our work will not affect your current calls, regardless of whether it’s an audio / video call or a conference. The architecture and system protocols developed by us allow the application to automatically restore current calls and participation in conferences / lectures, including after disconnecting and restoring the Internet.
To install and run the application, you just visit our website
www.sphere-live.com and click the Download button. The installer of the software corresponding to your operating system will be downloaded. At the moment, the application can not be installed for Mac OS X Mavericks, so you have to wait for the next update (((.
Run the InstallSphere.exe file and go through the installation process (it will take you a few seconds if you, of course, do not study the license agreement).
In the “Download” folder you will find the InstallSphere.apk distribution kit, which you need to run. After installation, you will see the SphereLive shortcut in the "Menu" section. Run!
Yes, the installation process is different, but then everything is identical for Windows, and for Android, and for Mac OS.
First start


You see the standard welcome window of the program (Fig. 1), where you can choose the interface language (Russian or English, other languages ​​we will appear in the program as we add them). Go ahead and click the "Continue" button.
You have a choice: register or log in (Fig. 2), so if you are launching our application for the first time, then you will need to register in the section, but if you have already used the program, then you know what to do next. )))

The registration procedure is as simple as possible for the convenience of the user. You need to come up with a nickname / nickname / login in the Latin language with a length of more than 6 characters, come up with a password and consistently enter it twice. Then enter a real e-mail, otherwise if you lose your password, you will have to register again. Read the user agreement, tick the box and click on the "Register" button. (Pic 3)
Interface overview.
Interface. (Fig.4)

Let's get acquainted with all the panels of the interface.
1. Main menu. (Fig.5) Only the following sections are active (in the current implementation): profile, search and add contacts, settings, logout and logout.

2. User information. (Pic.6)
Here you can change the status, check / top up the balance (1) (we will tell about this in the next versions, in the process of connecting these options) and go to the “Detailed Information” section. (2)

(2) Detailed information (Fig.7).

In this section you can:
- enter your mobile phone number so that users who are on your contact list can send you an SMS from the program without entering your phone number;
-change avatar by selecting it from your archive or taking a photo from the camera.
3. Hotkeys: audio call, video call, open chat (active when contact is highlighted). (Fig.4)
4. List of contacts (below the description of the context menu in this section). (Fig.4)
5. Lists of contacts. (Fig.4)
6. Information output window (for settings and chat, in Android OS, these windows open if the corresponding sections and functions are called) ... (Fig.4)
Before proceeding to the consideration of the main functions of the program, let us allow ourselves to “go over” in the “Settings” section without additional description, since The content of these sections is intuitive to anyone. (Fig.4)
a) Basic. (Fig. 4)
b) Interface. (Fig.8)

c) Audio. (Fig.9)

d) Video. (Pic.10)

e) Video surveillance. (Pic.11)

Here we linger, because These settings are not standard. Video surveillance is organized on the principle of remote access, so if you want your interlocutor (only someone who is authorized in your contact list) to see you at any time, then you need to activate this function by “turning on the toggle switch”, then enter the password twice and selecting from your list of users, add them to the list of allowed contacts. "And how to use this function?" - "Read on!"
e) Files
g) Translator.
Functions
In this section, we consider all possible (in this version) function, but first we need to get "friends" / contacts. To do this, we can use the “main menu” or use the “contact list management” panel by clicking the appropriate button. (Fig.12)
If you are “alone” and you also want to contribute to the development of the Sphere Live project, we recommend that you enter the following name in the search bar - support and send a request to add to your contact list. (Fig.12)

After confirmation by the technical support officer of your request, contact support is authorized in your contact list.
Now we can go directly to testing the basic functions. To do this, you need to select the contact and right-click on it (for Android and devices that support the touchscreen function, you must select the contact and hold "LongTap") to bring up a context menu in which all functions are displayed. (Pic.13)

1. Marks. This feature allows you to select contacts for group commands.
2. Open chat. This function opens the chat with the selected contact (the functions and the chat interface will be discussed below). (Fig.14)

3. Call. Audio call contact. (Fig.15)

4. Video call. Video call contact. (Figure 16)

5. Calls. (Figure 17)

This item contains submenus: Calls to a mobile phone and Video surveillance.
A call to a mobile phone is possible only for devices under the control of the Android OS, provided that the contact to whom you want to call indicated his phone number in his profile. ATTENTION! The call is made using your mobile operator at the current rate on the mobile phone contact.
CCTV. In order to use this feature, your contact must be added to the contact list of the user to whom you are connecting, which is allowed remote access to the camera. In addition, you must know the password to access the camera of this contact, which must be entered in the window that appears.
6. Send files. (Fig. 18) This option is temporarily not available for Android OS.

In the file sending panel you can add an unlimited number of files (1), but with a limit of 200 MB (total amount of packed / compressed files), as well as add to the mailing list other recipients (2) from your contact list.
7.Sending (Fig.19)

The submenu includes two active functions: Sending e-mail (1) and Sending SMS (2).
8. Contact information.
9. Contact. This menu item includes the submenu of contact management: “To favorites”, “Delete from favorites”, “Rename contact”, “Delete contact”.
Chat interface

1. Display window of sent / received text messages. (Fig.20)
2. The panel for entering text messages with the context menu of the editor. (Fig.20)
3. The panel of identification of the interlocutor. (Fig.20)
4. Hot buttons (audio call, sending a file, SMS, sending e-mail). (Fig.20)
5. The period of displaying the chat history. (Fig.20)
6. Translator. (Fig.20)
Here you can choose from which language to which transferred transmitted and received test messages.
Announcement until 08/31/2014
We plan to connect most of the functionality implemented by us in the code, namely:
- audio and video quality settings;
- Videoconference with an unlimited number of participants (limit on the level of iron and Internet bandwidth);
- Asymmetric videoconference;
- group chat;
- call history, received and faithful files, group chats;
and:
- GUI optimization for the tablet;
- light skin;
- release version for Mac OS X.
The next publication will be devoted to the review of updates and new features, competitive advantages, as well as we will tell about what goals we pursued and who our client is, what meaning we put into the concept of “confidentiality” and how this concept differs from other marketing moves.
All comments (comments, suggestions, recommendations, tough constructive criticism), write in a personal or the following contacts:
e-mail: support@sphere-live.com
Sphere Live: support (just add us to the contact list)
Forum :
forum.sphere-live.comIn conclusion, a small task for those who love gifts and is endowed with the talent of a researcher: find in the application features that are not published in the article and get a VIP account with enhanced functionality and increased file storage. Results publish in the comments.
See you in new publications!
PS a few Android screenshots:


