Method, system and apparatus for provisioning a communication client

According to embodiments of the present invention, there is provided a method, system and apparatus for provisioning a communication client. The method comprises receiving via a communication network a request from the communication client. The method further comprises determining a positioning object associated with the communication client. The method further comprises, based on the positioning object, determining a subscription profile associated with the communication client. The method further comprises, based on the subscription profile, compiling a configuration file.

FIELD OF THE INVENTION

The present invention relates generally to communications and, in particular, to a method, system and apparatus for provisioning a communication client.

BACKGROUND OF THE INVENTION

With the advent of the Internet, society has witnessed the expansion of a global packet-switched data network into an ever-increasing number of homes and businesses. This has enabled an ever-increasing number of users to communicate with each other, primarily utilizing electronic communications, such as e-mail and instant messaging. Meanwhile, advances have been made in delivering voice communication over packet-switched data networks, driven primarily by the cost advantage of placing long-distance calls over the packet-switched data networks, but also by the ability to deliver advanced service features to users. This cost advantage can be enjoyed by both a service provider delivering the voice communication over the packet-switched data network service (in a form of lower operating cost), as well as the user who subscribes to the services of such a service provider (in a form of lower service subscription fees). Technology dealing with the delivery of real-time voice communication over the packet-switched data network is generally referred to as voice-over-packet, voice-over-IP or, simply, VoIP.

As is well appreciated in the art, the delivery technology for VoIP-based systems is fundamentally different from the delivery technology for the traditional PSTN-based systems. This is true not only for the underlining technology, but also for the user experience. For example, in the VOIP-based systems, a user has to “log into” a communication client (ex. a VoIP phone or a soft client executed on a computing apparatus) before being able to make or receive calls. Typically, the user has to input a user name and a password into the communication client. The communication client then establishes a connection with a soft switch and logs into the telephony service using the user name and the password.

Certain groups of users may find the logging in requirement confusing and difficult to implement. This is particularly true for those user segments who are accustomed to the user experience in the PSTN world, where a telephone can be simply plugged into a wall outlet at a customer premises and, provided there exists telephony service at the customer premises, the telephone will work (i.e. there will be a dial tone and the user can receive and initiate calls). The requirement to log in may prevent some of the users to choose a VoIP-based solution and, therefore, may hinder VoIP service providers from expanding their VoIP customer base to all customer segments. It would be beneficial to have a simpler way to allow a user to provision a VoIP communication client.

SUMMARY OF THE INVENTION

According to a first broad aspect of the present invention, there is provided a method for provisioning a communication client. The method comprises receiving via a communication network a request from the communication client. The method further comprises determining a positioning object associated with the communication client. The method further comprises, based on the positioning object, determining a subscription profile associated with the communication client. The method further comprises, based on the subscription profile, compiling a configuration file.

According to a second broad aspect of the present invention, there is provided an apparatus. The apparatus comprises means for receiving via a communication network a request from the communication client; means for determining a positioning object associated with the communication client; means for determining, based on the positioning object, a subscription profile associated with the communication client; and means for compiling, based on the subscription profile, a configuration file.

According to a third broad aspect of the present invention, there is provided a system. The system comprises a server operable to receive via a communication network a request from a communication client. The server is further operable to determine a positioning object associated with the communication client. The server is further operable, based on the positioning object, to determine a subscription profile associated with the communication client. The server is further operable, based on the subscription profile, to compile a configuration file.

According to another broad aspect of the present invention, there is provided a computer-readable medium comprising computer-readable program code which, when executed by a computing apparatus, causes the computing apparatus:to receive via a communication network a request from a communication client;to determine a positioning object associated with the communication client;based on the positioning object, to determine a subscription profile associated with the communication client;based on the subscription profile, to compile a configuration file.

These and other aspects and features of the present invention will now become apparent to those skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying drawings.

It is to be expressly understood that the description and drawings are only for the purpose of illustration of certain embodiments of the invention and are an aid for understanding. They are not intended to be a definition of the limits of the invention.

DETAILED DESCRIPTION OF THE EMBODIMENTS

FIG. 1Ashows various components of an infrastructure for provisioning a communication client in accordance with a non-limiting embodiment of the present invention. The infrastructure comprises an access device102which is connected to an access network node106via a physical connection link108. In a non-limiting example, the access device102can comprise a modem110connected to a router112over a home network114. The modem110can comprise any suitable broadband modem, such as, but not limited to, a cable modem, an xDSL modem, an Optical Network Terminal (ONT), a wireless access point (such, as for example, a WiFi access point, a WiMax indoor or outdoor access unit, etc.) and the like. The router112can be embodied in any suitable wired router, wireless router or a combined wired/wireless router. In some non-limiting embodiments, the home network114can comprise an Ethernet network. In other non-limiting embodiments, the home network114can comprise a wireless network (ex. an 802.11 based network, an 802.12 based network and the like). People skilled in the art will appreciate that the home network114may have other configurations.

