Based on the implementation of more than 60 XMPP protocol extensions
Supported XMPP extensionsThe most ancient and easy way of text messaging - single messages. Can be used to notify one or several interlocutors on something that demands instant reaction and there is no point to store in the history.
Another, more popular way of communication. The communication between the two interlocutors is arranged in the form of a dialogue and is kept in the history.
Another way to communicate. Several users sit in one room and each of the participants sees messages sent by other participants. At the same time, confidentiality is kept: ordinary conference participants can not see the real addresses (JID) of each other, and also, personal notifications. The eyeCU provides full support for XMPP multi-user conferences, including direct invitations to the conference.
The ability to beautifully format the text of messages using formatting using XHTML.
Allows you to see if your interlocutor is typing a message, or may have already completed the communication.
Requests from the client a confirmation that the message was received and sends such confirmation if the interlocutor requests it. Upon receipt of a confirmation of the delivery of the message, the user is notified of this in the form of an icon near the message in the chat, and (if the chat is not active or the message is not a chat message) in the form of a pop-up window and sound.
Allows you to store history both locally and on the server (XEP-0136: Message Archiving). At the same time, OTR (Off-The-Record) sessions, as described in XEP-0155: Stanza Session Negotiation are supported. In this case, both the client and the server agree to suspend the history record.
Synchronizes the chat between multiple resources. Allows you to start communication from one resource, continue it on the other. All incoming and outgoing messages of any resource are duplicated on the rest. In this case, incoming messages appear immediately read.
A special mechanism for attracting the attention of the interlocutor in case he for some reason does not react to incoming messages, but needs an urgent reaction from him. In fact, this is a special type of message, which should attract the user's attention more aggressively than regular messages. Unlike the overwhelming majority of other customers, where this option is implemented, it's only for "ticking", in eyeCU it works really: user's attention is attracted by a large modal dialogue, with bright animation popping up in the middle of the screen on top of other windows and loud sound Bell ringing, which sounds even if the chat with the person who sent the notification is active (in case the interlocutor is away from the computer and does not see what is happening on the screen)!
This is a very powerful tool, do not abuse it!
One of the most important features of eyeCU, which actually gave the name to the client ("I see you"). It allows users to share their current location. Unlike other clients that can only display the coordinates of the user, eyeCU, thanks to the built-in map allows you to literally see where they are at the moment. Of course, eyeCU can also publish its location, defining it in various ways.
Allows users to share information about their current mood. In addition to choosing the mood from a fairly large list, regulated by XEP, the user can write in words the details of his mood.
Allows users to share information about what they are doing at the moment. Activities have a two-level structure: a common activity, and more detailed. In addition, the user can describe the details of his activity in words.
Allows users to share information about the tune that they are listening at the moment. The information is automatically extracted from the multimedia player and does not require additional user action. The list of supported players depends on the platform.
This XEP applies not only to personal notifications. It allows you to tell other users your nickname in various ways, including PEP. Clients who do not know this XEP can take a nickname from the vCard, but for this you will have to download the whole of it only for nickname. In addition, there is no way to tell other users that the nickanme in the vCard has changed. This XEP describes how to communicate your nickname within a regular message, presence messages, and a personal event. In the presence message, your nickname can only be transmitted if it is a subscription request, so that you can display it and specify it when adding contact to the roster without downloading a vCard. Unfortunately, many clients ignore this rule and pass a nickanme also in the broadcast presence messages. In eyeCU, this feature is also implemented, but since this is a violation of XEP, by default it is disabled.
eyeCU can receive and transfer files via SI (XEP-0095: Stream Initiation). Supported transports: IBB (XEP-0047: In-Band Bytestreams) and SOCKS5 (XEP-0065: SOCKS5 Bytestreams). Implementation of SOCKS5 supports direct connection, as well as automatic search of the SOCKS5-proxy service on the connection server.
Allows to inform interlocutors that you are ready to transfer the file to everyone and they can request it. When requesting such a file, the initiator of the transfer is not the sending one, but the receiving party, which sends a request for sending the file. The transmitting party initiates the stream in response to such a request and sends the file completely transparent to the user.
In eyeCU, this XEP is used to distribute a file to participants in a multi-user conference.
Allows you to send links to a file not in the form of text, but in a specially designated message element. This method is used by some XMPP services (for example, MRIM transport in this way inside the notification of a new incoming message or the presence of unread messages, transmits a link on which you can view these messages).
Data between the client and the server is encrypted using modern crypto-secure SSL / TLS protocols, which makes it impossible to read your correspondence by third party.
In-band registration support. Allows you to register (get an account) on XMPP servers that support in-band registration and in transport, directly from the client.
Ability to create bookmarks for conferences or any links. Bookmarks for conferences allow you to automatically join the conference after connecting to the server.
Support for captcha-containing forms allows you to pass the CAPTCHA test directly inside the client, without starting the web browser. CAPTCHA checking may be required for some XMPP servers during registration, as well as for certain transports.
Allows you to use and correctly display JIDs that contain invalid characters.
Allows you to add to the contact list and delete them from there, set the display name, request a subscription (authorization), and also give and take it.
Contacts in the roster can be divided into groups. In this case, the groups can be nested (have a tree structure). One contact can be in several groups at the same time. Some transports can create their own groups, according to the user's contact list on a legacy network. In addition, there are special types of contacts (for example, agents or their own resources) for which special groups are created in the roster.
Contacts in the roster can have annotations that are stored on the server in the roster and can be viewed or edited at any time.
View and edit your virtual business card (vCard), including personal information of the user, his photo and logo.
Support for two types of avatars: vCard-Based Avatars and IQ-Based Avatars. In addition, any contact can be assigned its own image, which will be displayed as an avatar.
Allows to search users by information in their vCard (and not only) on XMPP servers, as well as in legacy networks via transports.
Allow to filter messages and presence from hotel users or their groups, or to them. Allows to become invisible to all or for the certain user, and also, to ignore the user on the party of the server.
Allows you to find out which commands a remote XMPP entity can perform and execute them.
Allows you to manage your client from another resource through Ad-Hoc commands.
Allows you to get information about the properties of an XMPP entity: its type, capabilities, and services. Extensions are also supported.
XMPP is pretty "raunchy" protocol, because it is based on the text format XML. On the one hand, this is bad, because a fairly large amount of unnecessary data is transmitted, but on the other hand it is very well compressed by modern data compression algorithms. Using zlib to compress traffic between the client and the server can save up to 10 times. Requires support for this feature on the server side (implemented on all modern servers).
Allows the transfer of small amounts of binary data directly in the XML stanza. This feature is used, for example, to transfer CAPTCHA, or embedded images when using rich text formatting.
Transports or Gateways are special services that are running on the XMPP server, allowing you to connect your Jabber account to an account on a legacy network, such as ICQ, IRC, mail.ru-agent, VK, etc., which allows you to communicate with your contacts in these networks are as if they are in Jabber. The eyeCU provides full support for transports, including registration, password change, the ability to connect to the transport at any time or disconnect from it, maintain a connection with the transport. Sets of status icons of various legacy networks are automatically assigned to the appropriate transports and their contacts. In addition, it is possible to automatically identify the nicknames of contacts of a single transport, taking them from vCards, as well as automatic change of transport and much more. The presence of the Master of Transportation allows you to greatly simplify tasks such as registration and change of transport ..
The map is downloaded from the Internet and stored in the cache on the local disk. It displays your contacts, location of which is known, points of interest and much more. You can choose one of many map sources on the Internet. At the moment it's OpenStreetMap (OSM), Wikimapia, Google, Yandex, HERE, Ding, 2GIS, Cosmos, Navitel, MegaFon, Geocentre Consulting, Esri, Vi-Tel, Pro-gorod. Various types of maps are supported: scheme, satellite images, hybrid, terrain. You can always choose the card that is convenient at the moment.
Allows you to view selected map area with scale larger than the current one. It is useful when you need to see a certain area entirely, some place needs to be viewed in more detail. The realization of the magnifying glass in the eyeCU is such that it can move with an accuracy of up to one pixel on the magnifying glass scale, that is, the glass itself moves less than 1 pixel!
Each account can have its own list of points of interest and the user can not only enable or disable the display of POI, but also choose which POIs will be displayed and which ones will not. In addition, you can filter the displayed POIs by type.
The user can add, view, edit or delete his points of interest.
The user can transmit points of interest by attaching them to messages. This allows you to quickly tell the interlocutor which place are you talking about and where it is located. You can send both POI from your list, and search results, as well as an arbitrary selected point on the map. Having received the message containing the POI, the user can read the description of the point of interest, see it on the map and save the POI in his list.
You can search for objects on the map, using the services of various search providers on the Internet. At the moment, the following search providers are available: OpenStreetMap (OSM), Google, Yandex, HERE, 2GIS, Navitel. The search results are displayed in the list and on the map as time points of interest. They can be saved in your POI list or sent to the other party in the message.
Contacts whose Location is known are displayed on the Map. There are 2 options for displaying the contact: full and compact. In the compact version, only class="lgslide" href="14">Nickname and status are displayed. The full version also displays Avatar, Activity, Mood and Tune, which he listens to this memorial. You can configure how the contacts will be displayed: always full mode, always compact, or compact, but when activated (if you hover the mouse over it) - full.
Incoming messages from contacts that are visible on the map are also displayed on the map as a bubble. In this case, if you click on the bubble, a chat will open with this contact. To close the bubble with the message without opening the chat, click on the button in the upper right corner of the bubble, in the form of a red circle with a white cross inside.
When the map is positioned, the bubble with the message remains in place, but you can move it with the right mouse button. If the contact whose message is displayed in the bubble is outside the displayed part of the map, in the lower left corner of the bubble appears a button in the form of a compass, clicking on which you can center the map on this contact.
In the message displayed in the bubble, all links are active: standard schemes (HTTP/HTTPS, FTP), XMPP and special (go to the location).
If the contact is nearby, you can receive a notification about it (sound, pop-up window, flashing of the location icon in the roster). Radius of "proximity" and the trigger threshold are user configurable.
The map objects can have tooltips that appear when the mouse cursor is brought to them. What is contained in these hints depends on the type of object. For example, a point of interest tooltip contains the detailed information about it (address, description, etc.). A contact has the same tooltip that pops up when you hover over the corresponding roster item.
You can view photos of streets using appropriate sources on the Internet. At the moment, only Google is implemented, but in the future there may be others.
These are styles that do not use complex elements, special effects and animations. Among them you can find the styles of other primitive clients, for example Psi and Psi +. Understand their format is easy and you can easily create this style with zeros, or remake the finished one.
These are the styles used in the popular multiprotocol client for MacOS X Adium . These styles, designed for WebKit, use complex HTML-formatting and JavaScript, and therefore can have rich design and beautiful special effects. You can choose to your taste and download one of hundreds of ready-made Adium styles from the Adium Xtras page.
In the basic delivery, eyeCU contains 2 sets of text emoticons - European (Default) and Asian (Ping Purple). You can learn more about them here.
eyeCU basic package contains emoji sets "Emoji One", in size 16x16, 32x32 and 48x48px. Other sets of emoji are available for download on the project website or from the repository (via "Maintain eyeCU"). More information about emoji can be read here.
Allows you to connect to Jabber even a newbie who has no idea what it is. At the first start, if the user said that he is a beginner, the program will prompt him to start the connection wizard. It allows you to connect an existing account and create a new one. The wizard will recommend the servers for connection, warn about the features of a particular server, and in case the server does not support in-band registration, it will tell how to register on it via the web!
Allows you to easily connect your accounts in legacy networks to your account in Jabber, via transport. The wizard will propose a list of recommended transports for the selected legacy network and will check their availability, and also automatically turn on automatic authorization of new contacts for the time of registration on transport. The wizard also provides an automatic move from one transport to another, renaming all contacts in the roster.
Allows you to easily connect to an existing multi-user conference or create a new one.
The built-in spellchecker allows you to communicate without typos and spelling errors. A popular Hunspell spelling library is used, for which there are dictionaries for almost all popular languages. This library is used, for example, by open office applications of Apache Open Office and Libre Office, as well as almost all products of the Mozilla project. The eyeCU distribution already contains dictionaries for checking spelling. These are several dictionaries of English, Russian and German, as well as Ukrainian, Polish, Dutch and Spanish. Other dictionaries can be found here, here or here.
Do you remember all these IMHO, AFAIK, IIRC, RTFM? And IANAL, OTOH, WYSIWYG, CUL8R? It is difficult to memorize dozens of abbreviations used by the network community. Fortunately, eyeCU has an automatic abbreviation explanation tool. It knows dozens of Russian and English abbreviations. The abbreviations themselves are stored in plain text files and can be easily supplemented. If the message abbreviated, they are underlined with a thin red dotted line. By hovering the cursor over them, you can see a pop-up hint with a decryption.
You can immediately see which client the interlocutor uses, by seeing corresponding icon. Client icons are displayed in the roster, chat and in the conference. If you click on the icon in the roster or chat, then the application version is requested.
The ability to have multiple profiles with their settings can be very useful for debugging, as well as on systems where there is no multi-use or on machines where for some reason several people share the same account.
In each profile, you can have an unlimited number of XMPP accounts. Each of them can be at any time disconnected or connected, disabled or enabled. It can be very useful when you need to have multiple XMPP addresses at the same time (for example: primary, LiveJournal, GTalk (Hangouts)).
The ability to combine several contacts into one. It is very convenient if one of your friends has several contacts in your roster. For example, several accounts on different servers, or in legacy networks connected through transports. Such combined contacts have a common history, one chat window, one element in the roster.
The Roster window has a section with recent contacts, which is at the top. Elements in it are automatically sorted by the time of the last communication with the contact. Thanks to it, you can quickly continue the recently interrupted conversation and not look for the right contact in the roster. Of course, this section can be collapsed or completely removed.
You can enable the display of open chats in different tabs of the same window (or different windows), if you like. Because of Recent Contacts, this feature is disabled by default.
For individual contacts and contact groups, you can set different status icons.
You can configure multi-stage automatic status change depending on the time of inactivity.
Automatically reminds about birthdays of users from the contact list, in whose the vCard contains the date of birth. The reminder appears in the form of an icon in the roster and a pop-up window. Reminder begins to appear 4 days before the specified date. If the birthday of the contact is today, the pop-up window does not disappear automatically, but is displayed until the user responds to it.
The console to which the XML data stream is output, which the client communicates with the server. Also allows you to send an XML stanza generated by the user. It is necessary basically, with a view of debugging, to find out the reason of this or that problem.
For User Location to work, your location need to be known. eyeCU can do this in various ways, both automatic and the ability to specify it manually. Automated methods are determine location by IP address or using a satellite navigation module that works with NMEA 0183 protocol. The module can be connected in any way: built-in, serial port (RS-232), USB, Bluetooth. Any satellite navigation system (GPS, GLONASS and others) is supported. Due to the modularity, other ways of locating can be easily added.
The eyeCU executable is just a plugin loader. All the functionality of the application is implemented in the plugins themselves. To implement each separate feature in the application, there is a separate plug-in. If some feature is not required by the user, the corresponding plug-in can be turned off to save RAM or even delete to save disk space. This application architecture also makes it easy to write your extensions, even without the source codes eyeCU. It is enough just to install the development toolkit (SDK). You can implement new XEPs, and other advanced features, add new Map Sources, Map object Search providers, Positioning methods, support for other players to determine the tune, playing now and much, much more, just what developer is able to imagine and implement.
It uses the popular FFMpeg library, so it can play a lot of of audio, video and image formats. Can be used as a regular player for playing music and video. But in addition, it allows you to play a multimedia stream in the process of File Transfer. It allows you to see the transmitted content and interrupt the transfer if it became clear that it is not interesting.