 
                 Patent Application
 Patent Application
                     20080032742
 20080032742
                    
    
    
    
    
    
    
    
    
    
    
    
Embodiments of the invention provide techniques for sharing control events issued by a mobile communication device with multiple applications that operate on a processor (e.g., a subscriber identity module (SIM)). One technique includes a mobile communication device that includes a processor including one or more applications. The processor includes a communication control dispatcher application that registers with the mobile communication device using a subscription. Other applications executed on the processor register with the communication control dispatcher application. The communication control dispatcher application receives control events issued by the mobile communication device which are relayed to the applications registered with the communication control dispatcher application. If an application registered with the communication control dispatcher application indicates that the received control event does not satisfy a predetermined condition, the registered application notifies the communication control dispatcher application which then passes the control event to the next registered application for approval. In the event that a certain registered application determines that the control event satisfies a predetermined condition (e.g., a parental control test) the registered application that performs the test sends a response directly to the mobile communication device and further processing of the control event by the communication control dispatcher application is ceased. Other embodiments are within the scope of the invention.
Referring to 
Referring to 
The CCD application 2010 is configured to manage call control information. For example, the CCD application 2010 can be considered an extension of the SIM Toolkit (STK) framework that can provide the ability for applications contained on the SIM 1030 to i) check if call control events are available, ii) subscribe to call control notification, iii) send call control responses to the mobile device, iv) unsubscribe from call control notifications, and v) get last number dialed information via an elementary file on the SIM 1030 without a subscribing to a call control event or a call control notification. The CCD application 2010 is configured to register with the mobile device 1020 thereby indicating which events the CCD application 2010 wishes to be informed of. For example, referring to 
Applications included in the SIM 1030 (e.g., applications 2010, 2050, 2060, 2070) can subscribe to call control events provided by the mobile device 1020 using what can effectively be defined as either an active or passive subscription. When an application subscribes to a call control event using an active subscription, the application is preferably permitted to send a call control response to the mobile device 1020. When an application subscribes to a call control event using a passive subscription, the application preferably cannot send a call control response to the mobile device 1020. The mobile device 1020 and the SIM 1030 are preferably configured such that only a single application can subscribe to a call control notification using an active subscription, while the remaining applications typically register using passive subscriptions. For example, if the CCD application 2010 registers with the mobile device 1020 using an active subscription, the applications 2050, 2060, 2070 would not be able to register as active applications with the mobile device 1020. The subscription type used by individual applications can be controlled using a high application priority during installation of the application and/or an elementary file on the SIM 1030. The priority of a specific application, however, can be adjusted at other times, e.g., remotely after deployment via a network update. An example of an application typically using an active subscription (e.g., in the absence of the CCD application 2010) would be a parental control application used to determine whether or not the caller has parental consent to call a number dialed by the user.
One or more of the applications 2050, 2060, 2070 are configured to register with the CCD application 2010 in order to indicate that the respective applications want to be notified of call events. The CCD application 2010 is configured such that when the mobile device 1020 sends a call control event to the SIM 1030, the CCD application 2010 fetches it and sends notification about the received call control event to at least one of the registered applications. Preferably, the CCD application 2010 relays the call control event starting with the registered application which registered first and ending with the registered application that registered last, although other priorities are possible. The CCD application 2010 can use, for example, an API-based method (e.g., communication control dispatcher library is publicized) and/or a sharable interface-based method (e.g., communication control dispatcher's binary and export files are publicized).
Referring to 
Referring to 
Referring to 
In operation, referring to 
At stage 3505, the CCD application 2010 receives a terminal profile from the mobile device 1020 via the STK framework. The terminal profile is preferably provided to the CCD application 2010 each time the mobile device 1020 is powered up. The CCD application 2010 registers with the mobile device (e.g., through the STK framework) to receive call control events and/or MOSMS control events, although the CCD application 2010 can also register to receive other events. The CCD application 2010 subscribes to each event it desires.
At stage 3510, one or more of the applications 2050, 2060, 2070 register with the CCD application 2010. The applications 2050, 2060, 2070 indicate which control events should be forwarded to the respective applications. The CCD application 2010 determines a priority level for each of applications registered with it.
At stage 3515, the subscriber 1010 attempts to initiate a communication between the mobile device 1020 and another communication device causing a control event to be issued by the mobile device 1020. The control event can be, for example, a call control event and/or an MOSMS control event. The mobile device 1020 is configured to provide the control event to the CCD application 2010. Preferably the control event is provided via the STK framework, although the communication event can be provided directly to the CCD application 2010.
At stage 3520, the CCD application 2010 is configured to relay the control event to one or more of the registered applications (e.g., applications 2050, 2060, 2070). The CCD application 2010 relays the control event to the registered application having the highest priority. For purposes of this discussion it will be assumed that the application 2050 has the highest priority, the application 2060 has the second highest priority, and the application 2070 has the third highest priority. The application 2050 examines the control event to determine if it satisfies a predetermined event (e.g., determining whether the called number can be dialed under a parental control scheme). If the application 2050 determines that the control event satisfies the predetermined condition, the application 2050 sends an OK response to the CCD application 2010, otherwise the application 2050 sends a not-OK response to the mobile device 1020 (e.g., via the STK framework). Once the CCD application 2010 receives an OK response from the application 2050, the CCD application 2010 relays the control event to the registered application having the next highest priority (e.g., application 2060). Each time the CCD application 2010 receives an OK response from a registered application, the CCD application 2010 relays the control event to the application having the next highest priority. Once all registered applications have provided an OK response to the CCD application 2010, the CCD application 2010 sends an OK response to the mobile device 1020 (e.g., via the STK framework). In the event that the CCD application 2010 does not receive an OK response from a registered application to which it relayed the control event to (e.g., if the application provided a not-OK response directly to the mobile device 1020), the CCD application 2010 preferably does not relay the control event to any further registered applications.
Referring to 
At stage 2225 call control event 2110 occurs. At stage 2230, the CCD application 2010 notifies the application 2050 that call control event 2110 has occurred. At stage 2235, (assuming the application 2050 provided a suitable response) the CCD application 2010 notifies application 2060 that call control event 2110 has occurred. At stage 2245, the last number dialed file 2005 on the SIM 1030 is preferably updated with the last number dialed by the subscriber 1010 (or another location as directed by the applications). Once the call control event 2110 occurs, the CCD application 2010 is configured to determine which registered application has the highest priority, at stage 2215, and to notify that application first (in this example, the application 2050). At stage 2220, preferably after receiving a suitable response from the application 2050, the CCD application 2010 can determine whether or not it can make a dispatch to the applications having a lower priority (e.g., if the response received from the application 2050 was an OK response). The CCD application 2010 can be configured to have intelligence to manage the priority of the applications registered with it and to mange the order that the registered applications should be notified. At stage 2240, after receiving an OK response from each of the registered applications, the CCD application 2010 sends to the mobile device 1020 a message indicating that the control event is approved (e.g., that the mobile device 1020 can complete a call attempted by the subscriber 1010).
  
Referring to 
At stage 2425, the MOSMS control event occurs. At stage 2430, the CCD application 2010 notifies application 2050 that MOSMS control event 2130 has occurred. At stage 2435, (assuming the application 2050 gave a suitable response) the CCD application 2010 notifies application 2060 that MOSMS control event 2130 has occurred. At stage 2445, the last MOSMS number file 2015 (or other file as directed by the applications) on the SIM 1030 is updated with the last MOSMS number sent to the last number file 2015 by the subscriber 1010. Once the MOSMS control event occurs, the CCD application 2010 is configured to determine which registered application has the highest priority at stage 2415, and to notify that application first (in this example, the application 2050). At stage 2420, preferably after receiving a suitable response from the application 2050 the CCD application 2010 can determine whether or nit it can make a dispatch to the applications having a lower priority (if the response received from the application 2050 was an OK response). The CCD application 2010 can be configured to have intelligence to manage the priority of the applications registered with it and to manage the order that the registered applications should be notified. At stage 2440, after receiving a satisfactory response from each of the registered applications, the CCD application 2010 sends to the mobile device 1020 a message indicating that the control event is approved (e.g., that the mobile device 1020 can send a message attempted by the subscriber 1010).
  
Other embodiments are within the scope and spirit of the invention. For example, due to the nature of software, functions described above can be implemented using software, hardware, firmware, hardwiring, or combinations of any of these. Features implementing functions may also be physically located at various positions, including being distributed such that portions of functions are implemented at different physical locations. Embodiments of the present invention can be used for devices other than mobile phones and over networks other than mobile networks.
While the primary application has been described as “dispatching” or “relaying” a received control event to a secondary application, the primary application can be configured to send a the control event (or a copy of the control event) received from the mobile device 1020 and/or can be configured to send information indicative of the received control event (e.g., a packet containing information that will allow the secondary application to identify the content of the received control event). Other configurations are possible.
While the present application describes registering for and sharing “control events,” other types of events can be shared. For example all types of restricted events (e.g., an STK event that can only be used by a single application) can be shared
Further, while the description above refers to the invention, the description may include more than one invention.
This application claims the benefit of prior U.S. Provisional Application No. 60/835,248 filed Aug. 2, 2006, which is incorporated by reference herein.
| Number | Date | Country | |
|---|---|---|---|
| 60835248 | Aug 2006 | US |