The router112may in turn be connected over the home network114to a computing apparatus115. The computing apparatus may comprise any suitable general purpose computer, such as, a desktop, a laptop, etc. The home network114may be further coupled to a communication client116. The communication client116can comprise a VoIP phone, a Plain Old Telephone Service (POTS) phone equipped with an analog terminal adapter (ATA), a soft client executed on a computing apparatus, etc. The communication client116is just one non-limiting example of a communication client that can be installed at a customer premises100associated with a user101. It should be understood that the customer premises100may comprise a number of additional communication clients that may include, but are not limited to, other VoIP phones, a wireless VoIP phone (such as, for example, a WAP wireless phone), a Plain Old Telephone System (POTS) phone equipped with an Analog Terminal Adapter (ATA), other computing apparatuses executing soft clients, a set-top box, a gaming device, a security system and the like. The number of communication clients installed within the customer premises100is not limited other than by business considerations of a service provider.

In some non-limiting embodiments of the present invention, the functionality of the router112and the modem110can be embodied in a single device, which is sometimes referred to as a “home gateway”. In an alternative non-limiting embodiment of the present invention, the router112can be omitted from the infrastructure ofFIG. 1A. In yet further non-limiting embodiments of the present invention, some or all of the functionality of the modem110or the router112can be incorporated into the communication client116. Alternatively, in yet other non-limiting embodiments of the present invention, the functionality of the router112, the modem110and the communication client116can be incorporated into a single device.

In an example non-limiting embodiment, the physical connection link108can be a copper twisted pair, over which higher-layer protocols allow for the exchange of packets. In an alternative non-limiting embodiment, the physical connection link108may comprise an Ethernet link, a fiber optic link (e.g., Fiber-to-the-Home, Fiber-to-the-Curb, etc.), a wireless link (e.g., EV-DO, WiMax, WiFi, CDMA, TDMA, GSM, and the like), a cable data access link, etc., or a combination thereof.

In the specific non-limiting embodiment ofFIG. 1A, it shall be assumed that the infrastructure ofFIG. 1Ais based on an xDSL technology. Within this specific non-limiting embodiment of the present invention, the access network node106, which in a non-limiting embodiment can be a digital subscriber line access multiplexer (DSLAM), is connected to a network access server (NAS)126via an access data network124. In a non-limiting embodiment, the access network node106can comprise a Stinger® FS+ DSL Access Concentrator from Lucent Technologies, 600 Mountain Avenue, Murray Hill, N.J., USA. In these embodiments, the access network node106can be located in a central office (not depicted) of a service provider. Alternatively, the access network node106can be located at an outside location, in which case, the access network node106can be embodied in what is referred to in the industry as an OPI-DSLAM or an outside plant interface DSLAM. In this scenario, the DSLAM120can comprise a Stinger® Compact Remote from Lucent Technologies. Yet in other embodiments of the present invention, the access network node106can be distributed, with some components being situated in the central office and some components being situated at the outside location. Other alternatives will be described in greater detail herein below.

Within the specific non-limiting example under consideration here, where the access network node106comprises a DSLAM, the purpose of the access network node106is to multiplex several physical connection links (such as the physical connection link108) from several access devices (such as, for example, the access device102) for communication over the access data network124and vice versa.

The NAS126is sometimes also referred to by some in the industry as a broadband remote access server (BRAS), a remote access server (RAS) or a broadband access server (BAS). The NAS126provides access to a core packet-switched data network132, such as the Internet, over which data (including, but not limited to, data associated with a VoIP call) can be exchanged. In alternative embodiments of the invention, the core packet-switched data network132can be implemented in any suitable data network adapted for supporting VoIP calls, such as, but not limited to, a private data network, a public data network and the like. The type of the access data network124is immaterial for the purposes of the embodiments of the present invention. Generally speaking, the access data network124can support one or more logical links (not depicted) between the access network node106and the NAS126(such as asynchronous transfer mode (ATM) permanent virtual circuit (PVC), a virtual local area network (VLAN) and the like).

The NAS126can be generally responsible for regulating access to the core packet-switched data network132by various access devices coupled to the access data network124(such as, for example, the access device102, the computing apparatus115or the communication client116). Among other functions performed by the NAS126, the NAS126may be responsible for obtaining on behalf of or for assigning network addresses to the devices connected to the access data network124for the purposes of exchanging data via the core packet-switched data network132. For example, the NAS126may be responsible for receiving a network address request from the access device102and for assigning a network address, such as, for example, an IP address to the access device102. In the specific example being presented inFIG. 1Athe NAS126can assign a public IP address to the access device102. As one skilled in the art will appreciate, the public IP address assigned to the access device102is routable on the core packet-switched data network132or, in other words, is visible to other device(s) coupled to the core packet-switched data network132.

In some non-limiting embodiments of the present invention, the router112can implement a DHCP server functionality. In other words, the router112can be responsible for assigning an IP address to communication clients coupled thereto (such as, for example, the communication client116) or the computing apparatus115. Within these embodiments of the present invention, the IP address assigned to the communication client116by the router112can be a local IP address, i.e. the IP address routable only on the home network114. In these embodiments, the router112can also perform network address translation (NAT) functionality. Put another way, the IP address assigned by the router112to the devices connected thereto (ex. the communication client116, the computing apparatus115, etc.) can be a private IP address used for addressing devices connected to the home network114(such as, for example, the communication client116) and the router112can perform a network address functionality by translating one or more private IP addresses into a public IP address used by the router112for communication with entities outside of the home network114via the core packet-switched data network132and vice versa.

In an alternative non-limiting embodiments of the present invention, some or all of the communication clients coupled to the access device102(for example, some or all of the computing apparatus115, the communication client116, etc.) may be assigned a public IP address. How the computing apparatus115or the communication client116are assigned a respective public IP address can be implemented in substantially the same manner as described above in the context of the access device102being assigned a public IP address by the NAS126.

