Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR AUTOMATIC SELECTION AND PROPOSAL OF THE OPTIMAL COMMUNICATION MEAN
Document Type and Number:
WIPO Patent Application WO/2015/137839
Kind Code:
A1
Abstract:
The invention relates to provide a method and a system for the automatic selection and proposal of the optimal communication mean. Prediction of optimal communication means as technical function performed by the system, will be based on the caller's context and the one who wants to be called. At the end of call, the application will allow users to assess and intervene in the selection and proposal algorithms of the communication means. The invention provides continuous collection, storage and interpretation of user context in order to discover preferences, communication patterns and availability on different media and available communication channels. The method gives users five basic functionalities, that is: contacts' managing, assessing the quality of a communication means, estimation of the cost of a communication means, the proposal of the most effective way to contact a contact based on the context, cost and quality and finally, collection of user opinions and suggestions on the recommended communication means.

Inventors:
MARCU MARIUS GEORGE (RO)
GHIATA NADIA SIMONA (RO)
VASILIAN EUGEN SANDU (RO)
CERNICOVA-DRAGOMIR TITIAN CORNEL (RO)
LAZU LOAN BOGDAN (RO)
DAMIAN HORIA CONSTANTS (RO)
MOLDOVAN HORATIU VASILE (RO)
ROBU RAUL CLAUDIU (RO)
Application Number:
PCT/RO2014/000011
Publication Date:
September 17, 2015
Filing Date:
March 14, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SC INTUITIVE SOFTWARE SRL (RO)
International Classes:
H04W76/04; H04L29/02
Domestic Patent References:
WO2008086119A22008-07-17
Foreign References:
US20110029647A12011-02-03
US20120254132A12012-10-04
Attorney, Agent or Firm:
SC CONSTANTIN GHITA OFFICE SRL (B-dultake Ionescu Nr. 24-28 SC. B, AP., 2 Timisoara Jud. Timis, RO)
Download PDF:
Claims:
CLAIMS

1. Method and system for the automatic selection and proposal of the optimal communication mean based on the user context, characterized in that preferably identifies the communication means of the user based on the communication history and context, carried optimal choice for communication between a user and a contact in their current context depending on the cost and quality of communication channels available and finally initiate a communication by the communication means selected, using contact's name, without necessarily choosing a phone number or an address for communication.

2. Method and system for the automatic selection and proposal of the optimal communication mean based on the user context in accordance with claim 1, characterized in that it collects, processes and stores context primary data of the invention's users as follows: in a first stage, user's context primary data are read from sensors and communication device interfaces, and then, in a second stage, the data is pre-processed to prepare them for detecting user's context, and then, in a third stage, the pre-processed data are stored temporarily in the local storage medium to be transmitted, in a fourth stage, to a central system that will store long-term context data from all users.

3. Method and system for the automatic selection and proposal of the optimal communication mean based on the user context in accordance with claim 1, characterized in that it distributes users' context to their contacts together with information about presence and availability of users on different available communication media.

4. Method and system for the automatic selection and proposal of the optimal communication mean based on the user context in accordance with claim 1, characterized in that it builds the decision and proposal model of communication channel by engaging many classification algorithms from different classes that contribute to choosing the means that best approximates the preferred means of communication of the user, algorithms to be applied simultaneously on the same data set, each built their own classification model used later in the prediction stage of the communication channel. Their results are subject to a voting mechanism, on which it is proposed to the user the communication channel to contact a certain contact. Voting has a simple mechanism for adjusting through weighting with a cost matrix updated by the feedback loop that takes the perspective's end user the proposed channel application and modifies the used weighting cost matrix.

5. Method and system for the automatic selection and proposal of the optimal communication mean based on the user context in accordance with claim 1, characterized in that it monitors effectivly the user's location by combining multiple methods for determining the position (GPS, WiFi, network).

6. Method and system for the automatic selection and proposal of the optimal communication mean based on the user context in accordance with claim 1, characterized in that it determines specific user contexts from primary data collected from sensors and communications interfaces, by grouping and aggregates using classical clustering algorithms.

7. Method and system for the automatic selection and proposal of the optimal communication mean based on the user context in accordance with claim 1, characterized in that it estimates communication costs on each channel through a progressive configuration algorithm on three levels: the first level gives a static and implicit estimate of the cost based on the communication channels parameters (channel type and recipient), no need for configuration from the user, but reduced accuracy of the cost estimate; a second level gives the user the chance to set progressively the options includes in subscription and own rates, increasing the accuracy of cost estimation and cost levels given; finally a third scheme is used to estimate the cost i.e. tariff algorithm implemented in the server, using the rates and detailed user options.

8. Method and system for the automatic selection and proposal of the optimal communication mean based on the user context characterized in that it implements a highly scalable and efficient architecture and method for optimizing the recommendation and selection process of a communication channel, which consists of the following components: contact management component, a component of estimating the communication quality, a component of estimating the communication cost, a component of monitoring and distribution of user context, a component of proposing the communication channel, component for retrieving users' reactions and adapting the decision model, and finally, a component of communication with other communication hardware / software systems and which communicate with various communication systems, collect data about context, quality and cost, proposes the optimum communication path in accordance with data and an interface users through a contact list.

9. Method and system for the automatic selection and proposal of the optimal communication mean based on the user context in accordance with claim 8, characterized in that it is composed of a component that manages the contact list of a communication device, comprising in addition to information about names and addresses of contacts also information about the current context of these contacts, presence and availability on different mediums of communication, proposed communication channel and cost and quality of that communication channel. This information is presented to the user in the form of a graphical interface through which he can launch a call based on the proposal made by the invention.

10. Method and system for the automatic selection and proposal of the optimal communication mean based on the user context in accordance with claim 9, characterized in that it identifies the duplicate contacts from different sources, by applying an approximate matching algorithm, comparing the similarities of different available information and unify them under a single meta-contact.

