Abstract:
In general, in one aspect, instructions are received from a user for management of a network device, the instructions are adjusted for compatibility with requirements of a network provider other than the user, and the adjusted instructions are implemented on the network device.

Description:
CLAIM OF PRIORITY 
     This application claims priority under 35 USC §119(e) to U.S. Patent Application Ser. No. 60/824,877, filed on Sep. 7, 2006, the entire contents of which are hereby incorporated by reference. 
    
    
     BACKGROUND 
     This description relates to provisioning private access points for wireless networking. 
     Cellular wireless communications systems are designed to serve many access terminals distributed in a large geographic area by dividing the area into cells, as shown in  FIG. 1 . At or near the center of each cell  102 ,  104 ,  106 , a radio network access point  108 ,  110 ,  112 , also referred to as a base transceiver station (BTS), is located to serve access terminals  114 ,  116  (e.g., cellular telephones, laptops, PDAs) located in the cell. Each cell is often further divided into sectors  102   a - c ,  104   a - c ,  106   a - c  by using multiple sectorized antennas. A BTS is identified by one or more of several properties, which may include the phase offset of its pilot signal (PN offset), a frequency, or an IP address. A sector may be identified by a SectorID. Together, a PN offset and SectorID may uniquely identify a sector. In each cell, that cell&#39;s radio network access point may serve one or more sectors and may communicate with multiple access terminals in its cell. 
     The 1xEV-DO protocol has been standardized by the Telecommunication Industry Association (TIA) as TIA/EIA/IS-856, “CDMA2000 High Rate Packet Data Air Interface Specification,” 3GPP2 C.S0024-0, Version 4.0, Oct. 25, 2002, which is incorporated herein by reference. Revision A to this specification has been published as TIA/EIA/IS-856A, “CDMA2000 High Rate Packet Data Air Interface Specification,” 3GPP2 C.S0024-A, Version 2.0, July 2005. Revision A is also incorporated herein by reference. Revision B to this specification has been published as TIA/EIA/IS-856-B, 3GPP2 C.S0024-B, version 1.0, May 2006, and is also incorporated herein by reference. Other wireless communication protocols may also be used. 
     SUMMARY 
     In general, in one aspect, instructions are received from a user for management of a network device, the instructions are adjusted for compatibility with requirements of a network provider other than the user, and the adjusted instructions are implemented on the network device. 
     Implementations may include one or more of the following features. 
     The network device is at least partially under the control of the user. The instructions are received from a portable electronic device. The portable electronic device is a mobile telephone. The portable electronic device is an access terminal connected to a radio access network. The portable electronic device is connected to the radio access network through the network device. Receiving the instructions includes receiving a text message from the user. The text message includes an SMS message. The text message system includes an instant message. Receiving the instructions also includes identifying device management instructions within the text message. Receiving the instructions also includes authenticating the user by processing caller ID information associated with the text message. Receiving the instructions includes authenticating the user as a user authorized to provide instructions. Receiving the instructions includes receiving a text message from the user and authenticating the user that sent the text message as a user authorized to provide instructions. Authenticating the user includes identifying caller ID information associated with the text message, transmitting the caller ID information to an authorization and accounting server, associating a user account with the caller ID information, and confirming that the user account is associated with the network device. 
     Receiving the instructions includes receiving a text message from the user, and identifying one or more of several network devices associated with the user. Identifying the one or more network devices includes locating within the text message an identification of a network device. identifying the one or more network devices includes locating within the text message an instruction to configure all networking devices associated with the user. Identifying the one or more network devices includes identifying a set of network devices associated with the user and having a particular geographic location. 
     Adjusting the device management instructions includes identifying within the instructions a list of access terminals, associating each access terminal on the list with a device identification, and generating an instruction that encodes the device identifications. Associating the access terminals with device identifications includes transmitting the list of access terminals to an authorization and accounting server and receiving from the authorization and accounting server a list of access terminal device identifications. The list of access terminals includes a telephone number. Adjusting the device management instructions includes converting the device management instructions into a format usable to set device configuration parameters. Adjusting the device management instructions includes identifying within the instructions an identification of an access terminal, determining a geographic location of the access terminal, determining whether the access terminal is near the network device, and if the access terminal is near the network device generating an instruction that instructs the network device to provide access to the access terminal. Adjusting the device management instructions includes identifying within the instructions an identification of an access terminal, determining whether a technology used by the access terminal is compatible with the network device, if the technology is not compatible, disregarding the device management instruction, and if the technology is compatible, generating an instruction that instructs the network device to provide access to the access terminal. Adjusting the device management instructions includes identifying within the instructions an identification of an access terminal, determining whether the access terminal is authorized to receive services offered by a network operator, if the access terminal is not authorized, disregarding the device management instruction, and if the technology is compatible, generating an instruction that instructs the network device to provide access to the access terminal. 
     Confirming that the user account is associated with the network device includes associating the user account with a specific network device, and implementing the adjusted instructions includes transmitting the instructions to the specific network device. Implementing the adjusted instructions includes transmitting an authentication signal to the network device, receiving an acknowledgment from the network device, transmitting control parameters to the network device, and instructing the network device to implement controls according to the parameters. Implementing the adjusted instructions includes transmitting a connection request to the network device, and transmitting a list of access terminals to the network device. Implementing the adjusted instructions also includes determining that an acknowledgment was not received from the network device, causing the network device to be reset, and upon determining that the device has been reset, transmitting configuration instructions to the network device. Causing the network device to be reset includes transmitting a failure indication to a text messaging server and causing the text messaging server to transmit an instruction to the user to reset the network device. Determining that the device has been reset includes receiving a transmission from the network device. The configuration instructions include the list of access terminals. The network device is an access point of a radio access network. The radio access network uses an EvDO protocol. The radio access network uses an UMTS protocol. 
     In general, in some aspects, a text message is received including an identification of an access terminal, the access terminal is associated with a device identification, an instruction is generated that encodes the device identifications, and the instruction is transmitted to cause the network device to provide access to the access terminal. 
     In general, in some aspects, an access terminal is configured to receive input from a user indicating an instruction for management of an access point of the radio access network, convert the instruction into a text message, and transmit the text message to a network configuration server. 
     These and other aspects and features and various combinations of them may be expressed as methods, apparatus, systems, means for performing functions, program products, and in other ways. 
     The described techniques have several advantages. Security is enhanced by reducing the number of network ports that must remain open to allow configuration of the system. Because the network operator retains control, it can ensure that only a provisioning configuration that is fully compatible with its network services is committed to the home networking device. Web-based and text-message-based interfaces are familiar to users and require little training for them to operate. 
     Other features and advantages will be apparent from the description a the claims. 
    
    
     
       DESCRIPTION OF DRAWINGS 
         FIG. 1  is a block diagram of a radio access network. 
         FIG. 2  is a block diagram of a home networking deployment. 
         FIG. 3  is a block diagram of a user-driven provisioning system. 
         FIG. 4  shows a sequence diagram of a text-messaging-based provisioning system. 
     
    
    
     DETAILED DESCRIPTION 
     Referring to  FIG. 1 , a radio access network (RAN)  100  uses an Ev-DO protocol to transmit data packets between an access terminal, e.g., access terminal  114  and  116 , and a radio network access point, e.g., access points  108 ,  110 ,  112 . The access points are connected over a backhaul connection  118  to radio network control/packet data serving nodes (RNC/PDSN)  120 , which may be one or more physical devices at different locations. 
     In some examples, as shown in  FIG. 2 , a radio network access point  202  may be deployed in a user&#39;s home  200  in a similar manner as a WiFi® access point. Such a radio network access point is referred to as a private access point. The private access point  202  may use an available high-speed internet connection, such as DSL or cable modem  204 , as the backhaul with the RNC/PDSN functionality implemented in the private access point  202 . Such a private access point may be installed anywhere that it is advantageous to do so, for example, in an office, a public space, or a restaurant. When this description refers to a private access point being in a “home” that encompasses any such location. A private access point is different from a picocell access point in that it may be intended to only provide access for the user that installs it in his home or those he authorizes, as opposed to a picocell which may serve a similar venue but provides access to any subscriber of the network. In some examples, a private access point may be integrated into a cable modem or other network hardware, such as a router or WiFi access point. 
     When an authorized access terminal  206  is present inside the home (or anywhere within range of the private access point  202 ), it uses the private access point  202  rather than a regular cellular radio network access point such as access point  108  to place or receive voice calls and data connections, even if it is otherwise within the cell  102  for that access point  108 . We sometimes refer to the standard access point  108  as a macro access point or macro BTS to distinguish it from a private access point, as it provides direct access to the wider RAN. A neighboring home  210  may have its own private access point  212  connected to its cable modem  214  for use by its owner&#39;s access terminal  216 . A private access point deployment is different than traditional radio network deployment because neighboring private access points are intended to operate independently, in part because real-time communications is difficult between neighboring private access points. The intended private access point deployment is also different than WiFi deployment in that it is intended to operate in licensed spectrum. Some details and examples are discussed in co-pending application Ser. No. 11/640,415, titled Controlling Reverse Link Interference in Private Access Points for Wireless Networking, filed Dec. 15, 2006, and Ser. No. 11/640,503, titled Configuring Preferred User Zone Lists for Private Access Points for Wireless Networking, filed Dec. 15, 2006, which are incorporated here by reference. 
     Access lists of authorized access terminals for each private access point can be configured on a central server and distributed to the private access points. Information to locate and access the private access points can be distributed to access terminals using an over-the-air parameter administration (OTAPA) system. Access terminals may also retrieve access information from the configuration server themselves. A mobile internet protocol (mobile IP) can be used along with voice call continuity (VCC) for handoffs between private access points. Although this description uses terminology from EV-DO standards, the same concepts are applicable to other communication methods, including GSM, UMTS, HSDPA, WiMax, WiBro, WiFi, and the like. For example, when we refer to a reverse power control (RPC) signal, this should be taken to refer to any signal used by a base station to control power levels of an access terminal. 
     User-Directed Service Provisioning 
     Provisioning refers to defining sets of access terminals that should use a particular access point and related configuration activities. Personal access points can benefit from a user-friendly provisioning system that can allow the end-user to direct which other users should be allowed to have access to a particular private access point. This is advantageous because it allows owners to control who accesses their hardware, but at the same time, the network operator is able to maintain some amount of control over how its network is accessed. In existing systems, web-based configuration interfaces are sometimes hosted by the device under configuration, for example, home routers manufactured by the LinkSys® division of Cisco Systems, Inc., of San Jose, Calif., allow end-users to restrict access to their home Ethernet or WiFi routers by providing a web-based user interface hosted on those same routers. An end user can connect his personal computer, equipped with web-browser software, to his home router and configure its access list and other settings through a locally-generated web page. Such home routers are not operator-managed; they are managed by the end-users themselves. Many home-networking access products operate in this fashion. In other systems, configuration is done using custom client applications, for example, the AirPort® wireless access point from Apple Computer, Inc., of Cupertino, Calif., is configured using software that is built and provided by Apple for the specific purpose of managing such access points. Such home networking devices are also managed by the end-users themselves, not the operator of the wide-area network to which they may be attached. Many other home-networking products operate in this fashion as well. 
     In the description below, a system enables end-users to provision a home networking device such as a personal access point in a user-friendly manner, yet allows the network operator to manage and retain final control over the device. Two primary methods are described: one through an operator-hosted web-based interface, the other using SMS text messaging terminated by the operator&#39;s text messaging application server. These methods may be implemented independently or in combination. 
     Such user-based provisioning has several advantages. Because the end-user does not configure the home networking device directly, one fewer networking port needs to be opened (i.e., a port for accessing the device directly through a web browser) and the home networking device will be more secure, more “hack-proof” for it. Web-browsing and text-messaging are common and familiar interfaces for many end users providing user friendliness and ease of use. 
     To provide access to a radio access network, a personal base station needs to be provisioned and configured in a way that is compatible with the services provided by the network operator. Using this system, because configuration is done through an operator-managed interface and the device is ultimately left operator-managed, the operator can ensure that only a provisioning configuration that is fully compatible with its network service is used on the personal base station. 
       FIG. 3  shows two user-driven service provisioning scenarios for setting provisioning configurations on a private access point  300 . In some examples, a user (not shown) uses a cell phone  302  to send a text message  304  to a text messaging application server  306  over a wireless network  320 . The text message  304  contains a command to change the provisioning configuration of the private access point  300 . The user may compose the command manually using his phone&#39;s usual text-messaging features, or he may use a list of pre-defined commands or a custom application to generate the message. The address to which the message is sent could be stored as a regular contact in the phone&#39;s address book feature. Any device capable of generating a text message could be used, including a cell phone, a PDA, a two-way pager, or a personal computer. The text messaging application server  306  can verify  312  the text message  304 &#39;s sender&#39;s identity using an authorization and accounting (AAA) server  308 . In some examples, the text messaging application server  308  and the AAA server  308  are both operated by the network operator (box  310 ), but either or both could be operated by third parties with communications  312  between them handled by any standard or customized communications method. 
     After authenticating the sender, the text messaging application server  308  forwards a message  316  including the provisioning configuration command to a provisioning configuration server  314 . The provisioning configuration server  314  can perform additional checks  318  and verification with the AAA server if necessary. It alters the provisioning configuration information, as appropriate for the network operator&#39;s needs, and transmits the provisioning configuration change  322  to the private access point  300  over a wide-area network  330   a , which may, for example, be the Internet or a private network. In some examples, the network operator may also provide broadband services to the user, and a single network connection may provide both the configuration change  322  and Internet access, with or without the change  322  actually being transmitted through the Internet component of the service. This process is further described below with reference to  FIG. 4 . 
     Note that for user-friendliness considerations, the user can deal with phone numbers rather than with hardware IDs. For example, the number to which the text message  304  is sent appears, to the user, to be a standard telephone number or a short telephone number as is commonly used for text-messaging-based applications. The user does not need to know or store in his phone a different type of identification for the text messaging application server  306 . Furthermore, the text messaging application server  306  can infer the sender&#39;s identity by the source of the text message  304  (e.g., using caller ID) and infer which home networking device  300  to associate with the sender. In some examples, this association is established when the user first registers or activates his private access point  300  with the network operator. In some examples, a user may have more than one private access point, and the text message or custom application used to create it may include an identification of which one the user wishes to modify. For example, the user may specify an ID of the targeted access point, or may specify “all” if he wants to change the configuration of all the access points he controls. In some examples, the system may automatically determine which access points to configure. If the user provides a phone number of an access terminal that should be granted access, the system may determine that access terminal&#39;s current geographic location and provision the access terminal on all the private access points owned by that user that are within 100 miles of the access terminal. 
     In some examples, the user uses a personal computer  324  running web-browser software to connect to a web server  326  (arc  328 ) through a wide-area network  330   b . The two wide-area networks  330   a  and  330   b  may both be the Internet, and may be the same or different routes through the Internet. Web traffic  328  from the computer  324  to the web server  326  may pass through the private access point  300  if the private access point  300  is also serving as an Internet gateway for the computer  324 . This web server  326  may be operated by the network operator or a third party. The web server  326  can ask for username &amp; password information to verify  332  the user&#39;s identity. Other authentication systems, such as certificates or public key encryption can also be used. Through the web server  326 , the user enters provisioning configuration information. The web server  326  then forwards a message  334  including the new provisioning configuration to the provisioning configuration server  314 . The provisioning configuration server  314  can perform additional checks and verification  336  with the AAA server  308 , if necessary. As in the first scenario, the provisioning configuration server  314  alters the provisioning configuration information, as appropriate for the network operator&#39;s needs, and transmits the provisioning configuration change  322  to the private access point  300  over a wide-area network  330   a.    
     In some examples, a centralized provisioning configuration server  314  is used. Unlike in some other systems, this server  314  does not gather provisioning information from the home networking equipment  300 , but rather, it gets provisioning information from the network operator or from the end user using the web-based or text-messaging-based methods described above and then downloads the configuration information to the home networking equipment. 
       FIG. 4  shows the sequences of messages passed in the first scenario discussed above, using text messages to configure the provisioning information. As shown, the user sends a text message  304  to the SMS application server  306 . The SMS server  306  communicates with the AAA server  308  to authenticate  312  the cell phone  302  used to send the message  304 . One part of the provisioning command in the text message  304  may be a list of telephone numbers that the users wishes to allow to access the network through his private access point  300 . The SMS server  306  sends a translation request  402  including this list of numbers to the AAA server  308 . The AAA server  308  translates the phone numbers into access terminal IDs and transmits these back to the SMS server  306  in a translation response  404 . The SMS server  306  then sends the provisioning command  316 , including the translated access terminal IDs, to the provisioning configuration server  314 . The provisioning configuration server  314  makes any changes that are required by the network operator and communicates the updated provisioning configuration  322  to the private access point  300 . This process includes sending a connection request  406  to the private access point  300 , sending the list  408  of authorized access terminal IDs to the private access point  300 , and receiving a confirmation. If the private access point does not respond after some time-out period, a failure notice  410  is sent to the SMS server, which in turn sends an instruction  412  to the user to reset the private access point. The user performs ( 414 ) the requested reset  416 . After the private access point  300  resets, it connects to the server  314  and receives its full configuration information  418 , including the list  408  of authorized access terminals that failed to update earlier. A similar process could be used for the web-based provisioning shown in  FIG. 3 . 
     Other types of configuration messages may be sent, and other types of modifications may be made to them. In some examples, a user may send a message to indicate that a particular access terminal should have priority over others in accessing the radio access network through his private access point. In some examples, a user may specify a phone number of an access terminal that is not compatible with his private access point for technical or business reasons. It may be an access terminal that uses GSM, while the user&#39;s access point is part of a CDMA network, or it may be an access terminal that subscribes to a service other than the one the user subscribes to, even if they use the same technology. In either case, the system will reject the request and not provision the specified access terminal on the user&#39;s private access point. This could be communicated to the user in the form of a text message. In some examples, the operator may be willing to provide access to an access terminal from a competing network operator, assuming it is compatible, but will provision it to take a lower priority than those of its own subscribers. Other commands may be less network-focused, such as configuring the private access point to initiate a wake-up call, or simply instructing it to reset itself. 
     Although the techniques described above employ the 1xEV-DO air interface standard, the techniques are also applicable to other CDMA and non-CDMA air interface technologies in which access points are installed in small-scale deployments or can otherwise be configured by their users. 
     The techniques described herein can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The techniques can be implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network. 
     Method steps of the techniques described herein can be performed by one or more programmable processors executing a computer program to perform functions of the invention by operating on input data and generating output. Method steps can also be performed by, and apparatus of the invention can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). Modules can refer to portions of the computer program and/or the processor/special circuitry that implements that functionality. 
     Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in special purpose logic circuitry. 
     To provide for interaction with a user, the techniques described herein can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer (e.g., interact with a user interface element, for example, by clicking a button on such a pointing device). Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. 
     The techniques described herein can be implemented in a distributed computing system that includes a back-end component, e.g., as a data server, and/or a middleware component, e.g., an application server, and/or a front-end component, e.g., a client computer having a graphical user interface and/or a Web browser through which a user can interact with an implementation of the invention, or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet, and include both wired and wireless networks. 
     The computing system can include clients and servers. A client and server are generally remote from each other and typically interact over a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. 
     Other embodiments are within the scope of the following claims. The techniques described herein can be performed in a different order and still achieve desirable results.