GB2571975A - Method of establishing a telephonic connection - Google Patents
Method of establishing a telephonic connection Download PDFInfo
- Publication number
- GB2571975A GB2571975A GB1804131.9A GB201804131A GB2571975A GB 2571975 A GB2571975 A GB 2571975A GB 201804131 A GB201804131 A GB 201804131A GB 2571975 A GB2571975 A GB 2571975A
- Authority
- GB
- United Kingdom
- Prior art keywords
- contact
- call
- user
- computer
- connection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/50—Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
- H04M3/51—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
- H04M3/5158—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing in combination with automated outdialling systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2201/00—Electronic components, circuits, software, systems or apparatus used in telephone systems
- H04M2201/16—Sequence circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2203/00—Aspects of automatic or semi-automatic exchanges
- H04M2203/55—Aspects of automatic or semi-automatic exchanges related to network data storage and management
- H04M2203/558—Databases
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2242/00—Special services or facilities
- H04M2242/18—Automated outdialling systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/42025—Calling or Called party identification service
- H04M3/42085—Called party identification service
- H04M3/42102—Making use of the called party identifier
Landscapes
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
Sending a contact call request from a connection controller 101 to a communications provider (e.g. CPaaS) 113 in accordance with a set of predetermined call parameters associated with the contact, receiving, at the connection controller, a call status notification from the communications provider, and, if the call status notification indicates that the telephone call to the contact has been answered: sending a user connection request from the connection controller to the communications provider, wherein the user connection request comprises an instruction to connect the user 109 to the telephone call, so as to establish a telephonic connection between the user and the contact 115, and sending a connection notification comprising contact identity data from the connection controller to the user. The call parameters define one or more characteristics of the telephone call to the contact. Key characteristics may include: optimal time of a day or days of a week at which to reach a particular contact; incoming caller ID telephone number, which may increase the probability of a contact deciding to answer a call. These parameters are typically set by a user, preferably via a user-side application interacting with the connection controller. May be used in progressive or predictive diallers.
Description
METHOD OF ESTABLISING A TELEPHONIC CONNECTION
FIELD OF THE INVENTION
The present invention relates to methods of establishing a telephonic connection between a user and a contact, a further relates to computing devices and systems for establishing such telephonic connections.
BACKGROUND TO THE INVENTION
Many people, such as those in sales and account management positions, use telephone communications as a primary way of reaching contacts such as customers or prospects. For such users, email is an ineffective alternative way of communicating with such contacts, not least because the email medium is over used to such a degree that the volume of email messages received by a contact is so high that the likelihood of a given email message from a user trying to reach that contact being read by that contact or receiving a response from them is diminished. Telephone calls are therefore the preferred means of reaching contacts for many users.
However, several issues exist with using telephone communications as a reliable means of connecting to contacts. Contacts, in many cases, are only contactable via the telephone for limited times and infrequently. Users attempting to connect to these contacts by way of telephone calls commonly find that doing so requires persistence and repeated call attempts. This is time-consuming for the users, and the resulting lower rates of call success are discouraging and impact upon the efficiency of users.
Many factors may influence whether a user placing a call to a contact is successful in reaching them. Examples of such factors are: the contact is aware of the identity of the calling user and avoids answering the telephone, the contact is rarely at their desk, or is often in meetings or otherwise unavailable, and users are typically unsure of the best time to call a given contact. Other impacting factors include a calling user being unsure as to whether or not to withhold their telephone number when dialling a contact, and a user being conscious that they are pestering, and consequently being hesitant to continue. Moreover, a user making repeated failed calls to a contact leaves a detrimental footprint of the number of attempts.
It is also often the case that a contact may be more likely to avoid answering a call from a particular telephone number, or from a long-distance or non-local, or international telephone number. Many contacts often avoid answering telephone calls from a number that is withheld or unknown.
Users may also be conscious that repeated call attempts to a contact consume a large amount of their own time, and so are discouraged from continuing to try. Furthermore, a user is typically limited with regard to the number of times that they can attempt to make contact with a particular person or company.
Automatic dialling solutions exist which have aimed to alleviate some of these issues by performing the telephone dialling process with a degree of autonomy. These are generally high-volume solutions such as predictive diallers and progressive diallers, which are suitable for automating calls from organisations with very high numbers of users, such as call centres. Indeed, many of these solutions require a minimum number of users from which telephone calls are to be placed in order to function adequately.
Predictive diallers operate by automatically placing calls to contacts and connecting users to answered calls. The key feature of such solutions is that the dialling rate is adjusted by way of predicting the average time a call takes to be answered, while also factoring in the availability of user agents.
A problem with predictive diallers is that, if the prediction fails or is inadequate, then there is a higher risk of a call being answered by a contact when a user is not yet available to be patched through to the call, for instance because the user is still on another call. This situation results in dropped calls, which not only result in reputational damage and a decreased likelihood of further calls to a dropped contact being answered, but also exposes an organisation to legal penalties in jurisdictions where legislation places limits on the number or proportion of calls to contacts that are dropped.
A significant disadvantage with predictive diallers is that they are only effective in situations where the number of users exceeds a threshold which is determined by the predictive dialler algorithm. This is typically around a minimum of twelve users. Predictive dialling solutions are therefore unsuitable for individuals or smaller groups of users.
Progressive diallers are another solution that automates the dialling of contacts based upon a manually configured ratio of users to calls. A typical progressive dialler system will present a user with a new call upon a contact answering that call. Progressive diallers suffer from the issue that if the manually configured call centre ratio is inaccurate, then there is a risk of dropped calls occurring, as with the predictive dialler. To mitigate this, a user may have to manually end missed calls, calls that reach busy signals, or calls that are diverted to voice mail. This is a time-consuming process, and undermines the time efficiency that an automatic dialler is intended to afford to a user.
Therefore, a need exists for a solution that automates the calling of contacts for individual users of a system or groups of users of any size, and which improves the probability of calls being answered, reducing the amount of user time wasted trying to call contacts while enabling users to reach a greater number of contacts.
SUMMARY OF THE INVENTION
In accordance with the invention there is provided a computer-implemented method of establishing a telephonic connection between a user and a contact, the method comprising: in accordance with the set of predetermined call parameters associated with the contact, sending a contact call request from a connection controller to a communications provider, wherein the contact call request comprises an instruction to initiate a telephone call to the contact, receiving, at the connection controller, a call status notification from the communications provider, and, if the call status notification indicates that the telephone call to the contact has been answered: sending a user connection request from the connection controller to the communications provider, wherein the user connection request comprises an instruction to connect the user to the telephone call, so as to establish a telephonic connection between the user and the contact, and sending a connection notification comprising contact identity data from the connection controller to the user.
Thus call parameters that influence the way in which contacts are called, may be predetermined for, or assigned to, each contact specifically, or to contacts within a particular group. The timing and attributes of each attempted call to a contact may thereby be based upon parameters which have been chosen so as to increase the likelihood of the contact answering an incoming telephone call. A user, that is a person interacting with a computer implementing the method, may therefore use the method to facilitate their being connected to speak to their contacts, that is people with whom the user wishes a telephonic connection to be made. The inventor has realised that by using a call plan, that is a plan that defines certain parameters around calling contacts to customise or optimise the automatic initiation of telephone calls to contacts, increases and improves the success rate of getting in touch with contacts.
By adjusting parameters in the call plan, the probability of a given call being answered by a given contact can be improved. This leads to a reduction in the number of repeat or nuisance calls to contacts, and additionally provides the benefit of users spending less time making calls which are unanswered by contacts or are met with busy signals or voice mail services.
A further advantageous result of the method is that as well as being improved, the success rate of calls made to contacts may be more accurately known or predicted than is possible with prior art solutions. Because of this, it is possible for a user to plan their calling and correspondence time more accurately, and for user agents to be more appropriately deployed in accordance with expected call rates and call success rates, with a reduction in the number of dropped calls.
Whereas existing progressive diallers make calls based upon current call statuses and upon whether a user is available, and whereas existing predictive diallers adjust the dialling rate based upon user availability and average calling time, the present solution introduces the configuration and use of contactspecific call parameters. This affords users the advantage of increasing connection success rates for their calls overall, by taking data for individual contacts into account.
The method could be performed by a connection controller running locally on a computing device in use by the user, or more preferably could be a remote device or server with which the user communicates, for example via a user-side application, and from which the connection notification may be sent to a separate user device.
The contact identity data that is sent to the user, typically by way of transmitting a message to a user device, may contain all data relevant to the contact, for example their name, phone number, address, company, country of business or residence, correspondence history, or a subset of it. In some embodiments, the contact identity data may contain an identifier using which a computer programme receiving the identifier, for example an application running on a computing device operated by a user, could look up contact identities or details, and display them to the user.
The communications provider is typically a programmatical voice component in the form of a third-party voice service which can coordinate the dialling of contacts and users and the patching of calls to users and contacts together. Examples of such voice services which may be operated programmatically by way of an application programming interface (API) are Twillio.com and bandwidth.com. The connection controller may be configured to send contact call requests and user connection requests, and to receive call status notifications using an API from a telephony service such as this.
The method may be executed by a connection controller running, for instance as one or more instances of a service on one or more servers or execution environments, such as an AWS Lambda serverless execution environment. The connection controller is typically in communication via the internet with the communications provider, and with user applications running on user devices. In this way the connection controller can cause the initiation and interconnection of calls to contacts and users by the communications provider telephony service, and can be controlled by, and provide data and notifications to, users through user-side applications.
The call parameters typically define one or more characteristics of the telephone call to the contact. Key characteristics may preferably include optimal times of a day or days of a week at which to reach a particular contact, as well as characteristics, such as incoming caller ID telephone number, which may increase the probability of a contact deciding to answer a call. These parameters are typically set by a user, preferably via a user-side application interacting with the connection controller, and may be based upon the knowledge or indication that user has received regarding the availability or telephone correspondence preferences of a particular contact. The parameters may be further set or configured automatically by the connection controller, as discussed in more detail below.
Additionally, the characteristics may comprise any of: a voice mail message to be delivered to the contact, a caller telephone number, a time interval between the telephone call to the user and a previous telephone call to the user, and a time limit upon the number of telephone calls to the user in a predetermined time period. Thus it is possible for the caller number that is presented or available to a contact receiving a call to be configured as a pseudo-random number, or a number with an area code local to the contact, or a withheld number. Additionally a limit upon the maximum number of calls that may be made to a contact per day may be configured, so that the number of failed or missed calls may be limited.
The communications provider may provide answering machine detection functionality or some similar capacity. In such cases, if the communications provider detects that a telephone call has been answered by an answering machine or has been diverted to a voice mail service, this may be indicated to the connection controller by way of a call status notification to that effect, and the method may then further comprise leaving an audio message in accordance with a call plan in which the call parameters are defined for that user. The connection controller may also preferably be configured to avoid leaving the same audio recording for a given user on more than one occasion, or more than once within a predetermined time period. In cases where a call to a contact is answered by a voice mail service on a second occasion, the connection controller may be configured not to leave a voice mail, or to leave a different, or follow-up, voice mail message.
The call parameters or the one or more characteristics are typically set so as to increase the probability of the telephone call to the contact being answered. In addition to being set at initial values by a user, or set according to default global values predetermined within the connection controller, these may be adjusted by users or by the connection controller itself, based upon call success statistics that may be recorded by the connection controller.
The contact call request is typically sent at a predetermined call time, the call time being set in accordance with the call parameters. The call time may be thought of as one of the call parameters for the contact. This preferably corresponds to a call time, or a plurality of call times, or one or more time periods in which such a call time or call times may be set for a contact, in accordance with the other call parameters for that contact.
In some embodiments, the call time is set according to one or more predetermined availability periods associated with that contact. These periods may reflect windows of availability during which the contact is likely to be available to receive telephone calls. These settings may be based upon, for instance, known or predicted working hours for the contact, for example standard office hours for the relevant country, region, industry, or job title recorded for the contact. Periods during which it is known or indicated that a contact is unavailable for receiving telephone calls may be excluded from scheduled call times or periods.
Typically, the contact is selected from a plurality of contact records stored in a contact database. A contact record typically corresponds to a contact and comprises contact data for that contact. The contact database may be a structured set of data stored in a computer, and accessible by the connection controller. More preferably, the contact database comprises a relational database in which the contact information for contacts to be called are stored in tables, and wherein the data may be accessed and added or updated by way of database queries issued by the connection controller or by users through a user device or application.
Additionally, the contact database may, in some embodiments, be populated or updated based upon data being sent from or synchronised with a customer relationship management system (CRM). CRM data held on a remote computer, for example, may be extracted either by that computer or by a pull operation executed by the connection controller, and imported into the contact database.
In some embodiments, for each of the plurality of contact records in the contact database, a call time is predetermined and stored in a call plan. The call plan may comprise a programme, timetable, scheme, or schedule for carrying out the process of causing calls to contacts to be initiated. The call plan may be stored as part of the contact database, or may be contained in a separate data structure, a separate database, or any form of electronic storage. The call plan is typically stored on the same server as that on which the component of the connection controller that controls the initiation of calls is running, or may be on a separate computing device.
The call time is thus typically stored in the call plan as one of the call parameters, and may be set in accordance with, or influenced by, other call parameters stored in the call plan.
The call time being predetermined means, in this context, that it is determined or set prior to the sending of the contact call request. The call time to a given contact may, for instance, be set, reset, or adjusted following a call to that contact, such that it is predetermined with respect to a subsequent, future planned call to that contact.
In some embodiments, a calling service obtains a telephone number for the contact from the contact database, and a call time from the call plan, so as to perform each of: the sending of the contact call request, the receiving of the call status notification, and the sending of the user connection request. The calling service is typically the component of the connection controller that communicates with the communications provider and with the user-side application instances, and in doing so queries and updates the contact database and call plan as required.
Contact details stored for a contact in a contact record typically comprise a telephone number for the contact, which is typically sent as part of the contact call request to the communications provider, as well as information relating to the contact, for instance the name of the person, the name and address of their company, the region, city, and country in which they are located, and a web address for the company or the individual. These details may be sent to the user upon the connection of a user to a contact, for example by inclusion in the connection notification.
The method may typically comprise, when the system time corresponds to a call time that is stored in the call plan for a particular contact, the calling service obtaining the number of the contact from the contact database and the associated call parameters from the call plan, and sending the contact call request in accordance with this. Thus the sending of the contact call request may be triggered for a given contact according to the call plan.
In some embodiments, a contact time zone parameter is set for the contact. Preferably in these embodiments, the call time is adjusted in accordance with the contact time zone parameter. It is advantageous, since contacts may be based in various different regions of the globe which may observe different uniform standard times, namely different time zones, to adjust calling parameters, and in particular call times in accordance with an offset between the standard time in the time zone in which a contact is located, and the time zone in which a user is located. Thus it may not necessarily be the system time which is used to trigger the call plan or a particular call to a contact, but rather it may be an adjusted time according to a time offset between the system time of the connection controller server and the local time of the user.
In some embodiments, a parameter corresponding to such adjustments could be a time zone or an indication of the time zone in which a contact is based or to which their telephone number corresponds, or it may be a representation of the difference between the local time zone of the computing device or server executing the method and the local time zone of the contact. The time zone is typically set as soon as a telephone number is updated or added to the contact database.
In some cases, a contact record may contain a contact telephone number that is non-geographic, or is a VoIP username or identifier, which does not provide the connection controller with an indication of the country or time zone of the contact. In such scenarios, the connection controller may parse the VoIP profile of the contact, or the postal or company address associated with the contact, in order to establish allocation and thereby obtain a time zone value for the contact.
Using these time zone parameters, a time period within which a contact has indicated that they will be available expressed in their local time may be automatically adjusted by the connection controller to be represented in the same common time upon which the call plan and the schedule therein may be based.
Thus, typically the contact time zone parameter is set based upon the country calling code of the telephone number associated with the contact. The time zone parameter may also be based upon a local dialling code or area code so as to provide an indication of the time zone of the contact where the contact is based in a country having multiple time zones. The connection controller may perform a look up operation using an internal or external set of reference data, and may typically refer to any of a plurality of telephone numbers stored for the contact in the contact database in order to obtain the parameter.
In some embodiments, the call time associated with the user is set in accordance with the call time associated with each of one or more of a plurality of contact records stored in the contact database. In other words, a time at which a contact is to be called may be set or adjusted by way of taking into account the times at which other contacts are to be called. For example, if a first contact has two associated call times, and the second contact has a single associated call time, the call time for one of the contacts may be set so as to not coincide or overlap with the call time for the other contact, or so as to maximise the time interval between the two call times. For a call plan with many calls to many contacts, call times for one, some, or each of, the contacts, the relevant times may be set so as to increase or maximise the uniformity of the distribution of the call times throughout a day or another given time period. Thus the connection controller may spread out or attempt to distribute uniformly the scheduled calls within a call plan. Preferably, this is performed while keeping the scheduled call times within the bounds of availability periods defined by the call parameters, which reflect contact availability or the probability of call success.
The instruction to initiate a telephone call to the contact typically comprises instruction parameters determined in accordance with the predetermined call parameters. These instruction parameters are typically extracted from the call plan and/or the contact database, and are communicated to the communications provider. In preferred embodiments, the instruction parameters are incorporated into an API request sent from the connection controller to the communications provider to cause a call to be initiated in accordance with those instruction parameters. For example, a calling service component of a connection controller can provide a caller telephone number along with the instruction that the communications provider communicate that number to the contact as being the telephone number from which the telephone call originates. In some embodiments, a pre-recorded audio message may be stored in the call plan or contact database, and communicated or delivered to the contact as a voice mail message. For instance, the calling service may be configured to play an audio file upon receiving a call status notification indicating that the communications provider has detected a voice mail service on the contact call.
The connection notification that is sent to the user typically comprises contact data and an indication that the user is being connected to a telephone call with the contact. The connection notification is typically sent electronically, for example by way of a PUSH notification, HTTP message, or email. The contact data may contain information relevant to the contact. The notification has the advantageous effect of alerting a user to a call with a contact to which that user is being patched through, and may provide relevant information pertaining to that contact without the user having to look it up themselves.
In preferred embodiments, the sending of the connection notification and the sending of the user connection request are performed substantially simultaneously. It is beneficial to initiate both of these actions as quickly as possible upon receiving an indication that a call to a contact has been successfully answered. Therefore it is beneficial to patch a call through substantially immediately so that no delay is perceptible by the contact in being connected to the user. Thereby the telephonic behaviour experienced by the contact is close to that which would be experienced when the contact is contacted directly by a user via a simple direct telephone call. Likewise, it is advantageous to provide the user with information on the contact to whom the user is being connected as quickly as possible so that the user is adequately prepared for the call. For this reason, these connection requests and connection notifications are preferably sent simultaneously upon receipt of a call status notification indicating that the telephone call to the contact has been answered.
In some embodiments, the instruction to connect the user to the telephone call includes an instruction to instantiate a conference bridge to which the telephone call is connected and to connect the user to the conference bridge. These instructions may be delivered to the communications provider to be carried out by the communications provider, for example by way of an API request from the connection controller. This may include computer-executable instructions comprising all requisite details to instantiate the conference bridge. Alternatively, the instruction may comprise a simple trigger with all or some portion of the instructions or contact details, for example the telephone number of the user, being pre-set or predetermined at the communications provider in connection with the connection controller or the instance thereof. In some cases, the method may therefore comprise setting the conference bridge instructions up with the communications provider so as to configure the conference bridge prior to the sending of the contact call request.
In other embodiments, the instruction to connect the user to the first telephone call includes an instruction to initiate the second telephone call, to the user, and to patch the first and second telephone calls together. It will be understood that this instruction will typically comprise the telephone number of the user also. However, the number may likewise have been pre-set in the configuration of the communications provider. An advantage of the separate phone call approach over the conference bridge approach is that it is simpler to execute. However, it has the disadvantage that the contact is exposed to, connected to, or may be made aware of an outbound call to the user, for example by being exposed to an audible ringing tone prior to the user answering their incoming call. The conference bridge configuration removes this disadvantageous effect.
As noted previously, the contact call request may be sent via an API, and may comprise a telephone number for the contact. The API request may be sent via a REST, WSDL, or SOAP API. The connection controller or the calling service component thereof is typically configured to be able to authenticate with the communications provider so as to be able to cause it to initiate, that is place, an outbound call.
The API request sent to the communications provider may include any parameters necessary for the communications provider to execute the requested action, including initiating telephone calls to the contact, connecting the user to the telephone call, by way of an outbound telephone call or a conference bridge, terminating a call, leaving a voice mail message, or any other configured action. In typical embodiments, the contact call request comprises a voice request comprising voice request parameters such as an account ID with which the connection controller can authenticate with the communications provider, a from number, a to number, or a callername, for the purposes of call ID.
Typically, the sending of the call contact call request is triggered upon receipt of a call. This call command may have the form of an electronic message received from a user or a client programme that is operated by a user. The command may be sent by a user to indicate that that user has become available to be connected to a contact, or may be sent by a client programme on a user device when that programme detects or receives and indication that the user is, or has become, available, or that a previous call to which the user was connected has ended. Upon receiving a call command, the connection controller may use the call plan to select a contact with which to initiate a telephone call, in accordance with the call parameters and with the call time for that contact, so as to conform to the schedule.
The method may, in some embodiments, further comprise selecting the user from a plurality of users in accordance with a user availability parameter. Users, or user records containing data pertaining to users, may be stored in data structures accessible by the calling service component, for example, of the connection controller. User data may be updated via the client applications on user devices. Contact information or telephone numbers corresponding to the user or a plurality of the users with which the calling service is in communication may be received by the calling service. An availability parameter corresponding to a user may be set or adjusted by the action of a user beginning or ending another telephone call. For example, a local client application running on a user computer or mobile device may monitor user telephone activity, and may set the availability parameter in accordance with whether the user is occupied on a call or whether the user is available to receive another call to a contact.
Preferably, the selection of a user may be based on the availability parameter. For example, if the calling service associates a contact with two users, that is the call plan is configured to connect that contact to either of those users, when the time arrives to call that contact as per the call schedule, the calling service can select the user with which the contact is to be connected based upon the availability parameter associated with each of them, so as to select the user that is more available.
The call plan may associate a particular user with a contact that has contacted them before, or may allocate contacts to different users in order to distribute them, that is the current calls, among available users. This distribution may be adjusted as time progresses, in order to maintain a uniform distribution.
In some embodiments, each user is associated with an individual call plan. In some embodiments, each user is associated with an individual list of contacts, or table of contacts, within the contact database. In such embodiments, the call plans may be configured not to interact with, or be influenced by, one another.
In some embodiments, the communications provider is a communications platform as a service (PaaS/CPaaS). Thus the connection controller may be configured to interact with a cloud-based service that provides the ability for organisations to add real-time communication capabilities including voice communications to applications by way of deploying APIs. By way of such an interface between a cloud-based communications provider telephony platform and the connection controller, the latter may orchestrate telephone communication processes without itself being required to have telephony capabilities.
Typically, the call status notification comprises an indication of the state of the telephone call. With typical communications providers suitable for use with the method, once a contact call request is received by the communications provider and an outbound call has been created, the call progresses through one or more different states until the call is completed. These states may typically be indicated, through the API via which the call was initiated, to the connection controller by way of one or more call status notifications. For instance, some states through which a call may progress, and which may accordingly be indicated in a call status notification sent back by the communications provider are: queued, initiated, ringing, and in-progress. It is also possible that the transition between states is denoted or indicated by events that may also be included in call status notifications. Such events may be: initiated, ringing, answered, busy, and completed. In typical embodiments, if a call status notification with an “answered” event or status or an “in-progress” state, then this indicates that the telephone call in question has been answered by the recipient, and thus may correspond to a successful call to a contact.
Typically, the connection controller may include in a contact call request or a user connection request sent to a communications provider a parameter that configures the communications provider to send call status notifications back to the requesting controller. For example, it may be configured to send a notification when a call reaches any of initiated, ringing, answered, and completed states.
Preferably, if no call status notification that indicates that the telephone call to the contact has been answered is received within a predetermined time period, an instruction is sent to the communications provider to terminate the telephone call. This instruction is typically sent by the connection controller, or more specifically by the calling service thereof. Such configuration is advantageous in scenarios where a call is unanswered by a recipient, and would therefore ring indefinitely, or for a period longer than desired by a user, or for so long that calling rate efficiency is negatively impacted. In some cases, the configuration of the communications provider may be such that the communications provider itself causes unanswered calls to be cut off after a set number of rings or after a predetermined duration. The telecommunications carrier may also impose a time out that causes unanswered calls to be cut off after a predetermined duration or number of rings.
In the event that no cut-off is configured by the communications provider or the telecommunications carrier, and an unanswered call rings indefinitely, the connection controller may be configured to cut off, or terminate the call, for example be sending an end call request to the communications provider, after a predetermined period. The predetermined time may be set in the call plan for contacts individually, or may be a globally set parameter. The connection controller may then proceed with selecting new contacts with whom to attempt a telephonic connection with the user.
In the case where a time out is applied by the communications provider or the carrier, the connection controller may be configured to wait for a predetermined period that is shorter than the aforementioned time out so as to progress through the call schedule more quickly than would be achieved when progressing through unanswered calls to contacts in the call plan relying on the network or communications provider time out alone.
In some embodiments, if no call status notification that indicates that the telephone call to the contact has been answered is received within a predetermined time period, but the time period is shorter than a communications provider or carrier time out, then the calling service has the advantageous effect of increasing efficiency in this way.
When a call is terminated by the communications provider or telecommunications network, before that call is answered by a recipient, a “completed” status notification is typically received from the communications provider without an “answered” or “successful” status notification having been received forthat call.
In cases such as those mentioned above in which no call status notification that indicates that the telephone call to the contact has been answered is received within a predetermined time period, a method may further comprise selecting a second contact from a plurality of stored contact records, in accordance with a set of predetermined call parameters associated with the second contact, sending a contact call request to a communications provider, wherein the contact call request comprises an instruction to initiate a telephone call to the second contact, receiving a call status notification from the communications provider, and, if the call status notification indicates that the telephone call to the second contact has been answered: sending a user connection request to the communications provider, wherein the user connection request comprises an instruction to connect the user to the telephone call, so as to establish a telephonic connection between the user and the second contact, and sending a connection notification comprising second contact identity data from the connection talk to the user. In this way, if a plurality of contacts are stored in the contact database, and a call to one of them is unanswered, the method may be repeated for a second contact selected from the contact database in accordance with the call plan. That is, the calling service will typically consult the call plan to ascertain which contact should be contacted next, or following a given call.
Typically, the received call status notification for the telephone call is stored by the connection controller. Such data may be stored in the contact database or in the call plan such that it may be accessed by the connection controller. Storing records of call events and statuses allows statistics to be collected for records to contacts, and call parameters may be adjusted in accordance with such statistics. The connection controller may be configured to compile advanced analytics of current and historical calls to contacts, which may then be presented to users via their client applications. For example, the connection controller may store the call time for a given contact call and flag it as having been unanswered if the recipient was not reached. The system could then use this information to adjust the call plan based upon statistics made up of such data. This can be performed based upon all of, or a subset of, received call status notifications corresponding to the contact, or to an attempted call to that contact.
In view of these capabilities, it will be understood that the method may further comprise adjusting the call parameters associated with the contact based upon a plurality of call status notifications received from the communications provider. Statistics that are built up from notifications received from a communications provider may be used to update the call plan and/or the contact database. Such adjustments may be based upon notifications received during attempted calls to a given contact in question, or to similar or related contacts. For example, if “answered” notifications are received for a contact more quickly after the receipt of “ringing” notifications at a particular time of day, or day of the week, or for contacts with a particular job title, or contacts in a particular geographical area (with such relationships or correlations being identifiable using data stored in the contact database), then the connection controller may adjust one or more call parameters for that contact, or for that contact as well as contacts identified by the system as being part of a common group. Such groups may be defined by a geographical area, a job title, a company name, or an industrial field. The system may adjust parameter values such as the preferred day of the week or time of the day at which to base a call, the number of rings to wait before terminating the call, based upon such statistics so as to cause the sending of a call request for a contact to occur to be scheduled for a day, time, or for an attempt duration that has been indicated by the statistics to result in a greater probability of the call being answered.
In accordance with the invention there is also provided a computer readable storage medium configured to store computer executable code that when executed by a computer configures the computer to: in accordance with a set of predetermined call parameters associated with the contact, send a contact call request to a communications provider, wherein the contact call request comprises an instruction to initiate a telephone call to the contact, receive a call status notification from the communications provider, and, if the call status notification indicates that the telephone call to the contact has been answered: send a user connection request to the communications provider, wherein the user connection request comprises an instruction to connect the user to the telephone call, so as to establish a telephonic connection between the user and the contact, and send a connection notification comprising contact identity data to the user. Therefore, a computing device or server, or any execution environment comprising suitable components may be configured with such instructions so as to be able to establish a telephonic connection between a user and a contact in the manner described in connection with the above mentioned method.
In accordance with the invention there is also provided a computing device configured to: in accordance with a set of predetermined call parameters associated with the contact, send a contact call request to a communications provider, wherein the contact call request comprises an instruction to initiate a telephone call to the contact, receive a call status notification from the communications provider, and, if the call status notification indicates that the telephone call to the contact has been answered: send a user connection request to the communications provider, wherein the user connection request comprises an instruction to connect the user to the telephone call, so as to establish a telephonic connection between the user and the contact, and send a connection notification comprising contact identity data to the user.
In accordance with the invention there is also provided a computer implemented method of establishing a telephonic connection between the user and a contact, the method comprising sending a call command from a user device to a connection controller so as to cause the connection controller to send a contact call request, receiving, at the user device, a connection notification comprising contact identity data from the connection controller. Thus a user may be able, using an application on a user computing device configured to interact with a connection controller, to initiate attempts to establish a telephonic connection between the user and a contact, in accordance with a call plan containing call parameters for the contacts accessible by the connection controller.
Advantageously, a user who wishes to begin dialling their contacts in a manner that is time efficient in that the dialling is performed automatically and without manual user management or intervention, and according to parameters that increase the likelihood of connection success, can interact with the connection controller that controls such dialling via their user device. The process may be started by the sending of a call command, or a start command, which is typically sent from a computing device in use by a user upon being manually triggered by the user call, or upon the detection by the device, for example by way of device sensors or user inputs, that the user is available to be connected to contacts or is using the application on their device. The call command typically indicates to the calling service on the connection controller that the user is available for a call, and upon receipt of the command, the connection controller may begin the calling method described above.
After a call command is sent from the user device, the user may typically need not interact with the device or connection controller-interfacing application thereon in order to be connected to their contacts. From a user perspective, no further input is required, and the subsequent user interaction between the device and the user is the displaying of the connection notification comprising contact identity data for a contact to whom the user is being patched through.
In some embodiments, an alert is displayed to the user in accordance with the connection notification. The alert may be configured to be audible and/or visual. Where the user device is a desktop or laptop device, or any device running an operating system that allows multitasking, the connection notification may cause the connection controller-interfacing application window to be brought to the front of the graphical user interface. The application preferably uses data from the connection notification, for instance contact details such as name, company, country, local time zone, and call and correspondence history and notes, in its display to the user upon an incoming connection occurring.
In some embodiments, the call command is sent upon monitoring that the user is active. For example, a computing device being used by the user to connect to a connection controller could monitor user input such as moving a mouse pointer, or a keyboard input to trigger the sending of a call command, or to prompt the user with request as to whether to send a call command. Monitoring that the user is active may be performed for example after a period of idleness, and the call command may be sent so as to indicate that the user is available, following such a period, to be connected to a contact.
Commercially, in some embodiments, the client application may be configured to send a pause command, or a stop command, to the connection controller so as to pause the call plan, or prevent the connection controller from causing a telephonic connection to be established between that user and a contact. This may typically be configured to occur when a user is busy on another call, as may be detected by the user device, for example via a Bluetooth headset, or when a user has selected to pause calling activities by way of manually selecting to do so on the device. A pause command may also be sent, in some embodiments, when the user has been away from their computer or device for a predetermined length of time, during which a lack of user input may be detected by the device, causing that device to send a pause command.
Upon receipt of a pause command, the calling service of the connection controller may cease connecting any calls to that user, or may cease placing calls to contacts associated with that user more preferably, until a call command for that user is received. Such a subsequent call command may be sent by the user device upon the device detecting that a user has returned to an active status, or has indicated such a status manually using the device. This may cause the call plan to be restarted, thereby resulting in the connection controller again initiating calls to contacts automatically and connecting them to the user in accordance with the call plan.
In some embodiments, the method further comprises receiving contact details for a contact, and sending the contact details to the connection controller to be stored. Thus contact details that may be received by way of manual data entry by a user, or by integration of the user device with a CRM system, or by the application passing contact data from a website can in some embodiments be sent to the connection controller so that the latter may store those details in the contact database.
It may also be advantageous to allow a user to record and upload voicemail messages using their user device for the situation where an automatically dialled contact does not answer an incoming call but rather that call is answered by an answering machine or voicemail service. Some embodiments may allow this functionality through the receiving of an audio file and the sending of the audio file to the connection controller with an indication that the audio file is to be left as a voicemail message if a telephone call to a contact is diverted to a voicemail service. The connection controller may then be configured to provide or transmit the audio recording to the communications provider, or may be configured to play the audio file itself upon the connection controller being connected to a contact voicemail service, so as to leave a voice message for a contact without requiring intervention by a user.
In accordance with the invention there is also provided a computer readable storage medium configured to store computer executable code that when executed by a computer configures the computer to: send a call command to a connection controller so as to cause the connection controller to send a contact call request, and receive a connection notification comprising contact identity data from the connection controller. Such instructions may therefore allow a computing device suitable for use by a user in accordance with this disclosure to be configured so as to be able to perform the method of establishing a telephonic connection between a user and a contact as described above. It is envisaged that any suitable computing device, such as a desktop or laptop computer, a tablet computer, or a mobile phone, smartphone, or personal digital assistant may be configured with such instructions so as to provide the disclosed interaction with a connection controller and establishing of user-contacts telephonic connections.
In accordance with the invention there is also provided a system comprising a user computing device according to any of the user computer devices described above, and a connection controller computing device according to any of the connection controller computing devices described above, wherein the user computing device is configured to send the call command to the connection controller computing device, and wherein the connection controller computing device is configured to send the connection notification to the user via the user computing device. In this way a system is provided that comprises both a device suitable for use by a user to connect with contacts, and a computer device or server suitable for running an instance of the connection controller, wherein the two computing devices may interact via a client application installed on the user device. Typically, the user device and connection controller device may be separated from one another and may be in communication via the internet.
DESCRIPTION OF THE DRAWINGS
Examples for the present invention will now be described, with reference to the accompanying drawings, wherein like reference numerals indicate like features, and in which:
Figure 1 is a schematic representation of an example system adapted to perform an example of a method according to the present disclosure, including a connector controller in communication with a communications provider, a user of the system, and a contact.
Figure 2 is a flow diagram showing steps that can be undertaken in an example of the disclosure.
Figure 3 is a schematic representation of an example of the system performing a method according to the present disclosure.
DESCRIPTION OF EMBODIMENTS
With reference to Figures 1 and 2, an example computer implemented method of establishing a telephonic connection between a user and a contact according to the invention is now described. A connection controller 101 performs the example method as an instance of a service running on a server. The connection controller 101 comprises three components: a calling service 103, a call plan 105, and a contact database 107.
The connection controller 101 is in communication with a communication provider as a service (CPaaS) hosted by a remote server 111. The calling service 103 is configured to interact with the communication provider 113 by way of an application programming interface (API) defined by the communications provider. This API interaction is represented by the arrow between the calling service block 103 and the communications provider block 113. Examples of a communications provider platform, which may be thought of as an interchangeable programmable telephony service, or a programmatical voice component, include Twillio.com and bandwidth.com. The service may be caused by API calls from the connection controller 101 to initiate the dialling of contacts stored within the contact database according to the call plan 105.
The communications provider 113 is in telephonic communication with a contact 115. In the present case, the communications provider is in communication with, or is configured to interact with, a telecommunications carrier such as a public switched telephone network (PSTN) or a voice over internet protocol (VoIP) service by a way of which the communications provider 113 may connect or route telephone calls to the contact 115, via the telephone or other communications device of the contact 115.
The communications provider 113 is also in communication with a user 109 in the same manner. In this way, the communications provider 113 is able to initiate telephone calls to the user and to the contact, and is able to join such telephone calls together so as to put the user 109 in telephonic communication with the contact 115.
In the present example, each of the user 109, the server running the connection controller 101, the server hosting the communication provider 111, and the contact 115 is remote from, or geographically separated by some distance from, the others.
As indicated by the outgoing arrows starting from the user 109, the user is in communication with the contact database 107 and the call plan 105 of the connection controller 101. Using a client software application configured to interface with the connection controller service 101 and running on the computing device or mobile device of the user 109, the user can make additions and updates to the contact database. The contact database 107 stores information pertaining to the contacts to which telephone calls are to be made, including the names, telephone numbers, and companies of the contacts. When the details, for example business address, of a contact change, or when a user wishes to add a new person or company to the list of entities to be contacted by telephone, the user 109 may make these updates or additions to the contact database 107.
The contact database additionally contains other details pertaining to the contacts stored as records therein, including notes relating to the contact, the contact status, email address, audio recordings for leaving of voicemail messages, and the time zone in which the contact is based.
As part of the connection controller software instance 101, the contact database 107 interacts with the call plan 105. The call plan stores configurable parameters for the contacts stored as records in the contacts database 107, and these call plan parameters are taken into account when the connection controller 101 causes attempts to initiate telephonic communications between a user 109 and a contact 115 whose record is stored in the contact database 107 to be made.
The call plan governs the timing with which calls are made to contacts, by way of a configurable calling schedule using the local time zones in which contacts 115 are based. The connection controller 101 parses the country dialling code from any telephone numbers of contacts in which such a code is present, and ascertains the country to which the code corresponds. In this way, the call plan can apply an offset to the scheduled call times or availability times for particular contacts.
The calling schedule which contains the order in which, the times at which, or the periods of time within which, contacts whose records are stored in the contact database 107, is used by the calling service 103 to attempt to initiate a call between the user 109 and a contact 115 during times when the contact 115 is most likely to be available, or when the contact is more likely to answer an inbound telephone call.
Further configurable parameters stored within the call plan which can be set with different values for different contacts, including an option to configure a minimum wait time before reattempting to call a given contact. Such a configured delay may also be used in conjunction with the start time and end time of an availability period for a contact in the contact database 107. For example, if a given contact has associated call parameters in the call plan indicating an availability period, on a given day, of seven hours, and a wait time has been configured for that user with a value of six hours, the call plan may schedule the first attempt at contacting that contact within the first hour of the availability window on that day, so as to allow sufficient time for a second call attempt, should the first be unsuccessful, while adhering to the configured wait time between attempts. The call plan additionally adjusts scheduled call times and call windows automatically in accordance with a plurality of parameters for a given contact, one or more other contacts, and users.
Also stored in the call plan is the contact telephone number, obtained from the contacts database.
The call plan may additionally include a state for a contact, which may be set as active or inactive. This may be set so as to reflect known or predetermined periods of presence or absence respectively, and may cause the call schedule to include or omit a contact from the schedule for a given day or time period, respectively.
The call plan additionally includes a parameter that defines the telephone number from which the communications provider or programmatical voice component 113 places a telephone call to a contact 115. Parameters relating to this “from” number that may, for instance, appear on the caller ID display of the contact 115, include the option to use a random number from an area code that is local to the contact 115 or is in the same telephone area code, and the option to withhold the “from” number according to a predetermined person, such as upon every nth, for example every seventh call, to a given contact 115.
A further parameter that may be configured is the maximum number of attempts to contact a given user, or any of a given group of users, such as those within a company or area code, that may be made in a given time period, such as an hour, a day, or a week.
The call plan also includes an option to leave a voicemail message for a given contact. This may be configured to leave a voicemail for a contact any time that contact does not answer a telephone call and the call is diverted to a voicemail answering service, or it may be configured to leave a voicemail message according to a predetermined pattern, such as upon every nth, for instance every seventh, call to a user that is diverted to a voicemail service.
When the call plan is started, initiated for instance by the calling service 103 receiving an active user status notification or other call command from a user side application 109, the calling service 103 begins automatically, that is without requiring user intervention, causing contacts to be called. Thus at step 201 the calling service 103 of the connection controller 101 sends a contact call request to the communications provider 113 via the provider API.
The communications provider 113 initiates a telephone call to a first contact 115 via a PSTN using the recipient phone number provided to the communications provider 113 in the API request from the calling service 103. In the case that the contact database 107 contains a VoIP identifier or address for the contact 115, such as a Skype user name, this may also be specified in the contact call API request sent to the communications provider 113, and so the call to the contact 115 may be placed via a VoIP carrier.
The communications provider 113 sends call status notifications at various stages during the call connection process to the calling service 103. A sequence of these may be received by the calling service at step 203, indicating that the call has been initiated, that the status is “ringing” and that the call has been answered, or diverted to voicemail.
At step 205, if a call status notification has been received by the calling service 103 indicating that the call has been answered, meaning that the call has successfully connected to the contact, the calling service 103 of the connection controller 101 immediately sends a user connection request to the communications provider 113. This causes the user 109 to be called back on their preferred number, which may be provided in the user connection request API call.
At substantially the same time as sending the user connection API request, namely immediately upon receiving a “call answered” call status notification, the calling service 103 sends a connection notification comprising contact identity data to the user 109. The notification contains an indication of the identity of the contact 115 to whom the user 109 is being connected. The notification is sent in the form of an HTTP message that can be received and processed by a userside application configured to interface with the connection controller 101, such that the user application displays an alert that a call is being connected and relevant information about the contact 115 to the user 109.
In the event that no call status notification indicating that the call to the contact 115 has been answered is received at step 205, for instance if voicemail is detected and this is indicated in a call status notification received by the calling service 103, or the call reaches a predefined maximum number of rings before being answered, the calling service 103 does not send the user connection request to the communications provider. Instead, the unsuccessful call is logged or recorded in the call plan 105, together with data such as the local contact time and date of the failed call, the number of rings, and the contact phone number to which the attempted call was made. The calling service then selects a second contact from the contact database 107, according to the schedule and parameters stored in the call plan. The process is then repeated, starting with the sending of a contact call request at step 201, for the next contact.
In the above described configuration, two potential unwanted scenarios could arise. Firstly, the contact could potentially experience a significant delay upon answering an incoming call in the event that a user did not answer the subsequent call made to them. Secondly, the contact would hear the ringing of the outbound call to the user if there were any delay in the user answering the call to them.
A variation on this configuration is envisaged in order to mitigate these disadvantageous effects. In this variation, instead of causing the communications provider 113 to call the user back at step 207, the user connection request at this step contains an instruction to place the contact 115 into a voice conference beforehand. Once the connection controller 101 then calls the user back on their preferred number, and upon the user answering that call, places the user into the voice conference to which the contact is already connected.
This configuration avoids the exposure of a contact to an outbound call ringing tone while the call is being made to the user. However, there remains a risk that the contact may experience a delay caused by the user not answering their phone.
Another variation addresses this, wherein the user does not speak to the contacts via their telephone, but rather via the user-side application on their desktop computer, mobile device, or in a web browser. The application in this variation includes a voice communication function, using which the user may converse with a contact using a microphone and speaker, or audio headset, connected to the computer or mobile device.
In this variation, the user connection request sent at step 207 causes the communications provider to place a VoIP call to the user via a VoIP application or VoIP component of the aforementioned user-side application. Thus the user is immediately patched through to the call with the contact via the user application, and is notified via the same application of the contacts details.
A further example representation of a system adapted to perform an example method according to the invention is shown in Figure 3. The figure shows four users 309A, 309B, 309C, 309D, and three contacts 315A, 315B, 315C. The small number of users and contacts shown has been selected for simplicity of illustration, and these numbers, in particular the number of contacts whose records are stored in the contact database, will typically be much greater.
In the present example, the contacts 315 are located in different cities around the world. Contact 315A is located in New York City, USA, contact 315B is located in London, UK, and contact 315C is located in Sydney, Australia. All of the users 309 are based in an office in the UK. Through use of user applications that interface with the connection controller 301 and run on the mobile and desktop computing devices 317A-317D of the users, the users 309A-309D are connected via telephone to the contacts 315A-315C in an automated manner and according to a call plan that optimises the time efficiency of the users and the probability of being connected to a given contact successfully.
The connection controller 301 runs as an instance of the connection controller service on a serverless execution environment, or a cloud computing-based execution model in which server management and capacity planning functions are hidden or altercated from the operators or administrators of the connection controller software. The geographical location of the servers or computer devices that run instances of the connection controller 301 service may be anywhere, provided that the controller 301 is in communication with the communications provider 313 and the client devices 317A-317D that are used by the users 309A-309D respectively.
A user 309 can use the client application running on their respective device 317 to perform a number of functions. The user can, in this way, add and manage contacts stored in the contact database 307, and may also add and manage additional users 309 by way of managing user accounts registered to interact with the controller service 301. Additionally, the client application running on the user devices 317 allows users 309 to configure the call plan 305 so as to add or adjust parameters stored therein, and add and configure integrations.
A new user, for example, would use the application on their device 317 to create an account for themselves, and then create a call plan, or associate their user account with an existing call plan, and define specific parameters within a call plan. When the user is introduced to new contacts, the details of those contacts may be uploaded to the contact database 307 through the client application, by way of the application issuing add or update database commands. Additionally, the contact database 307 may be integrated or synchronised with a CRM system on a user computing device or enterprise computer system, so as to ensure contact details are up-to-date as any additions or changes or recorded within a user company.
The user application may be in the form of a native application running on the operating system of the computer device 317, whether the device is a desktop or mobile device. Alternatively or additionally, a device 317 may run a web application comprising code executed in a web browser running the device 317 and configured to communicate or interface with the connection controller service 301.
By way of detecting from user input on a device 317, or interaction with the client application running thereon, or by detecting that a previous telephone call has ended and the user 309 is available, a device 317 sends a call command to the calling service 303 by way of an HTTP message. Thus, the user 309 can turn the service, or their connection to the service, on or off via the application running on their device 317.
When a user application 317 is connected to the service 301, the application presents the user 309 with the current status of calls being made, together with relevant information to contacts being called. When a call is patched through to the user, and a connection notification is accordingly received by the user device 317, typically concurrently with receipt of the incoming call to the user, the application on the user device presents an alert so as to highlight the presence of the incoming call to the user and displaying the name, company, and correspondence history pertaining to that contact 315.
The application may display a live status of the contacts 315 currently being called, or who are about to be called, as well as a representation of the call plan 305.
The user application may also manage the connection of the speaker and microphone of a user headset or mobile device such as a mobile phone.
In the example depicted, typical operation for a user 309D using the system via an application on a desktop computer 317D begins with the call plan being started by the user via the desktop application, thus initialising a connection between the computer 317D and the connection controller 301. The user application then connects the speaker and microphone used by the user 309D, and the calling service 303 responds to the receipt of the call command from that user by beginning to contact contacts in accordance with the call plan 305. It will be understood that the representation of the call plan shown in Figure 3 denoted by reference 305 is an arbitrary representation of a call schedule containing telephone availability windows for each of the three illustrated contacts, denoted by columns A, B, and C. This representation of the data in the call plan is for illustrative purposes only, and does not necessarily reflect the structure with which the data is stored within the call plan 305.
The desktop application on the computer 317D sits topmost or always on top in the graphical user interface of the computer, and provides the user 309D with a current status of contacts 315 that are being called. Upon a contact being successfully reached, the call is patched directly through to the user 309D, and the user is alerted by the desktop application as to the identity of the contact to whom the user is being patched through, together with details relating to the contact. For the user 309D, who is using a telephone headset connected to their computer 317D, rather than a PSTN telephone, the calling service 303 is configured to include in the user connection requests sent to the communications provider 313 an instruction to patch successful contact calls through to the VoIP address associated with that user 309D or the application running on their computer 317D. Thus, both the connection notification and the telephonic connection to the contact itself are delivered to the user via the internet connection of their computer 317D, as indicated by the connecting arrows in the figure, via the user application running thereon.
The calling process for a user who is interacting with the connection controller 301 via a mobile device, such as contact 309A using mobile phone 317A, the calling process is substantially the same as for the desktop application user 309D. Additionally, the mobile application may be configured to run in the background of the mobile operating system. In this way, the device 317A may be continually connected to the calling service 303 and may receive incoming connections to contacts 315 and connection notifications while the device is also being used for other activities and running other applications. The mobile device 317A may also receive PUSH notifications through the user application which alerts the user 309A to incoming calls. In the present example, as indicated by the figure, calls are received to the mobile device 317A, either by a cellular telephone call, such as via PSTN or GSM voice communications, or may be via cellular data or WiFi connections via which the mobile phone 317A is connected to the internet, via a VoIP connection administered by communications provided 313. The user 309A uses a Bluetooth headset connected to the mobile phone 317A to communicate with connected contacts 315.
Users 309B and 309C are depicted as using telephone headsets connected to PSTN telephones via which they receive incoming calls to contacts made by the communications provider 313. The respective devices upon which their instances of the application interacting with the calling service 303 are a desktop computer 317B and a tablet computer 317C. As with the previously described example users 309A and 309D, these users may run either native applications or a web application on their devices 317B-C to connect to the connection controller 301. In the case of the web application, the user starts the call plan via the web browser, and thus causes the web browser on the device 317B-C to send the call command to the calling service 303. The calling operation then proceeds in the same manner as previously described, with the website displayed in the web browser presenting a live status of who is being called, for example by way of asynchronous web requests.
When a contact is successfully reached and the call is patched through to the user, the connection notification is received by the web browser, and a browser notification, and typically and audible alert as configured by the user, is presented to the user 309B-309C.
In each case, either the native desktop or mobile, or web application that interfaces with the calling service 303 may be configured to detect the presence or absence of a user 309. Thus the application attempts to detect that the user is still active, for example using mobile device sensor inputs, or peripheral inputs, and will present prompts to the user asking whether they wish to remain connected, or disconnecting the user application from the calling service 303 and stopping the call plan by issuing a pause command after a predetermined period of absence or inactivity.
In addition to the parameters within the call plan 305 that are manually set by users 309 via their devices 317, the connection controller 301 may adjust or add to the parameters for a call plan in accordance with contact or user characteristics.
In the present example, the three depicted contacts 315A-315C are based in different time zones around the world. While contact 315B is based in the GMT time zone, contact 315A is located in the GMT-5 time zone, and contact 315C is in the GMT+11 time zone. The user-input call parameters defining the windows of availability for each of the callers correspond to the local time of each contact. Contact 315A is available between their standard office hours of 8am to 6pm local time, except for a period of unavailability between 1pm and 5pm. The calling service 303 analyses the telephone number of the contact 315A and automatically applies a time offset to the scheduled availability windows for that contact as a result of the presence of a “(+1)” country code at the beginning of the international telephone number. The service 303 calculates the offset by looking up, either using internal reference data or by a call to an external data source such as an online service or website, the time zone to which the country code relates, and automatically applies the difference between that time zone and the time zone of the users 309 to the call plan 305. In the case that a country code, such as that stored for contact 315A, indicates a country containing more than one time zone, the calling service 303 parses the area code within the contact telephone number stored in the contact database 307 in order to calculate the time zone in which the contact is based. For instance, contact 315A has a country code of “(+1)”, and so the controller 301 proceeds to look up the time zone for the area code, “917”, for that contact, and uses this to look up the relevant time zone. In this case, the controller 301 records the telephone number as corresponding to the EST time zone, and so applies an offset of five hours to the GMT time zone-based call plan schedule.
Likewise, the local-time availability of contact 315C, which is between 7am and 2pm, with a period of unavailability between 8.30am and 9.45am, is automatically shifted by the service 301 upon parsing the “(+61)” country code and “2” area code to look up that the telephone number corresponds to the AEDT time zone. Daylight saving time adjustments are also automatically made by the service 301 in order to synchronise contact local times to their adjusted local times.
A call plan 305 may be configured to associate a number of contacts 315 with a single user, or a subset of users 309. Should a contact, or a number of contacts, be recorded as being contactable by a number of users of the system, the calling service 303 may adjust the calling parameters so as to distribute the calling of contacts uniformly between the various users, so as to avoid periods in which the calling capacity of users is greater than the number of available contacts to be called, and vice versa.
Additionally, the call plan may be adjusted automatically so as to distribute calls to contacts throughout the day of a user, and to minimise clustering or overlap between scheduled contact calling times.
In the present example, contacts 315A and 315B, whose availability is indicated by columns A and B in the call plan 305, respectively, are both available for a substantially overlapping period of time in the afternoon on the illustrated day. The calling service 303 therefore automatically seeks to distribute one or both scheduled calls so as to minimise the probability of calls to these two contacts, for a given user, coinciding. The service identifies a second period of availability for contact 315A. However, the service, using either a configured calling hours period, or availability period for a given user that is automatically obtained using the recorded call history of a user, determines that this latter period availability for contact 315A is outside of the times during which a user 309 is available, and so will preferably schedule a call to contact 315A to be made during the earlier availability block for that day, rather than the later one.
overlapping availability window for contact 315B, which and 10am, is within the availability period for a user 309.
Conversely, the nonoccurs between 8am
Therefore, the calling service may distribute the scheduled call to contact 315B to preferably be within this earlier block, so as to minimise the probability of overlap between calls being made to these contacts, so that a given user may be afforded a higher probability of being successfully connected to both contacts 315A and 315B in the depicted day.
Owing to the time zone offset between the users based in the UK and contact 315C based in Australia, there is a smaller degree of overlap between the availability of these users 309 and the contact 315C. The calling service therefore schedules a call time to contact 315C as early as possible within their recorded availability period, which starts at 8pm GMT. Thus the probability of being successfully connected to this remote contact is again increased by way of automatic adjustments to the call plan by the connection controller 301.
A further example of automatic adjustments to the call plan is the recording of call analytics and the amendment of calling parameters in response to these. For instance, through receipt of call status notifications from the communications provider 303, the calling service 303 can record call events, such as the occurrence of dropped calls. This might occur where a contact has been successfully connected to a conference, or where they have otherwise successfully been contacted by a way of them answering a call, but unsuccessfully patched through to a user 309. The calling service records any occurrence of a dropped call to a given contact, and removes any scheduled calls to that contact once this number reaches a predefined threshold. The scheduled calls may be removed for a predetermined period, such as a date, a week, or a month. After these periods, which may be set in accordance with requirements defined by legislation, a contact which has been removed owing to them having received a number of dropped calls may subsequently be re-added to the call plan.
A further example of automatic parameter adjustment is the continual redistribution of scheduled call times as a contact database is updated. For example, contacts to whom calls are scheduled predominantly in the morning, but who have relatively large availability windows that also include time periods in the afternoon, may have their scheduled call times adjusted to be in the afternoon if the calling service detects that a number of contacts whose availability occurs only in the morning have been added to the contact database and call plan.
Additionally, the calling service 303 may be configured to identify one or more correlations between calling parameters such as particular voicemail messages, “from” numbers and calling times that are recorded by the service as resulting in an increased proportion of successful call attempts and other call parameters or recorded contact attributes. For instance, the service may identify an increased likelihood of call success to contacts whose job title includes a particular term, or who is recorded as working in a particular field, at one time of day, or one particular day of the week, compared with a decreased chance of call success for such contacts on another identified day or time of day. The service can continually assess such statistical trends and automatically adjust the call schedule so as to adjust the calling parameters, within the parameter limits configured by users, to conform to any trends or parameter values or ranges that are identified as being correlated with an increased chance of a call being successfully made to a contact.
Thus, while users 309 begin by creating, uploading, or synchronising their relevant contacts details 315 using simple metadata, for example company, contact number, and notes, additional parameters may be autonomously added or adjusted by the calling service 303 as the call plan is executed.
Claims (35)
1. A computer-implemented method of establishing a telephonic connection between a user and a contact, the method comprising:
a) in accordance with a set of predetermined call parameters associated with the contact, sending a contact call request from a connection controller to a communications provider, wherein the contact call request comprises an instruction to initiate a telephone call to the contact,
b) receiving, at the connection controller, a call status notification from the communications provider, and, if the call status notification indicates that the telephone call to the contact has been answered:
c) sending a user connection request from the connection controller to the communications provider, wherein the user connection request comprises an instruction to connect the user to the telephone call, so as to establish a telephonic connection between the user and the contact, and
d) sending a connection notification comprising contact identity data from the connection controller to the user.
2. A computer-implemented method according to claim 1, wherein the call parameters define one or more characteristics of the telephone call to the contact.
3. A computer-implemented method according to claim 2, wherein the characteristics comprise any of: a voicemail message to be delivered to the contact, a caller telephone number, a time interval between the telephone call to the user and a previous telephone call to the user, and a limit upon the number of telephone calls to the user in a predetermined time period.
4. A computer-implemented method according to any of the preceding claims, wherein the call parameters are set so as to increase the probability of the telephone call to the contact being answered.
5. A computer-implemented method according to any of the preceding claims, wherein the contact call request is sent at a predetermined call time, the call time being set in accordance with the call parameters.
6. A computer-implemented method according to any of the preceding claims, wherein the contact is selected from a plurality of contact records stored in a contact database.
7. A computer-implemented method according to claim 6, wherein, for each of the plurality of contact records in the contact database, a call time is predetermined and stored in a call plan.
8. A computer-implemented method according to claim 7, wherein a calling service obtains a telephone number for the contact from the contact database, and a call time from the call plan, so as to perform each of: the sending of the contact call request, the receiving of the call status notification, and the sending of the user connection request.
9. A computer-implemented method according to any of claims 5 to 8, wherein a contact time zone parameter is set for the contact, and the call time is adjusted in accordance with the contact time zone parameter.
10. A computer-implemented method according to claim 9, wherein the contact time zone parameter is set based upon the country calling code of a telephone number associated with the contact.
11. A computer-implemented method according to any of claims 5 to 10, wherein the call time associated with the user is set in accordance with a call time associated with each of one or more of a plurality of contact records stored in the contact database.
12. A computer-implemented method according to any of the preceding claims, wherein the instruction comprises instruction parameters determined in accordance with the predetermined call parameters.
13. A computer-implemented method according to any of the preceding claims, wherein the connection notification comprises contact data and an indication that the user is being connected to a telephone call with the contact.
14. A computer-implemented method according to any of the preceding claims, wherein the sending of the connection notification and the sending of the user connection request are performed substantially simultaneously.
15. A computer-implemented method according to any of the preceding claims, wherein the instruction to connect the user to the telephone call includes an instruction to instantiate a conference bridge to which the telephone call is connected and to connect the user to the conference bridge.
16. A computer-implemented method according to any of claims 1 to 14, wherein the instruction to connect the user to the first telephone call includes an instruction to initiate a second telephone call, to the user, and to patch the first and second telephone calls together.
17. A computer-implemented method according to any of the preceding claims, wherein the contact call request is sent via an API and comprises a telephone number for the contact.
18. A computer-implemented method according to any of the preceding claims, wherein the sending of the contact call request is triggered upon receipt of a call command.
19. A computer-implemented method according to any of the preceding claims, further comprising selecting the user from a plurality of users in accordance with a user availability parameter.
20. A computer-implemented method according to any of the preceding claims, wherein the communications provider is a communications platform as a service (PaaS).
21. A computer-implemented method according to any of the preceding claims, wherein the call status notification comprises an indication of the state of the telephone call.
22. A computer-implemented method according to any of the preceding claims, further comprising, if no call status notification that indicates that the telephone call to the contact has been answered is received within a predetermined time period, sending an instruction to the communications provider to terminate the telephone call.
23. A computer-implemented method according to claim 22, further comprising, selecting a second contact from a plurality of stored contact records, in accordance with a set of predetermined call parameters associated with the second contact, sending a contact call request to a communications provider, wherein the contact call request comprises an instruction to initiate a telephone call to the second contact, receiving a call status notification from the communications provider, and, if the call status notification indicates that the telephone call to the second contact has been answered:
sending a user connection request to the communications provider, wherein the user connection request comprises an instruction to connect the user to the telephone call, so as to establish a telephonic connection between the user and the second contact, and sending a connection notification comprising contact identity data to the user.
24. A computer-implemented method according to any of the preceding claims, further comprising storing the received call status notification for the telephone call.
25. A computer-implemented method according to any of the preceding claims, further comprising adjusting the call parameters associated with the contact based upon a plurality of call status notifications received from the communications provider.
26. A computer readable storage medium configured to store computer executable code that when executed by a computer configures the computer to:
in accordance with a set of predetermined call parameters associated with the contact, send a contact call request to a communications provider, wherein the contact call request comprises an instruction to initiate a telephone call to the contact, receive a call status notification from the communications provider, and, if the call status notification indicates that the telephone call to the contact has been answered:
send a user connection request to the communications provider, wherein the user connection request comprises an instruction to connect the user to the telephone call, so as to establish a telephonic connection between the user and the contact, and send a connection notification comprising contact identity data to the user.
27. A computing device configured to:
in accordance with a set of predetermined call parameters associated with the contact, send a contact call request to a communications provider, wherein the contact call request comprises an instruction to initiate a telephone call to the contact, receive a call status notification from the communications provider, and, if the call status notification indicates that the telephone call to the contact has been answered:
send a user connection request to the communications provider, wherein the user connection request comprises an instruction to connect the user to the telephone call, so as to establish a telephonic connection between the user and the contact, and send a connection notification comprising contact identity data to the user.
28. A computer implemented method of establishing a telephonic connection between a user and a contact, the method comprising:
sending a call command from a user device to a connection controller so as to cause the connection controller to send a contact call request, receiving a connection notification comprising contact identity data from the computing device.
29. A computer implemented method according to claim 28, further comprising displaying an alert to the user in accordance with the connection notification.
30. A computer implemented method according to claim 28 or claim 29, wherein the call command is sent upon monitoring that the user is active.
31. A computer implemented method according to any of claims 28 to 30, further comprising receiving contact details for a contact, and sending the contact details to the connection controller to be stored.
32. A computer implemented method according to any of claims 28 to 31, further comprising receiving an audio file and sending the audio file to the connection controller with an indication that the audio file is to be left as a voicemail message if a telephone call to a contact is diverted to a voicemail service.
33. A computer readable storage medium configured to store computer executable code that when executed by a computer configures the computer to:
send a call command to a connection controller so as to cause the connection controller to send a contact call request, receive a connection notification comprising contact identity data from the connection controller.
34. A computing device configured to:
send a call command to a second computing device so as to cause the second computing device to send a contact call request, receive a connection notification from the second computing device.
35. A system comprising a first computing device according to claim 34 and a second computing device according to claim 27, wherein the first computing device is configured to send the call command to the first computing device, and wherein the second computing device is configured to send the connection 5 notification to the user via the first computing device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1804131.9A GB2571975A (en) | 2018-03-15 | 2018-03-15 | Method of establishing a telephonic connection |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1804131.9A GB2571975A (en) | 2018-03-15 | 2018-03-15 | Method of establishing a telephonic connection |
Publications (2)
Publication Number | Publication Date |
---|---|
GB201804131D0 GB201804131D0 (en) | 2018-05-02 |
GB2571975A true GB2571975A (en) | 2019-09-18 |
Family
ID=62017735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB1804131.9A Withdrawn GB2571975A (en) | 2018-03-15 | 2018-03-15 | Method of establishing a telephonic connection |
Country Status (1)
Country | Link |
---|---|
GB (1) | GB2571975A (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004088962A1 (en) * | 2003-03-31 | 2004-10-14 | Fujitsu Limited | Progressive dialing device and progressive dialing method |
US20140270142A1 (en) * | 2013-03-15 | 2014-09-18 | Genesys Telecommunications Laboratories, Inc. | System and method for dynamically selecting a dial plan |
US20150043727A1 (en) * | 2013-08-09 | 2015-02-12 | Avaya Inc. | Method and system to determine and employ best contact opportunity |
-
2018
- 2018-03-15 GB GB1804131.9A patent/GB2571975A/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004088962A1 (en) * | 2003-03-31 | 2004-10-14 | Fujitsu Limited | Progressive dialing device and progressive dialing method |
US20140270142A1 (en) * | 2013-03-15 | 2014-09-18 | Genesys Telecommunications Laboratories, Inc. | System and method for dynamically selecting a dial plan |
US20150043727A1 (en) * | 2013-08-09 | 2015-02-12 | Avaya Inc. | Method and system to determine and employ best contact opportunity |
Also Published As
Publication number | Publication date |
---|---|
GB201804131D0 (en) | 2018-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10171657B1 (en) | System and method for omni-channel notification and selection | |
CA2853544C (en) | Multiple call session system and method for a mobile phone | |
CN107071173B (en) | Method and apparatus for automatic callback reminders | |
US7330721B2 (en) | Method and system for supporting non-intrusive and effective voice communication among mobile users | |
US9473632B2 (en) | System and method to improve self-service experience and optimize contact center resources | |
US8953762B1 (en) | Telephone system, apparatus, and method for providing enhanced privacy features | |
US20080076395A1 (en) | Method and System for Supporting Non-Intrusive and Effective Voice Communication Among Mobile Users | |
EP1997301B1 (en) | Call notification with rich caller identification | |
CA2171937C (en) | Apparatus and method for dynamic inbound/outbound call management and for scheduling appointments | |
US9667794B2 (en) | Agent service call switch system and method in call centre | |
US11783246B2 (en) | Systems and methods for workforce management system deployment | |
US20180027117A1 (en) | Systems and Methods for Handling and Routing Incoming Communication Requests | |
GB2587341A (en) | Method for initiating a telephone call | |
EP2899957A1 (en) | System for integrating video calls in telephone call centers | |
GB2571975A (en) | Method of establishing a telephonic connection | |
CN105306756A (en) | Terminal state interaction method, call centre, terminal and call centre system | |
US20180041632A1 (en) | Customizable presence-based recipient available notification | |
US10153991B2 (en) | Use based scalable instant voice communication | |
CA2556715C (en) | Method of and system for managing outgoing telephone calls | |
JP2016100880A (en) | Device, method, and program for predicting waiting time for response to incoming call and call processing device and system | |
EP2974226B1 (en) | Method, device, and system for communicating a changeability attribute |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WAP | Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1) |