The process for authenticating a network address request and for assigning network addresses is known in the art and, as such, no detailed description will be presented. Suffice it to say that, in some embodiments of the present invention, the NAS126can authenticate the network address request received, for example, from the access device102. How the NAS126authenticates the received network address is not particularly limited. For example, the NAS126can authenticate the received network address request based on a dedicated logical connection via which the network address request is received. In the non-limiting example where the access device102broadcasts a network address request via a dedicated VLAN, the NAS126can authenticate the network address on the basis of a VLAN identifier associated with the dedicated VLAN via which such network address request has been received. Once the network address request is authenticated, the NAS126may assign a network address (such as, for example, an IP address and the like) to the access device102which has originated the network address request. Accordingly, the NAS126may maintain a mapping107, which maps, on the one hand, an indication of a given network address and, on the other hand, an indication of a logical link (ex. the VLAN identifier) to which the given network address is assigned to. The mapping107can be generated, for example, when the access device102is plugged in for the first time and can be updated every time when the access device102attempts to obtain a network address from the NAS126. Alternatively, the mapping107can be generated when the computing apparatus115or the communication client116are assigned with a respective public IP address. It should be noted that other alternatives of how the NAS126authenticates the network address request and assign a network address are possible and will become apparent to those of skill in the art.

The access network node106can comprise a number of ports, such as a port106A depicted inFIG. 1A. In some embodiments of the present invention, the port106A is dedicated to the physical connection link108. In these embodiments, each port of the access network node106(such as the port106A) can be associated with a dedicated logical link, for example the aforementioned PVC or VLAN, which in turn can be uniquely associated with the physical connection link108. The functionality of the access network node106is inter alia to allow data arriving from the NAS126along a given PVC or VLAN to be sent over corresponding physical communication links (such as, for example, the physical connection link108) via a corresponding one of its ports (ex. the port106A) and vice versa. To this end, the access network node106can implement a mapping109between, on the one hand, a given dedicated logical link (ex. the aforementioned VLAN identifier) and, on the other hand, a port of the access network node106associated with the given dedicated logical link (ex. the port106a).

Also provided inFIG. 1Ais a network element140, which in some embodiments of the present invention can be provided at an edge of the core packet-switched data network132. The network element140is referred to in the industry as a “packet switch” or a “soft switch” and comprises circuitry, software and/or control logic for providing various VoIP telephony service to communication clients (such as, for example, the communication client116). Examples of such VoIP telephony service include (i) connecting incoming calls to the communication clients; and (ii) handling outgoing calls originated from the communication clients. Other examples of VoIP telephony service that can be performed by the network element140can include but are not limited to call waiting, call forking, and so on.

In addition, the network element140can comprise suitable circuitry, software and/or control logic for exchanging calls with entities outside of the core packet-switched data network132. This is particularly convenient, when a call placed by the communication client116to a telephone number that is reachable only via a network different from the core packet-switched data network132, such as, for example, the Public Switched Telephone Network (PSTN) or a wireless communication network, both of which have been omitted fromFIG. 1Afor the sake of simplicity. A non-limiting example of the network element140can be embodied in a MCS 5200 Soft Switch manufactured by Nortel Networks Ltd. of 8200 Dixie Road, Brampton, Ontario L6T 5P6, Canada. Those of skill in the art will appreciate that the network element140may have other configurations.

Communicatively coupled to the core packet-switched data network132is a provisioning server145. The function of the provisioning server145will be discussed in greater detail herein below. For now, suffice it to say, that the provisioning server145is operable to register communication clients (such as the communication client116) as they are connected to the access data network124. More specifically, the provisioning server145can be operable to validate the communication client, compile configuration files, perform service activation and the like.

The provisioning server145can be reached via the core packet-switched data network132at a network address, such as, but not limited to, an IP address. In some non-limiting embodiments, the IP address assigned to the provisioning server145can be a static IP address. An indication of the static IP address can be hard coded into the communication client116. In an alternative non-limiting embodiment of the present invention, the provisioning server145can be associated with a Uniform Resource Locator (URL), such as, for example, “http://www.provisioning.serviceprovider.com”. In these non-limiting embodiments of the present invention, the communication client116may be pre-programmed with the URL of the provisioning server145. In other words, the communication client116is aware of a location at which the provisioning server145can be reached over the core packet-switched data network132. In an alternative non-limiting embodiment of the present invention, the NAS126may be aware of the location of the provisioning server145. Within these non-limiting embodiments of the present invention, the communication client116need not be aware of the location of the provisioning server145and the NAS126can be responsible for routing any requests received from the communication client116, for example, to the provisioning server145as will be described in greater detail herein below. One skilled in the art will appreciate that other alternatives of how the communication client116can reach the provisioning server145are possible.

The provisioning server145can implement one or more protocols for communicating with communication clients (such as, for example, the communication client116). In some non-limiting embodiments of the present invention, the provisioning server145can implement an XML over HTTPS protocol. In alternative non-limiting embodiments of the present invention, a Session Initiation Protocol or, simply, a SIP protocol can be used. In yet other embodiments, which are particularly applicable where the communication client116comprises a computing apparatus operable to execute a soft client application, Simple Object Access Protocol (SOAP) can be used. In yet further embodiments of the present invention, an Extensible Mark-up Language (XML) Configuration Access Protocol (XCAP), available from http://www.ietf.org/internet-drafts/draft-ietf-simple-xcap-11.txt, can be used. It should be noted that in alternative non-limiting embodiments, any other suitable protocol can be used.

