Utilizing caller ID for managing a mobile device

A method, system or computer usable program product for utilizing caller identification (ID) for managing a mobile device including receiving a policy for invoking an executive function on the mobile device upon a first condition being met wherein the executive function is a function performed by a processor of the mobile device beyond call filtering; determining a caller ID associated with the executive function; providing a caller ID application to the mobile device which will perform the executive function upon the mobile device receiving a phone call with the caller ID that is associated with the executive function; and responsive to meeting the first condition of the policy, placing a phone call to the mobile device with a caller ID matching the caller ID associated with the executive function.

BACKGROUND

1. Technical Field

The present invention relates generally to utilizing caller identification (caller ID) for managing a mobile device, and in particular, to a computer implemented method for utilizing a telephone service provided caller ID accompanying a phone call to manage certain functions of a mobile device receiving the phone call.

2. Description of Related Art

For several decades, phone service providers have provided a caller identification (caller ID) with each phone call sent to a phone. This allows the recipient of the phone call to see who is calling that call recipient. Although several standards exist for providing caller ID, typically it includes a numeric identification (numeric ID) and an alphanumeric identification (alpha ID). The numeric identification is typically the phone number of the person or entity making the phone call to the recipient. The alphanumeric identification is typically the name or other description of the person or entity making the phone call to the recipient. The recipient can then decide whether to answer the phone call or not based on the caller ID. In addition, the recipient may program his phone to filter phone calls (i.e., block or allow) for certain caller IDs.

SUMMARY

The illustrative embodiments provide a method, system, and computer usable program product for utilizing caller identification (ID) for managing a mobile device including receiving a policy for invoking an executive function on the mobile device upon a first condition being met wherein the executive function is a function performed by a processor of the mobile device beyond call filtering; determining a caller ID associated with the executive function; providing a caller ID application to the mobile device which will perform the executive function upon the mobile device receiving a phone call with the caller ID that is associated with the executive function; and responsive to meeting the first condition of the policy, placing a phone call to the mobile device with a caller ID matching the caller ID associated with the executive function.

DETAILED DESCRIPTION

Processes and devices may be implemented and utilized for utilizing caller identification (caller ID) for managing a mobile device. These processes and apparatuses may be implemented and utilized as will be explained with reference to the various embodiments below.

FIG. 1is a block diagram of an illustrative data processing system in which various embodiments of the present disclosure may be implemented. Data processing system100is one example of a suitable data processing system and is not intended to suggest any limitation as to the scope of use or functionality of the embodiments described herein. Regardless, data processing system100is capable of being implemented and/or performing any of the functionality set forth herein such as utilizing caller ID for managing a mobile device.

As shown inFIG. 1, computer system/server112in data processing system100is shown in the form of a general-purpose computing device. The components of computer system/server112may include, but are not limited to, one or more processors or processing units116, a system memory128, and a bus118that couples various system components including system memory128to processor116.

Computer system/server112typically includes a variety of non-transitory computer system usable media. Such media may be any available media that is accessible by computer system/server112, and it includes both volatile and non-volatile media, removable and non-removable media.

Program/utility140, having a set (at least one) of program modules142, may be stored in memory128by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. Program modules142generally carry out the functions and/or methodologies of the embodiments. For example, a program module may be software for utilizing caller ID for managing a mobile device.

Computer system/server112may also communicate with one or more external devices114such as a keyboard, a pointing device, a display124, etc.; one or more devices that enable a user to interact with computer system/server112; and/or any devices (e.g., network card, modem, etc.) that enable computer system/server112to communicate with one or more other computing devices. Such communication can occur via I/O interfaces122through wired connections or wireless connections. Still yet, computer system/server112can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter120. As depicted, network adapter120communicates with the other components of computer system/server112via bus118. It should be understood that although not shown, other hardware and/or software components could be used in conjunction with computer system/server112. Examples, include, but are not limited to: microcode, device drivers, tape drives, RAID systems, redundant processing units, data archival storage systems, external disk drive arrays, etc.

FIG. 2is a block diagram of an illustrative network of data processing systems in which various embodiments of the present disclosure may be implemented. Data processing environment200is a network of data processing systems such as described above with reference toFIG. 1. Many of these data processing systems may be hardware systems or virtualized, locally or remotely such as in a cloud environment. Software applications such as for utilizing caller ID for managing a mobile device may execute on any computer or other type of data processing system in data processing environment200. Data processing environment200includes network210and optional cloud215. Network210is the medium used to provide simplex, half duplex and/or full duplex communications links between various devices and computers connected together within data processing environment200. Network210may include connections such as wire, wireless communication links, or fiber optic cables. Optional cloud215may be a cloud computing environment for remotely processing data and code or remote memory storage for managing data remotely. Optional cloud215may be a single cloud environment or multiple cloud environments spread across one or more entities.

Server220and client240are coupled to network210along with storage unit230. Server220and storage230may be virtualized and/or reside in optional cloud215. Client240and other computing and storage elements, or portions thereof, may also reside within optional cloud215. In addition, laptop250and facility280(such as a home or business) are coupled to network210including wirelessly such as through a network router253. Network router253may be connected with network210, including through another router, through wires such as a phone line, coaxial cable, Ethernet cable, optical fiber, etc. Network Router253may also be connected with network210through a variety of wireless connections such as a cellular, radio or microwave connection, including through another router. A mobile device260may be coupled to network210through a cellular tower262or through a router253such as through a WiFi connection. Mobile device260may be a cell phone with limited functions, a smart phone, or other type of mobile device that can receive caller ID through a cellular or other telephone based systems. Mobile device260can also include mobile devices that can receive caller ID through a network connection such as personal digital assistants (PDAs), tablets and netbooks. Cellular tower262can be connected through a telephone system to network210. Additional mobile devices may call or be called from mobile device260directly through this telephone system or through network210. Data processing systems, such as server220, client240, laptop250, mobile device260and facility280contain data and have software applications including software tools executing thereon. Other types of data processing systems that are mobile devices that can receive caller ID through various types of connectivity including a network connection include personal digital assistants (PDAs), smartphones, tablets and netbooks.