1 1. Method and system for the automatic selection and proposal of the optimal communication mean based on the user context in accordance with claim 9, characterized in that it searches on the Internet contacts that have no image attached to the contact list, in order to identify the image to be attached to the appropriate contacts.

12. Method and system for the automatic selection and proposal of the optimal communication mean based on the user context in accordance with claim 9, characterized in that it unifies available communication means for each contact and unifies communication history through different communication channels of a contact.

13. Method and system for the automatic selection and proposal of the optimal communication mean based on the user context in accordance with claim 8, characterized in that it is composed of a component for communication channel cost estimate which take over pricing information, calculates estimated cost of communications for every available channel in the given context based on multi-level method for estimating the cost and transmits cost levels obtained for the contact list to be displayed in the interface with the user.

14. Method and system for the automatic selection and proposal of the optimal communication mean based on the user context in accordance with claim 8, characterized in that it is composed of a component for communication channel quality estimation that collects communication about quality of radio signal, determines an estimative level of the quality of each available channel in a given context based on quality estimation method and transmits the estimated quality to contact list to be displayed in the interface with the user.

15. Method and system for the automatic selection and proposal of the optimal communication mean based on the user context in accordance with claim 8, characterized in that it is composed of a component for monitoring and distribution the user context which reads continuously the values from the sensors available on the communication device, the composition of the collected data locally stored in a CDR, the CDRs of the transmission in an efficient manner to the server and to store them in the database, the estimation of the user context based on the primary context parameters from CDRs and the distribution of the context to users where the user is present as a contact.

16. Method and system for the automatic selection and proposal of the optimal communication mean based on the user context in accordance with claim 8, characterized in that it is composed of a component for proposing the communication channel which builds classification models based on the communication history of every user, uses the decision method based on multiple classifiers, and voting for the proposal result of the communication channel and transmits the classification result, that means the communication means proposed to the users of the solution to be used when initiating the communication.

17. Method and system for the automatic selection and proposal of the optimal communication mean based on the user context in accordance with claim 8, characterized in that it is composed of a component for retrieving users' reactions and adapting the decision model which performs an automatic query of the user after a conversation about satisfaction degree regarding the communication means in this context and adapts the proposal lgorithms of the communication channel by changing the cost matrix.

Description:
METHOD FOR AUTOMATIC SELECTION AND PROPOSAL OF

THE OPTIMAL COMMUNICATION MEAN

The invention relates to a method and a system for automated selection and proposal of the optimal communication means in the technical field of Information and Communications Technology.

Currently, users of communications services have the ability to choose the means by which communicate in a variety of technologies, devices or communications applications. This range, however, creates a number of problems to users, such as: synchronization, updating or management of contacts distributed over different communication devices thereof. In addition, each user's contact has in turn several devices, addresses or applications through which he can be contacted. A current challenge for people using multiple devices or communication applications is choosing the most effective means of communication with a particular contact in terms of quality, cost or availability thereof. Preferably, the initiator of a conversation should have the possibility to call someone just based on name, without the need for selecting a phone number or email address and without the need for selecting a communication application. Actually, even if a person uses a single communication device , if the called person that he wishes to contact has multiple addresses that can be reached, such as a phone number and IM address, the caller will have to choose both the address and the application that will initiate the communication with that call, but without any further indication of its availability to accept the dialogue through the channel. For example, a smart mobile device based on the Android operating system allows installing more than one application for voice communication (Android Phone, Skype, Viber, etc. .), thus when initiating a call to a contact, the user will have to select one of the installed communications applications, even if the connecting conditions for the respective applications are not available (e.g. no data connectivity) and even if the contact does not have installed the application. The selection of communication means can be performed automatically based on communications history of the user and based on his current context. By context is meant the set of information that describes the environment or current status of the communication services user. Some examples of attributes that describe the context are location, time or status (presence or availability) of users or contacts.

It is known the invention EP 2575128 (A2) 2012 - a virtual assistant uses context information to supplement natural language or gestural input from a user. Context helps to clarify the user's intent and to reduce the number of candidate interpretations of the user's input, and reduces the need for the user to provide excessive clarification input. Context can include any available information that is usable by the virtual assistant to supplement explicit user input to constrain an information-processing problem and/or to personalize results. Context can be used to constrain solutions during various phases of processing, including, for example, speech recognition, natural language processing, task flow processing, and dialogue generation.

It is also known the invention WO 2013048880 (Al) - a user interface for a system such as a virtual assistant is automatically adapted for hands-free use. A hands-free context is detected via automatic or manual means and the system adapts various stages of a complex interactive system to modify the user experience to reflect the particular limitations of such a context. Thus, the system of the present invention allows for a single implementation of a complex system such as a virtual assistant to dynamically offer user interface elements and alter user l interfaces behaviour to allow hands-free use, without compromising the user experience of the same system for hands-free use.

It is also known the invention WO 2007024704 (A2) - Systems and methods for assisting- a user with a variety of tasks are provided. A virtual assistant has access to a user's contacts, calendar, and location. The virtual assistant also is able to access information about weather, traffic, and mass transit, and is able to adjust the time for alerting a user about an upcoming appointment. The virtual assistant also has a rules engine enabling a user to create rules for handling incoming calls and instant messages, rerouting calls based on their caller identification. The virtual assistant also has a query engine enabling a user to find a document and to work with it, including sending it to a contact in the user's address book. Interfaces to virtual assistant may include installed software client, web browser, SMS/instant message, as well as an interactive voice response system.

A known invention is also US 2004203664/2010 - A system and method for context-aware unified communication for enabling communications between users over a common communications platform or heterogeneous communications platforms. The system comprises: agents associated with a respective caller and callee communications device for generating commands providing call control between the caller and callee devices; a routing engine for routing call commands between caller and callee via respective device agents to establish a communication session, and enabling exchange of conversation messages between the caller and callee communications devices over said single or heterogeneous communications platforms; a device for monitoring dynamic context of a callee and obtaining callee's preferences for receiving communications so that the routing engine enables a call setup between a caller and callee communications devices based on the callee's preferences or dynamic context information; and, further enabling either caller or callee to migrate a call to another communications device without disrupting a flow of a conversation.

