Abstract:
Systems and methods for business continuity planning in a hierarchical resale system. In an embodiment, a computerized method may include: receiving a reservation request to reserve a telecommunication product; reserving the telecommunication product in response to the request; receiving an activation request to activate the reserved telecommunication product; and activating the reserved telecommunication product in response to the activation request.

Description:
TECHNICAL FIELD 
       [0001]    This disclosure relates generally to sale of telecommunications products, and more specifically, to business continuity planning in a hierarchical resale system. 
       BACKGROUND 
       [0002]    The following discussion sets forth the inventors&#39; own knowledge of certain technologies and/or problems associated therewith. Accordingly, this discussion is not an admission of prior art, and it is not an admission of the knowledge available to a person of ordinary skill in the art. 
         [0003]    Telecommunications capabilities are often very important for operation of a commercial entity. For example, efficient coordination of internal operations may require telephone communication capabilities to allow managers of the company to communicate with each other and with employees. Additionally, customers may wish to contact the commercial entity for customer support, purchase orders, etc. Therefore, maintenance of telecommunication connections is important to most commercial entities. 
         [0004]    Some companies may establish redundant telephone systems to avoid telecommunication outages. For example, a company may set up a Private Branch Exchange (PBX) which is configured to provide a telephone extension and personal settings for employees of the company. To ensure connectivity in the event of a disaster or system outage, some companies may establish a redundant PBX that is configured to switch over in the event of a failure of the primary PBX. While this is a robust solution, there are several drawbacks including: equipment costs, system complexity, maintenance costs, etc. Ordinarily, a redundant PBX system is so cost prohibitive that it is generally only employed the largest companies or companies dedicated to providing telecommunication services to its customers. Nonetheless, there is a need for backup telecommunication systems and/or services so that commercial entities can maintain business continuity during an outage of a primary telecommunication system. 
       SUMMARY 
       [0005]    Embodiments of a business continuity planning in a hierarchical resale system are presented. In an embodiment, a computerized method may include: receiving a reservation request to reserve a telecommunication product; reserving the telecommunication product in response to the request; receiving an activation request to activate the reserved telecommunication product; and activating the reserved telecommunication product in response to the activation request. 
         [0006]    For example, the telecommunication product may be a Voice over Internet Protocol (VoIP) telephone service. The method may further include providing a VoIP utility to facilitate utilization of the VoIP telephone service. The VoIP utility may include a software application configured to operate on a mobile telecommunication device. 
         [0007]    The method may also include billing for the reserved telecommunication product at a first billing rate, and billing for the activated telecommunication product at a second billing rate. The method may further include providing a connection between a first user of the telecommunication product and a second user of the telecommunication product, where the first user and the second user are internal to an organization. Additionally or alternatively, the method may include interfacing an external telephone service provider network to provide external connectivity to a user of the telecommunication product. 
         [0008]    In another embodiment, a tangible computer-readable storage medium having program instructions stored thereon that, upon execution by a computer system, cause the computer system to: receive a reservation request to reserve a telecommunication product; reserve the telecommunication product in response to the request; receive an activation request to activate the reserved telecommunication product; and activate the reserved telecommunication product in response to the activation request. 
         [0009]    For example, the telecommunication product may include a VoIP telephone service. The program instructions, upon execution by the computer system, may also cause the computer system to provide a VoIP utility to facilitate utilization of the VoIP telephone service. The VoIP utility may include a software application configured to operate on a mobile telecommunication device. 
         [0010]    The program instructions, upon execution by the computer system, may cause the computer system to bill for the reserved telecommunication product at a first billing rate, and to bill for the activated telecommunication product at a second billing rate. The program instructions, upon execution by the computer system, may also cause the computer system to provide a connection between a first user of the telecommunication product and a second user of the telecommunication product, where the first user and the second user are internal to an organization. The program instructions, upon execution by the computer system, further cause the computer system to interface an external telephone service provider network to provide external connectivity to a user of the telecommunication product. 
         [0011]    In yet another embodiment, a system may include a server coupled to a remote user interface device, the server configured to host computer readable instructions for implementing a business continuity planning method, the server configured to: receive a reservation request to reserve a telecommunication product; reserve the telecommunication product in response to the request; receive an activation request to activate the reserved telecommunication product; and activate the reserved telecommunication product in response to the activation request. 
         [0012]    The telecommunication product may include a VoIP telephone service. The server may be further configured to provide a VoIP utility to facilitate utilization of the VoIP telephone service. The VoIP utility may include a software application configured to operate on a mobile telecommunication device. The server may be further configured to bill for the reserved telecommunication product at a first billing rate, and to bill for the activated telecommunication product at a second billing rate. 
         [0013]    The server may be configured to provide a connection between a first user of the telecommunication product and a second user of the telecommunication product, where the first user and the second user are internal to an organization. The server may also be configured to interface an external telephone service provider network to provide external connectivity to a user of the telecommunication product. 
         [0014]    In still another embodiment, a system may include a server configured to host computer readable instructions for implementing a business continuity planning method; and a user interface device in communication with the server configured to: transmit a reservation request to the server for reserving a telecommunication product, wherein the telecommunication product is reserved by the server in response to the request; transmit an activation request to activate the reserved telecommunication product; and access an activated telecommunication product in response to the reserved telecommunication product being activated. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0015]    Reference will now be made to the accompanying drawings, wherein: 
           [0016]      FIG. 1  is a block diagram illustrating one embodiment of a system for business continuity planning. 
           [0017]      FIG. 2  is a block diagram illustrating one embodiment of a system for business continuity planning. 
           [0018]      FIG. 3  is a block diagram illustrating another embodiment of a system for business continuity planning. 
           [0019]      FIG. 4  is a block diagram illustrating another embodiment of a system for business continuity planning. 
           [0020]      FIG. 5  is a block diagram illustrating another embodiment of a computer system for business continuity planning. 
           [0021]      FIG. 6  is a block diagram illustrating one embodiment of an apparatus for business continuity planning. 
           [0022]      FIG. 7  is a flowchart diagram illustrating one embodiment of a method for business continuity planning. 
           [0023]      FIG. 8  is a flowchart diagram illustrating another embodiment of a method for business continuity planning. 
       
    
    
     DETAILED DESCRIPTION 
       [0024]    Embodiments disclosed herein are directed generally to business continuity planning. In an embodiment, Voice over Internet Protocol (VoIP) telecommunication services may be reserved by a customer of a telecommunication service provider or reseller of telecommunication services. User configuration settings, including extension numbers, voicemail preferences, Personal Identification Numbers (PINs), etc. may be collected. In a further embodiment, the user configuration settings may be pre-loaded by the VoIP service provider. A customer may reserve a VoIP line for each of its employees, or for a subset of critical contacts. In an embodiment, the reserved VoIP connections may not be active until a request for provisioning is received from the customer. 
         [0025]    In a further embodiment, users may set up a VoIP client, such as a hardware appliance or a software application, configured to interface with the VoIP network. In response to a communications outage, the customer may request provisioning of the VoIP telecommunication services. The VoIP service provider may then activate the VoIP telecommunication services with the predetermined configuration settings for the customer. Accordingly, internal communications may be quickly established using the VoIP services. The VoIP provider may additionally interface with the customer&#39;s primary telecommunication carrier to redirect external communications to the VoIP service provider. 
         [0026]    Beneficially, such embodiments may provide backup telecommunications services for internal and external communications, without requiring the cost expenditure required to set up a redundant PBX system. Additionally, the costs may be further reduced, because the VoIP services may be reserved rather than active until they are needed by the customer. 
         [0027]    The present embodiments are described in the context of a hierarchical resale system and an associated user portal. Although the present embodiments are particularly useful with the described user portal, one of ordinary skill will recognize that the features may be implemented with other system configurations. 
         [0028]    As used herein, the term “product” means services (e.g., VoiP line, voicemail, mobile service, etc.), goods (e.g., physical devices such as routers, switches, gateways, etc), and associated add-on features or services (e.g., warranties, replacement plans, insurance, support contracts, etc.). In an embodiment, a product may be mapped to provisionable services across one or more back end systems, or to physical services/warranties, etc., which exist outside the scope of the portal&#39;s ability to enact. 
         [0029]    The customer may directly use the services/products, or may sell the services to lower level customers. At each level of the hierarchy, the resellers may markup the cost of the services provided to its customers to derive an incremental profit on the sale. A reseller may create their own products based on those they can buy from the level above or based on other services offered by the reseller. There may be a one-to-one relationship between products at the reseller level and the item from which it is derived provided by the level above, in some embodiments. Higher ration bundling is also possible as well as bundling IP and non-IP services at the same level. In other embodiments, the resellers may bundle the communication services in custom-defined service bundles for resale. In still a further embodiment, the resellers may bundle their own services along with the communication services. For example, the resellers may provide support services in addition to the communication services. Of course, one of ordinary skill will recognize that the present embodiments are not necessarily limited to provision of communication services, but may be extended to other forms of communication services, including standard telephone services, mobile communication services, and the like. 
         [0030]    In order to facilitate a hierarchical resale model, the present embodiments provide systems, methods, and computer operations for implementing the hierarchical resale model. In a particular embodiment, a portal application is hosted by the communication provider and made available to service resale partners to facilitate implementation of the hierarchical model. In a further embodiment, the portal application may also be made available to lower level customers and/or end users. The present embodiments provide methods for rebranding, sometimes referred to as “white labeling” the portal to give the reseller a customized or rebranded virtual store front for resale of the communication services to lower-level customers. By default, a “child” level in the hierarchy may inherit the branding of the “parent” level in the hierarchy. In some embodiments, resellers and, if permitted by the reseller, customers can choose to override this branding of their instance of the portal. Additionally, the portal and associated background functions may automate certain functions associated with purchasing, provisioning, billing, communicating action acknowledgments, etc. 
         [0031]    Beneficially, such an embodiment may facilitate implementation of a hierarchical business model for sale and resale of telecommunication products. Each reseller in the hierarchy may be provided with a customizable and individualized storefront, which can be branded for use with its employees and customers. Many of the functions associated with ordering and/or activation of the telecommunication products may be automated, further streamlining the business model. This streamline business model may reduce overhead and advertising costs to the communication provider. Additionally, business processes associated with purchasing, provisioning, billing and the like may be automated for the reseller, which may reduce overhead costs and improved profit margins accordingly. 
         [0032]    The term “telecommunications,” as used herein, is intended to encompass voice communications or telephony, as well as other forms of communications (e.g., video communications, videoconferencing, instant messaging or IM, Short Messaging Service or SMS, emails, etc.) that may take place electronically, for example, over wireless networks, circuit-switched networks, packet-switched networks, Application Program Interfaces (APIs) or any combination thereof. 
         [0033]    The term “enterprise,” as used herein, means a company or organization, including, but not limited to, global corporations, small to medium sized businesses (SBMs), universities, non-profit organizations, etc. 
         [0034]      FIG. 1  is a block diagram illustrating one embodiment of a system  100  for hierarchical resale of telecommunication products. The embodiment of  FIG. 1  illustrates an example in which a provider provides access to telecommunication resources to an enterprise customer. The telecommunication products may be provided to the enterprise customer directly in one embodiment. Alternatively, the telecommunication products may be provided by a reseller of the telecommunication products. 
         [0035]    In an embodiment, the system includes an IP network  104  configured to provide telecommunication products. Telecommunication products may include data communications, Voice over IP (VoIP) telephone services, videophone services, instant messaging, or the like. In an embodiment, the system includes a server  102  and one or more clients  106   a, b  configured to communicate with the server  102  via the IP network  104 , or an alternative network. As described below with reference to  FIGS. 4 and 6 , the server  102  may host a portal application for facilitating management of sale and provisioning of the telecommunication products. 
         [0036]    In an embodiment, client  106   a  may load a version of the portal application hosted by server  102 . For example, the client  106   a  may download a web-based portal application from the server  102 . Client  106   a  may be operated by a telecommunication service reseller. Client  106   b  may be operated by the enterprise customer. In one embodiment, the version of the portal application viewed by the enterprise customer on client  106   b  may be a rebranded version of the original application hosted on server  102 . For example, the reseller may change the colors, logos, and other information on the portal application using client  106   a , and the rebranded application may be displayed to the enterprise customer on client  106   b.    
         [0037]    In an embodiment, one or more routers  108  may couple the enterprise local network to the IP network  104 . Additionally, the router  108  may couple the client  106   b  to the IP network  104 , and facilitate communication between the client  106   b  and the server  102 . Additionally, a VoIP gateway  110  may be coupled to the router  108 . The VoIP gateway  110  may be configured to provide telephone access to the IP network  104  via the router  108 . In a further embodiment, a network traffic switching device  112  may be coupled to the VoIP gateway  110 , and configured to provide access between the VoIP gateway  110  and multiple user interface devices. 
         [0038]    Examples of user interface devices include a computer workstation  120  configured with a soft phone application, a tablet device  122  configured with telephone capabilities, a smartphone  124  configured to communicate via IP network  104  according to a VoIP protocol, and/or an telephone  126 . 
         [0039]    In an embodiment, the enterprise local network may include a Private Branch Exchange (PBX)  114 . One or more telephones  128  may be coupled to the PBX  114 . The PBX  114  may be connected to the VoIP gateway  110 , either directly or through switch  112 . In addition, the PBX may be coupled to a Public Switched Telephone Network (PSTN)  118  for providing PSTN telephone services. In an embodiment, devices on the IP network  104  may also communicate via PSTN  118  by connecting through Session Initiation Protocol (SIP) gateway  116 , or the like. 
         [0040]      FIG. 2  illustrates an embodiment of a system  200 , in which functions of the portal application are accessible via the portal Application Program Interface (API) server  202 . The portal API server  202  may provide access to one or more APIs for use of portal application functionality within a reseller&#39;s native software. For example, API interfaces may be provided to a portal reference client  204 , a third party portal client  206 , a third party machine, etc. Additionally, API interfaces or custom integration may be included with locally hosted applications or services  210 , remote hosted applications or services  212 , or third party hosted applications or services  214 . In an embodiment, the API may be rendered as a web page, complete with HTML, CSS, images and/or javascript available via any browser. In a further embodiment, client-specific functions such as customized color schemes and logos, may be made available via API. 
         [0041]      FIG. 3  is a block diagram illustrating another embodiment of a system  300  for hierarchical resale of telecommunication products. In an embodiment, the system  300  includes a carrier network  302 . The communication providers may provide access to the carrier network and other associated services to communication services customers. In an embodiment, a top level communication provider  304  may be the manage provisioning of access to the carrier network  302 . In one embodiment, the top level communication provider  304  may additionally manage and maintain servers  102  which may be used to host the portal application and facilitate provisioning of access between the communication services customer  310   b  and the carrier network  302 . In an embodiment, carrier network  302  may be IP network  104 . One of ordinary skill will recognize, however, that carrier network  302  may include any one of a variety of communication network types, such as a mobile communication network, and is not limited to the embodiments discussed with relation to  FIG. 1 . 
         [0042]    According to the hierarchical structure, the top level communication provider  304  may allow one or more partners or resellers to resell the communication services. For example, the top level communication provider  304  may provide communication services to bottom level communication provider  308   a , intermediate level communication provider  306   a , and intermediate level communication provider  306   c . In further embodiments, the top level communication provider  304  may also provide access directly to a communication services customer. 
         [0043]    Alternatively, bottom level communication provider  308   a  may provide access to communication services customer  310   a . Intermediate level communication provider  306   c  may provide communication services to communication services customer  310   d  via bottom level communication provider  308   c . Similarly, Intermediate level communication provider  306   a  may resell services to intermediate level communication provider  306   b , who may further resell to bottom level communication provider  308   b . Bottom level communication provider  308   b  may additionally resell services to both communication services customers  310   b - c . One of ordinary skill will recognize a variety of hierarchical structures, which may be driven by partner relationships to the top level communication provider  304  and/or customer relationships. 
         [0044]    In an example, the top level provider  304  may be a provider of VoIP telephone equipment, software, and services. Bottom level provider  308   a  may be a reseller of VoIP gateway equipment, and customer  310   a  may be a company that purchases the VoIP gateway for an IP telephone network. Intermediate level provider  306   a  may be a reseller of VoIP services. Intermediate provider  306   a  may resell the services to a second intermediate provider  306   b , who may further sell the services to a bottom level provider  306   b . The bottom level provider may sell the services to either a residential customer  310   b , or to an enterprise customer  310   c . Intermediate provider  306   d  may resell VoIP software, such as softphones to bottom level provider  308   d . Bottom level provider  308   d  may sell, or otherwise provide the softphone software to its customers  310   d . For example, bottom level provider  308   d  may be a university, and may distribute the softphone application to its students as part of a campus communication system. 
         [0045]      FIG. 4  is a block diagram illustrating another embodiment of a system  400  for hierarchical resale of telecommunication products. In an embodiment, the server  102  may be in communication with a tangible, non-transitory computer-readable medium  402 . For example, the computer-readable medium  402  may be a hard disk or memory device that is internal to the server  102 . Alternatively, the computer-readable medium  402  may be a hard disk or memory device that is external to the server  102 , but with which the server  102  is configured to communicate. In another embodiment, computer-readable medium  402  may be a removable medium such as an optical storage disk, a removable flash memory device, etc. 
         [0046]    In an embodiment, the computer-readable medium  402  may include software or computer code which, when loaded in to the server  102 , cause components of the server  102 , including the server&#39;s processor to operate as special purpose devices according to the instructions provided. In an embodiment, the instructions may include instructions for causing the server to host, manage, or operate a portal application  404  for sale and resale of communication services. Additionally, the computer-readable medium  402  may include a services provisioning table  406  comprising information regarding the services on carrier network  302  that have been provisioned for communication services customers  310   a - d , for example. 
         [0047]    In an embodiment, the server  102  may be managed or operated by top level communication provider  304 . Additionally, client  106   a  may be operated by bottom level communication provider  308   a . In such an embodiment, client  106   b  may be operated by communication services customer  310   a . Alternatively, client  106   a  may be operated by an intermediate communication provider  2 - 6   a - c , and client  106   b  may be operated by a lower level communication provider  308   b - c , or by a communication services customer  310   b - d.    
         [0048]    Each client  106   a - b  may additionally load a portal application  408 . For example, in one embodiment, the portal application  408  is a web application downloaded from server  102 . Portal application  408  may comprise all or a portion of portal application instructions  404 . Additionally, each client  106   a - b  may generate one or more services provisioning orders  410  for requesting access to services associated with carrier network  302 . 
         [0049]    In one example, server  102  may be operated by top level communication provider  304 , and may host portal application instructions  404  as well as maintain services provisioning table  406 . Bottom level communication provider  308   a  may contract with top level communication provider  304  to resell communication services under its own brand. Bottom level communication provider  308   a  may use client  106   a  to access portal application  408  which is configured to communicate with server  102 . Bottom level communication provider  106   a  may sell communication services to communication services customer  310   a . Communication services customer  310   a  may access portal application  408  using client  106   b . Communication services customer  310   a  may use portal application  408  to submit a services provisioning order  410  to bottom level communication provider  308   a . In an embodiment, bottom level communication provider  308   a  may forward the services provisioning order  410  to server  102  via client  106   a . Upon receipt, server may updated services provisioning table  406  to reflect the services provisioning order  410 . In an alternative embodiment, the client  106   b  may communicate the services provisioning orders  410  directly to server  102 , and server  102  may communicate information related to the services provisioning orders  410  to the bottom level provider  308   a  at client  106   a.    
         [0050]      FIG. 5  is a block diagram illustrating another embodiment of a computer system  500  for hierarchical resale of telecommunication products. In one embodiment, server  102  may be implemented on a computer system similar to the computer system  500  described in  FIG. 5 . Similarly, client  106   a  may be implemented on a computer system similar to the computer system  500  described in  FIG. 5 . Client  106   b  may also be implemented on a computer system similar to the computer system  500 . In various embodiments, computer system  500  may be a server, a mainframe computer system, a workstation, a network computer, a desktop computer, a laptop, or the like. 
         [0051]    As illustrated, computer system  500  includes one or more processors  502 A-N coupled to a system memory  504  via bus  506 . Computer system  500  further includes network interface  508  coupled to bus  506 , and input/output (I/O) controller(s)  510 , coupled to devices such as cursor control device  512 , keyboard  514 , and display(s)  516 . In some embodiments, a given entity (e.g., server  102 ) may be implemented using a single instance of computer system  500 , while in other embodiments multiple such systems, or multiple nodes making up computer system  500 , may be configured to host different portions or instances of embodiments (e.g., clients  106   a, b ). 
         [0052]    In various embodiments, computer system  500  may be a single-processor system including one processor  502 A, or a multi-processor system including two or more processors  502 A-N (e.g., two, four, eight, or another suitable number). Processor(s)  502 A-N may be any processor capable of executing program instructions. For example, in various embodiments, processor(s)  502 A-N may be general-purpose or embedded processors implementing any of a variety of instruction set architectures (ISAs), such as the x86, POWERPC®, ARMO, SPARC®, or MIPS® ISAs, or any other suitable ISA. In multi-processor systems, each of processor(s)  502 A-N may commonly, but not necessarily, implement the same ISA. Also, in some embodiments, at least one processor(s)  502 A-N may be a graphics processing unit (GPU) or other dedicated graphics-rendering device. 
         [0053]    System memory  504  may be configured to store program instructions and/or data accessible by processor(s)  502 A-N. For example, memory  504  may be used to store software program and/or database shown in  FIGS. 6-8 . In various embodiments, system memory  504  may be implemented using any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), nonvolatile/Flash-type memory, or any other type of memory. As illustrated, program instructions and data implementing certain operations, such as, for example, those described above, may be stored within system memory  504  as program instructions  518  and data storage  520 , respectively. In other embodiments, program instructions and/or data may be received, sent or stored upon different types of computer-accessible media or on similar media separate from system memory  504  or computer system  500 . Generally speaking, a computer-accessible medium may include any tangible, non-transitory storage media or memory media such as electronic, magnetic, or optical media—e.g., disk or CD/DVD-ROM coupled to computer system  500  via bus  506 , or non-volatile memory storage (e.g., “flash” memory) 
         [0054]    The terms “tangible” and “non-transitory,” as used herein, are intended to describe a computer-readable storage medium (or “memory”) excluding propagating electromagnetic signals, but are not intended to otherwise limit the type of physical computer-readable storage device that is encompassed by the phrase computer-readable medium or memory. For instance, the terms “non-transitory computer readable medium” or “tangible memory” are intended to encompass types of storage devices that do not necessarily store information permanently, including for example, random access memory (RAM). Program instructions and data stored on a tangible computer-accessible storage medium in non-transitory form may further be transmitted by transmission media or signals such as electrical, electromagnetic, or digital signals, which may be conveyed via a communication medium such as a network and/or a wireless link. 
         [0055]    In an embodiment, bus  506  may be configured to coordinate I/O traffic between processor  502 , system memory  504 , and any peripheral devices including network interface  508  or other peripheral interfaces, connected via I/O controller(s)  510 . In some embodiments, bus  506  may perform any necessary protocol, timing or other data transformations to convert data signals from one component (e.g., system memory  504 ) into a format suitable for use by another component (e.g., processor(s)  502 A-N). In some embodiments, bus  506  may include support for devices attached through various types of peripheral buses, such as a variant of the Peripheral Component Interconnect (PCI) bus standard or the Universal Serial Bus (USB) standard, for example. In some embodiments, the operations of bus  506  may be split into two or more separate components, such as a north bridge and a south bridge, for example. In addition, in some embodiments some or all of the operations of bus  506 , such as an interface to system memory  504 , may be incorporated directly into processor(s)  502 A-N. 
         [0056]    Network interface  508  may be configured to allow data to be exchanged between computer system  500  and other devices, such as other computer systems attached to IP network  104 , for example. In various embodiments, network interface  508  may support communication via wired or wireless general data networks, such as any suitable type of Ethernet network, for example; via telecommunications/telephony networks such as analog voice networks or digital fiber communications networks; via storage area networks such as Fiber Channel SANs, or via any other suitable type of network and/or protocol. 
         [0057]    I/O controller(s)  510  may, in some embodiments, enable connection to one or more display terminals, keyboards, keypads, touch views, scanning devices, voice or optical recognition devices, or any other devices suitable for entering or retrieving data by one or more computer system  500 . Multiple input/output devices may be present in computer system  500  or may be distributed on various nodes of computer system  500 . In some embodiments, similar I/O devices may be separate from computer system  500  and may interact with computer system  500  through a wired or wireless connection, such as over network interface  508 . 
         [0058]    As shown in  FIG. 5 , memory  504  may include program instructions  518 , configured to implement certain embodiments described herein, and data storage  520 , comprising various data accessible by program instructions  518 . In an embodiment, program instructions  518  may include software elements of embodiments illustrated in  FIGS. 6-8 . For example, program instructions  518  may be implemented in various embodiments using any desired programming language, scripting language, or combination of programming languages and/or scripting languages. Data storage  520  may include data that may be used in these embodiments such as, for example, services provisioning table  406 . In other embodiments, other or different software elements and data may be included. 
         [0059]    A person of ordinary skill in the art will appreciate that computer system  500  is merely illustrative and is not intended to limit the scope of the disclosure described herein. In particular, the computer system and devices may include any combination of hardware or software that can perform the indicated operations. In addition, the operations performed by the illustrated components may, in some embodiments, be performed by fewer components or distributed across additional components. Similarly, in other embodiments, the operations of some of the illustrated components may not be performed and/or other additional operations may be available. Accordingly, systems and methods described herein may be implemented or executed with other computer system configurations. 
         [0060]    Embodiments of server  102  and clients  106   a, b  described in  FIGS. 1 and 4  may be implemented in a computer system that is similar to computer system  500 . In one embodiment, the elements described in  FIG. 6  may be implemented in discrete hardware modules. Alternatively, the elements may be implemented in software-defined modules which are executable by one or more of processors  502 A-N, for example. 
         [0061]    A person of ordinary skill in the art will appreciate that computer system  500  is merely illustrative and is not intended to limit the scope of the disclosure described herein. In particular, the computer system and devices may include any combination of hardware or software that can perform the indicated operations. In addition, the operations performed by the illustrated components may, in some embodiments, be performed by fewer components or distributed across additional components. Similarly, in other embodiments, the operations of some of the illustrated components may not be provided and/or other additional operations may be available. Accordingly, systems and methods described herein may be implemented or executed with other computer system or processor-based configurations. 
         [0062]      FIG. 6  is a block diagram illustrating one embodiment of an apparatus for hierarchical resale of telecommunication products. In an embodiment, the apparatus is server  102  configured to operate according to the portal application instructions  404 . In particular, the server&#39;s processor(s)  401   a - n  may load and operate according to the portal application instructions as a special purpose machine. 
         [0063]    In an embodiment, the portal application instructions  404  cause the server  102  to operate a configure unit  602 , a manage unit  604 , and an operate unit  606 . Each unit  602 - 606  may include one or more sub-units configured to carry out a specific set of tasks as defined by the portal application instructions  404 . For example, the configure unit  602  may include a portal users configuration unit  608 , a portal access levels configuration unit  610 , and a portal branding configuration unit  612 . In an embodiment, the manage unit  604  may include a virtual storefront management unit  614 , a quotes management unit  616 , an orders management unit  618 , a billing management unit  620 , and a contacts management unit  622 . In an embodiment, the operate unit  606  may further include a provision service unit  624 , and a debug services unit  626 . 
         [0064]    In an embodiment, the configure unit  602  and its associated sub-units may be configured to handle portal configuration processes. For example, portal configuration processes may include setting up new users, setting portal access levels, and customizing the portal branding for each reseller. The manage unit  604  may handle receipt, fulfillment, and billing for new service orders, along with other related functions. The operate unit  606  may handle the operations aspects of providing the communication services to the customer. For example, the operate unit  606  may handle configuration, provisioning and debugging of products in response to orders or customer support requests. 
         [0065]    In an embodiment, the portal users configuration unit  608  is configured to provide an interface for allowing a system administrator to add new portal users. For example, the top level communication provider may use the portal users unit  608  to set up bottom level communication provider  308   a  and intermediate communication providers  306   a, c  as users of the portal application. The setup process may include functions such as entry of account numbers, login criteria, personal information, contact information, and the like. Likewise, intermediate level communication providers  306   a, c  may use the portal users configuration unit  508  to add lower level portal users, such as additional intermediate level communication providers  306   b , bottom level communication providers  308   b, c , and/or communication services customers  310   b - d , for example. 
         [0066]    Portal access levels configuration unit  610  may be configured to provide an interface for configuring permissions with respect to various functions of the portal application. For example, customers may be given access to place orders, view billing, view status updates, and the like. Employee users may be given access to place fulfillment orders to a higher level provider, adjust billing, create communications or acknowledgments, or the like. Additionally, permissions at each level of provider may have different access levels. In one such embodiment, top level communication provider  304  may be given access to information associated with all customers and providers in the hierarchy, whereas each intermediate or bottom level partner  308 ,  310  may only be given access to information associated with customers and providers at a lower level or within its own provider chain. One of ordinary skill will recognize various alternative portal access configurations which may be used in accordance with the present embodiments. 
         [0067]    Portal branding configuration unit  612  may provide an interface for allowing an intermediate partner  308  or bottom level partner  310  to establish its own portal brand. For example, the color scheme, logos, copyright notices, etc. may be modified to match the individual provider&#39;s corporate brand, although the functional framework of the portal may remain unchanged. In a further embodiment, the portal branding configuration unit  612  may provide an interface for entering server redirect information, email configuration information, such as SMTP server addresses and authentication, and the like. In such an embodiment, all email and network traffic originating from the server  102  may appear as though it is originating from the client  106   a, b  or from the domain of the reseller. 
         [0068]    For example, intermediate level communication provider  306   a  may create an authenticated email account on a proprietary email server. The intermediate level communication provider  306   a  may enter the server address and authentication information, such that all email traffic generated by the top level communication provider  304  from the server  102  will appear as though it is originating from the intermediate level provider  306   a , rather than the top level provider  304 . 
         [0069]    In still a further embodiment the branding configuration unit  612  may provide an interface where each reseller may create their own products (SKU, description, pricing, etc.) based on those provided by the top level provider. For example, the reseller may bundle one or more sets of several base products provided by the top level provider into a single bundled product having a single SKU number. In such an embodiment, the resellers SKU may be mapped with the base SKU numbers of a higher level provider, which may further facilitate automation of ordering and billing processes. For examples, the reseller&#39;s SKU may wrap one or more SKUs of the level above. This wrapping is taken into account for billing (i.e. reseller cost), automatic ordering (the system automatically maps reseller products to parent products when processing an order) as well as during provisioning (while SKUs, at any level, are the item provisioned against subscribers the system automatically breaks these SKUs into the root configurable/provisionable pieces to be activated and prompts the craftsperson to provide the necessary data for each). For example, if a VoIP service is wrapped and re-wrapped across two levels of resellers when it is provisioned against the user the SKU of the re-wrapped service is used but the provisioning system asks for configuration information based on the VoIP service contained within it. 
         [0070]    Additionally, branding unit  612  may provide a template ‘terms of use’ mechanism, which permits each level to specify their branding/trademarks for application to a generic terms of use document furthering the illusion that the system is not hierarchical. 
         [0071]    In an embodiment, storefront management unit  614  may be configured to provide an interface for managing interactions with customers. For example, advertisements or promotions may be created via storefront management unit  614 . Additionally, customized products may be defined, and product catalogs may be generated by storefront management unit  614 . Order acknowledgment and status updates may be further provided via storefront management unit  614 . In one embodiment, certain actions taken by storefront management module  614  may be automated. For example, promotions may be advertised for a predetermined timeframe, and then automatically be removed or reset at the expiration of the predetermined time period. For example, orders may be tagged as ‘zero cost’ until a target date. The products in the order can be consumed at no monthly charge until the date expires at which point the items are considered as normal cost and appropriately added to the customer&#39;s monthly bill. As a matter of management the target date may be changed by the provider at any point up to the point where the target date has expired and the order is now being billed. Separately, discount levels (volume based) and special discounts (% discounts applied for products consumed by a particular customer&#39;s customer) may be applied or modified at any time having an immediate effect on future billing. 
         [0072]    In an embodiment, the quotes management unit  616  may be configured to provide a price quote to a potential communication services customer  310  in response to an inquiry. In some embodiments, the quotes management unit  616  may provide an interface for allowing a live agent to enter the quote information. In another embodiment, the customer  310  may be provided with a selection menu when submitting the query, and the price quote may be automatically generated in response to the selections entered by the customer  310 . 
         [0073]    The orders management module  618  may be configured to receive orders for communication services from customers. In one embodiment, the orders may be communicated to a live agent for handling. Alternatively, the orders may be automatically forwarded up a provider chain to the top level communication provider  304  for fulfillment. Optionally, the orders may be automatically accepted on a per customer basis. For example, if a reseller has a good relationship with a customer in good standing, all orders from that customer may be automatically accepted without manual intervention. Automation may be set on a per customer basis. Alternatively, all orders stop at each level to be manually accepted. In still other embodiments, the orders may be communicated from the customers—e.g., communication services customers  310   b, c —to the top level communication provider  304 . The top level communication provider  304  may then notify the intermediate level providers  306   a, b  and bottom level provider  308   b  that the order has been placed. But, in such an embodiment, the top level communication provider  304  may handle fulfillment directly rather than waiting for authorization from lower level providers. 
         [0074]    In certain embodiments, aspects of the order placement and management process may be automated. For example, forwarding of the order through the provider chain up to the top level provider  304  may be automated. In an embodiment, the orders management unit  618  may allow granular control over what is automated and what requires human involvement. When automated at various levels, it may takes less time to enter the initial order than it does to traverse three or four levels of administrative hierarchy, and have the order fulfilled. In a further embodiment, an order acceptance and fulfillment may be automated to bypass basic human intervention. Additionally, inventory coverage, which automatically calculates the order a reseller must make to the top level provider  304  on receipt of an order from the customer, may be automated. Such an embodiment, may account for both quantities and also the conversion of reseller products to the products offered by the top level communication provider  304 . Another feature which may be automated includes inventory assessment, which provides a quick snapshot view for an order management of the cost to fulfill an order from the customer. 
         [0075]    In an embodiment, the billing management unit  620  may allow the providers  304 - 308  to bill down level customers for services provided. Certain aspects of the billing process may also be automated. For example, once services are provisions in response to an order, the billing management unit  620  may automatically generate an invoice or a billing notice requesting payment for the services. In another embodiment, the billing management unit  620  may provide an interface for allowing a customer or a provider to enter the customer&#39;s billing information, such as a charge account number, banking information, or the like. 
         [0076]    In an embodiment, the contacts management unit  622  may be configured to provide an interface for allowing a provider to manage contact information for customers and potential customers. For example, the contacts management unit  622  may track address, email, facsimile, telephone, website, and other contact information associated with a customer or potential customer. Additionally, the contacts management module  622  may track contact information for up level providers so that the providers that are higher in the chain may be contacted for customer support, technical support, etc. 
         [0077]    In an embodiment services provisioning unit  624  may be configured to generate services provisioning orders  410  for server  102  to use for updating the services provisioning table  406 . In an embodiment, the provisioning orders may include information used for provisioning the telecommunication products to the customer, including information about the customers communication device, such as its IP address, MAC address, or the like. Additionally, the provisioning data may include a list of service options that are supported/requested. The provisioning data may also include identification of a telephone number or extension number to be associated with the customer&#39;s telecommunications equipment  120 - 140 . 
         [0078]    Debug services unit  626  may be configured to provide information for technical support of the customer. For example, the debug services unit  626  may send diagnostic signals to the customers telecommunications equipment  120 - 140  for ascertaining an operational state of the equipment and intermediate devices, such as router  108 , VoIP gateway  110 , switch  112 , PBX  114 , etc. Debug services unit  626  may also provide a technical support interface to a technical support technician for tracking help tickets, obtaining debug information for the network, escalating help tickets, etc. 
         [0079]    In an embodiment the portal application instructions may include a help unit  628 . The help unit  628  may be configured to display help instructions associated with the portal application. The help unit  628  may include a help mode control  630  and a help navigation control  632 . The help mode control  630  may be selectable. Additionally, the help mode control  630  may be displayed on or accessible through the one or more views of the portal application. A view may be a distinct web page, application screen, window, view panel, etc. In an embodiment, the help navigation control  630  may include control buttons for forward or backward navigation through help mode views or navigation links for jumping from one help mode view to another. 
         [0080]    Embodiments of the hierarchical resale system have been described in  FIGS. 1-6  to describe one embodiment of a computer program that may include a help mode as described herein. One of ordinary skill will recognize, however, that the embodiments of help mode described herein may be used with alternative computer programs as well. The methods of  FIGS. 7 and 8  are described in the context of the examples described above, but it should be understood that the examples of the hierarchical resale system are not intended to limit the scope of use or implementation of the methods described herein. 
         [0081]      FIG. 7  is a flowchart diagram illustrating one embodiment of a method  700  for 
         [0082]    Although certain embodiments are described herein with reference to specific examples, numerous modifications and changes may be made in light of the foregoing description. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within their scope. Any benefits, advantages, or solutions to problems that are described herein with regard to specific embodiments are not to be construed as a critical, required, or essential feature or element of any or all the claims. Furthermore, it should be understood that the various operations described herein may be implemented in software, hardware, or a combination thereof. The order in which each operation of a given technique is performed may be changed, and the elements of the systems illustrated herein may be added, reordered, combined, omitted, modified, etc. It is intended that the embodiments described herein embrace all such modifications and changes and, accordingly, the above description should be regarded in an illustrative rather than a restrictive sense. 
         [0083]    Unless stated otherwise, terms such as “first” and “second” are used to arbitrarily distinguish between the elements such terms describe. Thus, these terms are not necessarily intended to indicate temporal or other prioritization of such elements. The term “coupled” is defined as “connected” and/or “in communication with,” although not necessarily directly, and not necessarily mechanically. The terms “a” and “an” are defined as one or more unless stated otherwise. The terms “comprise” (and any form of comprise, such as “comprises” and “comprising”), “have” (and any form of have, such as “has” and “having”), “include” (and any form of include, such as “includes” and “including”) and “contain” (and any form of contain, such as “contains” and “containing”) are open-ended linking verbs. As a result, a system, device, or apparatus that “comprises,” “has,” “includes” or “contains” one or more elements possesses those one or more elements but is not limited to possessing only those one or more elements. Similarly, a method or process that “comprises,” “has,” “includes” or “contains” one or more operations possesses those one or more operations but is not limited to possessing only those one or more operations.