Server220may include software application224and data226for utilizing caller ID for managing a mobile device or other software applications and data in accordance with embodiments described herein. Storage230may contain software application234and a content source such as data236for utilizing caller ID for managing a mobile device. Other software and content may be stored on storage230for sharing among various computer or other data processing devices. Client240may include software application244and data246. Laptop250and mobile device260may also include software applications254and264and data256and266. Facility280may include software applications284and data286. Other types of data processing systems coupled to network210may also include software applications. Software applications could include a web browser, email, or other software application for utilizing caller ID for managing a mobile device.

Server220, storage unit230, client240, laptop250, mobile device260, and facility280and other data processing devices may couple to network210using wired connections, wireless communication protocols, or other suitable data connectivity. Client240may be, for example, a personal computer or a network computer.

In the depicted example, server220may provide data, such as boot files, operating system images, and applications to client240and laptop250. Server220may be a single computer system or a set of multiple computer systems working together to provide services in a client server environment. Client240and laptop250may be clients to server220in this example. Client240, laptop250, mobile device260and facility280or some combination thereof, may include their own data, boot files, operating system images, and applications. Data processing environment200may include additional servers, clients, and other devices that are not shown.

Among other uses, data processing environment200may be used for implementing a client server environment in which the embodiments may be implemented. A client server environment enables software applications and data to be distributed across a network such that an application functions by using the interactivity between a client data processing system and a server data processing system. Data processing environment200may also employ a service oriented architecture where interoperable software components distributed across a network may be packaged together as coherent business applications.

FIG. 3is a block diagram of an illustrative mobile device with software for performing an executive function in response to detecting a matching caller ID in which various embodiments of the present disclosure may be implemented. An executive function is a function to be performed by the mobile device upon receiving a specific caller ID(s). This executive function is a function performed by the mobile device processor that manages function of the mobile device beyond (other than) call filtering. While call filtering includes blocking or allowing phone calls to the user based on the caller ID, executive functions require the mobile device processor to perform functions that are not directly related to or just managing incoming phone calls. That is, an executive function does not include call filtering, but is a function performed by a processor of the mobile device beyond call filtering. Executive functions include preventing the user from turning off the mobile device, erasing certain data and code from the mobile device, generating and sending a location of the mobile device, executing commands, making configuration changes, executing software, performing a factory reset of the mobile device, sending an email or text, or other functions that do not include call filtering. An executive function includes software and data previously stored on the mobile device with associated caller IDs, and which is invoked for processing by the mobile device processor upon receiving one or more phone calls with caller IDs matching the previously stored caller IDs. There are other calling functions that can be performed by a mobile device that involve the placing or managing of phone calls.

FIG. 3is directed to a mobile device such as a smartphone with a software application or an operating system (OS) function or capability for causing the mobile device to perform an executive function in response to detecting a matching caller ID. This software application or operating system function/capability is referred to herein as a caller ID application (App). The caller ID application can be a third party software application provided for selection by a user of the mobile device and downloaded by that user onto the mobile device. For example, a phone service provider may wish to locate a mobile device, such as if the owner of the mobile device has notified the phone service provider that the mobile device has been lost or stolen. As a result, the phone service provider may wish to just call the mobile device as described herein to cause the device to send its location to phone service provider or other designated person or entity.

The caller ID application can also be an enterprise based software system, defined herein as enterprise mobile device management (EMDM) software, for managing mobile devices that can access the networks and data of that enterprise. EMDM software can include mobile device management (MDM) software, mobile application management (MAM) software, unified endpoint management (UEM) software, enterprise mobility management (EMM) software, and many other types of software that may be incorporated by an enterprise onto a mobile device for managing the software and data of that enterprise on or accessible by the mobile device. EMDM software can be implemented in an optional cloud, public or private, and could be implemented as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), or Software as a Service (SaaS) platforms. In the case of EMDM software, the user of the mobile device may download a client version of the EMDM software onto the mobile device at the direction of the enterprise, or an authorized person in the enterprise may download the client version of the EMDM software onto the mobile device. For example, upon a user leaving employment of the enterprise, the enterprise may wish to delete certain software and data from the mobile device. Furthermore, where the enterprise owns the mobile device, the enterprise may want to locate the device and/or disable the device until it is recovered. This can be difficult if the now ex-worker has turned off any WiFi or other networking functions of the mobile device. This can be accomplished by simply calling the mobile device with specific caller ID(s) to cause the mobile device to perform an associated executive function, such as erasing certain data and software. A server or master version of the enterprise mobile device management (EMDM) software can be implemented by utilizing a server based management function on a server or other enterprise managed device and by utilizing a mobile device based component such as a client version of the EMDM software for implementing executive functions upon receiving a phone call with an associated caller ID(s). This will be described with illustrative examples in greater detail below.