Another known invention is US 20100077093/2013 - A protocol converter includes a computer-readable storage medium that includes operational instructions that, when executed by a processor, allows communications between a first node and a second node which use different communications protocols. In a particular embodiment, the computer-readable storage medium includes operational instructions to use a first facility to receive first data from a first node, where the first data complies with a first protocol, and where the first facility supports at least one of a first link layer and a first line layer communications protocol. The computer-readable storage medium includes operational instructions that spawn a utility in response to receiving the first data. The computer-readable storage medium also includes operational instructions that use the utility to translate the first data into second data in a second protocol and that use a second facility to send the second data to a second node.

Current systems have disadvantages:

- Does not perform automatic or adaptive selection of the optimal communication mean.

- Does not optimizes enough the communication method of the user's perspective to cost and quality requirements

- Are oriented more on the choice of equipment and communication protocol than communication tools and applications used by users.

The technical problem of the invention is to provide a method and a system allowing users who have a large number of contacts (friends, partners, acquaintances) and use multiple means of communication (voice, instant messaging or SMS, VoIP, email or social networks) in different contexts (school, family, work, vacation), to manage their available communications means for selection, proposal and choosing automatic and adaptive to the user's response, and optimize the most effective communication method with a contact, in terms of quality and cost.

The method and system for automatic selection and proposal of the optimal communication means according to user context eliminates the above disadvantages in that it consists of a contact manager extended with presence and context information that gives users a simple perspective on the quality and cost of a communication means in a particular context and that will propose the user the best communication means with a particular contact. The calculation of optimal communication means, as technical function performed by the system, will be based on the context of the caller and the one who wants to be called. At the end of a call, the application will allow users to assess and intervene in the selection algorithms and propose communication means. As method, the invention provides continuous collection, storage and interpretation of user context in order to discover preferences, communication patterns and its availability on different media and communication channels available. The system provide users five specific contact management functionality, assessing the quality of a communication means, estimating the cost of communication means, the proposal of the most effective means of contacting a contact based on the context, cost and quality of communication and finally, gathering users' opinions and suggestions on the recommended communication means.

The method and system for automatic selection and proposal of the optimal communication mean according to user context in accordance with the invention has the following advantages:

1. performs automatic selection and adaptive to user's reaction of the optimal communication mean.

2. optimizes the communication method of the user perspective to cost and quality requirements

3. is focused on the means and communication applications used and preferred by users in a specific context.

Further on an example of embodiment of the invention in connection with the figures:

Fig. 1. - The proposal of communication means depending on the context;

Fig. 2. - The main functional requirements of the solution;

Fig. 3. - Ecosystem of communication systems

Fig. 4. - General architecture of the solution;

Fig. 5. - Adapters for communication in integration model with other communication systems; Fig. 6. - Overview of solution requirements

Fig. 7. - The collection of primary data and extracting the communication context

Fig. 8. - Collection and distribution of presence and communications context

Fig. 9. - The decision model to propose the communication channel

Fig. 10. - Flowchart of building prediction models for users

Fig. 1 1. - Flowchart of building the classification model for a user Fig. 12. - Prediction flowchart of communication channel

Fig. 13. - Simplified flowchart for pricing

Fig. 14. - States diagram for a message

The main purpose of the solution of the invention (Fig. 1) is to provide an easy way for a user 1, who has and uses more communication means, to select a communication path 3, which may initiate a conversation with a particular contact 2. Selected communication path is optimal in terms of quality and cost of communication. The suggestion of a communication channel 3 will be done automatically based on the user's context 4, on the contact's context 5 and the communication history between the two, stored on a central server 6.

The solution of the invention offers users five basic functionality (Fig. 2): Contact management with presence and context information, assessing the quality of a communication means, estimating the cost of a communication means, the proposal of the most effective means of contacting a contact based on context, cost and quality of communication and finally, collecting users' perspective and suggestions on the recommended communication means.

The solution provides primarily an extended contact manager with presence and context information. Unique and innovative feature that invention proposes about managing contacts, relative to existing solutions, is the determination, allocation and distribution of user context for mobile services users and their contacts through graphical interface with the user dedicated to contact management. Secondly, the solution provides users with a simple perspective on the quality and cost of a communication means in a particular context, by indicating an icon in the right contacts for which such information exist. And thirdly, the solution of the invention may offer users the best communication means with a particular contact according to the user's and contact's context, self-adapted based on history and reaction of users.

To provide a portable and extensible solution, in addition to functional requirements listed above, the invention implements a number of non-functional requirements. A first important requirement of the proposed solution is to adapt it to different platforms, standards and communications equipment existing or after its development. This requirement is needed in terms of diversification and continuous development of platforms (VoIP, instant messaging, social networking) and devices (programmable smart phones, VoIP phones programmable computing system) through which a user can communicate (Fig. 3). Of all the possibilities of interconnection between the user and the contact called, the solution of the invention is able to propose the most effective way of connecting the two. Secondly, the proposed solution must be able to adapt to the user or to use different reaction pattern classification and extend them with different cost parameters matrix to identify the best communication channel in terms of quality and cost. In other words, the solution of the invention can adapt to different behavior patterns of users in the use of communication means. This requirement concerns the way in which the solution of choice of communication channel decides on the communication means and it may be adaptive as it is utilized. Thirdly, the proposed solution should scale easy with increasing number of users and concurrent accesses, and moreover must be updatable, maintainable and operational with costs as low as possible.

Considering all these requirements, the solution of the invention is achieved by a hardware/software scalable and efficient architecture (fig. 4) that allows optimization of the recommendation and selection of communication channels. To meet integrability, adaptability and scalability requirements, the proposed architecture for implementing the solution of the invention is based on the classic client / server architecture, but extended with the following three models:

- Architectural model of communication and integration with existing communication systems