In some embodiments of the present invention, the network element140and the provisioning server145can implement Simple Object Access Protocol (SOAP). As such, the network element140and the provisioning server145can exchange messages using SOAP via the core packet-switched data network132. Any other suitable communication protocol can be used for the purposes of communication between the network element140and the provisioning server145.

Communicatively coupled to the provisioning server145can be a subscription data repository150. In some embodiments of the present invention, the subscription data repository150can be directly coupled to the provisioning server145. In an alternative non-limiting embodiment of the present invention, the provisioning server145can access the subscription data repository150via the core packet-switched data network132or via another network. In some of these embodiments, the provisioning server145and the subscription data repository150can implement a security protocol for exchanging data therebetween. The subscription data repository150will now be described in greater detail with reference toFIG. 2, which depicts a specific non-limiting embodiment of such a subscription data repository150.

In some embodiments of the present invention, the subscription data repository150can be under the control of the same entity that controls the provisioning server145(for example, the same service provider, etc.). In an alternative non-limiting embodiment of the present invention, the subscription data repository150can be under the control of an entity different from the entity that controls the provisioning server145. Within these non-limiting embodiments of the present invention, the subscription data repository150can be coupled to a plurality of provisioning servers, including the provisioning server145.

The subscription data repository150can maintain a number of records associated with users that subscribe to VoIP telephony service delivered by a service provider who manages the subscription data repository150. For the purposes of the specific non-limiting example discussed herein below, it is assumed that a record202is associated with the communication client116. The record202can comprise several fields, such as a user identifier220, a positioning object222and a subscription profile224. The purpose of the user identifier220is to identify a particular user or a communication client associated with the particular user whom the record202is associated with. An example of the user identifier220can be embodied in a Session Initiation Protocol (SIP) Universal Resource Identifier (URI) address associated with the user101. For the purposes of the example to be presented herein below it is assumed that all communication clients (such as the communication client116) installed at the customer premises100are to be associated with the SIP URI associated with the user101. It should be expressly understood that in an alternative non-limiting embodiments of the present invention, the user identifier220can comprise other types of user account identifiers, a telephone number, an IP address, a proprietary identifier, etc.

In some embodiments of the present invention, the positioning object222can comprise an indication of a location object associated with the communication client116. In a first non-limiting embodiment of the present invention, the location object maintained within the positioning object222can comprise an indication of the physical location of the communication client116(ex. an indication of a street address, a set of geo-coordinates, a location code, etc.) associated with the customer premises100where the user101subscribes to the VoIP telephony service. In an alternative non-limiting embodiment of the present invention, the positioning object222may comprise any suitable location object that is indicative of the location of the customer premises100. Examples of the location objects include, but are not limited to, port identifier associated with the physical connection link108serving the customer premises100, a location code, etc.

In alternative non-limiting embodiments of the present invention, the positioning object222can comprise an indication of a device identifying object, such as, for example, a unique identifier of the communication client116. Some examples of the device identifying objects that can be stored within the positioning object222include, but are not limited to, a MAC address, an electronic serial number (ESN), a proprietary identifier, etc.

The indication of the service positioning object222is provided during a service subscription process to be described herein below. The subscription profile224can comprise one or more of the following: an indication of which telephony features the user101subscribes to as part of the VoIP telephony service at the customer premises100, an indication of a billing plan, credit card information that is to be used for billing purposes, etc. In some embodiments of the present invention, the subscription profile224may further comprise an indication of a location of the network element140that is responsible for delivering VoIP telephony service to the communication client116.

In some embodiments of the present invention, data maintained within the user identifier220can be used as a log in name for logging the communication client116into the VoIP telephony service provided by the network element140. In an alternative embodiment of the present invention, the subscription profile224may maintain a separate user identifier that can be used for the purposes of the logging in. In some of these non-limiting embodiments, the subscription profile224(or another field within the subscription data repository150) may comprise an indication of a password to be used for the purposes of the logging in process.

The positioning object222and the subscription profile224of a given record associated with a given user can be populated when the given user subscribes to the VoIP telephony service. How the user subscribes to the VoIP telephony service is not particularly limited and, some non-limiting examples include, but are not limited to, interacting over a telephone connection with a customer services representative associated with a service provider who is to deliver the VoIP telephony service, interacting with an interactive voice response system associated with a service provider who is to deliver the VoIP telephony service, visiting a store associated with a service provider who is to deliver the VoIP telephony service or an independent communication services retail store that carries equipment and subscription packages from more than one service provider, accessing a web site or a web portal associated with a service provider who is to deliver the VoIP telephony service, etc.

Naturally, the subscription data repository150can maintain a number of other records, collectively depicted at204. These records204can be associated with other subscribers to the VoIP telephony services provided by the aforementioned service provider.

In an alternative non-limiting embodiment of the present invention, the subscription data repository150can maintain a number of records associated with users that subscribe to access service delivered by a service provider who manages the subscription data repository150. For example, the subscription data repository150can maintain a user identifier220, a positioning object222and a subscription profile224associated with a subscription to the access service for the user101at the customer premises100. In an example non-limiting embodiment, the access service can be a service that allows the user101using, for example, the computing apparatus115to access the core packet-switched data network132. For example, the user101may employ the computing apparatus115to access a particular resource coupled to the core packet-switched data network132, to transmit an electronic message to a recipient coupled to the core packet-switched data network132, engage in an instant messaging session with a destination coupled to the core packet-switched network132, etc.