A mobile device300can communicate with a software management system320or a calling device340through a variety of systems. Mobile device300can be a cell phone, a smart phone, or other type of mobile device that can receive caller ID through a cellular or other telephone based systems. Mobile device300can also include mobile devices that can receive caller ID through a network connection such as personal digital assistants (PDAs), tablets and netbooks. Software management system320can be a server, a desktop or deskside system, or even another mobile device. Software management system320can be located in a cloud environment. The functions of software management system can be spread out across multiple systems and even across multiple cloud environments. For example, software for downloading to a mobile device can be on one system, the caller ID lists described below could be on another more secure system, and the server/master device for managing the caller ID process and implementation could be on another secure system. Calling device340can include any device capable of making a phone call with a specific caller ID to mobile device300. These devices can communicate with each other through an antenna342, telephone system344, a router346and a network348such as the internet or a local area network. A caller ID generating device345may also be utilized to generate a desired caller ID and generate a phone call to a desired mobile device. For example, mobile device340may call caller ID generating device345, establish a connection, provide a desired caller ID and the phone number of the desired call. Caller ID generating device345can then place a phone call to the desired mobile device using the desired caller ID, such as through a technique commonly known as spoofing, as an intermediary between mobile device340and mobile device300. Alternatively, an application that performs this function can be downloaded onto or otherwise programmed on mobile device340or onto any other authorized device designating for placing a call with a desired caller ID.

Mobile device300includes an input/output (I/O) device302for communicating with other devices. Mobile device300also includes a processor304and a memory310for processing and storing software and data. Memory310includes an operating system (OS)312, a caller ID application (App)314for identifying caller ID matches, and a caller ID data file316including a set of caller IDs with associated executive functions to perform upon the occurrence of a caller ID match. Caller ID application314may also be incorporated into OS312as a function or other capability. Software management system320includes an input/output (I/O) device322for communicating with other devices, as well as a processor324and a memory330for processing and storing software and data. In this embodiment, memory330includes an operating system (OS)332, as well as a server or master version of a caller ID application (App)334for identifying caller ID matches. Memory330may optionally include policies for implementing the caller ID based executive functions, a set of caller IDs336with associated executive functions for a mobile device to perform upon the occurrence of a caller ID match. However, these caller IDs and associated executive functions for a given mobile device may be stored in memory330or elsewhere such as in a cloud environment where they can be downloaded as needed to mobile device300.

As described below in greater detail, mobile device300can download App314from software management system320. This can be accomplished through a variety of approaches including using mobile device300to contact software management system320through a WiFi or other network connection through router346and network348. Alternatively, the app may be downloaded through a phone call to the software management system using a modem through antenna342, telephone system344and possibly through network348. Caller ID data file316may be similarly downloaded from software management system320or other location where they are stored. Caller ID data file316may also be configured by a user of mobile device300such as through a menu of App314.

When an authorized person wants to utilize caller ID to request mobile device300to perform a specific executive function, the authorized person calls mobile device300utilizing a caller ID associated with the desired executive function in caller ID data file. This can be accomplished by a phone call from calling device340through telephone system344and antenna342, possibly by using caller ID generating device345. This can also be similarly accomplished by software management system320.

FIG. 4is a flow diagram of a mobile device implementing a caller ID management function in accordance with a first embodiment of the invention. In this embodiment, a single phone call to the mobile device with a predesignated caller ID can cause the mobile device to execute a preloaded function associated with that caller ID. The second embodiment described below discusses various options with utilizing multiple phone calls with caller IDs to cause the mobile device to execute preloaded functions associated with those caller IDs.

In a first step400, a caller ID application (App) for performing executive functions in response to a receiving a matching caller ID is downloaded onto the mobile device in memory. This caller ID application can be the client side of an enterprise mobile device management (EMDM) software as described herein. This downloading can be accomplished through a hardware port to the mobile device, a network connection, such as WiFi or Bluetooth, with the mobile device, a phone call with the device, a cellular connection, or other methods of downloading authorized software onto the mobile device. This downloading may also be performed by the user of the mobile device by logging into a website through a browser to install the caller ID application or through an App store provided by the mobile device manufacturer, the enterprise providing access to their data and software, or any other provider of software applications for mobile devices. Alternatively, the mobile device may be given to a local information technology (IT) professional to download the caller ID application through a variety of connections as described above. If the caller ID application functionality is built into the operating system, then no downloading may be necessary.

In a second step405, certain predesignated caller ID codes and associated executive functions are also downloaded or otherwise configured on the mobile device as a caller ID data file onto the mobile device in memory. This step can be performed as the caller ID application is downloaded or it can be performed later with the authorization of the caller ID application. This step can also be repeated over time with authorization of the caller ID application to replace, update or add to the caller IDs and associated specific functions as needed. This step can also be performed through the use of a graphical user interface on the mobile device or other similar capability. Each caller ID can include a specific numeric identification (numeric ID), a specific alphanumeric identification (alpha ID), or a combination of both. A separate field may also be utilized to designate which IDs are required for a full match. That is, only a match of the numeric ID may be needed, so the separate field could indicate that no match is needed of the alpha ID. Alternatively, storing a null or dummy value in the numeric or alpha ID can identify what combination is needed for a match. Various software functions can be stored as code in memory for execution upon finding a caller ID match. For example, the numeric ID can be 888-555-8888 and the alpha ID can be ABC-XYZ to comprise a caller ID associated with an executive function.

The executive function is a function to be performed by the caller ID application on the mobile device upon receiving the associated caller ID. For example, the executive function may be to erase certain confidential data loaded on the mobile device, to shut down the phone permanently, to erase or disable the caller ID application from the mobile device, to send a location of the mobile device to a predesignated phone number, email address, website, or other recipient, to enable cellular, WiFi or other location tracking capabilities, etc.