- Architectural model of decision and selection of classification algorithms

- Architectural model of collaboration between solution components

Client/server model (Fig. 4) is composed of a client application 7, which is installed and running on the user device (usually a smart phone) and a server solution 8, which is installed on a server or group of servers, located in the data center provider for the solution of the invention. Server solution contains several applications and services dedicated to various activities assigned to that server. Solution architecture client / server overlaps in terms of its requirements to a solution of MMO type (Massively Multiuser Online). Such a solution enables short real-time interaction between a large numbers of users. Client application 7 allows users to access the functionality of the solution of the invention. Client application 7 has two components: a user graphical interface 9 for accessing the five basic functionalities and a service 10 providing user the context.

Component client user graphical interface 9 is the application through which the user accesses the contacts and communication means with these contacts. This component must be portable on different types of devices and operating systems. The second component, a software service 10 gathers the available primarily information to the user device, composes the user context based on this information and finally publishes the user context for desired contacts, through interface services 1 1 offered by the server solution 8. Interface services 11 implement interface and communication model between the components of the solution.

The invention, being a solution for optimizing and automating the choice of communication means between more communication channels available, need to integrate over the existing communication solutions. Modern communication systems include both hardware (communications equipment) and software components (communication applications). Some of the components are open, which means that a third application can be integrated and communicate with said solution, while other components of the communication are closed, without the possibility of communicating with one another by means of other applications. Open solutions typically provide a programming interface (API) through which it that can be accessed programmatically the provided services. To communicate with existing communications solutions, the solution of the invention implements an adapter to interface with each of these solutions (Fig. 5). Communication adapter for a specific communication application is based on API programming feature set offered by applications' manufacturers. Each communications application offers its own programming interface and communication protocol. To remove the internal implementation details of implementing the invention of each communication interface was used extensibility architecture based on the concept of plugin or adapter. Such an adapter implements API programming interface and communication protocol with the application communication for which the adapter was created (Fig. 5).

Each communication application uses one or more communication channels. A communication channel is the logical way that can make the exchange of information between two communication partners. A communication channel uses a communication interface for transmitting and receiving information and specifies the information encoding (voice, video, messaging, data). In the solution of the invention, for the selection of the communication channel is required internal encoding of these channels. This encoding is done installing the solution of the invention when to each channel is assigned a unique code, similar to the table below. Available communication channels are initialized when installing the application and updated by the user by adding new accounts for communication channels recognized by the application.

Providers for communication means:

- Google

- Facebook

- Yahoo

- Android Phone App / iOS Phone App / WP8 Phone App

Type of communication channels:

- Voce

- SMS

- Date

The decision model for dynamic selection of context based communication means uses existing automatic learning algorithms and classification applied on communications history and their context. These algorithms are parameterized by a cost matrix whose terms are set according to the estimated communication cost and the estimated quality of communication in a particular context. Known algorithms have been adapted and parameterized to obtain relevant results in the communication context.

Based on the analyzes conducted on the users communications history has been noted that classification algorithms are quite close in performance and both speed and accuracy in grouping. Instead, the rules resulting from the application of classification models have been quite varied. Thus, based on the results three algorithms were selected from different classes that are used simultaneously for proposing the communication channel (Fig.7). In the decision model thus defined are involved these three algorithms selected from different classes that contribute to choosing the means that best approximates the preferred means of communication of the user. The three algorithms are applied simultaneously on the same data set, each building their own classification model. The three models obtained are used in the prediction phase of the communication channel and their results are subject to a voting mechanism, by which it is proposed in the end user communication channel to contact a specific contact. Voting mechanism is a simple mechanism extended with a weighting matrix costs used to adjust the class selection based on estimated cost and quality of the available channels. Feedback loop used to adapt the algorithm to propose communication means according to changes in user behavior, takes the perspective of the end user on the proposed application channel and changes the cost matrix used for weighting. Examples that can be used as classification algorithms are: J48, Riddor (Ripple DOwn Rule Learner)/PART and Na ' ive Bayes. The decision model is thus based on user communication history, but has a simple mechanism for adjusting the feedback loop that takes the end user's perspective on the proposed channel application (MOS - Mean Opinion Score). So the decision model will weigh classification errors of the model through user perception matrix costs and choose the means that best approximates the preferred communication means of the user.

Classification algorithms use as input the communication history of user database, saved as CDRs. The application of such data classification algorithms may be performed in three ways:

- Global on cumulative history of all users or groups of users:

• Advantage: it will be obtained one single classification model for each used classification algorithm;

• Disadvantage: cannot capture the communication patterns of each individual;

- Individual for each user history:

• Advantage: it be can captured the communication preferences of each user while keeping reasonable number of classification models, one for each user and used algorithm;

- Individual for each user - contact pair:

• Advantage: it can capture specific communication patterns in communication between users and each of their contacts;

• Disadvantages:

□ a lot of classification models are being obtained, one for each pair of users communicating with each other

□ data volume on which the algorithm shall be applied can be small, so that the classification is irrelevant.

Classification algorithms allow the construction of a classification model based on the history of communications conducted by a person or between two people. The so constructed model is used to predict the nominal value of a constructed attribute classes, and more specifically, interesting is the recommended means of communication prediction in class detected for the context in which the user is located. Following the analysis of the standard classification algorithms using different telephone datasets, has yielded important information on the ability of these algorithms to identify patterns of use among those data or classify data can then be used at the recommendation of the communication channel between two people.