The infrastructure ofFIG. 1Afurther comprises an operation support system (OSS)122. The OSS122generally represents a collection of systems that performs management, inventory, engineering, planning and repair functions for the service provider. To this end, one of the functions performed by the OSS122is management of network elements, assets and equipment. Thus, the OSS122can maintain a mapping125between, on the one hand, the ports of various access multiplexers under control of the service provider and, on the other hand, location objects representative of the respective physical locations of the access devices connected to those ports. In an alternative non-limiting embodiment of the present invention, the mapping125may maintain a relationship between, on the one hand, the ports of various access multiplexers under control of the service provider and, on the other hand, location objects that can be used for determining the respective physical locations of the access devices connected to those ports (such as, for example, a location code, an arbitrary code, etc.). In yet further non-limiting embodiments of the present invention, the indication of the port identifier can be in itself a location object indicative of the identity and/or location of the access device102.

In the specific case under consideration here, the mapping125maintained by the OSS122relates port106A of the access network node106to a location object indicative of the physical location of the access device102(ex. the street address of the customer premises100). The mapping125can be generated by the OSS122when access service at the customer premises100is provisioned, for example, in the form of subscribing to an ISP service at the customer premises100. It should be noted that in an alternative non-limiting embodiment of the present invention, the OSS122may further maintain a copy of the aforementioned mapping109. In some embodiments of the present invention, the OSS122may maintain a copy of the mapping107.

In some embodiments of the present invention, the OSS122is communicatively coupled to the access data network124and, as such, can be accessible to the provisioning server145via the core packet-switched data network132and the access data network124. In an alternative non-limiting embodiment of the present invention, the OSS122can be coupled to the core packet-switched data network132. In an alternative non-limiting embodiment, the provisioning server145and the OSS122may have a dedicated point-to-point connection. Yet in alternative non-limiting embodiments of the present invention, the functionality of the OSS122and the provisioning server145can be integrated into a single apparatus. In further non-limiting embodiment of the present invention, the provisioning server145and the OSS122may implement a security protocol for exchanging secure data therebetween.

Of course, as will be apparent to those skilled in the art that numerous modifications and variations of the infrastructure ofFIG. 1Aare possible. For example, in an alternative non-limiting embodiment, the access network node106can be omitted. This is especially true in the case where the access device102implements a wireless access point (such, as for example, a WiFi access point, a WiMax indoor or outdoor access unit, etc.). In an example non-limiting embodiment of this scenario, the connection between the wireless access point and the NAS126can be provided by a dedicated point-to-point wireless link. Within these non-limiting embodiments of the present invention, the NAS126can maintain a mapping substantially similar to the mapping109, which can correlate an identifier of a given wireless access point and a location object associated therewith. In another non-limiting scenario where the modem110implements a cable modem, the access network node106can also be omitted. Yet in another non-limiting embodiment, the NAS126can be omitted from the infrastructure ofFIG. 1A.

It should be noted that in some non-limiting embodiments of the present invention, the functionality of the provisioning server145and the network element140can be integrated into a single device, as depicted inFIG. 1B. In a non-limiting embodiment depicted inFIG. 1B, the functionality of the provisioning server145and the network element140is embodied in a combined apparatus190. The combined apparatus190can access the subscription data repository150via the core packet-switched data network132. In an alternative non-limiting embodiment of the invention, the subscription data repository150can be connected directly to the combined apparatus190via a direct link (depicted as192). In another non-limiting embodiment of the present invention, the subscription data repository150can be integrated into the functionality of the combined apparatus190.

Given the components of the infrastructure ofFIG. 1Adescribed above, it is possible to deliver VoIP telephony service to the user101of the communication client116. The VoIP telephony service can be delivered by a service provider who provides the access service to the customer premises100. Alternatively, the VoIP telephony service can be delivered by an alternative service provider in which case the VoIP telephony service “runs over” the infrastructure ofFIG. 1A, for example. This arrangement for delivering the VoIP telephony service is generally referred to as “over-the-top VoIP”. As is known to those of skill in the art, before the communication client116can originate outgoing calls or receive incoming calls, the communication client116needs to “log into” the service with the network element140or, in other words, the communication client116needs to be provisioned with the network element140.