In step410, the caller ID application on the mobile device monitors the caller ID of all incoming phone calls to the mobile device. Of course, the caller ID can be a spoofed caller ID as described below with reference toFIG. 7. In step415, an incoming phone call caller ID is compared to each of the predesignated caller IDs stored in memory from step405above. If there is not a match, then processing returns to step410. If there is a match, then processing continues to step420.

In step420, the caller ID application then causes the operating system of the mobile device to execute the executive function stored in memory. That is, the executive function associated with the just received caller ID is loaded into executable memory and executed to perform that executive function. This can occur whether the mobile device user answers the phone call or not. The executive function can include preventing the user from shutting down the mobile device until the executive function is completed. Once the executive function is completed, then processing continues to step425unless the just executed executive function causes an alternative action to be taken by the mobile device. In step425it is determined whether the mobile device should communicate success or failure of performing the executive function or even the location of the mobile device. This decision may be standard for every executive function or may vary by executive function. Alternatively, only failures or successes may be communicated. In another alternative, no such determination may be made and steps555-560can be eliminated. If such a communication is expected, then processing continues to step430, otherwise processing returns to step410above. In step430, this communication of success or failure or even location of the mobile device can be performed by making a phone call to a predesignated phone number. In this case, the caller ID of the mobile device will indicate which mobile device is calling to indicate success or failure of the executive function. Alternatively, the mobile device may send a text message, email or other communication to a predesignated phone number or address. In another alternative, the matching caller ID used to invoke the executive function may include a phone number or address for the mobile device to contact. That is, the match may be of the alphanumeric ID and the numeric ID may be the phone number for texting success or failure or it may point to a pre-stored phone number or other message destination in the mobile device. Processing then returns to step410above.

FIG. 5is a flow diagram of a mobile device implementing a caller ID management function in accordance with a second embodiment of the invention. In this embodiment, multiple phone calls to the mobile device with predesignated caller IDs can cause the mobile device to execute a preloaded function associated with those caller IDs. The use of multiple caller IDs in sequence helps prevent an accidental matching of a caller ID or the intentional misuse of the caller ID management function by unauthorized persons or entities.

In a first step500, a caller ID application for performing executive functions in response to a receiving a set of matching caller IDs is downloaded onto the mobile device in memory. This caller ID application can be the client side of an enterprise mobile device management (EMDM) software as described herein. This downloading can be accomplished through a hardware port to the mobile device, a network connection, such as WiFi or Bluetooth, with the mobile device, a phone call with the device, a cellular connection, or other methods of downloading authorized software onto the mobile device. This downloading may be performed by the user of the mobile device by logging into a website through a browser to install the caller ID application or through an App store provided by the mobile device manufacturer, the enterprise providing access to their data and software, or any other provider of software applications for mobile devices. Alternatively, the mobile device may be given to a local information technology (IT) professional to download the caller ID application through a variety of connections as described above. If the caller ID application functionality is built into the operating system, then no downloading may be necessary.

In a second step505, certain predesignated caller ID codes and associated executive functions are also downloaded onto the mobile device in memory. This step can be performed as the caller ID application is downloaded or it can be performed later with the authorization of the caller ID application. This step can also be repeated over time with authorization of the caller ID application to replace, update or add to the caller IDs and associated specific functions as needed. This step can also be performed through the use of a graphical user interface on the mobile device or other similar capability. Each caller ID can include a specific numeric identification (numeric ID), a specific alphanumeric identification (alpha ID), or a combination of both. A separate field may also be utilized to designate which IDs are required for a full match. That is, only a match of the numeric ID may be needed, so the separate field could indicate that no match is needed of the alpha ID. Alternatively, storing a null or dummy value in the numeric or alpha ID can identify what combination is needed for a match. Various software functions can be stored as code in memory for execution upon finding a caller ID match. For example, the numeric ID can be 888-555-8888 and the alpha ID can be ABC-XYZ in a first phone call and 800-555-8000 with DEF-UVW in a second phone call within 5 minutes to comprise a set of caller IDs associated with an executive function. For another example. If the mobile device receives 3 calls in succession from 432-555-4321, 888-555-8888, and 212-555-5434 within 5 minutes, then the mobile device memory is erased or the mobile device is otherwise disabled.

The executive function is a function to be performed by the caller ID application on the mobile device upon receiving the associated caller ID. For example, the executive function may be to erase certain confidential data loaded on the mobile device, to shut down the phone permanently, to erase or disable the caller ID application from the mobile device, to send a location of the mobile device to a predesignated phone number, email address, website, or other recipient, to enable cellular, WiFi or other location tracking capabilities, etc.

In step510, the caller ID application on the mobile device monitors the caller ID of all incoming phone calls to the mobile device. Of course, the caller ID can be a spoofed caller ID as described below with reference toFIG. 7. In step515, an incoming phone call caller ID is compared to each of the first predesignated caller IDs stored in memory from step505above. If there is not a match, then processing returns to step510. If there is a match, then processing continues to step520.