Algorithms for classifying communication history and user context are implemented using open source library WEKA (http://www.cs.waikato.ac.nz/ml/weka/). Weka is a collection of machine learning algorithms for data mining tasks. Besides classification algorithms, WEKA contains tools for data pre-processing, regression, clustering, association rules, and visualization. WEKA necessary libraries are included in the solution server for later use in the selection and proposal of the communication channel between a user and each of its contacts. The input data for data mining algorithms provided by WEKA are prepared in the form of records, called CDR (Call Detail Record) which will be discussed later.

To implement the selection and proposal mechanism communication means three services are being needed:

- Building and storing classification models based on the users communication history. (Fig. 10)

- Periodic assessment of models and their update if the error increases above a certain threshold level (fig. 11)

- Prediction of user preferences to identify a change in its context or one of its contacts (fig. 12)

The solution of proposing the communication channel uses simultaneously multiple classification algorithms out of which it will be selected the closest for the communication pattern for a particular user. Classification algorithms train independently on communications and context data of each user of the solution. The models thus obtained are saved for each user, to be then used in the communication means proposal with a particular contact in a given context. The evaluation of the models is made either on training data, where the model is rebuilt, or CDR-ups, to determine the need for the reconstruction of the model. The third functionality implemented in the interface offers the possibility for execution of this model on a certain CDR in order to predict or estimate a particular attribute or parameter (such as the means of communication).

The communication model between the components of the invention solution and software or physical devices to which it is interfaced is based on XMPP standard. Extensible Messaging and Presence Protocol (XMPP) is composed of a set of open technologies for messaging, presence, discussion, voice and video calls, collaboration, content, distribution and routing data in XML format. This model was extended with the implementation of communication support for real-time transfer of information about context and with a mechanism of communication message confirmation (Fig. 14). Implementation of the model was performed at both client application and server application.

Starting from the models on which the architecture of the invention solution is based, the models specified above, the solution of the invention consists of the following five software components that maps on the invention functionalites (fig. 6):

- Software component for extracting relevant context for users of different communication channels; - Software component for distributing context information together with user presence information on various communication media

- Software component for quality assessment and analysis of communication and communication channels;

- Software component for cost estimation dialogue on each communication channel;

- Software component for communication channel proposal

These components are distributed between the client application 7 and server solution 8. Server solution 8 (fig. 4) is used by the client applications 7 for maintaining users' contacts with their current context thereof. Contacts and users of the solution are stored in a database

12, accessed via a component for managing contacts, context and communication channels

13. In addition, server application 13 offers customers also a selection and proposal mechanism for optimal communication means at a time. The proposed solution for the application server is based on a multi- level distributed architecture designed to provide a high availability performance services. This solution includes: a distributed cache system 14 for quick access of contacts from a contacts database 12, a node load balancing system 15, a context information transfer module 16, based on the communication model, a module for communication parameters collection 17 CDR type, based on data collection model and a data classification module for communication means proposal (fig. 4). Server solution 8 has extra the capacity to collect context data from a context provider 18 (e.g. Google Calendar) or communications infrastructure data from a communication provider 19 (e.g., cost or quality of a communication channel).

Software service that implements the XMPP module 16 also supports interfacing with other presence servers: Yahoo, Hangout / Google + and Facebook; user messaging between these solutions. Software service that implements Load Balancer module 15 allows a fair distribution of application servers load, load balancing for nodes running the application server and triggers data migration / user context on another processing node. Application Server implements context preservation services, presence and user status, identifying user context and data mining algorithms for the proposed communication channel.

The first component is required to collect primary information for context, user context composition and publishing context for contacts who received the right to receive them. The presence and availability of users and contacts are the attributes that make up the context. In addition to these attributes, the component allows other attributes such as: location or time. This component provides the mechanism through which a user can control the attributes released in context and which contacts can access this information.

The primary information about the context is any information that can be collected from user devices, from equipments of communications infrastructure used by it or from communications services and applications, context and communication providing modules 18, to which is subscribed that user. Primary data sources and types are varied and numerous as they are collected by monitoring module, the client module 10 and then used in extraction of user context. The set of primary parameters needed for composing context consists of: location (latitude, longitude, accuracy), speed, time (day of week, time of day, geographical area), connectivity (type and quality of the radio signal) and availability (presence and status). These parameters are continuously collected at a configurable rate from all users of the solution to be then stored in the contacts' context database as CDRs. Based on historical values of these parameters and based on the history of users' communications, it shall be extracted and identified their main communication contexts. By user's communication context it is understood a specific and repeatable situation where the user prefer or avoid a particular means of communication or communication channel.

The primary data for extracting the context are being collected with the user communication devices by means of sensors and interfaces that these devices have (Fig. 7). The location of the user is taken either from the GPS sensor, or GSM cell or WiFi access point, according to availability or permissions and preferences of the user. Each of the data sources has different location accuracy, as it will be supplied and stored also the data source for these values. Travel speed is taken from GPS sensor, if it is enabled and its use is accepted by the user. Time as the primary parameter is stored as absolute universal value. In pre-processing, this time it turned discredited values such as months of the year, day of week, time of day, to increase context classification accuracy. Information to characterize the available communication infrastructure as primary data context, are taken through communication interfaces available on the device. Through these interfaces is being monitored also the quality of the radio signal as RSSI, for xG (3G, 3.5G, 4G ) and WiFi.

Primary data may be incomplete either due to the lack of certain sensors from the communications device or because their collection was disabled by the user. For this reason, the process of extracting the user communication context must be sufficiently flexible to compensate both the lack of certain data as well as the variable precision data of the existing data. To increase the accuracy of classification, primary data should be filtered and preprocessed. Data preprocessing is to prepare, through specific algorithms, the primary data for the classification stage in order to discover different communication contexts of the users and preferred means of communication in these contexts. The patterns resulting from the classification are stored in the contact database and then be used to identify their current context.

Users' availability is implemented through presence mechanism supported by instant messaging communications solutions. The availability of a user consists of the presence or absence on different communication channels and user's status or chosen profile (eg, available, busy, in meeting, etc.).

As one collect users' data and their history is outlined in the server database, classification models will evolve and reproduce with more precise accuracy contexts and users' preferred means of communication in those contexts. The primary context data collected for each user are presented and defined in the table below:

was initiated.

End date Datetime End date of the event. If the event is a call, then this is the date and time the call was ended.

Latitude Numeric User location where the event took place (initiating event)

Longitude Numeric User location where the event took place (initiating event)

Speed Numeric Average speed of the user during the event

Precision Numeric Accurate indicator of determining the user position

Time zone Numeric Time zone of user location

Battery Numeric 0..100, 101 Type and status of the power source status communication device. The level of energy available in the battery.

Channel Numeric 1-... The unique identifier of the communication channel which the respective record has been received

Presence Numeric 5 -Available User's presence and availability of the used status communication channel

4-Busy

3-Driving

2-Away

1-Not

available

0-Unknown

Interface String Interface which established communication channel. The interface can be the phone number of the SIM card or access point SSID WiFi.

Quality Numeric 1..5 Quantify the communication quality in terms of score interface and communication infrastructure.

Quantification is on five levels: { 1, 2, 3, 4, 5}, where 1 means low quality and 5 encode the highest quality.

Cost score Numeric 1..10 Quantifies the estimated communication cost via the communication channel. Described below. Status Numeric 1 - incoming Call status

2- outgoing

3- missed

4- busy

5- rejected

User opinion Numeric 1- Very poor User opinion on whether making or taking over a score call on the specified communication channel

2- Poor

3- Acceptable

4- Good

5 - Very good

0- unspecified

Contact String Communication partner identifier on the used channel (phone number, account messenger, etc.).

Contact Numeric 5-AvailabIe Presence and availability of the user on the used presence communication channel

4-Busy

3 -Driving

2-Away

1-Not

available

0-Unknown

Record type Numeric 1- Call detail Identifyer of of the type of data stored in such a record record

2- Channel

detail record

3 - Interface

detail record

4- Location

detail record

The second component of the software allows the distribution of the context information of presence information for users on different communication environments. The user interface of the client application allows, in addition to viewing and managing contacts, also the facility where user can post his availability to communicate on a specific communication channel. This information should be distributed in real-time to the user's contacts in order to be available when he could be called or when his attributes could be viewed by other contacts. This is, however, possible if the user's contacts also have in turn installed the solution of the invention. Together with the distribution of presence and availability information for communication, it is distributed also communication context of users. Distribution of presence and context information will be achieved through a portable communications infrastructure, scalable and standardized. This infrastructure enables the integration of users' presence and availability offered by other communication and presence applications and services (e.g. Yahoo).

Context and presence information are collected by the server, aggregated to create an association between communication context and users' availability in such contexts, and finally the data is stored for each user (fig. 8). When changing the current user context, information about the new context will be distributed to users who are registered as the contact thereof, respecting the visibility rules (permissions) specified by the user.

An important requirement of modern communication solutions refers to the privacy protection of the users of the solution, so they can not be bothered by the various available communication means, when they do not want it. From the technical point of view, this requirement is implemented over the capture and distribution mechanism of the presence and availability of users regarding the communication channels through which they can be contacted. From the social point of view, the solution of presence publishing contributes to strengthening the individual's right to privacy by being able to identify the presence and availability of the various communication channels. Presence and availability information is distributed to all contacts of the users who are using, in turn, the same presence solution or solutions compatible with it.

The second susceptible aspect of the invention is solution given how to ensure the protection and control of users over their own communication context. Context information contain user private data, such as location or quality and cost related to available communication channels, data that must not be distributed or published without the permission of the user for which it was taken. This primary information is not distributed to the contacts, it is only collected from the user and stored in the contact server for the application of classification algorithm, in order to determine user context and their preferred communication means, in an identified context. The primary information collected from users are used to compose their context, which context is given to the user for which it was generated, to be viewed and probably made public.

Users are able to control (enable or disable) the sending to the server context parameters provided by the client application, the distribution of current communication context and storing on server the user's contacts. Permission of the component for primary parameters collection and transmission for context is based primarily on validation and control mechanisms provided by the operating system (for example, the application will use GPS location if it is explicitly allowed by the user in operating system specific settings). Additionally, the application's user can identify (see) and filter (choose) the application parameters collected and sent to the server for processing and compositing communication context. To this end, in client application settings there is a user interface for the description and selection of primary parameters collected from the user. The client application will provide to the server only those primary parameters allowed through the operating system and application's permission interface. Similarly, the user can drop the storage service of his contacts on the server.

Distribution of current communication context can be disabled by selecting a predefined presence and availability status: invisible. By using this status, the user's current context will not be visible to its contacts.

On the other hand, decision and analysis algorithms used for the provision of services and functionalities of the solution, located on the server, needs to perform optimum parameters, complete and accurate data. If the application's user, from security or privacy reasons, disables the collection and transmission of certain context parameters on the server, contacts or status, then it will reduce the quality or the services will invalidate the solution. Thus, the user will be notified when changing privacy settings, the effects that these changes have on the quality or validity of the application services.

The third software component allows the assessment and analysis of the quality of the existing communication infrastructure and available communication means in a particular context. This component collects information about the existence and parameters (RSSI) of communication media (3G, 4G, WiFi) present in a particular context. On the basis of this information, it is calculated a quality score of communication environments in a given context that is associated with available communication means.

For voice calls the decision must be made between GSM and VoIP calls. The choice is based on a compromise between the quality of communication and communication cost. VoIP offers many advantages over traditional telephone networks, but they are not sufficient if it fails to maintain the same level of quality in voice and call communication. This need arises because in telephone conversations the most important thing is the understanding between the parties involved and a poor quality of services may lead to interruptions and delays. For voice to be transmitted intelligibly over the network to the destination the packets must not be lost and also the delays should not be too high.

In PSTN communications networks the main way to provide voice quality in calls is to allocate a certain bandwidth to be available throughout a call. Once it is assigned, it will not make changes. If problems arise in allocating bandwidth, the call shall be interrupted. Because PSTN is a network based on circuits and not packets, the big advantage is that the problems related to congestion or latency is being avoided and voice quality is kept at a high level. Thus in order to be guaranteed the same communication quality compared in VoIP in comparison with PSTN it must be taken some measures, the most important being:

- differentiation between voice and packets over other circulating through the IP network, this being achieved by allocating different priorities to different packet types.

- ensuring sufficient bandwidth for voice traffic which allows controlling the number of lost packets.

If for PSTN it shall be allocated bandwidth throughout a call, and if it could just assign the desired width, the call was interrupted, in exchange VoIP enables packet forwarding at the expense of available bandwidth. Rather than interrupt the call, it is allowed lower quality to a certain extent.

There are several factors that negatively influence the quality of a VoIP network i.e. latency, jitter and packet loss. Latency is the time it takes a packet to travel from source to destination. It is the main factor affecting the perceived quality of voice. Adapting the definition to a VoIP network, latency is the time required that what a participant said in a conversation to be heard by the other party. Many factors contribute to increasing latency and therefore decreasing the quality, such as: packing, packet routing, processing, etc. Taking into account the traffic congestion that occurs in VoIP network, there are delays caused by the queues that form and increase the latency with a few units.

Jitter is the variation in time between packet arrivals. The packages are expected to arrive at regular intervals, but sometimes there are differences between the time the package should arrive and when it arrives. Effects of jitter are more significant than those caused by increased latency. Due to changes in the order of packets arrival, at the destination call breaks may occur, or overlap, making it difficult to follow the conversation, making impossible to continue the call.

Packet loss is mainly due to congestion occurring in the network traffic. As the name suggests it is an important problem with a big impact on a phone call. Packet loss is closely linked to the factors listed above, as both increased latency and jitter may contribute to its occurrence. Being a real-time application, VoIP uses UDP protocol which does not provide the retransmission of lost packets due to time restrictions. However in VoIP networks packets are small, so the loss of a packet can be neglected. But in cases of congestion not only a single package is being lost but a whole group of packages and these losses become noticeable.

Even if these parameters can be collected in communication infrastructures 19 (communication server, telephone operators), in case of mobile device they are more difficult to monitor. Thus, in case of client communication, the quality is estimated by the signal power received by the mobile device. In the solution server, it can be implemented various communication parameter providers 19 which, if the infrastructure allows, may be included within the quality estimation component.

But the parameters used to estimate the quality of a communication channel do not capture the user's perception of communication conducted through such a channel. There are differences between quality parameters and user's perception of quality. The classical method for evaluating the quality of automated estimation of communication channels is the use of user opinion on the perception of the communication quality. The user estimates the quality based on the so-called MOS (Mean Opinion Score). When closing a dialogue on one of the communication channels proposed by the invention, the client application will intercept communication end and provide user the possibility to evaluate fast and simple, the quality perceived by the user. This information will be saved along with the corresponding CDR and will be placed in the user's communication history.

Even though collecting user feedback is fast, the user can disable it if he wants it. This mechanism of taking the user's option is additionally extended within the invention to provide an opportunity to learn the user's perception of the proposal made. This option shall be enabled when rejecting a call or when not answering a call, and will retrieve from the user the reason for rejecting the call. These options are used for extending the proposal algorithm of the communication channel with a capacity of adjustment in accordance with user preferences by changing the cost matrix used by classification algorithms.

The fourth software component is necessary to estimate the cost for a particular context communication channel. Due to the variety of charging ways adopted by communication providers and to prevent increasing complexity of client application, component for cost estimation uses a progressive configuration and estimation model of multilevel costs. From the end user perspective, the client application implements a simplified model for estimating the cost of communication. This model calculates a score for the cost of a communication means based on user contexts and his contacts.

The transfer of information between two communication devices and applications involves resource consumption, ultimately, it can be quantified in a so-called communication cost. The perception of the end user of a communication device is that some communication sessions have costs (voice call, SMS, data transfer), of varying scope (voice call in network vs. international voice call vs. roaming call ) but others are free (options or bundled minutes, data options). Regardless the user's perception, any communication session involves a cost, be it the user's (hidden in subscription or options costs), or the operator's (different promotions to customers), or contact's (if it is the one who initiated the call or another network - roaming). The purpose of this component is to assign a cost to each communication session established between a user and a contact thereof by means a communication device. The cost of a call is used as a parameter in the model selection and proposal of a communication means.

Pricing and cost estimate component for a communication channel combines the following three perspectives:

- Simplicity of configuration and experience for use by users;

- Accuracy of the model for different usage patterns and configuration levels;

- Flexibility of configuration and maintenance effort to provide services to administrators of the solution.

On one hand, the current pricing systems used by communication service providers are varied and include a large number of variables. For example, a tariff plan will include charges for voice, messaging or data with different destinations (national/international, in network / to other fixed or mobile networks, roaming, etc.) or specific options subscribers (included minutes, included messages, favorite numbers, etc.). On the other hand, most mobile applications users are not willing and often not advised to set up services with many parameters or advanced settings, as pricing plans, however, it is expected that the application services provides accuracy and very good quality. In order to meet and find a balance between these requirements, solution of the invention proposes a multilevel progressive scheme for the configuration of communication tariff plans and cost estimate. On the first level of the scheme it is given a default algorithm for estimating the communication channels costs based on their parameters (type channel and receiver), no configuration being needed from the user, but the accuracy of the cost estimate is reduced. Quantifying the cost is also made on a number of levels, including:

o Wi-Fi Data Communication,

o National SMS,

o National Call,

o 2G/3G/4G Data Communication,

o International SMS,

o International Call,

o Roaming Data Communication.

For the second level it is allowed the user to set gradually the options included in subscription and own tariffs, resulting in increased accuracy of cost estimation and offered cost levels (fig. 13). These algorithms are implemented and executed on the client application providing estimation accuracy better than the previous level. In case of the third level, which is addressed mainly to companies that have a fleet of phones and preferential tariff plans, it is used a third cost estimation scheme, namely charging algorithm implemented on the server. At this level, companies acquiring the solution of the invention will configure on the server own tariff plans and options, therefore, not necessary to configure all charges but the contracted operators. Thus, the end user, depending on the requirements they have and availability as accurately configure tariff plan, will be able to control the cost estimate on the various communication channels and communication media.

Finally, the fifth component of the solution aggregate the information provided from other components in order to make a prediction of the best mode of communication with a contact that can be reached in a particular context. The selection is done by executing the classification model built on the current data server provided by the client regarding the calling user contexts and dialed contacts.

When changing the context of a contact, on the user's phone it is being downloaded the context parameters change and with these the proposed communication channel. In order to determine the proposed communication channel it is necessary to load the saved model and to make a prediction on context parameters. This loads the model and the predictions are made with it a number equal to the number of possible communication channels. What it is predicted is the assessment that the user makes for each of the channels. Proposed channel will be the best appreciation. These processing are shown in 2 nd figure. If there is no model saved, then it has been saved the proposed channel statistically determined and it will be used for communication.

The module for communication channel proposal used multiple classifiers and their voting mechanism. This algorithm is a mixture between the voting mechanism and statistical model proposed in the second phase. For implementation, it shall be used a meta-classifier (Vote), which allows the use of multiple classifiers to classify an instance. Typically a classifier when classifies an instance returns a double vector, with a number of elements equal to the number of classes. Each element of this vector corresponds to a class and contains a number that represents the probability that the court instance to the class. Estimated class will be the one that has the highest probability. If using a Vote meta-classifier, it is not taken into account only what a classification algorithm says, but takes into account the estimates made by the models built by many classification algorithms introduced in Vote classifier (Vote Classifier can be composed of Naive Bayes, J48, PART, etc). The estimate that an instance belongs to a class with the help of Vote can be done in a configurable way according to majority vote (for example if two algorithms say that an instance belongs to class x and one single algorithm belongs to the class Y, then class x Vote is those estimated by Vote classifier). You can also make an average between the probability that an instance to belong to a certain class according to each of the algorithms introduced in the Vote classifier and estimated class to be the class with the highest average probability. To introduce also costs if an instance belongs to a class which has been classified as belonging to another class to work with meta-classifier type CostSensitiveClasifiers. Cost matrix is composed of the estimated value of communication cost and quality. In this model, classification data set consists of communication and context attributes (CDR) and the communication channel parameters are used to compose the cost matrix that will be used classifier. Following prediction, it shall be proposed the recommended channel for the given context that has the lowest cost (cost matrix containing the quality, communications and presence cost)

The client application 7 is in turn based on two components:

- Contact manager - Context primary attributes collecting service

A common problem in the use of distributed contact lists on various communication devices or various social networks is related to the inability of users to synchronize and consolidate them into a simple and easy way. Contacts' consolidation refers to the ability to deliver the same perspective on the contacts regardless of the client used to view them or where they are stored. Contacts' synchronization, on the other hand, refers to the capacity to distribute changes made on one device or platform and update them properly on other devices or platforms that make up the system. Even though mobile operating systems now offer integration solutions for different contact providers (e.g. Facebook, Linkedln or Google+), together with their associated synchronization solutions, but these mechanisms are simple and devoid of intelligence, leaving it to the users' tasks more complex, such as identifying duplicates or contact synchronization between different providers.

An important logical component underlying the implementation of some automation mechanisms of consolidation and data synchronization activities, which provides a degree of intelligence and adaptability to contact management solutions, is the name-entity pair disambiguation algorithm. Online contact sources (Facebook, Linkedln, Google+) contain a large number of people, so often occurring repetitions of names of different persons. Disambiguation is the process of trying to identify a particular entity online, referenced by a particular name in a particular given context. Applied to contacts, this process aims to identify uniquely the person who has assigned a specific name or account in contact database. On the other hand, the same person may have different names in different databases. Thus, the main purpose of this feature is to search for and assign appropriate contact records from various online databases to group them as a single MetaContact for a person. In this way it can identified and associate phone contacts with different online data sources.

In this context, contact management solution within this invention enables semi-automatic search (user assisted) of a particular contact on various online media (e.g. Linkedln or Google Images) and extracting the contact picture to be attached to it based on the contact communication device.

The solution of the invention, being a solution for optimizing and automating the choice of the communication means among several existing communication channels, integrates different existing communication solutions and mechanisms. The communication solutions to be integrated with refers to both the physical systems and communication applications that are installed in these systems. Interfacing the invention with various existing communication solutions is achieved by:

- Unified communication, refers to a solution that allows integration of several communication means in one application (voice, video, SMS, chat, email). The invention collects information about calls made or messages sent through various communication means installed on the user devices and the analysis of that data, suggests the best means of communication with a contact in a given context identified by the application. The invention does not implement all the communication means available on the device, but allows the initiation of the application that implement the proposed communication means. The application is being initiated either through specific programming interface provided by the selected communication application, or start directly on the physical device, the desired application, depending on the capabilities of the mobile platform and communication applications. The client application of the invention, installed on mobile systems, interfaces and communicates with voice and messaging applications available on the device and retrieves data calls, received calls, missed calls and messages rejected or sent or received. Data taken from these apps are CDR records (Call Detail Record), records containing the date and time of call, call duration, dialed number, which will combine data from the context in which the call was made. These data will be stored on the invention's server to be applied classification and propose algorithms of optimal communication means for a given context.

- Unified history, communications that relate to the ability of the solution to provide a unified view on the history of communication with a particular contact, irrespective of the means of communication used. The client application of the invention provides a unified, simple and intuitive perspective on the history of communications conducted through various means of communication. This view will contain the initiator of communication, means of communication, the date and time of initiation, duration of communication, closing mode of communication. These elements add the participants' context if available.

- Unified contacts, which refers to the ability to connect to different store and manage contacts solutions, both on communication device and Internet services infrastructure (e.g. social networks). In the light of the specific requirements of connecting to other communication platforms, the present invention can be connected both to the database of contacts (contact supplier) on communication device as well as on online communication solutions or social networking.