While telephone technologies changed little until last decade, telecommunication services evolved substantially in a relatively short time with the importation of computing technologies into telecommunication systems and devices. Cellular telephones are an illustrative example. The services provided through a cellular phone such as video streaming, image acquisition and transfer, music distribution, financial transactions, and many others are examples of activities that would have been impossible through conventional phone technologies. As higher speed and broader bandwidth networks become available many more services are enabled by the infrastructure.
The rapid development of capabilities and services provided through communication devices are not limited to cellular phones. Newer systems combine a variety of short range and long range communication capabilities over a number of networks including traditional phone networks, wireless networks, wide area wireless Internet, and similar ones. Telecommunication end devices as well as support devices and programs for such newer systems are more similar to computer networks than conventional telephone networks. Thus, a large number of capabilities may be added to those already provided by modern telecommunication devices and networks.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to exclusively identify key features or essential features of the claimed subject matter, nor is it intended as an aid in determining the scope of the claimed subject matter.
Embodiments are directed to providing information about a called party's mobile status to a caller to enable the caller to choose among available communication modes. The mobile status may include whether or not the called party is in motion, their speed if they are in motion, a direction of their movement, a last time since their movement, as well as their location. Inferences may be made based on individual or combined mobile status information regarding availability of various communication modes and recommendations made to the caller. Mobile status information may be received from a variety of sources.
These and other features and advantages will be apparent from a reading of the following detailed description and a review of the associated drawings. It is to be understood that both the foregoing general description and the following detailed description are explanatory and do not restrict aspects as claimed.
As briefly described above, mobile status information regarding potential called party's may be received and inferences made regarding their status such as whether they are walking, travelling in a car, travelling in a plane, and similar conditions. Available communication modes may then be determined and recommended to a caller. Additional information such as location and/or direction of movement may also be taken into consideration. In the following detailed description, references are made to the accompanying drawings that form a part hereof, and in which are shown by way of illustrations specific embodiments or examples. These aspects may be combined, other aspects may be utilized, and structural changes may be made without departing from the spirit or scope of the present disclosure. The following detailed description is therefore not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims and their equivalents.
While the embodiments will be described in the general context of program modules that execute in conjunction with an application program that runs on an operating system on a personal computer, those skilled in the art will recognize that aspects may also be implemented in combination with other program modules.
Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that embodiments may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and comparable computing devices. Embodiments may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
Embodiments may be implemented as a computer-implemented process (method), a computing system, or as an article of manufacture, such as a computer program product or computer readable media. The computer program product may be a computer storage medium readable by a computer system and encoding a computer program that comprises instructions for causing a computer or computing system to perform example process(es). The computer-readable storage medium can for example be implemented via one or more of a volatile computer memory, a non-volatile memory, a hard drive, a flash drive, a floppy disk, or a compact disk, and comparable media. The computer program product may also be a propagated signal on a carrier (e.g. a frequency or phase modulated signal) or medium readable by a computing system and encoding a computer program of instructions for executing a computer process.
Throughout this specification, the term “platform” may be a combination of software and hardware components for managing traffic related data. Examples of platforms include, but are not limited to, a hosted service executed over a plurality of servers, an application executed on a single server, and comparable systems. The term “server” refers to a computing device executing one or more software programs typically in a networked environment. More detail on these technologies and example operations is provided below.
Referring to
In a unified communication (“UC”) system such as the one shown in diagram 100, users may communicate via a variety of end devices (102, 104), which are client devices of the UC system. Each client device may be capable of executing one or more communication applications for voice communication, video communication, instant messaging, application sharing, data sharing, and the like. In addition to their advanced functionality, the end devices may also facilitate traditional phone calls through an external connection such as through PBX 124 to a Public Switched Telephone Network (“PSTN”). End devices may include any type of smart phone, cellular phone, any computing device executing a communication application, a smart automobile console, and advanced phone devices with additional functionality.
UC Network(s) 110 includes a number of servers performing different tasks. For example, UC servers 114 provide registration, presence, and routing functionalities. Presence functionality enables the system to route calls to a user to anyone of the client devices assigned to the user based on default and/or user set policies. For example, if the user is not available through a regular phone, the call may be forwarded to the user's cellular phone, and if that is not answering a number of voicemail options may be utilized. Similarly several phones (communication devices/applications) may be notified at the same time before a back up device is notified based on user provided rules. Since the end devices can handle additional communication modes, UC servers 114 may provide access to these additional communication modes (e.g. instant messaging, video communication, etc.) through access server 112. Access server 112 resides in a perimeter network and enables connectivity through UC network(s) 110 with other users in one of the additional communication modes. UC servers 114 may include servers that perform combinations of the above described functionalities or specialized servers that only provide a particular functionality. For example, home servers providing presence functionality, routing servers providing routing functionality, and so on. Similarly, access server 112 may provide multiple functionalities such as firewall protection and connectivity, or only specific functionalities as discussed in more detail in
Audio/Video (A/V) conferencing server 118 provides audio and/or video conferencing capabilities by facilitating those over an internal or external network. Mediation server 116 mediates signaling and media to and from other types of networks such as a PSTN or a cellular network (e.g. calls through PBX 124 or from cellular phone 122). Mediation server 116 may also act as a Session Initiation Protocol (SIP) user agent (e.g. Back-to-Back User Agent “B2BUA”).
In a UC system, users may have one or more identities, which is not necessarily limited to a phone number. The identity may take any form depending on the integrated networks, such as a telephone number, a Session Initiation Protocol (SIP) Uniform Resource Identifier (URI), or any other identifier. While any protocol may be used in a UC system, SIP is a preferred method.
The SIP is an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants. It can be used to create two-party, multiparty, or multicast sessions that include Internet telephone calls, multimedia distribution, and multimedia conferences. SIP is designed to be independent of the underlying transport layer.
SIP clients may use Transport Control Protocol (“TCP”) to connect to SIP servers and other SIP endpoints. SIP is primarily used in setting up and tearing down voice or video calls. However, it can be used in any application where session initiation is a requirement. These include event subscription and notification, terminal mobility, and so on. Voice and/or video communications are typically done over separate session protocols, typically Real Time Protocol (“RTP”).
Because end devices in a UC system according to embodiments can provide and receive a variety of information about their status (hardware and/or software) and a user's status, a number of additional features may be incorporated into communication capabilities. For example, a user's availability, their preferences, and similar information may be exchanged such that a calling subscriber can choose communication options. The end devices may also receive information from other sources such as a GPS server or a cellular system device including location information for other subscribers. Thus, a calling subscriber may know before initiating a call whether or not another subscriber to be called is available, mobile or stationary, where they are, or if mobile how fast and in which direction they are headed. The information may be provided by location (or similar) information devices/systems associated with the called party or another party (e.g. the calling party) that is linked to the called party such that the location (or similar) information can be inferred and processed through the UC servers.
While the example system in
As discussed above, modern communication technologies such as UC services enable subscribers to utilize a wide range of computing device and application capabilities in conjunction with communication services. This means, a subscriber may use one or more devices (e.g. a regular phone, a smart phone, a computer, a smart automobile console, etc.) to facilitate communications. Depending on the capabilities of each device and applications available on each device, additional services may be enabled in conjunction with the available communications. Furthermore, a variety of communication modes such as voice communication, video communication, instant messaging, electronic mail, data sharing, application sharing, white-boarding, and similar modes, may be available depending on the capabilities of each device and applications available on each device.
Thus, a subscriber 232 of a unified communication system in a location such as an office may have multiple devices and applications available for communication as illustrated by reference numeral 234. These may include communication applications executed on a laptop computer or a desktop computer, a smart phone, and a regular telephone. Another subscriber 236 may be moving and have only his/her smart phone or cellular phone (238) available for communications. Since subscriber 232 is likely to have more applications available on his/her computing devices, most of the above listed communication modes may be available to that subscriber. On the other hand, subscriber 236 has only a single device available with limited capabilities. So, subscriber 236 may have only voice communication and instant messaging capabilities, for example. Of course, the capabilities may vary depending on device and applications, as well as a location of the subscriber (availability of wireless services).
Mobile status of a party to be called may include stationary 254 (e.g. in the office), walking 248, travelling in a slow moving vehicle such as a car 246, travelling in a fast moving vehicle such as a high speed train 244, and travelling in a very high speed vehicle such as a plane 242. The mobile status information in each of these scenarios may be made available to the calling subscriber upon request or through automatic means (e.g. mobile status of a select number of subscribers may be continuously provided to the calling subscriber). The status information may be obtained from one or more of the communication device of the parties to be called, a GPS server, and other resources associated with network(s) 230.
Upon receiving the mobile status information for a subscriber to be called, the communication application on the calling subscriber's device (or a separate application) may determine available and/or recommended communication modes for the subscriber to be called and present them to the calling subscriber. Based on the information, the calling subscriber may select one communication mode over the others, or select other actions such as calling an alternative contact. For example, the mobile status information for a subscriber to be called may indicate that he/she is walking toward his/her office building. Recognizing that, the calling subscriber may opt to wait before initiating a video call with that subscriber. According to another example, the mobile status of the subscriber to be called may indicate that they are in a vehicle. Recognizing that the instant message or electronic mail options for that subscriber may be removed or de-emphasized when presenting to the calling subscriber.
Conversely, movement may be used to help promote communication. For example, if the called party is at a conference and stationary most of the time, the caller could opt to be notified when the called party starts to walk around because they know the called party is out of a certain session. Moreover, a tagging feature may be implemented at a mobile presence server such that the calling party is notified when the called party is moving (or not moving) depending on the circumstances.
Further actions that may be available through the utilization of mobile status information may include setting of remote communication parameters. For example, if the calling subscriber knows the called subscriber is in an automobile, a hands free operation mode may be automatically activated on the called subscriber's device even if that subscriber forgot to activate the hands free operation. Other parameters that may be set remotely based on the mobile status information may include parameters associated with level and quality of sound or images.
Speed and location of a called party are discussed throughout this specification as examples of called party mobile status. However, the mobile status is a broader concept that may be inferred from information about speed and location, among other things. For example, location refers to geospatial position such as defined by latitude, longitude (or even altitude) and speed indicates a rate of change in the called party's location. Other sources of information that may be utilized in determining mobile status may include environment (e.g. office, car, home, which are distinct from geospatial position, but may be related). The environment may be determined through sources such as connection of the called party's device to a particular network, an operating mode of the device (e.g. airplane mode), etc. and is not limited to determination from GPS or similar location-based information sources. Similarly, a type of device used by the called party may help determine the mobile status of the called party (e.g. if the called party is using a desktop computer, he/she is unlikely to be walking outdoors). Thus, embodiments are not limited to geospatial position and other sources of information discussed herein. Any source of information that may assist in determining a mobile status of the called party may be employed using the principles discussed herein.
On the called subscriber (370) side, communication application 374 may include a mobile presence information module 378 for obtaining information related to a mobile status of the subscriber 2 such as whether or not the subscriber is in motion, a speed and direction of the motion, a location of the subscriber and similar information. The information may be obtained from local or remote resources such as GPS service 382, cellular service 384, local gyro-sensors (not shown), wireless network identifiers, and comparable resources. For example, a called party may be connected to a LAN in an airplane and that information may be shared with the calling party. Mobile presence information may then be published based on the mobile status of the subscriber to make other subscribers aware of the current status of subscriber 2. User interface 372 may be used to enable subscriber 2 to enter additional information, make selections, and so on. For example, subscriber 2 may choose not to have a particular communication mode enabled despite that mode being available as default in a certain mobile status. Communication hardware interface 376 provides connection with available hardware components such as transceivers for various communication modes to communication application 374.
On the calling subscriber 1 (360) side, a parallel structure includes communication hardware interface 366, user interface 362, and communication application 364. Mobile presence processing module 368, which may be a separate application or part of communication application 364, is configured to receive the mobile presence information from subscriber 2 and determine which communication mode(s) can be enabled/recommended to subscriber 1 through user interface 362. The link between the mobile presence modules is shown in the figure in dashed format. This is intentional, since the communication between the modules (as well as any applications) may be direct or through other intermediaries such as UC presence servers or other servers.
According to other embodiments, mobile presence processing module 368 may receive at least a portion of the information related to the mobile status of subscriber 2 from other resources and determine subscriber 2's mobile status before determining which communication modes should be enabled/recommended.
Mobile status of subscriber 2 may be computed based on speed, location, direction information using one or more algorithms such as a branch-and-bound algorithm, a progressive improvement algorithm, a heuristic algorithm, or another algorithm. Similarly, communication modes for different mobile statuses may also be determined using various algorithms and/or user inputs.
While specific computing devices and communication related tasks have been described above, these are for illustration purposes only and do not constitute a limitation on embodiments. Many other hardware environments and communication related tasks may be implemented using the principles described herein.
The user interface in screenshot 400 includes the user's name (402) and current status (404) along with an icon for initiating a call (406). Also included is an input area 408 for entering a contact name or number to place a call (initiate video communication, send an instant message, and comparable communications), as well as icons of available communication modes 410 on the particular device executing the communication application.
According to one embodiment, the user interface may list a group of subscribers 412 (such as those in a favorite contacts list) along with their communication status 416. Next to the listing of communication status 416, a mobile status indication 418 for each subscriber on the list may be presented to enable the user (John Doe) to make a decision regarding establishing communication with the subscribers. The mobile status indication is shown in iconic form on screenshot 400, but it may also be presented in textual or combination of textual and graphic form. Icons 420 may indicate available communication modes or simply activate communication when one of them is clicked on. Additional graphical (or textual) elements such as radio buttons 414 may further indicate subscriber status following a color scheme or another graphical scheme.
Differently from the user interface of
As discussed previously, computing devices 645-649 are used to facilitate communications through a variety of modes between subscribers of the UC service. For a subscriber calling another, mobile presence information along with movement status (e.g. speed, direction, location) may be received through a variety of means and processed to determine and recommend available modes. Information associated with subscribers and facilitating communications may be stored in one or more data stores (e.g. data store 642), which may be managed by any one of the servers 638 or by database server 640.
Network(s) 630 may comprise any topology of servers, clients, Internet service providers, and communication media. A system according to embodiments may have a static or dynamic topology. Network(s) 630 may include a secure network such as an enterprise network, an unsecure network such as a wireless open network, or the Internet. Network(s) 630 may also comprise a plurality of distinct networks such as UC network 632, PSTN 634, and cellular network 636. Network(s) 630 provides communication between the nodes described herein. By way of example, and not limitation, network(s) 630 may include wireless media such as acoustic, RF, infrared and other wireless media.
Many other configurations of computing devices, applications, data sources, and data distribution systems may be employed to implement a system for using called party mobile presence and movement data in determining available communication modes. Furthermore, the networked environments discussed in
Communication application 722 and mobile presence processing module 724 may be separate applications or integral modules of a hosted service that provides communication services to client applications/devices. Mobile presence processing module 724 may analyze called party mobile presence and movement data received from one or more data source applications. Based on the analysis results, communication application 722 may present detailed information to a user enabling informed selection of communication modes or make automatic communication mode selections. According to other embodiments, the data may be received and analyzed for a number of subscribers in the user's contacts list prior to an indication of a call request by the user. This basic configuration is illustrated in
Computer 700 may have additional features or functionality. For example, the computer 700 may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in
Computer 700 may also contain communication connections 716 that allow the device to communicate with other devices 718, such as over a wireless network in a distributed computing environment, a satellite link, a cellular link, and comparable mechanisms. Other devices 718 may include computer device(s) that execute communication applications, GPS satellites providing GPS data, cellular towers providing external data and/or positioning data, and comparable devices. Communication connection(s) 716 is one example of communication media. Communication media can include therein computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode 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.
Example embodiments also include methods. These methods can be implemented in any number of ways, including the structures described in this document. One such way is by machine operations, of devices of the type described in this document.
Another optional way is for one or more of the individual operations of the methods to be performed in conjunction with one or more human operators performing some. These human operators need not be collocated with each other, but each can be only with a machine that performs a portion of the program.
Process 800 begins with operation 802, where a call request is received from a subscriber of a communication network/service. At subsequent operation 804, mobile presence information associated with the called party identified in the call request is received. The mobile presence information may include a location of the called party, a speed of the called party, and/or a direction of the called party's movement. This information may be received from the called party's communication device, a server associated with the communication network, and/or other sources such as a GPS server, a cellular network information server, and similar devices.
At operation 806 following operation 804, available and/or recommended communication modes are determined based on the information received at operation 804. Details of this operation are discussed below in
At operation 808, the available and/or recommended communication modes are presented to the caller as shown in the example screenshots of
Process 900 includes three inputs: called party's speed information 902 feeding into decision operation 904 and called party's direction and location information 918, 920 feeding into operation 920. At decision operation 904, a determination is made whether the speed is about zero. If the speed is zero, processing continues to operation 912, where the called party is designated as stationary. This information coupled with called party location information 920 may help the caller determine whether the called party is temporarily in a place (e.g. cafeteria) or for a longer period (e.g. office). Of course the information may be processed according to circumstances such as a called party waiting in traffic not being interpreted as stationary (e.g. in the office).
If the speed is not zero, another determination is made at decision operation 906 as to whether the speed is lower than a first predefined threshold (V1). This first threshold may be set to distinguish human motion from vehicle motion. Thus, if the speed is determined to be less than V1, the called party may be designated as walking at operation 914. This information coupled with the called party direction and location information (918, 920) may help the caller determine whether the called party is, for example, walking away from the office or approaching the office, walking between offices, etc.
If the speed is greater than V1, a third determination may be made at decision operation 908 as to whether the speed is less than a second threshold V2. The second threshold may be predefined to distinguish a category of vehicles from others, for example cars/buses/trains from planes. Thus, if the speed is less than V2, the called party may be designated as travelling in a car, bus, or train (916). That designation may be complemented or enhanced by additional information received from another source such as network information associated with an on-train wireless network. This information coupled with the called party direction and location information (918, 920) may also help the caller determine whether the called party is, for example, driving away from the office or approaching the office.
If the speed is determined to be higher than V2, the called party may be designated as travelling in a high speed vehicle such as a plane (910). With an increasing number of airlines allowing in-flight wireless communication, a variety of communication modes may also be available even when the called party is on a plane.
The designation of called party's mobile status in one of the operations 912, 914, 916, or 910 coupled with inputs 918 and 920 result in the determination of the available/recommended communication mode(s) at operation 920.
The operations included in processes 800 and 900 are for illustration purposes. Using mobile presence information in determining communication modes may be implemented by similar processes with fewer or additional steps, as well as in different order of operations using the principles described herein.
The above specification, examples and data provide a complete description of the manufacture and use of the composition of the embodiments. 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 and embodiments.