In step520, the caller ID application then determines whether an additional caller ID match is needed from another phone call. If so, then processing continues to step530, otherwise processing continues to step550. In step530, the caller ID application on the mobile device monitors the caller ID of all incoming phone calls to the mobile device until an incoming phone call with caller ID is detected. There can be a timeout feature implemented whereby if another call is not received within a predesignated period of time, then processing automatically returns to step510above. In step535, it is determined whether the call received is within a predesignated time of the first phone call from step515. The predesignated time may be standard across all executive functions to be performed or may vary for each executive function to be performed. The predesignated time may be stored in one common area for all executive functions or it may be stored with each executive function and associated caller IDs. The predesignated time may be a max value between calls or a max value for all calls in a sequence or both. Other alternative timing limitations can also be implemented. If the predesignated time is exceeded, then processing returns to step515to determine whether the most recent incoming caller ID may be the first caller ID of a new caller ID sequence, otherwise processing continues to step540. In step540, it is determined whether the caller ID received matches the next caller ID in a sequence including the previous caller IDs received earlier. If there is not a match, then processing returns to step530to continue monitoring for the next caller ID in the current sequence as time has not expired yet as per step535. That is, a random call may be received by the mobile device while the caller ID sequence is being sent into the mobile device through multiple phone calls. If there is a match in step540, then processing continues to step545. In an alternative embodiment, the caller ID sequence may be provided in any order. That is, the third listed caller ID may be received second and still be a match in this alternative embodiment. In step545, it is determined whether additional caller IDs are needed to complete the current caller ID sequence. If not, and the caller ID sequence is a complete match, then processing continues to step550, otherwise processing returns to step530to wait for the next caller ID in the sequence.

In step550, the caller ID application causes the operating system of the mobile device to execute the executive function stored in memory. That is, the executive function associated with the just received caller ID is loaded into executable memory and executed to perform that executive function. This can occur whether the mobile device user answers the phone call or not. The executive function can include preventing the user from shutting down the mobile device until the executive function is completed. Once the executive function is completed, then processing continues to step555unless the just executed executive function causes an alternative action to be taken by the mobile device. In step555it is determined whether the mobile device should communicate success or failure of performing the executive function or even the location of the mobile device. This decision may be standard for every executive function or may vary by executive function. Alternatively, only failures or successes may be communicated. In another alternative, no such determination may be made and steps555-560can be eliminated. If such a communication is expected, then processing continues to step560, otherwise processing returns to step510above. In step560, this communication of success or failure or even location of the mobile device can be performed by making a phone call to a predesignated phone number. In this case, the caller ID of the mobile device will indicate which mobile device is calling to indicate success or failure of the executive function. Alternatively, the mobile device may send a text message, email or other communication to a predesignated phone number or address. In another alternative, the matching caller ID used to invoke the executive function may include a phone number or address for the mobile device to contact. That is, the match may be of the alphanumeric ID and the numeric ID may be the phone number for texting success or failure or it may point to a pre-stored phone number or other message destination in the mobile device. Processing then returns to step510above.

FIG. 6is a block diagram of an illustrative record in a caller ID data file in which various embodiments may be implemented. A record is a set of information within a domain or database that establishes a relationship between a set of data or data elements. A record may be a separate entry into a database, a set of links between data, or other logical relationship between a set of data. In the present example, there is one record for each set of caller IDs associated with a given executive function. For example, a single caller ID may be associated with an executive function, or multiple caller IDs may be needed to invoke a given executive function.

Caller ID data record600is part of a caller ID data file, also referred to as a caller ID database, which can be stored on a mobile device in its memory. Caller ID data record600can include a reference number610, a version number613and last updated date and time616. This allows for management of this record to identify each record and to verify that it is up to date. Since more than one caller ID may be needed in sequence, a number of caller IDs620and a timing requirement623may be provided. For example, if three separate matching caller IDs are needed in three different calls within a 5 minute period, then number of caller IDs620may be set to 3, and timing requirement may be set to 5. Alternatively, there may be a maximum of 2 minutes between each of 3 phone calls, so the number of caller IDs620may be set to 3, and timing requirement may be set to 2 per phone call. In addition, the type of matching required may be indicated in match requirement626. For example, only matching numeric IDs may be needed, only alphanumeric IDs may be needed, or both. As described herein, alternative embodiments may utilize null or other dummy characters in a numeric ID or an alphanumeric ID to indicate whether a match is not needed for that field.

Caller ID data file600also includes a set of caller ID(s)630including numeric ID(s)633and alphanumeric IDs636. Depending on the data provided above, there may be one or more caller IDs for a given caller ID data record600. As described herein, if this set of caller ID(s)630is matched in a timely manner by a sequence of one or more phone calls to the mobile device, then one or more executive function(s)640will be executed by the mobile device processor. These executive function(s)640can be stored as software code in the caller ID data record600. Alternatively, pointer(s) may be stored in the caller ID data record to the executive function(s) stored elsewhere on the mobile device. In addition, other fields in caller ID data record600may also include pointers to the specific data stored elsewhere in memory on the mobile device. While typically there may be a single executive function to be executed upon receiving a matching set of caller IDs, alternative embodiments may include multiple executive functions to be performed upon receiving a matching set of caller IDs, either in sequence or in parallel. Alternative embodiments may also utilize different approaches to storing this type of information for use as described herein.

FIG. 7is a flow diagram of a server implementing a caller ID management function on a mobile device in which various embodiments may be implemented. This caller ID management function can include a caller ID management database or other data structure which contains the data needed to implement the caller ID management function across one or more mobile devices. Although a server is mentioned in this illustrative example, other electronic systems, also referred to herein as a software management system, including cloud based systems could perform the same functions and store the data described herein. The server could be located at a voice or other communication company such as a cellular phone company that can invoke certain executive functions on a mobile device upon request of the mobile device owner or if the mobile device owner violates certain policies of the voice or other communication company such as not paying his or her monthly fees. The server could also be located in a company or other entity that allows its workers to utilize their personal mobile devices to access systems and data of the company. That is, a server or master version of enterprise mobile device management (EMDM) software as described herein can be implemented by utilizing a server based management function on a server or other enterprise managed device. Many other such examples of systems and entities could utilize this type of caller ID management function to manage mobile devices as described herein such as software management system320.

