Configuration and control of communication devices during calendar events
By introducing communication settings components in the calendar application, users can configure policies to handle real-time communication events, solving the problem of managing real-time communication events during calendar events, realizing automated processing and improving meeting efficiency.
Patent Information
- Application Number
- CN202080073814.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-10-22
- Filing Date
- 2020-10-09
- Publication Date
- 2025-03-11
- Estimated Expiration
- 2040-10-09
AI Technical Summary
During calendar events such as meetings, it is difficult for users to effectively manage and respond to real-time communication events, resulting in meeting interruptions or information loss.
By introducing a communication setup component in the calendar application, users can configure how real-time communication events such as mute, rejection, or smart replies can be handled during calendar events.
It realizes automated processing of real-time communication events during calendar events, reducing the need for user manual intervention and improving the continuity and efficiency of meetings.
Smart Images

Figure CN114586053B_ABST
Abstract
Description
Background Art
[0001] Computing systems are now widely used. Some computing systems run calendar applications. Calendar applications allow users to create and manage calendar events. Such calendar events can be appointments, face-to-face meetings, phone or video conferences, etc.
[0002] Calendar applications allow users to schedule meetings, as well as receive and respond to meeting requests. When scheduling a meeting, the meeting organizer often generates a meeting request by interacting with a user interface generated by the calendar application on the communication device that allows the meeting organizer to specify certain characteristics of the meeting.
[0003] For example, a user interface may allow a meeting organizer to specify a time, date, and location for a meeting, invitees to the meeting, subject matter of the meeting, and the like. Once a meeting request is generated, it is sent to a set of recipients designated as invitees for the meeting. This is often done using electronic mail (email). Those recipients (or invitees) can then interact with the meeting request to accept the meeting request, decline the meeting request, and the like. If the recipient accepts the meeting request, the calendar application then places the meeting on the recipient's calendar. It also often responds to the meeting organizer, indicating that the recipient has accepted the meeting request.
[0004] In addition to creating meetings with other people, calendar applications often also allow users to create other calendar events. For example, a calendar application may allow a user to block time by indicating that he or she is unavailable. These meetings and calendar events are entered on the user's calendar, indicating that the user is busy during the time of the calendar event.
[0005] Many attendees at a conference often have mobile devices, such as smart phones or other communication devices. During a meeting, users often try to remember to mute or turn off their mobile devices so that incoming communications do not interrupt the meeting.
[0006] The above discussion is provided merely as general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter. Summary of the invention
[0007] A calendar application on the communication device generates a user interface that allows a user to interact with a representation of a calendar event. The calendar application detects a user configuration indicating how to control the communication device in response to a real-time communication event during the calendar event. When a real-time communication event is detected during the calendar event, the calendar application controls the communication device based on the configuration input.
[0008] This summary is provided to introduce a selection of concepts in a simplified form, which are further described in the detailed description below. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to help determine the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that address any or all of the disadvantages mentioned in the background. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Figure 1 is a block diagram of an example of a communication device.
[0010] Figure 2 is a block diagram illustrating one example of communication setup components in greater detail.
[0011] Figure 3 is a flow chart illustrating one example of the operation of a communication setup component in configuring a communication device.
[0012] Figure 4A and Figure 4B is a representation of a user interface that can be used to configure a communication device for operation during a calendar event.
[0013] Figure 5 is a flow chart illustrating one example of the operation of a communication setup component in configuring a communication device to take actions in response to an incoming real-time communication event.
[0014] Figure 6 is a block diagram illustrating one example of a smart reply component in more detail.
[0015] Fig. 7A , Figure 7B and Figure 7C (collectively referred to herein as FIG. 7 ) shows the Figure 6 Flowchart of one example of the operation of the smart reply component in processing real-time incoming communication events is illustrated in FIG.
[0016] Fig. 8A and Figure 8B is an example of a user interface that can be displayed on a communication device indicating an action to be taken in response to receiving a real-time communication event during a calendar event.
[0017] Fig. 9 It shows that Figure 1 0 is a block diagram of an example in which a communication device illustrated in FIG. 1 is deployed in a cloud computing environment.
[0018] Figure 10-12 An example of a mobile device that can be used as the communication device shown in the preceding figures is shown.
[0019] Fig.13is a block diagram illustrating one example of a computing environment that can be used in the architecture shown in the previous figures. DETAILED DESCRIPTION
[0020] Figure 1 1 is a block diagram of one example of a communication device 100 that can be used by a user 101. The device 100 can be a mobile phone, such as a smart phone, a tablet computer, or any of a variety of other communication devices that can receive real-time incoming communications (such as voice calls, video calls, SMS messages, etc.). Figure 1 In the example shown in , the communication device 100 includes one or more processors 102, data storage 104, user interface system 106, user interface mechanism 108, calendar system 110, communication system 112, and it can include various other communication device functions 114. Calendar system 110 itself can include calendar event creation system 116, event management system 118, call processing system 120, and it can include various other calendar functions 122. Calendar event creation system 116 can include characteristics (e.g., date / time / recipient / location) component 124, communication settings component 126, and it can include various other items 128 that allow a user of the communication device 100 to generate or respond to calendar events.
[0021] The call processing system 120 itself illustratively includes a call interceptor component 130, a trigger component 132, a communication settings access component 134, an action identifier component 136, a repeat call identifier 138, an action execution system 140, and it can include other call processing functions 142. The action execution system 140 illustratively includes a messenger component 144, a smart reply component 146, a call rejection component 148, a mute component 150, a notification handler component 152, and it can include other items 154.
[0022] exist Figure 1 In the example shown in , the communication system 112 illustratively includes a voice call function 156, a messaging function 158, a video call function 160, and it can include other items 162. The data store 104 can include data or records indicating multiple calendar events 164-166. It can also illustratively include a contact list 168 with contact records, where each record represents a contact of the user 101. The data store 104 can also include a variety of other items 170.
[0023] Each calendar event 164 can include a location identifier 172 that identifies the location of the calendar event. For example, where the calendar event is a meeting, then the location identifier 172 can identify the meeting room location. The calendar event 164 can also include a start / end time identifier 176 that specifies the start and end times for the calendar event. The calendar event 164 can include participant identifier information 178 that identifies participants (e.g., invitees, attendees, etc.) for the calendar event. The calendar event 164 can include a description identifier 184 that can include descriptive information describing the calendar event.
[0024] The calendar event 164 can also include communication settings 186. In one example, the communication settings are those settings set by the user 101 using the communication settings component 126. Thus, the communication settings 186 illustratively define how incoming real-time communication events (such as calls, video calls, text messages, etc.) are handled during the calendar event 164. For example, the communication settings 186 can define how calls are handled when the user 101 is in a meeting, on a phone call, etc. These will be described in more detail below.
[0025] The data store 104 can also include various other items. This is indicated by box 188.
[0026] Before describing the overall operation of the communication device 100 in more detail, a brief description of some items in the communication device 100 and their operation will first be provided.
[0027] The user interface mechanism 108 can include any of a number of different types of user interface mechanisms. For example, these mechanisms can include items on a touch-sensitive screen that can be actuated by the user 101 using touch gestures. It can include buttons, microphones (where voice recognition is provided), switches, touch pads, keypads, etc. The user interface system 106 illustratively detects user interactions with the user interface mechanism 108 and generates indications of those interactions and provides them to other items in the communication device 100. It thus allows the user 101 to control and manipulate the communication device 100.
[0028] The communication system 112 uses the voice calling function 156 to make and receive voice calls with other users. The messaging function 158 illustratively implements messaging functions (such as SMS messaging, etc.) with other users. The video calling function 160 can include a camera and other functions to enable video communications with other users.
[0029] The user 101 can use the calendar system 110 to maintain a calendar of calendar events 164-166 on the communication device 100. Thus, the calendar event creation system 116 allows the user 101 to create calendar events (such as appointments, meetings, etc.). It also illustratively allows the user 101 to respond to meeting requests or other calendar event requests. The properties component 124 allows the user 101 to specify properties for the calendar event. This can include matters such as date, time, recipient list, location, etc. The communication settings component 126 illustratively allows the user 101 to configure the communication device 100 to handle incoming real-time communications (such as incoming calls, incoming video calls, incoming text messages, etc.) in a desired manner when they occur during the calendar event. For example, in the case where the calendar event 164 specifies a specific start and end time for a meeting, if the communication device 100 receives incoming real-time communications during the meeting, the communication settings 186 (which are set by the user 101 using the communication settings component 126) can be accessed by the call processing system 120 to handle the incoming real-time communications according to the needs of the user 101. This can include things like muting the call, rejecting the call, or performing one or more different smart actions in response to the call. This will be described in more detail below.
[0030] The calendar event management system 118 illustratively controls the management of the various calendar events 164-166 on the calendar of the user 101. Thus, it controls storing the calendar events 164-166, retrieving and displaying the calendar events to the user 101, sending reminders, transmitting meeting requests to an email system (or other user), deleting calendar events, etc.
[0031] The call processing system 120 handles real-time communications (e.g., calls). Thus, assume that the voice call function 156 receives an incoming call on the communication device 100. The call interceptor component 130 receives notification that a call is being received and intercepts the call before it is presented to the user 101. The trigger component 132 determines whether a calendar event 164-166 is currently in progress. If so, this triggers the call processing system 120 to process the call. If not, the trigger component 132 determines that the call processing system 120 is not triggered, and then the voice call function 156 is controlled to present the call to the user 101.
[0032] Assuming that the trigger component 132 has determined that real-time communications are being received during a calendar event, the communication settings access component 134 accesses the communication settings 186 corresponding to the current calendar event 164. Those settings can specify how the call will be handled in different situations. The action identifier component 136 identifies which call processing actions are to be performed based on the retrieved communication settings 186. It provides the indication to the action execution system 140 that performs the call processing actions specified by the communication settings 186. For example, the communication settings 186 can indicate that a text message is to be sent to the caller in response to the real-time communication. In that case, the messenger component 144 retrieves and controls the messaging function 158 to send a text message. It can also be a voice message sent in response to the real-time communication. The messenger component 144 then retrieves and uses the communication system 112 to play the required voice message to the caller.
[0033] It may be that user 101 has set the communication settings 186 so that the call is simply muted and / or rejected. In that case, the mute component 150 mutes the speaker and the call rejection component 148 rejects the call. In that case, the communication system 112 hangs up the call.
[0034] It is also possible that user 101 has configured communication settings 186 for a particular calendar event 164 so that call processing system 120 will perform one or more different smart reply actions in response to receiving real-time communications. In that case, smart reply component 146 performs smart actions. These will be described in more detail below. For now, one of the smart actions may be to respond to the caller indicating when user 101 has free time (or availability) so that the caller can call during that time. In that case, smart reply component 146 accesses data storage 104 to determine when user 101 is available to receive calls, and controls messenger component 144 to generate a message identifying the free time to the caller. Free time can be determined by determining whether any continuous calendar events are scheduled after the current meeting, and if so, the free time is the end time of the last continuous meeting. Otherwise, the free time is the end time of the current meeting. In another example, it may be that user 101 configures communication device 100 so that it only provides availability indications to callers who have already resided in contact list 168 of user 101. In this way, information about when user 101 is available will not be sent to unknown callers.
[0035] In another example, the repeat call identifier 138 identifies whether the real-time communication is a repeat call (or other repeat communication). For example, in an emergency, a caller on the user's contact list 168 may repeatedly call the user 101, even if the call is not connected. When that happens, the repeat call identifier 138 identifies the call as a repeat call from a caller on the user's contact list 168. This can trigger the smart reply component 146 to perform other smart actions based on how it is configured to act when a repeat call is received. This can include matters such as interrupting a meeting by allowing the call to ring, which can include matters such as transcribing the caller's voicemail message and immediately displaying the message and sound alarms for the user 101.
[0036] Figure 2 1 is a block diagram illustrating one example of the communication settings component 126 in greater detail. Recall that the user 101 is able to use the communication settings component 126 to configure configuration settings 186 for a particular calendar event 164. This enables the user to define how the call processing system 120 will handle real-time communications during the calendar event 164.
[0037] Therefore, in Figure 2 In the example shown in , the communication setup component 126 can include a call rejection selector 180, a call mute selector 182, a smart reply action configuration system 184, and it can include various other items 186. The smart reply action configuration system 184 can include a reply form selector 188, a voice message selection / generation component 190, a text message selection / generation component 192, a callback availability selector 194, a special handling configuration component 196, and it can include other items 198. The reply form selector 188 illustratively allows the user 101 to select the form of a reply or response to an incoming call. Thus, the user 101 can select a reply in the form of a text message, a voice message, a pre-recorded video message, a combination of different types of messages, and the like.
[0038] The voice message selection / generation component 190 allows the user 101 to select a pre-recorded voice message, or to generate a voice message, which will be played in response to the call when the user 101 selects a response in the form of a voice message. Similarly, the text message selection / generation component 192 allows the user 101 to select a pre-defined text message, or to generate a customized text message, which is sent in response to an incoming call when the user has used the reply form selector 188 to indicate that the response should be in the form of a text message. The call back availability selector 194 allows the user 101 to indicate that the user's availability should be provided with the voice message and / or text message under certain conditions. For example, the selector 194 allows the user 101 to make a selection indicating that his or her availability should always be provided to the caller, should only be provided to the caller if the caller is in the user's contact list 168, or should only be provided if the caller is on a specific list of authorized callers authorized to receive availability information. These are merely examples, and the callback availability selector 194 can be used to allow the user 101 to indicate when a callback will be made or availability information will be provided to the caller, among other conditions as well.
[0039] The special handling configuration component 196 illustratively allows the user 101 to indicate what type of special handling the incoming call will receive under certain conditions. For example, if the incoming communication is a repeat call, or if it is identified as an emergency call, the user 101 is allowed to specify the type of special handling to be performed. The special handling operation can be any of a variety of different types of operations, such as allowing the call to go through even though it may be interrupting a calendar event, such as interrupting a conference call that the user 101 is currently on, providing an audible and / or visual and / or tactile alert to the user 101 indicating that the call may be an emergency, etc.
[0040] Figure 3 1 is a flow chart illustrating one example of the operation of the communication device 100 and the communication settings component 126 in allowing the user 101 to configure the communication settings 186 for the calendar event 164. The calendar event creation system 116 first detects a user interaction with the user interface mechanism 108 indicating that the user 101 desires to configure call handling options (e.g., communication settings 186) for the calendar event. Figure 3200 in the flowchart of . For example, user 101 may be a meeting organizer and is configuring a meeting request, as indicated by box 202. The user may be responding to a received meeting request, which is sent by a different meeting organizer. This is indicated by box 204. The user may respond on a mobile device, as indicated by box 206; or respond on another device, as indicated by box 208. Detecting user interactions to configure communication settings 186 may also be accomplished in other ways, and this is indicated by box 210.
[0041] The communication setup component 126 then displays a call setup user interface (UI) for setting up call handling operations (or communication settings 186). The UI for configuring these settings is displayed by Figure 3 This is indicated by block 212 in the flowchart of FIG.
[0042] Figure 4A An example of a user interface display 214 on a mobile device indicating this is shown. It can be seen that the user interface display 214 has actuators that can be actuated by the user 101 to set the date, start and end time for the calendar event. Actuator 216 allows the user 101 to set the start date. Actuator 218 allows the user to set the start time. Actuator 220 allows the user to set the end date, and actuator 222 allows the user to set the end time. Figure 4A Also shown, in one example, call rejection selector 180 illustratively displays a call rejection actuator 224 that can be actuated by user 101 to indicate that any real-time communications should be rejected during the calendar event 164 being configured. Call mute selector 182 illustratively generates a call mute actuator 226 that can be actuated by user 101 to indicate that incoming calls should be muted during calendar event 164. Smart reply action configuration system 184 illustratively generates a smart reply actuator 228 that can be actuated by user 101 to indicate that a smart reply action is to be configured. When user 101 actuates actuator 228, user 101 is illustratively navigated through a user experience that allows user 101 to configure various smart actions to be performed when incoming real-time communications are received during a calendar event.
[0043] Figure 4B Another example of user interface display 244 is shown. Rather than receiving a meeting request (or generating a meeting request or other calendar event) on a mobile device, user 101 may receive a meeting request (or generate a meeting request or other calendar event) on a different device, such as a desktop computer. Figure 4BThe user interface 244 is shown having a set of actuators 246 that allow the user to specify different characteristics of the calendar event, such as the start date and time, etc. The user interface display 244 also illustratively has a reject call actuator 248, a mute actuator 250, and a smart reply actuator 252. The user can respond in the same manner as described above with respect to Figure 4A Actuators 248-252 are actuated in the same manner as described for actuators 224, 226 and 228 in FIG.
[0044] Reference again Figure 3 , the communication setup component 126 detects user interaction with the call setup user interface. This is indicated by box 230. The user 101 can actuate the reject call actuator 224, the mute actuator 226, or the smart reply actuator 228. The user can also interact with the call setup UI in other ways, and this is indicated by box 230.
[0045] The smart reply action configuration system 184 determines whether the user has actuated the smart reply actuator 228 to configure the smart reply action. Figure 3 If yes, then the smart reply action configuration system 184 navigates the user 101 through the smart reply configuration experience to allow the user 101 to configure the desired smart reply during the calendar event 164. The smart reply is configured by Figure 3 An example of such a user experience is described below with respect to Figure 5 Give a description.
[0046] Once the user 101 has configured the communication settings 186 for the calendar event 164, the communication settings component 126 then generates the communication settings 186 and stores them in the data store 104. Figure 3 In one example, the call setup data 186 is stored in the data store 104 along with the calendar event data record 164. This is indicated by box 240. The call setup data 186 can also be generated and stored in other ways, and this is indicated by box 242.
[0047] Figure 54 is a flowchart illustrating an example of the operation of the smart reply action configuration system 184 (shown in FIG. 4 ) in navigating the user 101 through the smart reply action configuration experience. This allows the user 101 to configure different aspects of the smart reply provided in response to the real-time communication received during the calendar event 164. In one example, the voice message selection / generation component 190 generates a voice message setting user interface to set / customize or select a reply voice message and indicate the circumstances in which the message is provided to the caller. This is indicated by box 254. Component 190 enables the user 101 to record a customized voice message, or select a pre-recorded message, etc. Detecting user interaction with the voice message setting UI is indicated by box 256. Selecting or generating a message is indicated by box 258, and otherwise interacting with the voice message setting UI is indicated by box 260.
[0048] The callback availability selector 194 can also generate a callback time user interface to indicate the conditions under which the availability of the user 101 will be provided to the caller. This is indicated by box 262. For example, the selector 194 can present a selection actuator that can be selected by the user 101 to indicate that the availability of the user 101 is only provided to callers on a predefined list of authorized callers. In another example, an actuator can be provided that allows the user 101 to indicate that the user's availability is only provided to callers on the contact list 168 of the user 101. In another example, an actuator can be provided that allows the user 101 to select a specific group, team, family, or other list of people authorized to receive availability information. The system is configured to provide availability information based on a contact list, group, team, family, etc., indicated by box 264. The selector 194 can allow the user 101 to configure an environment that provides availability information in a variety of other ways, and this is indicated by box 266.
[0049] The selector 194 then detects user interaction with the callback time user interface. This is indicated by box 268. The interaction will indicate when the availability information will be provided to the caller.
[0050] The special handling configuration component 196 can also illustratively generate a repeat call user interface, which has an actuator that can be used to specify the action to be taken for the repeat call and the environment in which the action will be taken. This is indicated by box 270. For example, an actuator can be provided for the user 101 to select that the meeting should be interrupted and the call should be allowed to connect. In another example, an actuator can be provided to indicate that an auditory or tactile alarm should be provided to the user 101, even if the phone is muted. These are just examples, and other actions can also be configured. Detecting user interaction with the repeat call user interface to configure the device 100 to respond to the repeat call is indicated by box 272.
[0051] The text message selection / generation component 192 can also illustratively generate a messaging UI to allow the user 101 to set or customize the message (e.g., text message or SMS message) to be sent to the caller and specify the conditions under which it will be sent. This is indicated by box 274. Detecting user interaction with the messaging UI to select / customize messages and set the criteria for sending those messages is indicated by box 276.
[0052] The smart reply action configuration system 184 then stores the setting information for the smart reply (voice message, repeat call handling, availability message, text message, etc.) as part of the communication settings 186 for the calendar event 164. Figure 5 This is indicated by box 278 in the flowchart of FIG.
[0053] Figure 6 is a more detailed illustration of the smart reply component 146 (also shown in Figure 1 A block diagram of an example of a process is shown in FIG. Figure 6 In the example shown in , the smart reply component 146 includes a smart reply action trigger detector 280, a voice message selector 282, an availability identification component 284, a text message selector 286, a repeat call special handling mode identifier 288, a special handling mode performance component 290, and it can include a variety of other items 292. The smart reply action trigger detector 280 detects when the smart reply component is triggered to perform some type of smart reply action.
[0054] The voice message selector 282 is triggered by the detector 280 when a voice message is sent in response to an incoming call. The voice message selector 282 selects a specific message to be sent to the caller and provides it to the communication system 112 (at Figure 1 ) in the voice call function 156 so that it can be sent to the caller. The text message selector 286 does the same thing, except for text messages. Therefore, it is triggered by the trigger detector 280 when a text message is to be sent to the incoming caller. It selects the text message that is configured to be selected (in the present case) and provides it to the messaging function 158 so that the text message can be sent to the caller.
[0055] The availability identification component 284 is triggered by the trigger detector 280 when conditions are met for providing the caller with availability information for the user 101. The availability identification component 284 therefore accesses the data store 104, and specifically accesses the start and end time and date information for the various calendar events 164-166 on the user's calendar. It identifies when the user 101 is available (e.g., when no calendar events are scheduled) and provides it to the communication system 112 so that it can be sent to the user as part of a voice message, as a text or other SMS message set, as part of a video call message, etc.
[0056] The repeat call special handling mode identifier 288 is triggered by the trigger detector 280 when the communication settings 186 indicate that special handling is to be performed for repeat calls. The repeat call identifier 138 is also triggered when it identifies the current incoming call as a repeat call (such as a second call received from the same caller within a threshold amount of time). The identifier 288 identifies the specific special handling mode or action to be performed based on the communication settings 186. It provides an indication of the specific special handling actions to be performed to the special handling mode execution component 290. The component 290 performs those special handling actions (e.g., it interrupts the calendar event, it presents an audible alert to the user 101, etc.).
[0057] Figures 7A-7C (collectively referred to herein as FIG. 7 ) shows a flow chart illustrating an example of the operation of the call processing system 120 in response to an incoming real-time communication (which may be referred to hereinafter as an incoming call, but may also be an incoming video call, an incoming SMS message, etc.).
[0058] After the calendar event creation system 116 and the communication settings component 126 have been used to configure the calendar event (e.g., calendar event 164) with the communication settings 186 that define how incoming calls are to be handled during the calendar event, assume that the communication device 100 is controlled to enable call handling using the call processing system 120. This is indicated by block 300 in the flow chart of Figure 7. This can be done in a variety of ways, such as actuating the user interface mechanism 108 to enable call handling, or in other ways.
[0059] The communication device 100 then receives an incoming real-time communication (e.g., a call), and this is detected by the communication system 112. Receiving an incoming call is indicated by box 302 in the flow chart of FIG. 7. The call may be a voice call 304, a video call 306, a text message 308, or another real-time communication 310. In one example, the communication system 112 then provides a notification to the call interceptor component 130 in the call processing system 120. The call interceptor component 130 then intercepts the call so that it can be processed by the call processing system 120. Receiving notification of the incoming call and intercepting the call is indicated by box 312 in the flow chart of FIG. 7.
[0060] The trigger component 132 then accesses the data store 104 to determine whether a calendar event 164-166 is currently occurring. If so, the call processing system 120 will perform call processing operations based on the communication settings 186 for the calendar event that is occurring. Having the trigger component 132 access calendar event data for various calendar events 164-166 to determine whether the call handler 120 should be invoked is indicated by box 314. In one example, the trigger component 132 accesses the start and end dates and times for the various calendar events 164-166 to identify whether the user is in a meeting, or whether a calendar event is occurring. This is indicated by box 316. Determining whether the call handler process should be invoked can also be accomplished in other ways, and this is indicated by box 318.
[0061] If the call handler process is not invoked, as indicated by block 320 (e.g., in the case where no calendar event is currently occurring), the real-time communication is handled as usual (e.g., actuating a ringer or using another user interface mechanism 108) to indicate to the user 101 that a call is being received. This is indicated by block 322.
[0062] However, if it is determined at block 320 that a call handler process should be invoked, the communications settings access component 134 accesses the communications settings 186 for the currently occurring calendar event 164. These settings 186 will indicate the specific call handling actions that will occur during that calendar event 164. Accessing the communications settings 186 to identify the call handling actions to be taken is indicated by block 324 in the flow diagram of FIG.
[0063] The action identifier component 136 determines whether the phone is to be muted. This is indicated by box 326. If so, it provides this indication to the mute component 150 which mutes the phone. This is indicated by box 328.
[0064] The action identifier component 136 then determines whether the call is rejected. This is indicated by box 330. If so, the component 136 indicates this to the call rejection component 148, which rejects the call without caller interaction or reply. This is indicated by box 332. The call rejection component 148 then stores call data indicating the time of the incoming call, the identification of the caller (if available), and the action taken (e.g., the call was rejected), and it can also store other data. After the calendar event 164 ends, this data can be used to notify the user 101 that the call was received. Storing the call data is indicated by box 334 in the flow chart of Figure 7.
[0065] The action identifier component 136 then also determines whether smart reply processing is to be performed by the smart reply component 146. This is indicated by box 336. If not, the call is processed as usual. This is indicated by box 338. For example, it is possible that the phone is muted but the call is not rejected, in which case it can go to voicemail. This is just one example of how the call can be processed without performing smart reply processing.
[0066] If at box 336, the action identifier component 136 has identified that there are criteria that cause the smart reply component 146 to perform a certain type of smart reply action, the smart reply component 146 accesses the smart reply setting information in the communication settings 186. This is indicated by box 340. For example, the criteria for selecting and playing voice messages can be accessed. This is indicated by box 342. The criteria for determining whether to notify the caller of the availability of user 101 can be accessed. This is indicated by box 344. The criteria for determining how to handle repeated calls can be identified, as indicated by box 346. The criteria for determining whether to send a text message, as well as the specific message that should be sent in the current situation, can be accessed. This is indicated by box 348. Smart reply setting information can also be identified in other ways, and this is indicated by box 350.
[0067] Based on the smart reply setting information (e.g., the criteria listed for taking different actions), the smart reply component 146 then performs the smart reply action based on whether the trigger criteria are met. This is indicated by box 352 in the flowchart of Figure 7. For example, the smart reply action trigger detector 280 can detect that there are criteria for playing one or more different voice messages to the caller. This is indicated by box 354. If so, the voice message selector 282 selects the voice message based on the detected criteria and provides it to the communication system 112, which can transmit the selected voice message to the caller. This is indicated by box 356. For example, the user 101 may have configured the system to play a voice message for people in the user's contact list, but play different messages for others. The trigger detector 280 then detects which category the current caller belongs to, so that the correct message can be selected and sent.
[0068] The smart reply action trigger detector 280 may also have detected the criteria for notifying the caller when the user is available. This is indicated by box 358. Again, the trigger detector 280 may have detected that the caller is on the caller list of callers that the user 101 has identified as being authorized to receive the availability of the user 101 in response to real-time communication during the calendar event 164. If this is the case, the availability identification component 284 accesses the calendar data in the data storage 104 to identify the user's availability. This is indicated by box 360. The smart reply component 146 then transmits the availability to the caller, as previously configured by the user 101. This is indicated by box 362. For example, the user 101 may have configured the system to send a text message with his or her availability. The user 101 may also have configured the system to send a voice message with his or her availability. These and other options can be used to transmit the user's availability to the caller.
[0069] The repeat call identifier 138 may also have provided an indication to the smart reply action trigger detector 280 that the current call is a repeat call. In that case, the repeat call special processing mode identifier 288 can be triggered by the trigger detector 280 to perform repeat call special processing. It illustratively identifies the special processing mode to be performed for this particular repeat call. For example, if the repeat call comes from a user in the selected user list pre-configured by the user 101, the special processing may interrupt the meeting and allow the call to ring to the user 101. However, if the caller is in the contact list 168 for the user 101, but not in the special pre-authorized contact list, it may simply appear an auditory, tactile or visual alarm for the user 101 based on the current repeat call. These are just examples. Detecting a repeat call is indicated by box 364, and detecting the criteria for performing special processing is indicated by box 366. Once the specific form of special processing to be used has been identified, the special processing mode execution component 290 controls the communication device 100 to process the repeat call according to the special processing mode. Executing special processing in this way is indicated by box 368.
[0070] Smart reply action trigger detector 280 may also detect criteria indicating that a text message should be sent to the caller. This is indicated by box 370 in the flow chart of FIG. 7 . If so, trigger detector 280 triggers text message selector 286 to select a specific text message to be sent under the current conditions, and controls messaging function 158 to send the text message to the caller. This is indicated by box 372.
[0071] It will be appreciated that the smart reply action can also take a variety of other forms. This is indicated by box 374.
[0072] Once the smart reply action has been performed, the call processing system 120 stores call data indicating the smart reply action that has been performed so that it can be used to provide notification to the user 101 after the calendar event 164 ends (or the next time the user 101 is free). This is indicated by box 376 in the flowchart of Figure 7.
[0073] As long as the calendar event is occurring, processing returns to block 302 where the communication device 100 is arranged to receive another incoming real-time communication. This is indicated by block 378 in the flow chart of FIG.
[0074] Once the calendar event is over (or the next time the user 101 is free), the notification handler component 152 retrieves the stored call data that has been stored in the data store 104 (or elsewhere). The retrieval of the stored call data is indicated by box 380 in the flowchart of FIG. 7 . The notification handler component 152 then generates notifications showing the calls that have been received during the calendar event (or during multiple calendar events, when back-to-back events have been scheduled on the user's calendar) and the actions that have been taken for each call. This is indicated by box 382 in the flowchart of FIG. 7 .
[0075] Then the process returns to block 302 again, unless call processing has been disabled. This is indicated by block 384 in the flow chart of FIG. 7 .
[0076] Fig. 8A An example of a user interface display 386 is shown showing a notification 388 displayed to the user 101 after the calendar event has ended. It can be seen that the notification 388 shows that a call was detected, muted, an SMS message was sent, and the call was rejected. This is just one example, and a variety of other notifications can also be used.
[0077] Figure 8B Another example of a user interface display 390 that can be displayed on a caller's communication device is shown. It can be seen that it includes a smart reply message 392 generated by the user's communication device 100 and sent to the caller. The smart reply message 392 includes an SMS message: "Call me later. I have been in a meeting until this time - Wednesday, July 24, 2019 21:1900 IST." Therefore, it can be seen that the system determines that the criteria for providing the caller with the user's availability are met. It can be seen that the criteria for sending this information to the caller in an SMS message are also met. Therefore, the message 392 identifies when the user will be available for another call.
[0078] It should be noted that the above discussion has described a variety of different systems, components and / or logic. It will be appreciated that such systems, components and / or logic can include hardware items (such as processors and associated memory, or other processing components, some of which are described below) that perform functions associated with those systems, components and / or logic units. In addition, the systems, components and / or logic units can include software that is loaded into memory and subsequently operated by processors or servers or other computing components, as described below. The systems, components and / or logic units can also include different combinations of hardware, software, firmware, etc., some examples of which are described below. These are just some examples of different structures that can be used to form the systems, components and / or logic units described above. Other structures can also be used.
[0079] This discussion has referred to processors and servers. In one example, the processors and servers include computer processors with associated memory and timing circuits, not shown separately. They are functional parts of the systems or devices to which they belong, and are activated by other components or items in those systems and facilitate their functions.
[0080] Likewise, many user interface displays have been discussed. It can take a variety of different forms, and a variety of different user-actuated input mechanisms can be set thereon. For example, the user-actuated input mechanism can be a text box, a check box, an icon, a link, a drop-down menu, a search box, etc. It can also be actuated in various ways. For example, a click device (such as a trackball or a mouse) can be used to actuate it. A hardware button, a switch, a joystick or a keyboard, a thumb switch or a thumb pad, etc. can be used to actuate it. It can also be actuated using a virtual keyboard or other virtual actuators. In addition, in the case where the screen displaying it is a touch-sensitive screen, a touch gesture can be used to actuate it. Similarly, in the case where the device displaying it has a voice recognition component, a voice command can be used to actuate it.
[0081] A number of data stores are also discussed. It will be noted that each of them can be broken down into multiple data stores. All data stores can be local to the system accessing them, all can be remote, or some can be local and others remote. All of these configurations are covered in this article.
[0082] Likewise, the accompanying drawings show a plurality of blocks with functions attributed to each block. It will be noted that fewer blocks can be used, so functions are performed by fewer components. Likewise, more blocks can be used with functions distributed between more components.
[0083] Fig. 9 is Figure 1, except that its elements are arranged in cloud computing architecture 500. Cloud computing provides computing, software, data access and storage services, and the services do not require the end user to know the physical location or configuration of the system providing the service. In various embodiments, cloud computing uses appropriate protocols to deliver services through a wide area network such as the Internet. For example, a cloud computing provider delivers applications through a wide area network and can access them through a web browser or any other computing component. The software or components of device 100 and corresponding data can be stored on a server at a remote location. The computing resources in a cloud computing environment can be integrated at a remote data center location, or it can be dispersed. Cloud computing infrastructure can provide services through a shared data center, even if it appears to be a single access point for a user. Therefore, the components and functions described in this article can be provided from a service provider at a remote location using a cloud computing architecture. Alternatively, it can be provided from a conventional server, or it can be directly installed on a client device, or in other ways.
[0084] This description is intended to include both public and private cloud computing.Cloud computing (both public and private) provides a substantially seamless pool of resources and reduces the need to manage and configure the underlying hardware infrastructure.
[0085] Public clouds are managed by the vendor and typically support multiple consumers using the same infrastructure. As such, in contrast to private clouds, public clouds free end users from managing hardware. Private clouds can be managed by the organization itself, and the infrastructure is typically not shared with other organizations. The organization still maintains the hardware to some extent, such as installation and repair.
[0086] exist Fig. 9 In the example shown in , some items are related to Figure 1 are similar to those shown in and are similarly numbered. Fig. 9 Specifically shown is that data store 104 can be located in cloud 502 (which can be public, private, or a combination where some are public and other parts are private). Thus, user 101 uses communication device 100 to access those systems through cloud 502.
[0087] Regardless of where it is located, it can be directly accessed by device 100 over a network (wide area network or local area network), it can be hosted by a service at a remote site, or it can be provided as a service through the cloud or accessed by a connection service residing in the cloud. All of these architectures are contemplated herein.
[0088] It will also be noted that the device 100 or portions thereof can be provided on a variety of different devices. Some of those devices include servers, desktop computers, laptop computers, tablet computers or other mobile devices such as palmtop computers, mobile phones, smart phones, multimedia players, personal digital assistants, etc.
[0089] Fig.10 is a simplified block diagram of one illustrative example of a handheld or mobile computing device that can be used as a handheld device 16 for a user or customer, which can include the communication device 100 . Figure 11-12 are examples of handheld or mobile devices.
[0090] Fig.10 A general block diagram of the components of a client device 16, which can be device 100, is provided. In the device 16, a communication link 13 is provided that allows the handheld device to communicate with other computing devices, and in some examples provides a channel for automatically receiving information (such as by scanning). Examples of the communication link 13 include an infrared port, a serial / USB port, a wired network port such as an Ethernet port, and a wireless network port that allows communication through one or more communication protocols, including General Packet Radio Service (GPRS), LTE, HSPA, HSPA+ and other 3G and 4G wireless protocols, lXrtt and Short Message Service, which are wireless services used to provide cellular access to the network, as well as Wi-Fi protocols and Bluetooth protocols, which provide local wireless connections to the network.
[0091] In other examples, the application or system is received on a removable secure digital (SD) card connected to the SD card interface 15. The SD card interface 15 and the communication link 13 communicate with a processor 17 (which can also be embodied as a processor or server from other figures) along a bus 19, which is also connected to a memory 21 and input / output (I / O) components 23, as well as a clock 25 and a positioning system 27.
[0092] In one example, I / O components 23 are provided to facilitate input operations and output operations. Various examples of I / O components 23 for device 16 can include input components such as buttons, touch sensors, multi-touch sensors, optical or video sensors, voice sensors, touch screens, proximity sensors, microphones, tilt sensors, and gravity switches; and output components such as display devices, speakers, and / or printer ports. Other I / O components 23 can also be used.
[0093] The clock 25 illustratively includes a real-time clock component that outputs the time and date. Illustratively, a timing function can also be provided for the processor 17.
[0094] Positioning system 27 illustratively includes components that output the current geographic location of device 16. This can include, for example, a global positioning system (GPS) receiver, a LORAN system, a dead reckoning system, a cellular triangulation system, or other positioning system. For example, it can also include mapping software or navigation software that generates desired maps, navigation routes, and other geographic functions.
[0095] Memory 21 stores operating system 29, network settings 31, applications 33, application configuration settings 35, data storage 37, communication drivers 39, and communication configuration settings 41. Memory 21 can include all types of tangible volatile and non-volatile computer-readable storage devices. It can also include computer storage media (as described below). Memory 21 stores computer-readable instructions that, when executed by processor 17, cause the processor to perform computer-implemented steps or functions in accordance with the instructions. Similarly, device 16 can have a client system 24 that can run various applications or embody part or all of architecture 100. Processor 17 can also be activated by other components to facilitate its functions.
[0096] Examples of network settings 31 include items such as proxy information, Internet connection information, and mappings. Application configuration settings 35 include settings that customize applications for a particular enterprise or user. Communication configuration settings 41 provide parameters for communicating with other computers and include items such as GPRS parameters, SMS parameters, connection usernames and passwords, and the like.
[0097] The applications 33 can be applications that have been previously stored on the device 16 or installed during use, although these can be part of the operating system 29 or can also be hosted external to the device 16 .
[0098] Fig.11 An example in which device 16 is a tablet computer 600 is shown. Fig.11 In the embodiment of the present invention, computer 600 is shown with user interface display screen 602. Screen 602 can be a touch screen (so touch gestures from the user's fingers can be used to interact with the application) or a pen-enabled interface that receives input from a pen or stylus. It can also use an on-screen virtual keyboard. Of course, it can also be attached to a keyboard or other user input device through appropriate attachment mechanisms (such as a wireless link or USB port). Computer 600 can also illustratively receive voice input.
[0099] Fig.12The device shown may be a smartphone 71. The smartphone 71 has a touch-sensitive display 73 that displays icons or tiles or other user input mechanisms 75. The user can use the mechanisms 75 to run applications, make calls, perform data transfer operations, etc. In general, the smartphone 71 is built on a mobile operating system and provides more advanced computing power and connectivity than a feature phone.
[0100] Note that other forms of device 16 are possible.
[0101] Fig.13 is an example of a computing environment in which the device 100 can be included or in communication with the device 100. Fig.13 , an exemplary system for implementing some embodiments includes a computing device in the form of a computer 810, which is configured / programmed to operate as described above. Components of the computer 810 may include, but are not limited to, a processing unit 820 (which can include a processor or server from the previous figures), a system memory 830, and a system bus 821, which couples various system components including the system memory to the processing unit 820. The system bus 821 can be any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example and not limitation, such architectures include the Industry Standard Architecture (ISA) bus, the Micro Channel Architecture (MCA) bus, the Enhanced ISA (EISA) bus, the Video Electronics Standards Association (VESA) local bus, and the Peripheral Component Interconnect (PCI) bus (also known as a mezzanine bus). About Figure 1 The described memory and program can be deployed in Fig.13 in the corresponding part of .
[0102] Computer 810 generally includes various computer-readable media. Computer-readable media can be any available media that can be accessed by computer 810, and include volatile and non-volatile media, removable and non-removable media. By way of example and not limitation, computer-readable media may include computer storage media and communication media. Computer storage media is different from and does not include modulated data signals or carrier waves. It includes hardware storage media, including volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules or other data). Computer storage media include, but are not limited to: RAM, ROM, EEPROM, flash memory or other storage technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, cassettes, tapes, disk storage or other magnetic storage devices, or any other medium that can be used to store the required information and can be accessed by computer 810. Communication media generally embody computer-readable instructions, data structures, program modules or other data in a transmission mechanism, and include any information delivery media. The term "modulated data signal" refers to a signal that sets or changes one or more of its characteristics in a manner that encodes the information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media.
[0103] The system memory 830 includes computer storage media in the form of volatile and / or nonvolatile memory, such as read-only memory (ROM) 831 and random access memory (RAM) 832. The basic input / output system 833 (BIOS) contains the basic routines that help transfer information between elements within the computer 810, such as during startup, and is typically stored in ROM 831. RAM 832 typically contains data and / or program modules that are immediately accessible and / or currently being operated on by the processing unit 820. By way of example and not limitation, Fig.13 Operating system 834 , application programs 835 , other program modules 836 , and program data 837 are shown.
[0104] The computer 810 may also include other removable / non-removable volatile / non-volatile computer storage media. For example only, Fig.13A hard disk drive 841 is shown that reads or writes from a non-removable, non-volatile magnetic medium, and an optical drive 855 that reads or writes from a removable, non-volatile optical disk 856 (e.g., a CD ROM or other optical media). Other removable / non-removable, volatile / non-volatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic cassettes, flash memory cards, digital versatile disks, digital video tapes, solid-state RAM, solid-state ROM, etc. The hard disk drive 841 is typically connected to the system bus 821 via a non-removable memory interface such as interface 840, and the optical drive 855 is typically connected to the system bus 821 via a removable memory interface such as interface 850.
[0105] Alternatively or additionally, the functions described herein may be performed at least in part by one or more hardware logic components. For example, but not limited to, exemplary hardware logic component types that may be used include field programmable gate arrays (FPGAs), program-specific integrated circuits (ASICs), program-specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), etc.
[0106] Discussed above and in Fig.13 The drives and their associated computer storage media shown in FIG. 8 provide storage of computer readable instructions, data structures, program modules and other data for the computer 810. Fig.13 844, application programs 845, other program modules 846, and program data 847. Note that these components may be the same as or different from operating system 834, application programs 835, other program modules 836, and program data 837. Operating system 844, application programs 845, other program modules 846, and program data 847 are given different numbers here to illustrate that at least they are different copies.
[0107] A user may enter commands and information into the computer 810 through input devices such as a keyboard 862, a microphone 863, and a pointing device 861 such as a mouse, trackball, or touch pad. Other input devices (not shown) may include a joystick, a game controller, a satellite dish, a scanner, and the like. These and other input devices are typically connected to the processing unit 820 through a user input interface 860 coupled to the system bus, but may be connected through other interfaces and bus structures, such as a parallel port, a game port, or a universal serial bus (USB). A visual display 891 or other type of display device is also connected to the system bus 821 via an interface such as a video interface 890. In addition to a monitor, the computer may also include other peripheral output devices such as speakers 897 and a printer 896, which may be connected through an output peripheral interface 895.
[0108] The computer 810 operates in a networked environment using logical connections to one or more remote computers, such as a remote computer 880. The remote computer 880 may be a personal computer, a handheld device, a server, a router, a network PC, a peer device, or other public network node, and typically includes many or all of the elements described above with respect to the computer 810. Fig.13 The logical connections depicted in the diagram include a local area network (LAN) 871 and a wide area network (WAN) 873, but may also include other networks. Such networking environments are common in offices, enterprise-wide computer networks, intranets, and the Internet.
[0109] When used in a LAN networking environment, the computer 810 is connected to the LAN 871 through a network interface or adapter 870. When used in a WAN networking environment, the computer 810 typically includes a modem 872 or other means for establishing communications over the WAN 873 (such as the Internet). The modem 872 may be internal or external and may be connected to the system bus 821 via the user input interface 860 or other appropriate mechanism. In a networking environment, program modules or portions thereof depicted relative to the computer 810 may be stored in the remote memory storage device. By way of example and not limitation, Fig.13 Remote application programs 885 are shown as residing on remote computer 880. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
[0110] It should also be noted that the different examples described herein can be combined in different ways. In other words, parts of one or more embodiments can be combined with parts of one or more other examples. All of these are considered herein.
[0111] Example 1 is a method of controlling a communication device, comprising:
[0112] providing a calendar event user interface (UI) indicating a calendar event record corresponding to the calendar event, the calendar event UI having a communication settings actuator actuatable to indicate a call handling action;
[0113] detecting user actuation of the communication settings actuator, the user actuation identifying a call handling action to be performed when a real-time communication is received during the calendar event; and
[0114] The calendar event record is stored with call handling settings data indicative of the identified call handling action.
[0115] Example 2 is the method of any or all of the previous examples, and also includes:
[0116] detecting incoming real-time communications during the calendar event; and
[0117] The identified call handling action is performed to process the incoming real-time communication.
[0118] Example 3 is the method of any or all of the previous examples, wherein the calendar event record includes time data indicating a time at which the calendar event occurred, and wherein detecting an incoming real-time communication during the calendar event includes:
[0119] detecting the incoming real-time communication; and
[0120] The time data in the calendar event record is accessed to determine that the calendar event is occurring.
[0121] Example 4 is the method of any or all of the previous examples, wherein performing the identified call processing action comprises:
[0122] accessing the call handling settings data for the calendar event; and
[0123] A call handling action to be performed indicated by the call handling settings data is identified.
[0124] Example 5 is the method of any or all of the previous examples, wherein identifying the call processing action to be performed comprises:
[0125] identifying from the call handling settings data criteria to be satisfied for the call handling action to be performed; and
[0126] It is detected that there are identified criteria to be satisfied.
[0127] Example 6 is the method of any or all of the previous examples, wherein performing the identified call processing action comprises:
[0128] accessing calendar data corresponding to the user to identify the user's availability; and
[0129] The availability is communicated to a caller corresponding to the real-time communication.
[0130] Example 7 is the method of any or all of the previous examples, and also includes:
[0131] prior to communicating the availability to the caller, identifying the caller; and
[0132] A determination is made as to whether the caller is authorized to receive the availability of the user.
[0133] Example 8 is the method of any or all of the previous examples, wherein determining whether the caller is authorized to receive the availability of the user comprises:
[0134] accessing a list of authorized callers corresponding to the user; and
[0135] The identity of the caller is compared to the authorized caller list to determine whether the caller is on the authorized caller list.
[0136] Example 9 is the method of any or all of the previous examples, wherein performing the identified call processing action comprises:
[0137] detecting that the real-time communication is a duplicate communication; and
[0138] The call handling operation is identified based on the repeated communications.
[0139] Example 10 is the method of any or all of the previous examples, wherein detecting that the real-time communication is a duplicate communication comprises:
[0140] The real-time communication is detected to be from a caller that was engaged in a different real-time communication within a threshold time prior to the real-time communication.
[0141] Example 11 is the method of any or all of the previous examples, wherein performing the identified call handling action comprises:
[0142] The communication device is muted during the real-time communication.
[0143] Example 12 is the method of any or all of the previous examples, wherein performing the identified call processing action comprises:
[0144] A voice message is sent in response to the real-time communication.
[0145] Example 13 is the method of any or all of the previous examples, wherein performing the identified call handling action comprises:
[0146] An SMS message is sent in response to the real-time communication.
[0147] Example 14 is the method of any or all of the previous examples, and also includes:
[0148] determining that the calendar event is over; and
[0149] A user notification is generated to notify the user of the real-time communication and the call handling action performed.
[0150] Example 15 is a communication device, comprising:
[0151] at least one processor;
[0152] Communication systems;
[0153] a memory storing instructions that, when implemented by the at least one processor, cause the at least one processor to implement a calendar system for:
[0154] providing a calendar event user interface (UI) indicating a calendar event record corresponding to the calendar event, the calendar event UI having a communication settings actuator actuatable to indicate a call handling action;
[0155] receiving an indication of a user actuation of the communication settings actuator, the user actuation identifying a call handling action to be performed when a real-time communication is received during the calendar event;
[0156] storing the calendar event record with call handling settings data indicative of the identified call handling action;
[0157] detecting an incoming real-time communication with the communication system during the calendar event; and
[0158] The communication system is controlled to perform the identified call processing action to handle the incoming real-time communication.
[0159] Example 16 is the communication device of any or all of the previous examples, wherein controlling the communication system to perform the identified call processing action comprises:
[0160] accessing calendar data corresponding to the user to identify the user's availability; and
[0161] The communication system is controlled to communicate the availability of the user to a caller corresponding to the real-time communication.
[0162] Example 17 is the communication device of any or all of the previous examples, wherein controlling the communication system to perform the identified call processing action comprises:
[0163] detecting that the real-time communication is a repeated communication; and
[0164] The call handling operation is identified based on the repeated communications.
[0165] Example 18 is the communication device of any or all of the previous examples, wherein controlling the communication device to perform the identified call processing action comprises at least one of:
[0166] controlling the communication system to mute the communication device during the real-time communication;
[0167] controlling the communication system to send a voice message in response to the real-time communication; or
[0168] The communication system is controlled to send an SMS or video message in response to the real-time communication.
[0169] Example 19 is the communication device of any or all of the previous examples, wherein the memory includes instructions that, when executed by the at least one processor, cause the at least one processor to implement a calendar system for:
[0170] determining that the calendar event is over; and
[0171] A user notification is generated to notify the user of the real-time communication and the call handling action performed.
[0172] Example 20 is a communication device comprising:
[0173] at least one processor;
[0174] a memory storing instructions that, when implemented by the at least one processor, cause the at least one processor to perform a method comprising:
[0175] providing a calendar event user interface (UI) corresponding to the calendar event, the calendar event UI having a communication settings actuator actuatable to indicate a call handling action;
[0176] receiving an indication of a user actuation of the communication settings actuator, the user actuation corresponding to a call handling action to be performed when a real-time communication is received during the calendar event;
[0177] receiving incoming real-time communications during the calendar event; and
[0178] The identified call handling action is performed to process the incoming real-time communication.
[0179] Although the subject matter has been described in language specific to structural features and / or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
Claims
1. A method for controlling a communication device, the method comprising: providing a calendar event user interface (UI) including a communication settings actuator and indicating a calendar event record representing a calendar event in a calendar corresponding to a user; identifying, based on detecting user actuation of the communication settings actuator, a call handling action to be performed when a real-time communication is received during the calendar event; storing the calendar event record with call handling settings data specific to the calendar event and indicative of the identified call handling action; as well as In response to detecting an incoming real-time communication from a caller during the calendar event, access to the calendar event record, and executing the identified call handling action to handle the incoming real-time communication based on the call handling settings data stored in the calendar event record, wherein executing the identified call handling action comprises: accessing calendar data corresponding to the user to identify in the calendar an available time subsequent to the calendar event; determining that the caller is authorized to receive an indication of the identified free time based on comparing the identity of the caller to a list of authorized callers corresponding to the user; and The indication of the identified free time is communicated to the caller based on the determination.
2. The method according to claim 1, wherein: The calendar event record includes time data indicating a time at which the calendar event occurred, and wherein detecting an incoming real-time communication during the calendar event includes: detecting the incoming real-time communication; and The time data in the calendar event record is accessed to determine that the calendar event is occurring.
3. The method according to claim 2, wherein: Performing the identified call processing actions includes: accessing the call handling settings data for the calendar event; and The call handling action to be performed indicated by the call handling settings data is identified.
4. The method according to claim 1, wherein: The calendar event record includes a specific calendar event record among multiple calendar event records, each calendar event record represents a corresponding calendar event and includes call processing setting data, the call processing setting data indicating a call processing action to be performed when a real-time communication is received during the corresponding calendar event, and the identified call processing action is different from another call processing action for at least one other calendar event record.
5. The method according to claim 4, wherein: Performing the identified call processing actions includes: accessing calendar data corresponding to the user to identify the user's availability; and The availability is communicated to a caller corresponding to the real-time communication.
6. The method according to claim 4, wherein: Performing the identified call processing actions includes: detecting that the real-time communication is a duplicate communication; and The call handling operation is identified based on the repeated communications.
7. The method according to claim 6, wherein: Detecting that the real-time communication is a duplicate communication includes: The real-time communication is detected to be from a caller that was engaged in a different real-time communication within a threshold time prior to the real-time communication.
8. The method according to claim 1, wherein: Performing the identified call processing actions includes: The communication device is muted during the real-time communication.
9. The method according to claim 1, wherein: Performing the identified call processing actions includes: A voice message is sent in response to the real-time communication.
10. The method according to claim 1, wherein: Performing the identified call processing actions includes: An SMS message is sent in response to the real-time communication.
11. A communication device, comprising: at least one processor; Communication systems; a memory storing instructions that, when implemented by the at least one processor, cause the at least one processor to: providing a calendar event user interface (UI) indicating a calendar event record corresponding to the calendar event, the calendar event user interface having a communication settings actuator; identifying, based on an indication from a user of actuation of the communication settings actuator, a call handling action to be performed when a real-time communication is received during the calendar event; storing the calendar event record with call handling settings data indicative of the identified call handling action; detecting a first real-time communication with the communication system from a caller during the calendar event; performing a first type of call processing action to process the first real-time communication; determining that a second real-time communication from the caller is a duplicate communication based on detecting that the second real-time communication is within a threshold time after the first real-time communication during the calendar event; as well as Controlling the communication system to perform the call processing action, the call processing action being identified by the call processing setting data based on determining that the second real-time communication is a repeated real-time communication, the identified call processing action comprising a second type of call processing action different from the first type of call processing action.
12. A communication device, comprising: at least one processor; a memory storing instructions that, when implemented by the at least one processor, cause the at least one processor to: storing a calendar event record, the calendar event record representing a calendar event in a calendar corresponding to a user, wherein the calendar event record includes call handling settings data indicating a call handling action to be performed when a real-time communication is received during the calendar event; receiving incoming real-time communications from callers; accessing time data in the calendar event record to determine that the incoming real-time communication was received during the calendar event represented by the calendar event record; accessing calendar data corresponding to the user to identify in the calendar an available time subsequent to the calendar event; determining that the caller is authorized to receive an indication of the identified free time based on comparing the identity of the caller to a list of authorized callers corresponding to the user; and The indication of the identified free time is communicated to the caller based on the determination.
Citation Information
Patent Citations
Method of and system for adaptive call filtering
US20080317229A1
Personal information manager for updating a telecommunication subscriber profile
US5903845A
Apparatus and method for handling incoming calls received by a portable intelligent communications device during a meeting
US6574471B1