Given the infrastructure ofFIG. 1A, it is possible to perform a method for provisioning a communication client. With reference toFIG. 3a method for provisioning a communication client according to a non-limiting embodiment will now be described. The method ofFIG. 3will be illustrated with a signal flow ofFIG. 4, which illustrates a non-limiting embodiment of a flow of signals exchanged between various components ofFIG. 1Ain the context of executing the method ofFIG. 3. The method for provisioning a communication client will be illustrated using the following non-limiting scenario:The user101has already subscribed to an access service at the customer premises100and it has been fully provisioned (i.e. the aforementioned mappings107,109,125have been generated). The user101wishes to subscribe to the VoIP telephony service at the customer premises100, the VoIP telephony service to be delivered by the service provider who delivers the access service. The user101has visited a store associated with the service provider where the user101has subscribed to the VoIP telephony service to be delivered at the customer premises100and has purchased or rented the communication client116, which in this example is embodied in a VoIP phone. A clerk in the store has interacted with the provisioning server145(for example, via a secure web portal) to populate the aforementioned record202in the subscription data repository150). The user identifier220of the record202has been provisioned with a SIP URI associated with the user101, the positioning object222of the record202has been provisioned with an address of the customer premises100(such as, for example, a street address, etc.) and the subscription profile224of the record202has been provisioned with a password associated with the user101, as well as with an indication of telephony features that the user101has subscribed to (ex. call waiting, etc.). It shall be assumed that data maintained within the user identifier220can be used as a user identifier for the purposes of the logging in process. It should be expressly understood that the above-described scenario is used for illustration purposes only and that numerous alternatives are possible.
Step310: Provisioning Server145Receives a RequestThe method begins at step310at which the provisioning server145receives a request.In a non-limiting embodiment of the present invention, step310can be executed when the user101plugs the communication client116in. In an alternative non-limiting embodiment of the present invention, step310can be executed when the user101powers the communication client116. In yet further non-limiting embodiments of the present invention, step310can be executed at a pre-determined event, such as, for example, when the user101executes the aforementioned soft client on the communication client116.When the communication client116is plugged in for the first time (or is powered on for the first time, or upon occurrence of the pre-determined event), the communication client116can broadcast an IP address request. For example, the communication client116can generate and broadcast an Ethernet frame containing the IP address request via the home network114. Other ways to transmit the IP address request are, of course, possible. Recalling that in some non-limiting embodiments of the present invention, the router112can perform the DHCP server functionality, responsive to the receipt of the IP address request, the router112can assign a local IP address in a manner known to those of skill in the art.The communication client116then generates a request410. In some embodiments of the present invention, the request410is generated in accordance with XML over HTTPS protocol, however, as one skilled in the art will appreciate, other communication protocols can be used.Recalling that the communication client116can be aware of the location of the provisioning server145, the communication client116transmits the request410to the provisioning server145. As one skilled in the art will appreciate, in those embodiments of the present invention, where the communication client116is associated with a private IP address, the access device102can perform network address translation process known to those of skill in the art. Within these embodiments of the present invention, the request410comprises an indication of the network address associated with the access device102that has transmitted the request410on behalf of the communication client116.In an alternative non-limiting embodiment of the present invention, the communication client116can transmit the request410to the NAS126. Recalling that in some embodiments of the present invention the NAS126can be aware of the location of the provisioning server145, the NAS126can then transmit a copy of the request410or another message derived on the basis of the request410to the provisioning server145.In those embodiments of the present invention, where the NAS126is responsible for assigning a public IP address to the communication client116, the request for a public IP address and the request410can be embodied in a single message. In other words, the NAS126can transmit a request substantially similar to the request410to the provisioning server145responsive to receiving a public IP address request from the communication client116.The provisioning server145receives the request410and examines the content thereof. By examining the request410, the provisioning server145becomes aware of the network address of the access device102that has transmitted the request410on behalf of the communication client116. In an alternative non-limiting embodiment of the present invention, which is particularly applicable where the communication client116is assigned a public IP address, the provisioning server145can examine the received request410to determine the public IP address of the communication client116.
Step320: Provisioning Server145Determines a Positioning Object Associated with the Communication Client116At step320, the provisioning server145determines a positioning object associated with the communication client116that has originated the request410. In a first non-limiting embodiment of the present invention, the provisioning server145transmits a query420to the OSS122to trigger the OSS122to determine the positioning object associated with the communication client116that has originated the request410.It will be recalled that in some embodiments of the present invention, the OSS122maintains the mapping125and maintains copies of the mappings107,109. In alternative embodiments of the present invention, the OSS122can request the mapping107and the mapping109from the NAS126and the access network node106respectively.In some embodiments of the present invention, where the positioning object comprises a location object, the OSS122can determine the location object by using the following non-limiting approach. Based on the network address of the access device102that is responsible for transmitting the request410on behalf of the communication client116, the OSS122first correlates the mapping107(network address—logical link correlation) and the mapping109(port—logical link correlation) to determine the port of the access network node106associated with the access device102. Based on the port, the OSS122then locates the record124(physical location—port) that is associated with the port associated with the access device102(i.e. the port106a) and determines the location object associated with the access device102and, therefore, the communication client116.In some embodiments of the present invention, the OSS122can then generate a response430, the response430containing the indication of the location object associated with the communication client116. The OSS122then transmits the response430to the provisioning server145.In a second non-limiting embodiment of the present invention, the provisioning server145can perform the determination of the location object associated with the communication client116using the following non-limiting approach. In some non-limiting embodiments of the present invention, the provisioning server145can request a copy of the mapping109from the access network node106, then request a copy of the mapping107from the NAS126and a copy of the mapping125from the OSS122. The network element112can then perform the correlation between copies of the mappings107,109,125in substantially the same manner as has been described immediately above. In an alternative non-limiting embodiment, where the OSS122maintains a copy of the mapping107and the mapping109, the provisioning server145can request the mapping107,109,125from the OSS122.In an alternative non-limiting embodiment of the present invention, the mapping125can be omitted. For example, within some non-limiting embodiments of the present invention, the location object associated with the communication client116can be embodied in the associated port identifier of the access network node106(i.e. the port106A). Within these non-limiting embodiments of the present invention, the location object can be determined by correlating the mapping107and the mapping109(or copies thereof). This correlation can be performed by the OSS122or by the provisioning server145in substantially the same manner as has been described above.In yet further non-limiting embodiments of the present invention, which are particularly applicable where the positioning objects comprises a device identifying object (ex. a MAC address, an ESN or a public IP address of the communication client116), the provisioning server145can determine the device identifying object by analyzing the request received as part of step310. Within some of these non-limiting embodiments, the provisioning server145can examine the received request to determine one or more of a MAC address, a public IP address, an ESN or the like associated with the communication client116.
Step330: Based on the Positioning Object, the Provisioning Server145Compiles a Configuration FileThen, at step330, the provisioning server145compiles a configuration file440, based on the location determined at step320. More specifically, the provisioning server145accesses the subscription data repository150and performs a look up to determine whether there exists a record comprising a positioning object222that matches the positioning object determined at step320.Should the provisioning server145fail to locate a record comprising a positioning object222that matches the positioning object determined at step320, the provisioning server145can deduce that the user101at the customer premises100(where the communication client116that has originated the request410is located) is not a subscriber to the VoIP telephony service. The provisioning server145may then invite the user101to subscribe to the VoIP telephony service, for example, by sending an electronic message to the computing apparatus115or the communication client116, by establishing a voice call with the user101, by sending an SMS, by sending an e-mail, by sending a letter in the mail, etc. In an alternative non-limiting embodiment of the present invention, the provisioning server145could transmit a query to another provisioning server associated with another service provider (not depicted) to determine whether the other provisioning server comprises an indication of the location object associated with the communication client116.In the specific example being presented herein, the provisioning server145determines that record202comprises the positioning object222that matches the positioning object determined at step320. The provisioning server145then compiles the configuration file440. In some embodiments of the present invention, the purpose of the configuration file440is to maintain data that would allow the communication client116to be logged into VoIP telephony service provided by the network element140. To that end, the configuration file440may comprise data maintained within the user identifier220(or an indication of another user identifier maintained within, for example, the subscription profile224).The configuration file440may further comprise an indication of the password. Optionally, within some embodiments of the present invention, the configuration file440may further comprise an indication of telephony features maintained within the subscription profile224. In some embodiments of the present invention, the configuration file may further include an indication of a location of the network element140.
Step340: the Provisioning Server145Releases the Configuration File440Next, at step340, the provisioning server145releases the configuration file440. In a first non-limiting embodiment of the present invention, the provisioning server145releases the configuration file440to the communication client116. Within these embodiments of the present invention, the communication client116, upon receipt of the configuration file440, can generate a registration message450destined to the network element140, the registration message450based at least in part on the data received as part of the configuration file440. To that end, the registration message450can comprise the user identifier and the password to enable the communication client116to log into the VoIP telephony service provided by the network element140. In those embodiments of the present invention, where the configuration file440comprises an indication of the telephony features, the communication client116can use the indication of the telephony feature contained in the configuration file440to activate them with the network element140.It will be recalled that in some embodiments of the present invention, the configuration file440may comprise an indication of the location of the network element140. The communication client116can be operable to retrieve that indication of the location of the network element140from the configuration file440and to transmit the registration message450towards the network element140using the indication of the location thereof. In an alternative non-limiting embodiment of the present invention, the indication of the location of the network element140can be pre-programmed into the communication client116(or the access device102).According to a second non-limiting embodiment of the present invention, the provisioning server145releases the configuration file440towards the network element140to allow for a remote log in of the communication client116into the VoIP telephony service provided by the network element140. This action is depicted as a signal flow440A inFIG. 5. Within these non-limiting embodiments of the present invention, the provisioning server145may optionally release another configuration file, substantially similar to the configuration file440, towards the communication116. This configuration file can be used for re-logging in at a later time, to convey service settings, etc.