In a first step700, a policy is established for invoking certain executive functions in a policy database or other data structure in the caller ID management database on a server or other storage medium. This can include a policy implemented by an entity in an enterprise mobile device management (EMDM) server side software, a policy implemented by a voice or other communication company software, a user based policy implemented by an owner or other user of a mobile device in a cloud or other based data structure, or other implementations of this policy. The policy includes the rules and requirements for utilizing caller IDs to invoke certain associated executive functions. The policy includes certain security features, such as user or information technology (IT) person authentication before implementing a given caller ID. The policy can also include the circumstances under which certain executive functions may be invoked through caller IDs including whether an worker has left a company and has not yet returned the mobile device, whether the mobile device has been stolen, etc. This policy can be general across all mobile devices, classes of mobile devices, or specific to each mobile device.

In a second step705, user preferences for implementing the policy may be identified or otherwise determined and stored. A policy provides the general condition under which certain executive functions may be invoked through using associated caller ID(s) whereas the user preferences provide more tailored implementation details regarding invoking these executive function. The user preferences may general across all mobile devices, classes of mobile devices, or specific to each mobile device. User preferences may also be standard unless modified by an authorized person. Examples of user preferences include identifying a time of day for performing certain executive functions, a time delay before invoking certain executive functions, a notification to the mobile device user as to the executive functions being invoked, a list of persons authorized to invoke certain executive functions for a given mobile device, a time period for periodically updating the caller ID database stored on a mobile device, etc. These user preferences may be determined by the user or owner of the mobile device, an IT manager, or other authorized person. A separate graphical user interface (GUI) may also be utilized to query the authorized person regarding these policies and user preferences. For example, an authorized person may specify through a GUI for an EMDM or other system that for factory reset of a mobile device, 3 calls should be performed with a maximum of 1 minute between calls and a total maximum time of 2 minutes using caller IDs with the North American number type, the caller IDs to be updated every 30 days. The EMDM system or other system can then handle the process of generating the caller IDs for each executive function for all mobile devices including updating the caller IDs on the system and pushing them out to the mobile devices being managed.

In step710, mobile devices are then registered with the caller ID management database. Many mobile devices may be registered upon first implementing the caller ID management function and then other mobile devices can be registered over time as they are acquired or granted access to certain entity data and software. This can include storing the phone number and other contact information for the mobile device, the type of mobile device, etc. Then in step715, a caller ID client application is downloaded or otherwise embedded in each registered mobile device, such as described above with reference toFIGS. 4 and 5and shown inFIG. 6. This allows the caller ID management function of the server to invoke certain executive functions upon meeting certain conditions as described herein. Phone call(s) with caller ID(s) associated with an executive function could be performed automatically upon a system determining that the condition for that executive function has been met. This determination could be made upon data being provided that indicates the condition has been met. Alternatively, this determination could be made upon data being provided that indicates certain state changes, which are checked periodically or continuously against the condition to determine whether the condition has been met. Then in step720, a caller ID database is downloaded into each mobile device providing the caller IDs which can be utilized to invoke certain executive functions in each of the mobile devices. This caller ID database can be updated over time, such as may be set forth in the user preferences. The caller IDs to be used for each executive function can be generated randomly or with restrictions based on user preferences. These caller IDs can be the same across multiple mobile devices for a specific executive function, or they can be different for each mobile device for each executive function. In such a case, a large database may be utilized and periodically and may be managed through user preferences. These caller IDs for each executive function and possibly for each device can be generated by an EMDM system, a specialized application, or other methods apparent to those of ordinary skill in the art.

In step730, it is determined whether certain policies have been met for invoking at least one executive function for one or more mobile devices. For example, a person may have lost his or her phone or a person may have left the employment of an entity. This process could be automatic upon entry of certain conditions within a database. For example, if a worker database is updated by management or human relations to reflect that a worker has quit or is absent, then certain executive functions may be implemented through this process automatically by an EMDM system that polls the worker database or other system. For illustrative purposes, the below describes invoking a single desired executive function for a single mobile device, but the below can be utilized for rapidly invoking multiple executive functions across multiple mobile devices. If no in step730, then processing returns to step710to continue registering mobile devices. Otherwise, in step735, the user preferences related to that mobile device are reviewed to determine when and how the executive function may be invoked. In step740, the phone number of the mobile device and the caller IDs associated with the desired executive function are obtained from the caller ID management database.

In step750, the caller IDs for invoking the associated executive function for the mobile device are spoofed or otherwise generated in a phone call to the mobile device. This can involve placing the phone call to the mobile device through a third party caller ID generating (i.e., spoofing) service or through localized spoofing capabilities. Alternatively, certain low risk or very common executive functions could be invoked by calling from a set phone number without requiring spoofing. Of course, if multiple caller IDs in multiple phone calls within a given time period are required for invoking a given executive function, then multiple phone calls are made to the mobile device with generated caller IDs. Also, if multiple executive functions need to be invoked in sequence (e.g., one to prevent the user from turning off the mobile device followed by other executive functions), then multiple phone calls may be placed with generated caller IDs in sequence.

In step760, it is determined whether a user of the mobile device answers the phone call. If so, then in step765an automated message may be provided, perhaps one that sounds like a person, to not alarm the user. Alternatively, the answering user may simply be told that certain actions are being taken in response to certain policy conditions being met.

In step770, it is determined whether the executive function has been completed. This can be determined by a return text, email, phone call, or other communication provided by the mobile device to a predesignated phone number, email address, website, or other communication destination. If not, then processing can return to step730to determine next steps in accordance with the policies. For example, there may be three tries attempted before taking additional measures to complete the desired result. Otherwise, processing returns to step710above as more mobile devices are registered with the caller ID management function.

