Abstract:
Methods, systems, and devices are disclosed for exposing access network capabilities using an enabler proxy. In one embodiment, a device for providing access to one or more capabilities of a wireless network comprises a first interface to communicate with an application, a second interface to communicate on a wireless network as a subscriber device, and logic to process requests from the network-based application to access one or more capabilities of the wireless network. The logic may be configured to process the requests by at least using one or more services subscribed to by the device.

Description:
CROSS-REFERENCES TO RELATED APPLICATIONS  
       [0001]     This application claims the benefit of U.S. Provisional Application No. 60/632,698, entitled “Methods and Systems for Exposing Access Network Capabilities Using An Enabler Proxy” filed Dec. 1, 2004, which is incorporated herein by reference. 
     
    
     BACKGROUND OF THE INVENTION  
       [0002]     In today&#39;s wireless mobile computing world, there are a variety of different types of wireless networks. Each of the different wireless networks may use enablers to expose various capabilities of the wireless network. The capabilities that are exposed by the enablers are different for each access provider. Exemplary capabilities that may be exposed include device management, device provisioning, device information, call control, device location, and device presence information.  
         [0003]     A number of third parties outside the wireless network may have an interest in having access to the capabilities provided by a mobile network. For instance, third parties may want to develop applications for the mobile market that take advantage of the capabilities of a mobile network. As another example, enterprises may want to develop internal applications that use capabilities of mobile networks to mobilize their workforces.  
         [0004]     Various technologies exist that allow the mobile network operator to expose access to some of the network capabilities to interested third parties outside the mobile network. These technologies include Parlay (http://www.parlay.org), and Web Service technologies including WSFL, WSXL, UDDI, OASIS WS inspection, OASIS WS-Security, WS-Provisioning, SLA, and others. With all of these. technologies, third parties must depend on mobile network operators to expose the mobile network capabilities. However, these technologies are not widely deployed by the mobile network operators. The end result is that third parties are often left without the ability to access the capabilities of a mobile network.  
       BRIEF SUMMARY OF THE INVENTION  
       [0005]     Systems and methods are disclosed for exposing access network capabilities using an enabler proxy. In one embodiment, a method is disclosed which comprises providing an enabler proxy and subscribing the enabler proxy to one or more services available on a wireless network (e.g., a GSM, CDMA, GPRS, or a WiFi network). A connection is established between the enabler proxy and the wireless network. Information is obtained (via the established connection) using one of the services. The obtained information is transmitted to an application (e.g., on request, at predetermined intervals, upon the occurrence of a predetermined event, etc.). In some embodiments, before the information is transmitted, a determination may be made the application is authorized to receive the obtained information.  
         [0006]     A variety of different types of information may be obtained using the connection between the enabler proxy and the wireless network. By way of example, the obtained information may be presence information for subscriber device(s) indicating whether the subscriber device(s) are currently communicatively coupled with the wireless network. As another example, the obtained information may be location information for subscriber device(s). Once the information is obtained, it may be transmitted to the application using an established network connection to the application, by email, via a modem connection, or any other type of appropriate transport mechanism, protocol or communication means.  
         [0007]     In another embodiment, a method is disclosed with comprises collecting information at an enabler proxy communicating on a wireless network. The information is collected using at least one service subscribed to by the enabler proxy and may be information about one or more devices communicating on the wireless network. A connection is established from the enabler proxy to an application and the collected information is transmitted to the application using the established connection.  
         [0008]     In some embodiments, the method may also further include establishing a second connection between the enabler proxy and a second wireless network. The enabler proxy subscribes to service(s) available on the second wireless network and uses at least one of the services to collect information about subscriber devices communicating on the second wireless network. The information for these devices is also transmitted to the application using the established connection.  
         [0009]     In a third embodiment, a method is disclosed with comprises providing an enabler proxy and subscribing, with the enabler proxy, to a service available on the wireless network. A connection is established between the enabler proxy and the wireless network. A request to transmit a message (e.g., an MMS message, an SMS message, a voice chat message) to a subscriber device communicating on the wireless network is received at the enabler proxy from an application and the message is transmitted from the enabler proxy to the subscriber device using the established connection and the service. The method may also include receiving a reply message from the subscriber device. The enabler proxy transmits the reply message to the application.  
         [0010]     In a fourth embodiment, a method is disclosed which comprises providing an enabler proxy communicating as a subscriber device on a wireless network. A request to initiate a voice call with a second subscriber device is received at the enabler proxy from an application. A voice call from the enabler proxy to the second subscriber device is established and the enabler proxy is used to connect the voice call to the application.  
         [0011]     In a fifth embodiment, a method is disclosed which comprises providing an enabler proxy communicating as a subscriber device on a wireless network. A request from a second subscriber device to initiate a voice call with a user of a network-based application is received from a second subscriber device communicating on the wireless network. A voice connection (e.g., a voice over IP connection) is established with the application and the voice connection is connected to the second subscriber device using the enabler proxy.  
         [0012]     In a sixth embodiment, a device for providing access to one or more capabilities of a wireless network is disclosed. The device comprises a first interface to communicate with an application and a second interface to communicate on a wireless network. The device also comprises logic to process requests from the application to access one or more capabilities of the wireless network. The logic may be configured to process the requests by at least using one or more services subscribed to by the device. In some aspects, the logic may also use the second interface to obtain information for one or more additional subscriber devices communicating on the wireless network. In some embodiments, the device may further comprise a data storage to store the additional subscriber device information. The device may also or additionally have a SIM or a USIM.  
         [0013]     A further understanding of the nature and advantages of the present invention may be realized by reference to the remaining portions of the specification and the drawings. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0014]      FIG. 1  is a block diagram illustrating a system using an enabler proxy to expose capabilities of wireless networks to network-based applications;  
         [0015]      FIG. 2  is a block diagram illustrating an exemplary enabler proxy;  
         [0016]      FIG. 3  illustrates a simplified comparison of several currently available mobile network technologies;  
         [0017]      FIG. 4  is a block diagram of a computer system upon which an enabler proxy or components of an enabler proxy may be implemented;  
         [0018]      FIG. 5  is a flow diagram illustrating an exemplary method of using an enabler proxy to obtain subscriber device information for an application;  
         [0019]      FIG. 6  is a flow diagram illustrating an exemplary method of transmitting messages using an enabler proxy; and  
         [0020]      FIG. 7  is a flow diagram illustrating an exemplary method of using an enabler proxy for voice call communications between an application and subscriber device communicating on a wireless network. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0021]      FIG. 1  illustrates an exemplary embodiment of a system that uses an enabler proxy to expose capabilities of a wireless network. In  FIG. 1 , a number of wireless mobile devices  106 ,  108 ,  110  are communicatively coupled to wireless network  102 . Wireless mobile devices  106 ,  108 ,  110  may be mobile telephones, personal data assistants (PDA) with wireless capabilities, laptops with wireless capabilities, wireless devices for receiving email communications (e.g., Blackberry® devices), or other types of wireless device It should be appreciated that wireless network  102  may also have additional wireless mobile devices (not shown) connected thereto.  
         [0022]     Wireless network  102  employs a communication format for communications on the network  102 . By way of example, the communication format may be Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Global System for Mobile Communication (GSM), WiFi (IEEE 802.11), General Packet Radio Service (GPRS), 3G, and other wireless network technologies. In addition to the communication format employed by the wireless network  102 , wireless network  102  may also employ proprietary standards for communications.  
         [0023]     One or more enablers  112 ,  114  may also be communicatively coupled with wireless network  102 . The enablers  112 ,  114  may be used to provide one or more capabilities exposed on wireless network  102  to subscriber devices  106 ,  108 ,  110 . These capabilities may include device management, device provisioning, device information, call control, device location information, device presence information, voice chat, push to talk over cellular, different forms of messaging (e.g., Multi-Media Messaging Service (MMS), Short Messaging Service (SMS), instant messaging (IM), email, fax, etc.), Digital Rights Management (DRM), Internet browsing, content download, data synchronization, or other types of capabilities available on wireless network  102 .  
         [0024]     Enabler proxy  100  also communicates on wireless network  102  and subscribes to one or more services available on wireless network  102 . By way of example, enabler proxy  100  may subscribe to SMS, MMS, IM, voice chat, push to talk over cellular, email, content download, presence information, location information or other capabilities or services available on wireless network  102 . Enabler proxy  100  may be a component of a subscriber device or may be any other device communicating on wireless network  102  which can subscribe to available service(s). In some embodiments, enabler proxy  100  may also communicate and subscribe to services on one or more additional wireless networks (not shown).  
         [0025]     Using the subscribed services, enabler proxy  100  may expose one or more capabilities of wireless network  102  to one or more applications (not shown) executing on one or more application servers  118 ,  120 ,  122 . Application servers  118 ,  120 ,  116  may communicate on network  116 , such as a wide area network (e.g., the Internet), a Virtual Private Network (VPN), a local area network (LAN), or other type of network. As shown in  FIG. 1 , in one embodiment, wireless network  100  may be communicatively coupled with network  116  and enabler proxy  100  may communicate with application servers  118 ,  120 ,  122  via wireless network  102 . In another embodiment, enabler proxy  100  may communicate with an application executing on application server  118  by dialing in to or otherwise accessing a modem associated with application server(s)  118 ,  120 ,  122 . Other appropriate communication mechanisms may also be used to communicate with application servers  118 ,  120 ,  122 . As will be described further below, applications executing on application servers  118 ,  120 ,  122  may use enabler proxy  100  to access capabilities of wireless network  102  (e.g., messaging, location, or presence capabilities). It should be appreciated that by using enabler proxy  100 , third-parties may access capabilities of the wireless network  102  which may otherwise not be available to them. Thus, the third-parties (such as enterprises or content providers) may build applications that take advantage of the capabilities of wireless network  102  without relying on the network provider to expose the capabilities of the network.  
         [0026]      FIG. 2  illustrates an exemplary enabler proxy  200  that may be used to expose capabilities of one or more wireless networks. Enabler proxy  100  may be a smart phone platform or a more advanced computing platform associated with one or more subscriber identifiers used to communicate on a wireless network. As shown in  FIG. 2 , enabler proxy  200  includes one or more wireless network interfaces  202 ,  204 . Each wireless network interface  202 ,  204  may be used to communicate on a wireless network as a subscriber device. Thus, in some embodiments, wireless network interfaces  202 ,  204  may each be associated with a subscriber identity, such as an MSISDN, a phone number, or other type of identifier. Additionally, wireless network interfaces  202 ,  204  may include components, such as SIMs, USIMs, or other components that may be used to communicate on the respective wireless networks associated with each of the wireless network interfaces  202 ,  204 .  
         [0027]     Wireless network interfaces  202 ,  204  may be used to access and communicate on wireless networks provided by different mobile network operators (MNOs) or other providers of a wireless network. The wireless network interfaces  202 ,  204  may thus each communicate on the wireless network using the designated communication format for the associated wireless network. By way of example, communication formats that may be used by a wireless network include CDMA, TDMA, GSM, WiFi, GPRS, EDGE,  2 G,  3 G, and other types of wireless network technologies. The wireless networks associated with each wireless network interface  202 ,  204  may both use the same communication protocols or different communication protocols.  
         [0028]     As illustrated in  FIG. 2 , enabler proxy  200  has two wireless network interfaces  202 ,  204 . It should be appreciated that in alternate embodiments, enabler proxy  200  may include fewer or additional wireless network interfaces  202 ,  204 . It should also be appreciated that a wireless network interface  202 ,  204  used to communicate on a particular wireless network may in some instances access and communicate on a different wireless network through the use of roaming.  
         [0029]     Subscriber identities associated with enabler proxy  200  may each subscribe to one or more services available on the wireless networks associated with wireless network interfaces  202 ,  204 . The subscribed services may include device location information, presence information, voice chat, push to talk over cellular, different forms of messaging (e.g., MMS, SMS, IM, email, fax), content download, DRM, browsing, device management, device provisioning, device information, call control, streaming, application provisioning, and any other capabilities or services offered by the respective wireless networks. The services subscribed to by enabler proxy  200  may be exposed to applications via one or more application interfaces  208 ,  210 .  
         [0030]     Application interfaces  208 ,  210  may each be used to communicate with one or more applications executing on an application server. One or more of the application interfaces  208 ,  210  may be interfaces to a Wide Area Network (e.g., the Internet), a Local Area Network (LAN), a Virtual Private Network (VPN), or other type of network connection to an application server. In embodiments in which one or more of application interfaces  208 ,  210  are interfaces to the Internet, application interface(s)  208 ,  210  may be web services interfaces. In other embodiments, one or more of the application interfaces  208 ,  210  may include a modem to access a modem associated with an application server. Any other means to communicate with applications executing on application servers may also be employed by application interfaces  208 ,  210 . Although  FIG. 2  illustrates enabler proxy  200  having two application interfaces  208 ,  210 , it should be appreciated that enabler proxy  200  may include fewer or additional application interfaces  208 ,  210 .  
         [0031]     Enabler proxy  200  further includes logic  206  (e.g., machine executable instructions) to provide functionality to expose one or more capabilities of wireless network(s) associated with one or more wireless network interfaces  202 ,  204  to one or more applications associated with one or more application interfaces  208 ,  210 . Logic  206  may use wireless network interfaces  202 ,  204  to obtain information (e.g., location or presence information) from enablers on the network and may communicate the information to applications. Alternatively, or additionally, logic  206  may use wireless network interfaces  202 ,  204  to transmit communications (e.g., MMS, SMS communications) from application(s) to other subscribers on wireless network(s), to establish voice calls between users of application(s) and other subscribers on wireless network(s), and/or to access other capabilities of wireless network(s). Similarly, logic  206  may use application interfaces  208 ,  210  to receive requests from application(s), to transmit information to application(s), to transmit communications from other subscribers on wireless network(s), to establish voice calls (e.g., voice over IP) between subscribers on wireless network(s) and applications, and/or to provide other capabilities of wireless network(s) to application(s).  
         [0032]     Logic  206  may obtain information from a wireless network as requested by an application or may collect the information on a periodic basis and transmit the information after it is collected or transmit the information upon the request of an application. In some embodiments, enabler proxy  200  may include a data storage  212 , communicatively coupled with logic  206 , to store subscriber device information collected by logic  206 . Data storage  212  may be a relational database, an object-oriented database, a text file, internal software structure, a spreadsheet, or other suitable structure for storing information. In addition to subscriber device information, data storage  212  or a different data storage may store authorization/authentication information used to verify an application has authority to access subscriber information. Data storage  212  may store additional information that may be used to facilitate access or use of wireless network capabilities by application(s).  
         [0033]     It should be appreciated that enabler proxy  200  may include additional or fewer components than illustrated in  FIG. 2  to expose capabilities of wireless network(s) to application(s). It should also be appreciated that components of enabler proxy  200  and/or components of logic  206  may reside on the same or different physical devices. For instances, data storage  212  may reside on a different machine communicatively coupled with logic  206 . As another example, wireless network interfaces  202 ,  204  may reside on devices (e.g., mobile phones, or “smart phone” platforms) that communicate with logic  206  residing on a different physical device.  
         [0034]      FIG. 3  illustrates exemplary wireless network technologies which may be used by a wireless network provider. Wireless network technologies include wireless wide area network (WWAN), wireless local area network (WLAN) and wireless personal area network (WPAN) technologies. WWAN technologies typically include cellular and related technologies such as GSM, GPRS, CDPD, CDMA, TDMA, CDMA, EDGE, 3G, etc. WWAN networks are high power, long range networks that typically have an access range on the order of several kilometers on up WLAN technologies, on the other hand, are medium power, medium range networks that have an access range on the order of tens of meters while WPAN networks are low power, short range networks that typically have an access range of about 10 meters or less. Examples of WLAN technologies include the IEEE 802.11 (a), (b), (e) and (g) technologies and examples of WPAN technologies include Bluetooth, HomeRF, IrDA and IEEE 802.15 technologies.  
         [0035]     In one embodiment, enabler proxy may be implemented as a component on a mobile phone. In an alternate embodiment, enabler proxy may be implemented on a more advanced computing system.  FIG. 4  illustrates one embodiment of a computer system  400  upon which an enabler proxy (or components of an enabler proxy) may be implemented. The computer system  400  is shown comprising hardware elements that may be electrically coupled via a bus  455 . The hardware elements may include one or more central processing units (CPUs)  405 ; one or more input devices  410  (e.g., a mouse, a keyboard, etc.); and one or more output devices  415  (e.g., a display device, a printer, etc.). The computer system  400  may also include one or more storage device  420 . By way of example, storage device(s)  420  may be disk drives, optical storage devices, solid-state storage device such as a random access memory (“RAM”) and/or a read-only memory (“ROM”), which can be programmable, flash-updateable and/or the like.  
         [0036]     The computer system  400  may additionally include a computer-readable storage media reader  425 ; a plurality of communication systems  430 , and working memory  440 , which may include RAM and ROM devices as described above. In some embodiments, computer system  400  may also include a processing acceleration unit  435 , which may include a DSP, a special-purpose processor and/or the like.  
         [0037]     The computer-readable storage media reader  425  can further be connected to a computer-readable storage medium, together (and, optionally, in combination with storage device(s)  420 ) comprehensively representing remote, local, fixed, and/or removable storage devices plus storage media for temporarily and/or more permanently containing computer-readable information. Communication systems  430  may permit data to be exchanged with subscriber devices communicating on one or more wireless network(s), wireless network enablers, and applications executing on either computer system  400  or other computer systems. By way of example, communication systems  430  may include an antenna, one or more SIMs, one or more USIMs, one or more wireless network cards, one or more network interface cards (NICs) or other wired network cards, one or more infra-red communication devices, or other type of communication systems that may be used to communicate on a wireless network or to communicate with applications or application servers.  
         [0038]     The computer system  400  may also comprise software elements, shown as being currently located within a working memory  440 , including an operating system  445  and/or other program code  450 . Program code  450  may implement logic of an enabler proxy, and/or the methods of the invention. It should be appreciate that alternate embodiments of a computer system  400  may have numerous variations from that described above. For example, customized hardware might also be used and/or particular elements might be implemented in hardware, software (including portable software, such as applets), or both.  
         [0039]      FIG. 5  illustrates an exemplary method of using an enabler proxy to obtain subscriber device information for an application. As previously described, the enabler proxy may subscribe to one or more services or other capabilities provided by the wireless network. Enabler proxy may expose one or more of those services or capabilities to application(s).  
         [0040]     The method may include establishing  502  a connection between the enabler proxy and the wireless network. The connection may be established  502  by any appropriate mechanism for the wireless network. In some instances, the connection may be established  502  when the enabler proxy is powered on. Using the established connection, the enabler proxy may communicates on the wireless network. It should be appreciated that enabler proxy may communicate on more than one wireless network and thus connections may be established to more than one wireless network.  
         [0041]     An application wanting to obtain information about a subscriber device, such as location information or device presence information (indicating whether a subscriber device is currently in communications with the wireless network), may transmit a request for the information to the enabler proxy and the request may be received  504  by the enabler proxy. The enabler proxy may then obtain  506  the requested information using the established connection to the wireless network. In alternate embodiments, the enabler proxy may not wait until a request is received  504 , but may instead proactively collect  506  information on one or more subscriber devices. The information on subscriber device(s) may be obtained/collected  506  using services or capabilities available on the wireless network which are subscribed to by the enabler proxy. For instances, location information may be obtained by accessing an enabler on the wireless network that provides location information on subscriber devices. Optionally, the collected  506  information may be stored in a data storage for future transmittal to application(s) or other use.  
         [0042]     A connection may also be established  508  between the enabler proxy and the application. By way of example, the connection may be established  508  by establishing a network connection to an application server executing the application (e.g., an Internet connection, a web services connection, a LAN connection, or a VPN connection). Alternately, the connection may be established  508  by accessing a modem associated with the application, sending an email or other appropriate communication connection.  
         [0043]     The information may then be transmitted  510  to the application using the established connection. Alternately, information may be transmitted  510  to an application by messaging (e.g., sending an email with the information or sending an SMS/MMS message with the information). Information may be transmitted  510  in response to a request  502  for the information and/or may be transmitted  510  to the application on a periodic basis. Optionally, the information may be encrypted before it is transmitted  510 .  
         [0044]     In some embodiments, the enabler proxy may make a determination at some point before the information is transmitted  510  whether the application(s) is authorized to have the requested or otherwise collected information. This may be done by the enabler proxy (e.g., by consulting a database of information) or by accessing a separate authorization module. The information that an application may be authorized to obtain may vary with different subscriber devices. Users associated with subscriber devices may communicate authorization preferences to the enabler proxy. Authorization may also or additionally be managed by enabler(s) on the wireless network and users associated with subscriber devices may authorize the enabler(s) to provide information to the enabler proxy.  
         [0045]      FIG. 6  illustrates an exemplary method of transmitting messages using an enabler proxy. A request may be received  602  from an application to transmit a message (e.g., a notification) to a subscriber device communicating on a wireless network on which the enabler proxy is also communicating as a subscriber device. The enabler proxy may then use one or more subscribed services/capabilities of the wireless network to transmit  604  the message. By way of example, enabler proxy may transmit  604  the message to the designated subscriber device via text messaging (e.g., SMS), multi-media messaging (e.g., MMS), voice chat, or other appropriate messaging mechanism.  
         [0046]     In some embodiments, the message may be a message, such as an actionable notification, that may be replied to by the recipient subscriber device. Thus, in these embodiments, a reply message may be received  606  from the recipient subscriber device to be delivered to the application. The enabler proxy may then use a communication connection to the application to transmit  608  the reply message to the application (e.g., via messaging, email, network connection, modem connection). It should be appreciated that in alternate embodiments, subscriber devices may send messages to an application using enabler proxy without first receiving a message from the application.  
         [0047]      FIG. 7  illustrates an exemplary method of using an enabler proxy for voice call communications between an application and a subscriber device communicating on a wireless network. An enabler proxy may receive a request  702  from an application to initiate a voice call with a subscriber device communicating on a wireless network upon which the enabler proxy may also be communicating as a subscriber device. The enabler proxy may initiate  704  a voice call to the subscriber device and may then connect  706  the voice call initiated with the subscriber device to the application (e.g., conference call, voice over IP, voice chat). In an alternate embodiment, a subscriber device may use enabler proxy to initiate a call to a user of an application.  
         [0048]     In the foregoing description, for the purposes of illustration, methods were described in a particular order. It should be appreciated that in alternate embodiments, the methods may be performed in a different order than that described. Additionally, the methods may include fewer, additional, or different blocks than those described. Additional methods may also be performed by an enabler proxy to expose capabilities of a wireless network to applications. For instance, an application may use an enabler proxy download content to a subscriber device or to perform data synchronization.  
         [0049]     The methods may be performed by hardware components or may be embodied in sequences of machine-executable instructions, which may be used to cause a machine, such as a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the methods. These machine-executable instructions may be stored on one or more machine readable mediums, such as CD-ROMs or other type of optical disks, floppy diskettes, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory, or other types of machine-readable mediums suitable for storing electronic instructions. Alternatively, the methods may be performed by a combination of hardware and software.  
         [0050]     While illustrative and presently preferred embodiments of the invention have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed, and that the appended claims are intended to be construed to include such variations, except as limited by the prior art