Recalling that in some embodiments of the present invention the subscription data repository150can maintain data associated with access service associated with the customer premises100, the following modifications to step320are envisioned. In some embodiments, as part of step320, the provisioning server145may determine that there does exist a record associated with the customer premises100maintained within the subscription data repository150, but that the record maintained therein is associated with the access service and there does not exist a record associated with VoIP telephony service subscribed to by the user101at the customer premises100. Within these embodiments of the present invention, the provisioning server145may then invite the user101to subscribe to the VoIP telephony service, for example, by sending an electronic message to the computing apparatus115or the communication client116, by establishing a voice call with the user101, by sending an SMS, by sending a letter in the mail, etc. In an alternative non-limiting embodiment of the present invention, the provisioning server145could transmit a query to another provisioning server associated with another service provider (not depicted) to determine whether the other provisioning server comprises a record associated with VoIP telephony service subscribed by the user101at the customer premises100.

With reference toFIG. 1Canother non-limiting embodiment of the infrastructure for provisioning a communication client will now be described. The infrastructure ofFIG. 1Cis substantially similar to the infrastructure ofFIG. 1Aand, as such, like elements are depicted with like numerals. The non-limiting embodiment of the infrastructure ofFIG. 1Cis based on a coaxial cable access technology. As such, an access network node106′ is provided. The access network node106′ may comprise a headend router, an unmanned distribution hub router, a cable modem data termination system, or a combination thereof.