FIG. 8is a block diagram of an illustrative caller ID management database in which various embodiments may be implemented. Caller ID management database800or other data structure contains the data needed to implement the caller ID management function across one or more mobile devices. Although a server is mentioned in this illustrative example, other electronic systems, also referred to herein as a software management system, including cloud based systems could perform the same functions and store the data described herein. The server could be located at a voice or other communication company such as a cellular phone company that can invoke certain executive functions on a mobile device upon request of the mobile device owner or if the mobile device owner violates certain policies of the voice or other communication company such as not paying his or her monthly fees. The server could also be located in a company or other entity that allows its workers to utilize their personal mobile devices to access systems and data of the company. That is, a server or master version of enterprise mobile device management (EMDM) software as described herein can be implemented by utilizing a server based management function on a server or other enterprise managed device. Many other such examples of systems and entities could utilize this type of caller ID management database to manage mobile devices as described herein.

Caller ID management database800includes a general policy database810for implementation across one or more mobile devices. This policy is established for invoking certain executive functions in certain mobile devices when certain conditions are met. This can include a policy implemented by an entity in an enterprise mobile device management (EMDM) server side software, a policy implemented by a voice or other communication company software, a user based policy implemented by an owner or other user of a mobile device in a cloud or other based data structure, or other implementations of this policy. The policy includes the rules and requirements for utilizing caller IDs to invoke certain associated executive functions. The policy includes certain security features, such as user or information technology (IT) person authentication before implementing a given caller ID. The policy can also include the circumstances under which certain executive functions may be invoked through caller IDs including whether an worker has left a company and has not yet returned the mobile device, whether the mobile device has been stolen, etc. This policy can be general across all mobile devices or for classes of mobile devices. Policy specific for a given mobile device may be stored as described below.

Caller ID management database800also includes a set of general user preferences820for implementing policy810. While a policy provides the general condition under which certain executive functions may be invoked through using associated caller ID(s), the user preferences provide more tailored implementation details regarding invoking these executive functions. The user preferences may be general across all mobile devices, by classes of mobile devices, or by reference number. User preferences specific for a given mobile device may be stored as described below. User preferences may also be standard unless modified by an authorized person. Examples of user preferences include identifying a time of day for performing certain executive functions, a time delay before invoking certain executive functions, a notification to the mobile device user as to the executive functions being invoked, a list of persons authorized to invoke certain executive functions for a given mobile device, a time period for periodically updating the caller ID database stored on a mobile device, etc. These user preferences may be determined by the user or owner of the mobile device, an IT manager, or other authorized person. A separate graphical user interface (GUI) may also be utilized to query the authorized person regarding these policies and user preferences.

Caller ID management database800further includes a set of mobile device records830, each record being used for identifying and managing each of the registered mobile devices. Each mobile device record includes a mobile device identifier840, registration information for that mobile device, any policy specific to that mobile device, any user preferences specific to that mobile device, and registration numbers of caller ID(s) and associated executive functions. Mobile device identifier840is a unique identifier of a mobile device such as a serial number, phone number, IMEI (International Mobile Equipment Identifier) number, etc. Registration information850includes a variety of information related to that mobile device such as owner name, worker number, serial number, mobile device type, etc. Policy860includes any policy specific to that mobile device such as a whether the device should be fully or partially disabled upon certain conditions given the prior history of the user of the mobile device. User preferences870includes any user preferences specific to that mobile device such as the time of day that updates to the mobile device caller ID records may be performed. Reference numbers880refer to the reference numbers610in the records shown inFIG. 6above. That is, an extensive list of records such as shown inFIG. 6may be stored on the server and then downloaded or updated to each mobile device based on the reference numbers stored in record830for that mobile device. Of course, alternative embodiments may utilize other data structures or approaches to implement the elements of the invention described herein.

FIGS. 9A-9Care block diagrams of illustrative policy, user preference and executive function databases in which various embodiments may be implemented.FIGS. 9A-9Care example databases illustrated inFIG. 8above. Alternative embodiments may utilize different arrangements of the various elements as well as different elements.

FIG. 9Ais an illustrative general policy database900which can represent the general policy database810described above. General policy database900includes a variety of policies that include the conditions for invoking executive functions in various mobile devices. This database may be generated by direct programming, through the use of a graphical user interface, or other well-known techniques. This database is intended for use across multiple mobile devices. A more specific policy database may also be similarly arranged for each mobile device, such as shown as policy860described above.

General policy database900can include descriptors905, which may be included for purposes of documentation for a programmer or other user of the database. General policy database900further includes a set of policy records910, each record being used for identifying and managing each of the general policies implemented for managing executive functions across multiple mobile devices through the use of caller ID. Each general policy record includes a policy number920, a mobile device class922, a set of conditions924, a reference number926, and additional reference number or numbers928. Alternative embodiments may utilize different types of elements for each policy record.

Policy number920is an identifier of each general policy. In this example, the policy numbers are shown sequentially, but they may be organized in alternative configurations. Class922is for identifying which types or class of mobile devices each policy applies to. For example, a policy may apply to all mobile devices, only mobile phones, or other classes such as whether the mobile device is used by an worker in management or not. Condition(s)924includes the conditions whereby that general policy may be implemented. For example, if the mobile device was just reported lost and no efforts have been made to recover that mobile device through the use of caller ID, then a certain executive function in such a lost mobile device may be invoked through the use of caller ID. That is, a certain caller ID may be utilized to cause the lost mobile device to text or otherwise signal its location to a dedicated electronic destination. Reference numbers926and928are reference numbers for identifying the desired executive function(s) to be invoked on the mobile devices. If more than one reference number is provided, those referenced executive functions may be implemented in sequence. That is, more than one executive function may be invoked under certain circumstances. The executive functions referenced by these reference numbers are described in greater detail below inFIG. 9C.

FIG. 9Bis an illustrative general user preferences database940which can represent the general user preferences820described above. General user preferences database940includes a variety of user preferences that provide more tailored implementation details regarding invoking these executive functions in various mobile devices. This database may be generated by direct programming, through the use of a graphical user interface, or other well-known techniques. This database is shown by reference number and is intended for use across multiple mobile devices. Alternative embodiments may be organized by class or mobile device or other arrangement. A more specific user preference database may also be similarly arranged for each mobile device, such as shown as user preferences870described above.

General user preferences database940can include descriptors945, which may be included for purposes of documentation for a programmer or other user of the database. General user preferences database940further includes a set of user preference records950, each record being used for identifying and managing each of the reference numbers implemented for managing executive functions across multiple mobile devices through the use of caller ID. Each user preference record includes a reference number960, a class of mobile device962, a number of caller IDs964, a max time limit for providing these caller IDs to invoke an executive function966, an order of caller IDs968, other user preferences970, and a time period for updating caller IDs for a given reference number972. Alternative embodiments may utilize different types of elements for each user preference record.

Reference number960an identifier of each executive function to which a set of user preferences may apply. In this example, the reference numbers are shown sequentially, but they may be organized in alternative configurations. The executive functions referenced by these reference numbers are described in greater detail below inFIG. 9C. Class962is for identifying which types or class of mobile devices each set of user preferences applies to. For example, a set of user preferences may apply to all mobile devices, only mobile phones, or other classes such as whether the mobile device is used by a worker in management or not. One reference number960may be utilized for different classes of mobile devices, as shown with reference number002. That is, for reference number002, the system utilized one set of user preferences for mobile phones and a different set of user preferences for all other types of mobile devices. Sequence number964provides the number of sequential caller ID numbers should be utilized to invoke a given executive function. That is, only one specific caller ID and call is needed, or multiple caller IDs with multiple phone calls are needed to invoke a given executive function. Time limit966provides the maximum time allowed for this sequence of phone calls with caller IDs to be called. Alternatively, there may be a maximum time limit between each of the multiple phone calls rather than a total time limit. Of course, if there is only a single phone call, no time limit is given. Sequence order968is an expected order that the phone calls with caller ID are to be given. That is, a specific sequence may be required or the caller IDs could be in random order. Other user preferences970can also be provided. This can include the format of caller ID number provided (e.g., by country, by area code, etc.), language of the caller ID alphanumeric value, etc. A time period for updating a given set of caller IDs for a given reference number is also provided. For example, the caller IDs for a given executive function may need to be updated weekly, monthly, quarterly or other time period.

FIG. 9Cis an illustrative executive function database980which can represent the executive function reference numbers880described above. Executive function database980includes a variety of executive functions to be invoked in various mobile devices. This database may be generated by direct programming, through the use of a graphical user interface, or other well-known techniques. This database is shown by reference number and is intended for use across mobile devices in accordance with the policies and user preferences described above.

Executive function database980can include descriptors982, which may be included for purposes of documentation for a programmer or other user of the database. Executive function database980further includes a set of executive function records984, each record being used for identifying and managing each of the executive functions across multiple mobile devices through the use of caller ID. Each executive function record includes a reference number990, a description992, and data and code994needed for implementing that executive function. Reference number960an identifier of each executive function to which a set of user preferences may apply. In this example, the reference numbers are shown sequentially, but they may be organized in alternative configurations. Description992provides a human readable description of the executive function. Data/Code994includes the data and code necessary for implementing the identified executive function. Data/Code could be a pointer to data and code needed for various types of mobile devices or to a pointer table listing various types of mobile devices. That is, one type of data or code may be utilized for one type of mobile phone from one manufacturer and another type of data and code may be utilized for another type of mobile phone from another manufacturer. Executive database can also include a set of caller IDs to be utilized for invoking each executive function. This set of caller IDs can be downloaded with the data and code for invoking that executive function onto each mobile device to be managed as described herein. In an alternative embodiment, a separate set of caller IDs may be utilized for each mobile device for each executive function. That is, the set of caller IDs used to invoke a factory reset on one mobile device may be different than another mobile device. In such a case, a separate database may be utilized for managing the set of caller IDs for each executive function for each mobile device. This can be managed by an EMDM system as described above, through user preferences, from a pool of acceptable caller IDs, or other methods apparent to those of ordinary skill in the art.

Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or other programming languages such as Swift, Objective-C, Java, Kotlin, C++, etc. The computer readable program instructions may execute entirely on the user's computer or mobile device, partly on the user's computer or mobile device, as a stand-alone software package, partly on the user's computer or mobile device and partly on a remote computer or mobile device or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.

A data processing system may act as a server data processing system or a client data processing system. Server and client data processing systems may include data storage media that are computer usable, such as being computer readable. A data storage medium associated with a server data processing system may contain computer usable code such as for utilizing caller ID for managing a mobile device. A client data processing system may download that computer usable code, such as for storing on a data storage medium associated with the client data processing system, or for using in the client data processing system. The server data processing system may similarly upload computer usable code from the client data processing system such as a content source. The computer usable code resulting from a computer usable program product embodiment of the illustrative embodiments may be uploaded or downloaded using server and client data processing systems in this manner.

The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. For example, a deskside system may include an active phone application across the internet which can be called using the caller ID function described herein. The embodiment was chosen and described in order to explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.