Within these non-limiting embodiments of the present invention, the access network node106′ can be operable to serve a plurality of access devices (only one of which, an access device102′, is depicted) by providing access to a cable headend160via an access network124′. Within these non-limiting embodiments of the present invention, the access network124′ can be arranged in a “tree and branch” topography. Within the tree and branch topography, each of the access devices served by the access network node106, as well as communication clients coupled to the access devices (such as, for example, the computing apparatus115, the communication client116, etc.) can be associated with a unique identifier, such as, but not limited to, a MAC address, an ESN, a static IP address, a proprietary identifier, etc.

Within these non-limiting embodiments of the present invention, the OSS122can maintain a mapping109′, which can correlate a specific unique identifier associated with a specific access device to a location object (such as, for example, a service address) where the specific access device is located. The mapping109′ can be provisioned, for example, when access service is provisioned at the customer premises100. In an alternative non-limiting embodiment of the present invention, the mapping109′ can be maintained at another entity, such as the access network node106′, the cable headend160, the subscription data repository150, etc.

Within the infrastructure ofFIG. 1C, as part of executing step310, the provisioning server145becomes aware of the unique identifier (such as, for example, a MAC address, an ESN, a public IP address, a proprietary identifier, etc.) associated with the communication client116. The provisioning server145can then query the OSS122, based on the unique identifier, to examine the mapping109′ in order to determine the location object associated with the communication client116. In those embodiments of the present invention, where the mapping109′ is maintained by another entity, the provisioning server145can query the suitable entity to determine the location object.

In an alternative non-limiting embodiment of the present invention, which is particularly applicable where the positioning object222of the subscription data repository150stores an indication of a unique identifier associated with the communication client116(such as, for example, a MAC address, an ESN, a public IP address, a proprietary identifier, etc.), the provisioning server145can query the subscription data repository150, based on the unique identifier of the communication client116in order to determine a subscription profile. Within these non-limiting embodiments of the present invention, the mapping109′ can be omitted and the unique identifier of the communication client116can be thought of as a device identifying object.

It should be noted that a multitude of other alternatives for how the provisioning server145can determine the location object at step320are envisioned and within the scope of embodiments of the present invention. As a non-limiting illustration, the access device102(or the communication client116) can be equipped with a location object determination functional entity (not depicted). Some examples of the location object determination functional entity include, but are not limited to, a Global Positioning System (GPS) based entity, an RFID based entity, etc. Within these embodiments of the present invention, the provisioning server145can interrogate the location object determination functional entity to determine a location object associated with the access device102(or the communication client116).

Within another non-limiting embodiment of the present invention, the provisioning server145can determine a location object associated with the communication client116based on an auxiliary identifier associated with the communication client116. In some embodiments of the present invention, the communication client116can comprise a multi-networked communication client in the sense that it can be coupled to the core packet-switched data network132, as well as another network, such as, for example, the Public Switched Telephone Network (PSTN) or a wireless communication network. The communication client116can be associated with an auxiliary identifier (such as, for example a telephone number) that uniquely identifies the communication client116to the other network. The telephone number associated with the communication client116can also be inherently associated with the location of the communication client, either by virtue of a terminating location within the PSTN scenario or by virtue of a billing address within the wireless network scenario.

Within these non-limiting embodiments of the present invention, the provisioning server145can become aware of the location object associated with the communication client116in the following manner. The user101can establish a first communication session with the provisioning server145, for example, by establishing a telephony link with the provisioning server145via the PSTN. The provisioning server145becomes aware of the telephone number of the communication client116, for example, by examining Caller Line Identification or another information transmitted as part of the signalling information used for establishing the telephony link between the communication client116and the provisioning server145. Based on the telephone number of the communication client116, the provisioning server145can then determine the location object associated with the communication client116.

In an alternative embodiment of the present invention, the auxiliary identifier associated with the communication client116can be used as the location object associated with the communication client116. Within these non-limiting embodiments of the present invention, the positioning object222stored within the subscription data repository150can comprise an indication of the auxiliary identifier associated with the communication client116. The provisioning server145can determine a subscription profile associated with the communication client116by transmitting a query to the subscription data repository150, the query including the indication of the auxiliary identifier. Within some of these embodiments of the present invention, the mapping109′ can be omitted.

Naturally, other alternatives for the provisioning server145to become aware of the location object associated with the communication client116are possible and within the scope of the embodiments of the present invention.

Those skilled in the art will appreciate that certain functionality of the NAS126, the OSS122, the provisioning server145, subscription data repository150and/or other elements of the infrastructure described herein may be implemented as pre-programmed hardware or firmware elements (e.g., application specific integrated circuits (ASICs), electrically erasable programmable read-only memories (EEPROMs), etc.), or other related components. In other embodiments, certain portions of the NAS126, the OSS122, the provisioning server145, subscription data repository150and/or other elements may be implemented as an arithmetic and logic unit (ALU) having access to a code memory (not shown) which stores program instructions for the operation of the ALU. The program instructions could be stored on a medium which is fixed, tangible and readable directly by the NAS126, the OSS122, the provisioning server145, subscription data repository150and/or other elements, (e.g., removable diskette, CD-ROM, ROM, fixed disk, USB drive), or the program instructions could be stored remotely but transmittable to the NAS126, the OSS122, the provisioning server145, the subscription data repository150and/or other elements via a modem or other interface device.

Persons skilled in the art will appreciate that there are yet more alternative implementations and modifications possible for implementing the present invention, and that the above implementations and examples are only illustrations of one or more embodiments of the present invention. The scope of the invention, therefore, is only to be limited by the claims appended hereto.