Providing hybrid services

DE112016001895B4Active Publication Date: 2025-03-20MITEL NETWORKS INC
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
DE112016001895
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2015-04-24
Filing Date
2016-04-22
Publication Date
2025-03-20
Estimated Expiration
2036-04-22

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Computer-implemented method, including: In response to the activation of a Connection Management Service (CMS) of a multi-tenant hosted system for a premise-based system, premise data and user configuration data associated with the premise-based system are stored in a hosted configuration database of the hosted system, wherein the premise-based system and the hosted system define a hybrid communication system; Deploying the CMS in response to user input to specify user and resource parameters for a premise trunk group of the premise-based system to connect to a hosted trunk group of the hosted system, with CMS deployment data stored in the hosted configuration database; in response to the deployment of the CMS Deploying a Session Border Controller to control at least one connection between the Premise Trunk group and the hosted Trunk group based on the CMS deployment data; Update the hosted configuration database to configure the hosted trunk group based on the CMS deployment data; and Saving the premise configuration data for the premise trunk group based on the CMS deployment data; Prior to activating the CMS, the procedure further includes establishing a premise synchronization connection for authenticated communication between a premise configuration manager of the premise-based system and a hosted configuration manager of the hosted system.
Need to check novelty before this filing date? Find Prior Art

Description

CROSS-REFERENCE TO RELATED APPLICATION

[0001] This application claims the benefit of U.S. Provisional Application No. 62 / 152476, filed April 24, 2015, entitled PROVISIONING HYBRID SERVICES. TECHNICAL FIELD

[0002] This disclosure generally relates to providing services in a hybrid communications system. GENERAL STATE OF THE ART

[0003] Hybrid cloud computing refers to a combination of a cloud network and a private corporate network that remain separate entities but are interconnected and offer the benefits of multiple deployment models. Such a combination can expand the deployment options for cloud services, allowing information technology (IT) organizations to leverage cloud computing resources to meet specific needs. By leveraging a hybrid cloud architecture, businesses and individuals can achieve a level of fault tolerance combined with immediate on-premises usability without dependence on an internet connection. Hybrid cloud architecture requires both on-premises resources and a server-based (remote) off-site cloud infrastructure. US 2014 / 0 126 418 A1 concerns internet cloud services and, in particular, user-configurable networks for hybrid cloud computing systems.US 2006 / 0 029 032 A1 relates to the field of virtual private networks, and more particularly to a method and system enabling a technical solution for virtual private networks through the use of a tandem routing device as a virtual hub in a logical hub-and-spoke network topology. US 2012 / 0 320 907 A1 relates to systems and methods for providing multi-homed tandem access in a communications system. The systems and methods may utilize a private network backbone exchange. US 2014 / 0 079 207 A1 describes a method for providing dynamic elasticity of contact center resources. US 2010 / 0 014 494 A1 describes the provision of support for Session Initiation Protocol (SIP) devices in a mobile enterprise network that provides a wireless service in a coverage area associated with an enterprise using licensed radio frequency spectrum. SUMMARY

[0004] This disclosure generally relates to providing services in a hybrid communication system. The independent claims define the subject matter of this disclosure, which is protected. Further embodiments of the protected subject matter are specified in the dependent claims.

[0005] An example of the invention provides a computer-implemented method that, in response to enabling a connection management service (CMS) of a multi-tenant hosted system for a premise-based system, stores premise and user configuration data associated with the premise-based system in a hosted configuration database of the hosted system. The premise-based system and the hosted system define a hybrid communications system. The method also includes provisioning the CMS in response to user input to specify user and resource parameters for a premise trunk group of the premise-based system to connect to a hosted trunk group of the hosted system, and storing corresponding CMS provisioning data in the hosted configuration database.In response to the CMS deployment, a Session Border Controller is deployed to control at least one connection between the on-premises trunk group and the hosted trunk group based on the CMS deployment data, and the hosted configuration database is updated to configure the hosted trunk group based on the CMS deployment data. On-premises configuration data for the on-premises trunk group is also stored in the on-premises system based on the CMS deployment data.

[0006] As another example, one or more machine-readable media may include instructions. The instructions may include a portal application interface for accessing and provisioning hosted services configured to operate in a hosted system of a unified hybrid communications system, wherein the hybrid system also includes at least one premise-based system. The instructions may also include a connection management service (CMS) for storing CMS provisioning data in a hosted configuration database of the hosted system in response to user input via the portal application interface to configure a given premise trunk group of the premise-based system for operation in the hybrid system.The CMS further provides a session border controller to control at least one connection between the on-premises trunk group and a hosted trunk group of the hosted system based on the CMS provisioning data. The CMS also updates the hosted configuration database to configure the hosted trunk group and cause on-premises configuration data for the given on-premises trunk group to be stored in the on-premises system based on the CMS provisioning data.

[0007] In yet another example, a hybrid communications system comprises at least one premise-based system comprising a portal for accessing and provisioning shared hosted services operating in a multi-tenant hosted system of the federated hybrid communications system. The hosted system comprises a hosted configuration manager for controlling configuration and provisioning of the hosted resources in the hosted system, wherein the hosted configuration manager comprises a connection management service (CMS) for storing CMS provisioning data in a hosted configuration database of the hosted system in response to user input provided via the portal to configure a given premise trunk group of the premise-based system for operation in the hybrid system.A session border controller controls at least one connection between the given premise trunk group and a hosted trunk group of the hosted system based on the session border controller's provisioning according to the CMS provisioning data. The CMS updates the hosted configuration database to configure the hosted trunk group and causes premise configuration data for the given premise trunk group to be stored in the premise system based on the CMS provisioning data. BRIEF DESCRIPTION OF THE DRAWINGS Fig. Figure 1 shows an example of a hybrid communication system. Fig. Figure 2 illustrates an example signaling flow diagram showing signals communicated during part of a provisioning procedure. Fig.Figure 3 illustrates an example of another signaling flow diagram showing signals communicated during another provisioning method. Fig. Figure 4 illustrates an example signaling flow to authenticate a premise resource to enable a secure connection to cloud resources. DETAILED DESCRIPTION

[0008] This disclosure generally relates to configuring selected services to simplify the operation of a hybrid communications system. The hybrid system includes a connection management service to manage the provisioning and maintenance of a dynamic connection between premise-based resources physically located in one or more premise-based systems (also referred to herein as a private network) and hosted resources located in a hosted system (also referred to herein as a multi-tenant cloud-based system). The management service may be implemented as part of the hosted system to simplify accounting and billing functions for resources hosted and operated in the hosted system.

[0009] As an example, after registering the premise-based system as a given tenant to be operated in the hosted system for one or more services, including the management service, and providing identification and associated authentication parameters to the premise-based system, an instance of the connection management service may be released for the given tenant, including its associated premise-based resources. In response, account and other premise-based configuration information for premise-based resources (e.g., users, user devices, on-premise hardware, and on-premise software) may be uploaded from the on-premise system and stored in a configuration database of the hosted system.To provision the Connection Management Service for the given tenant for which it has been released, premise-side configuration parameters can be provided in response to user input. For example, the premise-side configuration parameters can specify one or more trunk groups (e.g., site, switch, and ports) and define extension ranges for each of the premise-based system and the hosted system. Based on the premise-side configuration parameters and associated hosted data, configuration data can be provided to provision a Session Border Controller and corresponding hosted resources to enable the Connection Management Service to utilize the SBC and the allocated hosted resources.The on-premises system can receive resources in the cloud that identify activation setting data shared with resources in the on-premises system as part of the hybrid system. For example, the resources can be identified in a directory that includes uniform descriptor data that identifies all shared resources available to each corresponding user.

[0010] As used herein, the hosted (e.g., cloud) system may include a variety of hardware and / or software resources that may be supported in a given cloud, including, for example, servers, private branch exchanges (PBXs), routers, and databases. For example, such resources may include processors, memory, servers, software, applications that work together to provide cloud computing capabilities for users and premise-based systems that wish to utilize cloud resources that extend the existing functionality of their premise-based system. For example, each of the multiple users of the premise system may be provisioned individually or as part of a corresponding group to utilize the hosted resources. As used herein, a premise-based system refers to a private network maintained by or on behalf of a private entity (e.g.,A premise-based system is managed and / or operated by a separate entity (e.g., a company, group of users, or other service provider) from the entity operating the hosted cloud-based system. The premise-based system can be implemented locally at a single site or can be distributed across multiple locations but operated as a single enterprise, such as a corporate unified communications system (UC).

[0011] As one example, a premise-based system may take advantage of services from a cloud-based PBX and / or cloud-based UC system to provide additional services and resources to users or other entities of a premise-based PBX / UC system. For example, a cloud service provider may provision, manage, and bill for services provided to one or more premise systems and their respective users. With minimal setup effort, users or other entities generally managed and based on the premise may take advantage of specific cloud-based resources for which they have been authorized. In this way, local resources of the premise-based system may remain in a given status or state, and users of such premise systems may establish a network connection (e.g., via a secure communications link) with remotely hosted resources (e.g.,services and / or hardware implemented in a multi-tenant cloud) to seamlessly access and use additional resources (e.g., cloud resources). As an example, premise-based and hosted resources may include extensions, with extensions in the hosted system operating as offsite extensions relative to the premise-based system, and extensions in the premise-based system operating as offsite extensions relative to the hosted system. The extensions listed in the directory remain synchronized to appear to their users as a set of integrated extensions operating in the UC system.

[0012] Fig.1 illustrates an example of a hybrid system 10 that may be implemented. The hybrid system includes a hosted system 12 and a premise-based system 14. In this or other examples disclosed herein, the hosted system 12 may include a multi-tenant cloud system configured to provide cloud-based resources to the premise-based system 14. While in Fig. 1 illustrates a premise-based system 14, the hybrid system 10 may support any number of premise-based systems in which, for example, the hosted system provides a shared set of resources serving multiple different tenants, as disclosed herein.

[0013] In the example of Fig.1 and other examples disclosed herein, the hybrid system is described in the context of a unified communications (UC) system. The UC combines real-time communications services (e.g., instant messaging (chat), presence information, telephony, mobility, teleconferencing, contact center functions, video conferencing, data sharing, call control, and speech recognition) with non-real-time communications services (e.g., integrated voice messaging, transcription services, email, SMS, and fax). It will be understood that the hybrid system 10 is applicable to other types of computing and / or communications systems where it is desirable to provision and configure resources operating in a premise-based system (e.g., private network) that is external to the hosted system, yet still enables substantially seamless access and use of cloud-based resources.

[0014] The premise-based system 14 may include a premise configuration manager 16 configured to provision the premise-based system. For example, the configuration manager 16 may specify parameters for multiple resources 18 operating within the premise-based system, where the parameters may be stored in a database 20 of the premise system 14. In addition to the resource parameters, in some examples, other configuration data in the database 20 may specify authentication parameters, firewall settings for the user network, session border controller settings, and quality of service (QoS) settings for the premise-based system.The types and scope of parameters for the premise-based system 14 may vary depending on the available features, equipment, and software running in the premise-based system and the hybrid resources in the hosted system 12, as disclosed herein. In some examples herein, the premise configuration database 20 may store resource parameters in a directory of available resources in the hybrid system, regardless of whether they are premise-based or hosted resources.

[0015] The premise-based system 14 may implement a variety of private branch exchange (e.g., Internet Protocol (IP) PBX) resources for implementing communications, including one or more switches 22. Each of the switches 22 includes hardware and software programmed to provide switching and routing functions for a particular site (e.g., a company that may include one or more sites). Each switch 22 may thus interconnect various servers and gateways included in the premise system 14, for example, to implement a fast, non-blocking IP and IP multicast Layer 3 switch and router.

[0016] This is in contrast to a network operator (e.g., telephone service provider) that serves many businesses or the general public. For example, the switch 22 of the premise-based system 14 may communicate over a network 24 with a service provider operating on a public switched telephone network (PSTN) 25 and with resources in the hosted system 12. The switches 22 may be configured to establish communication sessions that implement packet-switched calls, for example, Voice over Internet Protocol (VoIP), circuit-switched calls, or a combination of packet- and circuit-switched communications. In some examples, the switches 22 may implement SIP trunking for VoIP communication sessions.

[0017] As mentioned, the premise-based system 14 provides a private network (e.g., an intranet) within the hybrid system 10. For example, the configuration manager 16 may be implemented to include a graphical user interface programmed to access functions and methods for configuring and managing the various components of the premise-based system 14.

[0018] To access a particular functionality of the hosted system 12, the hybrid system 10 may include a portal (e.g., web portal) 26 configured to access a portal application interface (API) 28 via the network 24 (e.g., comprising the public Internet). While the portal is depicted as operating within the premise-based system 14, it may also be accessed, for example, via a web-based browser or other application operating outside or within the premise-based system 14. In the example of Fig.1, the portal API 28 is implemented to access functionality associated with a hosted configuration manager 30 of the hosted system 12. For example, the portal API 28 may expose a selected set of features of the configuration manager 30 that have been enabled for the premise-based system 14 to establish appropriate hybrid operation between the premise-based and hosted systems 14 and 12, respectively. First, the enabled features may vary according to the stage of the configuration and deployment workflow process, as disclosed herein.

[0019] The API 28 can be used to communicate parameters and premise data specifying user properties and / or to release hosted resources. The connection via the portal 26 and the portal API 28 of the hosted system 12 can be implemented as a secure communication protocol over the network 24 connection, such as using the HTTPS or other protocol (e.g., Secure Shell Tunnel). As an example, as part of a setup process for enabling the hybrid system 10, the portal 26 can use the portal API 28 to create a linked account for the premise-based system 14 and communicate relevant premise system parameters that are synchronized between the premise-based system and the hosted system 12. The host system 12 includes a hosted configuration database 36 that stores parameters and premise data for each of the multiple tenants enabled for operation in the multi-tenant hybrid system 10.

[0020] As an example, in response to creating a tenant account via the portal API 28, a tenant record may be stored in the hosted configuration database 36. For example, the tenant record may include a unique tenant ID that is automatically generated for each corresponding tenant comprising the premise-based system 14. As part of the initial setup, the hosted configuration manager 30 may create an instance of a synchronization API 40. A premise system synchronization component 42 (PREMISE SYNC) within the premise-based system may utilize the Premise Sync API 40 to communicate with the hosted system over the network 24. Communication between the Premise Sync component 42 and the Premise Sync API 40 may occur over a secure connection (e.g., a synchronization channel) as disclosed herein.The synchronization channel can be used to communicate information to and from the premise-based system as part of a synchronization process (see, for example, . Fig. 2).

[0021] As an example, the synchronization process may include the Premise Sync component 42, which extracts a unique identifier from the hosted configuration database 36 and extracts a list of shared services for the premise-based system 14. The premise-based system 14 may also utilize the Premise Sync component 42 to provide user parameters and premise data to the hosted configuration manager 30. The parameters and premise data may include user configuration data, such as specifying user identifier profiles, as shown in Table 1.The premise-based system 14 may also provide authentication keys, which may include any number of one or more public keys or other information to enable a token-based or ticket-based authentication system for authenticating users and resources of the premise-based system with corresponding services and resources implemented in the hosted system 12. An example of how the authentication keys may be generated and provided to the premise-based system is shown in FIG. Fig. 4 shown.

[0022] An example of the configuration data that can be stored in databases 20 and 36 for each of the multiple users is given below in Table 1. TABLE 1 USERNAME A user identifier for each user in a given GUID Globally unique identifier for the user in both the premise system and the hosted DN A routable directory number for a device, user, or User Type A field to distinguish between types of DNs, such as a workgroup and a user. first name User's first name. LastName User's last name. User Email One or more email addresses for the user. Mobility Username Username (shadow username or main username) for the user's mobile devices.

[0023] As an example, the hosted configuration manager 30 may generate a globally unique ID associated with each user's configuration information, e.g., associated with initial setup, which may be stored in the database 36. The globally unique ID (e.g., a GUID) may be uploaded (along with other user properties and additional configuration information) to the on-premises configuration manager 16 via the portal API. The GUID may be unique across all such customer on-premises systems in the multi-tenant hybrid system 10. Then, when the configuration manager 30 sets up the configuration in the hosted system for a given user, it maintains a mapping between an identity established in the hosted system for the on-premises user and the user's identity in the on-premises system 14.

[0024] As disclosed herein, the hosted configuration manager 30 may also include a connection manager service (CMS) 32 to facilitate interoperation among or between the premise-based resources 18 and the hosted resources 34 during communication sessions. In response to synchronizing parameters and data between the premise-based system 14 and the hosted system 12, respectively stored in the premise configuration database 20 and the hosted configuration database 36, the CMS 32 may be shared with the corresponding premise-based system 14.For example, for the purpose of the CMS 32, as disclosed herein, information and configuration data are exchanged between the premise-based system 14 and the hosted system 12 to provide a connection to facilitate communication between a group of resources, referred to herein as a site corresponding to the premise-based system, and a corresponding tenant site within the hosted system. The CMS further enables users to add one or more remote sites to the premise-based system 14 using the hosted system (e.g., the cloud). In the example of . Fig.1, a premise site 44 comprises one or more switches 22 and the associated resources 18. Similarly, in the hosted system 12, a hosted site 46 is identified as comprising one or more switches 48 and corresponding hosted resources 34. The CMS 32 is thus programmed to configure and provision the respective sites 44 and 46 and associated resources in each of the respective systems 14 and 12, respectively, to enable substantially seamless connections between the respective sites and among the corresponding resources 18 and 34 within the respective sites.

[0025] To control the establishment of a communication session for resources 18 and / or 34 either between or outside of sites 44 and 46, the hybrid system 10 includes a Session Border Controller (SBC) 50. The SBC 50 is implemented in the signaling and media path between the premise site 44 and the hosted site 46. In the example of Fig.1, the SBC 50 is depicted as being outside the private network corresponding to the premise-based system 14 and located within the hosted system 12. However, it is contemplated that the SBC 50 could be implemented as part of one or both of the systems 12 or 14, or separately from (e.g., outside of) either system. For example, the SBC 50 includes hardware and / or software programmed to control signaling (e.g., according to a Session Initiation Protocol (SIP)) and media flows involved in establishing, conducting, and terminating telephone calls or other interactive media communications.

[0026] To provide signaling control for signaling and communicating media originating from the premise site 44 or the hosted site 46, the SBC 50 utilizes an SBC database 52 that includes corresponding configuration data provided to enable hybrid operation. The configuration data in the database 52 includes data for mapping protocol messages to or from one of the switches 22 or 48 in one of the respective sites 44 and 46 to the other corresponding switches 48 or 22. For example, the mapping of data may include directional mapping information to map a GUID assigned to a given extension to a corresponding extension identifier associated with the other site. The SBC 50 may thusThe destination resource may modify the message directed to the destination resource (located outside the premise-based system 14) based on the mapping data and send the modified signaling message to the switch at the other site for distribution to the identified resource. In response to the destination resource accepting the communication and signaling being communicated back to the calling resource, the communication session may be connected to conduct the session between resources (e.g., endpoint extensions) located at the premise site and the hosted site.

[0027] As an example, the switch 22 uses the premise configuration database 20 to direct communication from one of the premise resources 18 to another of the premise resources (e.g., a given user extension) 18. As an alternative or additional example, the switch 22 uses the premise configuration database 20 to direct communication from one of the premise resources 18 via the SBC 50 to one or more corresponding hosted resources 34 in the hosted site 46. However, in the case where the communication is initiated from a premise resource 18 and is directed to a hosted resource 34, from the perspective of the switch 22, the hosted resources 34 appear as remote off-site extensions operating as part of the private network corresponding to the premise-based system 14. That is, due to the provision of the CMS 32, the switch 22 does not know that the resources 34 are located in the hosted system 12.Likewise, each switch 48 at the hosted site 46 can communicate directly from one of the hosted resources (e.g., endpoints) at the site 66 with one or more different hosted resources 34 at the hosted site via a direct connection through the switch based on the mapping data in the hosted configuration database 36. Additionally or alternatively, each switch 48 at the hosted site 46 can communicate directly from one of the hosted resources (e.g., endpoints) at the site 46 with the SBC 50 based on the mapping data in the hosted configuration database 36, and the SBC directs the communication to the switch 22 based on the SBC database 52 to establish a connection to one or more of the on-premises resources 18.However, from the perspective of the switch 48 operating within the hosted site 46, the communications routed via the SBC 50 to the resources 18 in the premise-based system 14 appear as off-site extensions relative to the hosted site 46. Each of the switches 22, 48 may also send protocol messages for calls to and / or from third parties (e.g., messages from one of the switches that are not directed to resources in the hybrid system 10) via the network 24 to the PSTN 25.

[0028] To enable connections between resources at the premise and hosted sites 44 and 46, as mentioned above, the CMS 32 is appropriately provisioned. For example, an authorized user (e.g., an administrator) may provision certain aspects of the CMS 32, including portions of the premise system 14 and the hosted system 12, in response to user input using the portal 26 to access corresponding functions exposed by the portal API 28. As mentioned, the CMS 32 is programmed to implement a service in the hosted system 12 that is enabled for the given premise-based system 14 to establish and maintain one or more connections between the premise site 44 and the hosted site 46.

[0029] For example, user input via portal 26 to provision CMS 32 may include creating a premise trunk group associated with site 44. The trunk group includes one or more selected switches 22 and associated resources 18. For example, CMS 32 may be programmed to specify a corresponding partition (e.g., within a given cluster) of hosted system 12 associated with the tenant ID generated for the specific premise-based system 14. For the corresponding partition created within the hosted system 12 that is linked to the premise system (e.g., via a tenant ID), user input via the portal 26 and the API 28 may further program one or more premise trunk groups (corresponding to the site 44) within the premise-based system 14 to interact with the corresponding hosted site 46 via the SBC 50.The premise system 14 may include one or more sites; however, in some examples, when deploying the CMS 32, only one premise site 44 is established as a “CMS site” for purposes of connecting to the hosted system 12 in the hybrid system 10.

[0030] For example, as part of a deployment workflow, the hosted configuration database 36 may already have user configuration and parameter data for the premise-based system 14 stored therein. This may be pushed by the Premise Sync component 42, for example, during a previous part of the setup process for the hybrid system. The user configuration and parameter data for the premise-based system 14 may include an indication of available sites and, for each corresponding site, a set of one or more associated switches. In response to other user input, parameter data for each of the switches may specify the number of ports that are available and a number of ports to be assigned to the corresponding trunk group, i.e., to define the premise site 44.As mentioned, a user can add any number of switches as part of the corresponding trunk group corresponding to the premise site 44.

[0031] In addition to setting up the premise trunk for the site 44, the CMS 32 can receive user input via the portal 26 to specify one or more extension ranges for the set of resources operating at the site 44 and for the set of resources to operate within the hosted site 46. For example, based on the initial configuration information provided via the Premise Sync function of the Sync API 40, the hosted configuration database can include extension data specifying one or more extension ranges already set up for the premise-based system 14. Additionally, premise ranges can be added or modified in response to user input via the portal. Based on the information stored in the hosted configuration database for the premise system (e.g.,Based on the premise extension ranges stored (based on initially provided extension data during the synchronization process described herein), the CMS 32 can determine an appropriate range or ranges of extensions for operation within the hosted system 12 (e.g., adjacent to or between the range for the premise system) for use as part of the premise system. Additionally, in response to user input, a user can add or remove one or more premise ranges or hosted extensions to be used in the hybrid system 10. The partition trunk definitions and extension ranges can all be stored as corresponding CMS provisioning data in the hosted configuration database in response to the user input to the portal 26, thereby provisioning the CMS 32 of the hosted configuration manager 30.As disclosed herein, the aggregated set of specified extensions may be stored in a unified directory (e.g., in each of databases 20 and 36) to facilitate direct calling of the extension between resources associated with each of the extensions.

[0032] In response to deploying the CMS 32, the hosted configuration manager 30 may utilize the CMS deployment data to deploy the SBC 50, e.g., by storing appropriate trunk data for the premise trunk group established for the premise site 44. The CMS 32 may automatically initiate SBC deployment in response to user input via the portal 26. Such premise trunk data for the site 44 may be stored in the SBC database 52, e.g., in a table (or other data structure) specifying unique user parameters (e.g., Table 1) and associated extension ranges for each of the premise resources 18. Appropriate certificates for the premise system 14 may also be stored in the SBC database 52 to enable secure access to the services and resources implemented in the hosted system that have been authorized and released for the premise-based system 14.The CMS 32 may also update the trunk group data for the hosted site 46, including the one or more switches 48 and the associated hosted resources 34. Because the premise resources 18 operate as remote off-site extensions relative to the resources in the hosted site 46, the assigned extension ranges stored in the SBC data 52 for the premise resources may map to corresponding globally unique IDs defined for each of the corresponding premise resources 18 to enable connections to such resources from the hosted resources.

[0033] The CMS 32 may also provision the trunk group corresponding to the hosted site 46 based on the CMS provisioning data, which provisioning may be initiated automatically in response to user input via the portal 26. For example, the CMS 32 may provision remote users relative to the site 46, including the users associated with the site 44 as well as other users operating elsewhere within the premise-based system 14. This may include specifying user configuration data for each of the remote users operating in the hybrid system 12. The management service may also create an additional table for a corresponding remote offsite extension corresponding to the premise resources 18. Thus, each of the offsite extensions stored in the hosted configuration database 36 may map corresponding extensions for the premise resources 18.However, for each of the users of the hosted resources 34 as well as the premise-based resources 18, a unified directory for each of the respective users and their respective extensions is maintained in the hosted configuration database 36, which can be presented to the users who have been deployed to work in the hosted site 46.

[0034] To synchronize and maintain the information for enabling intersite connections for sites 44 and 46, the management services may send a message to the Premise Sync component 42 of the premise-based system 14. The message may be sent, for example, in response to the provisioning of the hosted site 46. Additional notification messages may be sent to the Premise Sync component in response to detecting changes in the provisioning data stored in the hosted configuration database 36. In response, the Premise Sync component 42 may pull corresponding data from the hosted configuration database 36 via the Sync API 40. For example, the Premise Sync function 42 may pull data indicating users operating in the hosted system 12, where the pulled data may be stored in the Premise configuration database 20.The Premise Sync function 42 can store remote off-site extensions in the Premise configuration database 20 to specify a range of extensions for each of the provisioned hosted resources 34 to enable extension calls and routing from within the premise-based system to users in the hosted site 46. Additionally, the information entered in response to user input via the portal 26 to provision the CMS 32 is also used to configure the corresponding site 44 as a trunk group that includes the specified one or more switches and corresponding resources 18 and associated extension ranges, as described above.Once the data has been accessed from the hosted configuration database and stored in the premise-based configuration database to provision the premise site for operation in the hybrid system 10, the corresponding connection between the premise-based system 14 and the hosted system 12 may become operational for communication between the sites 44 and 46.

[0035] Fig. 2, Fig. 3 and Fig. 4 show examples of some signaling sequences used in the unified hybrid communication system (System 10 of Fig. 1) to perform the various functions disclosed herein. For consistency, the same reference numerals refer to the same parts in the various examples of Fig. 2, Fig. 3 and Fig. 4, which in relation to Fig.1. Lines with arrows on both sides are used to indicate signaling between multiple devices or bi-directional interaction, whereas a line with a single arrow indicates that communication is from one device or user to another.

[0036] Fig. Figure 2 illustrates an example of a signaling flow diagram 60 that demonstrates how resources in the hosted system can be configured for the premise-based system 14. It is further assumed that at the beginning of Fig. 2 the premise-based system is not operational with the hosted system 12. Reference is made to the example system 10 of Fig. 1 to provide additional context for process 50.

[0037] An authorized user of the premise-based system 14 may log into the portal 26 to register the premise-based system for hybrid operation with the hosted system 12. For example, the authorized user may be provided with a predetermined resource location (e.g., a predetermined URL) corresponding to the portal 26. At 62, the user may enter a set of credentials including a username and password. In response to the user input, at 64, hybrid services are enabled, e.g., by creating a user account to authorize the premise-based system for hybrid operation with the hosted system 12. In response to the premise registration, at 66, the hosted system 12 may provide the premise-based system 14 with account provisioning data.The account provisioning data may be made available to an administrator, location, or other authorized person within the premise-based system, for example, in a notification (e.g., email, SMS message, or the like).

[0038] For example, the account provisioning data in 66 may include a token and an account identifier that can be used for further authorization and access to the portal 26 and the resources within the hosted system 12. The token may be manually entered into the on-premises system (e.g., typed or copied into a data entry field of a digital form) in response to user input. The token may be used in conjunction with the account ID to authenticate the respective on-premises system 14 to the hosted system 12. The combination of token and accountability can thus be used to secure and identify each on-premises system in the multi-tenant hybrid system 10. The account provisioning data may include other forms of authentication to enable authorization and access to the portal 26 and other resources, including services within the hosted system 12, e.g.,Ticket-based authentication. An example of ticket-based authentication that can be used to authorize and enable access to the portal 26 and hosted resources 34 is disclosed in U.S. Patent Application No. 14 / 590,418, entitled "Distributed Authentication," which is incorporated herein by reference.

[0039] As another example, in 68, the premise-based system 14 may be connected to the hosted system 12 via a secure connection (e.g., Premise Sync component 42 and Sync API 40 of Fig.1) Provide configuration data. The connection configuration data may include configurations, properties, and user data for each of the multiple users and resources in the premise-based system. That is, in response to authenticating the premise-based system 14, the entire list of users and user groups for the premise system may be provided to the hosted system 12. As another example, the authentication mechanism in use may be provided as header information in subsequent messages and communications provided to the hosted system 12 from the premise-based system 14. The configuration data for the users may be generated based on user properties stored in user tables stored in the database 20 of the premise-based system 14.

[0040] After the configuration data in 68 is provided to the hosted system 12 and stored in the configuration database 36, in response to user input in 70, the authorized user can access the network portal (e.g., using the token and account ID generated for the premise-based system), and corresponding user provisioning data can be provided to the hosted system 12 to provide various resources to the hybrid users of the premise-based system 14. The user input 70 can be provided by the user at the network portal (e.g., via a web browser) or it can be provided from a graphical user interface at the premise-based system (e.g., as part of the configuration manager 16).For example, as illustrated by the dotted line associated with user input 70, the configuration manager 16 of the premise-based system 14 may provide user provisioning data to the portal 26 via the portal API 28, which in turn may be stored in the hosted configuration database 36. The user provisioning data may provision hosted resources (e.g., resources 18 and 34) for operation with each or a subset of the hybrid users of the premise-based system 14. The user provisioning data may assign individual hosted resources to each of the users. Alternatively or additionally, hosted resources may be provisioned to users according to a group to which each respective user currently belongs. In this manner, existing workgroups may be leveraged by the premise-based system and used for provisioning services.

[0041] As yet another example, the process 50 could be configured to enable an authorized user to enter user input 70 via a graphical user interface implemented directly in the on-premises system 14 (rather than the portal 26, as shown). Thus, in this alternate example, the user provisioning data 72 would flow from the on-premises system 14 to the hosted system 12. Since the portal 26 is effectively bypassed in this approach, another mechanism can be used to securely authorize the user at the on-premises system to access the hosted system 12.

[0042] To enable access to and use of the hosted resources within the hosted system 12, the hosted system 12 may provide activation data to the premise-based system 14 based on the user provisioning data provided via the portal 26. The activation data may thus indicate which resources have been activated for each user and each identified user group. By specifying or assigning resources relative to a respective group, since a user may move from one group to another, the resources for the current group may be dynamically modified for a respective user according to the user's current group.

[0043] By configuring the hosted system 12 to control the activation of resources (e.g., as the source of truth-based activation) and, in turn, providing corresponding activation data to the premise-based system 14, conflicts can be avoided, reducing the complexity of implementation in both the premise-based and hosted systems 14 and 12. Thus, the configuration manager 16 is responsible for a specific set of user settings in the premise system 14, and the hosted system 12 is responsible for another unique set of user settings to mitigate conflicts as described herein. For example, the activation of the hosted resources can be set via the portal 26, whereas other user settings and properties can be managed and controlled via the configuration manager 16 of the premise-based system.The different sets of user parameters cooperate to simplify the provisioning and use of hosted resources by the on-premises system.

[0044] As mentioned, when the authorized user modifies configuration properties for one or more users on the premise-based system (e.g., updates user data 76), premise configuration and provisioning data in 78 may be provided to the configuration manager of the hosted system 12, e.g., via the portal API 28. For example, the updated premise configuration and provisioning data in 78 may be provided to the hosted system 12 in response to the database trigger or at a predetermined time interval after a last update. The time interval may, for example, be programmed in response to user input in the premise-based system. The premise configuration and provisioning data provided in 78 may, in turn, be used to update the configuration database 36, as represented by the dotted line 80.In response to changes resulting from the update, corresponding activation data at 74 may be returned from the hosted system 12 to the premise-based system via the secure connection. As disclosed herein, various resources in the hosted system 12 may require different provisioning via the configuration manager 16, e.g., to add or remove users to utilize various resources.

[0045] Referring back to the example of Fig.1, the configuration manager 16 of the premise-based system can be programmed to enable and disable resources for the respective users via the portal API 28. As mentioned, this can be done on an individual user basis or on a user group basis. The portal API 28 can be implemented as a Representational State Transfer (RESTful) API, which can be used to export user configuration data to the portal API 28 or to pull settings from the hosted configuration manager, including the activation data for the users and user groups. In other examples, an authorized user can directly use the portal 26 (from within or outside the premise system 14) to modify the activation properties for users or user groups in the hosted system 12.

[0046] Fig.3 illustrates an example of another signaling flowchart 100 for deploying a connection management service (CMS) to configure sites 44 and 46 for connections between resources in the premise-based system 14 and the corresponding hosted system 12. At the beginning of the deployment process depicted in the flowchart 100, it is assumed that the initial synchronization of parameters and premise configuration data and account setup have already been implemented, e.g., according to the related Fig.2 is performed. Thus, as part of such initial synchronization, the premise-based system (operating as a tenant in the multi-tenant hosted system) is enabled to utilize a set of services enabled in the hosted system according to a subscription for a given tenant that has been assigned a unique tenant ID. Additionally, at this stage, the hosted system 12 stores in its configuration database (e.g., database 36) user configuration data (see, e.g., Table 1) as disclosed herein. In addition, each of the services within the hosted system 12 that have been enabled for the premise-based system 14 has received and stored authentication keys to enable secure communication and authenticated use of such services by the users and other resources of the premise-based system 14.

[0047] With reference to Fig.3, user input is provided at 102 via the portal 26 to create a corresponding trunk group for the premise site to be connected to the hosted site. The trunk group created at 102 may correspond to a SIP trunk group configured to implement SIP for establishing, maintaining, and rerouting connections between the respective resources in the premise-based system 14 and the hosted system 12. As another example, the trunk group user input 102 may specify a corresponding premise site, which may be selected from one or more sites implemented within the premise system 14. At 103, the user input may also specify one or more switches to be part of the selected site and assignment of such switches for port assignment of the trunk group created at 10.For example, such user input may also specify port parameters for each corresponding switch in the selected site, e.g., including an identification of a number of available ports (e.g., provided via on-premises system synchronization from . Fig. 2) and the number of ports requested for the selected site. The number of available and requested ports for the switches can be adjusted in response to user input.

[0048] At 104, the extension ranges are set in response to other user input. For example, such extension ranges may be entered via the portal using a well-formed document, e.g., an XML or HTML document. The extension ranges may, for example, specify ranges for endpoint extensions (e.g., telephone extensions) operating in the hybrid system. The extension ranges may include one or more ranges associated with the premise-based system 14 (e.g., one or more ranges) as well as one or more respective ranges of extensions within the hosted system 12 that together define aggregate extension ranges for the hybrid system. Based on the information entered via the portal 26 at 106, the CMS is provisioned based on the configuration data provided at 102 and 104.

[0049] In response to the provisioning of the CMS 32, the configuration manager of the hosted system 12 may provision the SBC 50, illustrated at 108. As illustrated herein, the provisioning information for the SBC 50 may be stored in an SBC database (e.g., database 52) and may include configuration data for the premise trunk group specified at 102. Additionally, the SBC provisioning at 108 may include storing corresponding extension ranges for the hosted resources (e.g., resources 34) in the SBC database. The provisioning at 108 may also include adding one or more certificates for the premise trunk group created to establish the appropriate connection between each switch in the trunk group (created at 102) and the SBC 50 (see, e.g., Fig.4). The premise trunk group portion of the provisioning for the SBC in 108 handles the communication mapping between the SBC and the premise trunk group, according to the resources of the premise site 44.

[0050] In addition to the configuration data associated with the premise trunk group (e.g., Site 44), provisioning the SBC at 108 also includes updating the hosted trunk group configuration data (e.g., for Site 46) established for the hosted system 12. The hosted trunk group portion of provisioning for the SBC at 108 is used by the SBC to establish, perform, and terminate connections between the SBC and the hosted trunk group, according to the resources of the hosted site 46.

[0051] For example, the hosted trunk group (e.g., site 46) may be implemented as a shared group of resources used by all tenants that have enabled the CMS for hybrid operation, as described herein. Based on the deployment of the SBC 50, the SBC operates to map between unique identifiers for each of the resources and corresponding resources in each of the corresponding trunk groups in the premise-based system 14 and the hosted system 12. The SBC utilizes the mapping (e.g., stored in the SBC database 52) to establish and connect communications sessions (e.g., calls) between the premise site and the hosted sites 44 and 46.For example, the SBC 50 can map calls originating within the hosted system to resources in the premise-based system based on the unique identifier associated with an extension set as the call destination. Similarly, the SBC can use the mapping data to map calls originating from resources within the premise-based system to corresponding unique identifiers in resources within the hosted system.

[0052] At 110, the hosted system may provision the hosted trunk group, e.g., by storing corresponding configuration information in the hosted configuration database (e.g., database 36). Provisioning at 110 may include identifying configuration data for each of the on-premises users according to the on-premises data uploaded to the configuration manager of the hosted system 12. Additionally, provisioning at 110 may include creating a new table specifying extension ranges (e.g., comprising one or more ranges of extensions not located within the on-premises system 14) and mapping such extensions to corresponding unique identifiers for respective users and respective resources.

[0053] The provisioning in 108 and 110 thus corresponds to the provisioning for parts of the hybrid system within the control of the hosted system 12. At 112, the CMS of the hosted system 12 can provide a corresponding notification to the premise-based system 14. For example, the notification can be provided via a previously established secure channel such as SSL using an HTML command or another protocol. The notification can cause the premise-based system at 114 to issue a request for corresponding CMS data to the CMS via a secure communication channel (e.g., an HTTPS, SSL, or other secure connection).

[0054] In response to the request at 114, the CMS of the hosted system 12 may provide (at 116) corresponding CMS configuration data to the premise-based system 14. The premise-based system 14 may store the CMS configuration data in a corresponding configuration database (e.g., database 20) of the premise-based system. The CMS configuration data may include, for example, identification of remote users, e.g., the information identified with reference to Table 1. Additionally, the configuration data may include data indicating a set of remote extension ranges corresponding to one or more ranges of extensions available to users within the premise-based system 14 to access corresponding users (e.g., cloud resources) physically implemented within the hosted system 12.

[0055] The remote off-site extensions and the on-site extensions for the premise-based system 14 can be integrated into a unified directory in the premise configuration database to enable the establishment, conduct, and termination of communication sessions (e.g., calls) from within the premise-based system to any of the user extensions provided in the directory. As mentioned, the CMS configuration data can also include the CMS trunk group data to specify resources within a given site of the premise-based system (e.g., site 44). For example, as mentioned, the CMS trunk group can specify switches and ports assigned to the trunk group (e.g., at 102) with sufficient specificity to enable users in the group to operate (e.g., make and receive calls).For example, the CMS configuration data may include configuration data identifying switches assigned to the CMS service, as well as one or more sites within the premise-based system 14 assigned to the CMS. Thus, once the CMS configuration data has been stored in the premise configuration database, resources in the premise-based system 14 and the hosted system 12 may establish connections via the SBC 50. For example, the one or more switches within the CMS trunk group may be connected to the SBC 50 via a secure connection (e.g., via SSL) using a predefined URL for the SBC. The SBC 50, in turn, may route calls from the premise-based system to the hosted system based on the mapping table comprising the mapping between unique identifiers stored in the SBC database and corresponding resources (e.g.,Extensions) in the hosted portion of the trunk connection. Thus, the on-premises CMS trunk group (e.g., corresponding to Site 44) and the hosted CMS trunk group (e.g., corresponding to Site 46) are connected via the SBC 50.

[0056] Fig.4 illustrates an example of another signaling diagram 150 that may be used to provision switches within a CMS group with appropriate certificates to enable authenticated operation for establishing connections via the SBC 50. In response to the enabled CMS service as disclosed herein, at 152, the configuration manager of the premise system 14 may issue a certificate registration request (CSR) to the hosted configuration manager, e.g., via the connection via the Premise Sync component 42 and the Sync API 40. At 154, the hosted configuration manager 30 may, in turn, forward the CSR to an appropriate certificate authority. For example, the request at 154 may be issued via a RESTful API. In response, at 156, the certificate authority may provide the appropriately signed certificate to the hosted configuration manager 30.The hosted configuration manager 30 may store the signed certificate in the hosted configuration database 36 for sending to the on-premises configuration manager. The on-premises configuration manager 16 may utilize the on-premises sync component 42 to, in turn, pull the certificate along with a certificate from a public certificate authority, as illustrated at 158. The on-premises configuration manager 16 may store the issued certificate, the public CA certificate, from the hosted configuration manager along with any assigned key to the switch or switches 22 at 158 ​​configured with the CMS on-premises trunk group (e.g., corresponding to the on-premises site 44). The one or more switches 22 may thus use the new key pair (e.g., comprising the certificates and the corresponding key) for authenticated secure connections with the SBC and other hosted services (e.g.,including CMS 32) that have been enabled for users and other resources of the premise-based site.

[0057] In light of the foregoing, an approach for simplifying the provisioning of hybrid system resources is disclosed. As noted, such provisioning involves provisioning cloud- and premise-based resources in response to minimal user interaction. For example, after uploading initial premise information via secure channels associated with the system setup, a CMS connection may be provisioned in response to minimal user input specifying the premise site and associated resource parameters for the premise site. As a result, the hosted site 46 and its associated resources may be implemented as part of a virtual private cloud within the hosted system 12, comprising hosted site resources 48 and 34 that provide an increased number of extensions for expanding the premise system to accommodate cloud users.Cloud users may be assigned to the on-premises system in response to assigning an extension, which is the one or more extension ranges implemented in the hosted site 46, to an existing or new user (e.g., in response to using input via the on-premises configuration manager). The administrator or other authorized users may not be aware that the range of extensions to which the one or more users are assigned is hosted in a multi-tenant cloud.

[0058] Those skilled in the art will understand that portions of the invention may be embodied as a method, data processing system, or computer program product (e.g., a non-transitory computer-readable medium having instructions executable by a processor). Accordingly, these portions of the invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware. Furthermore, portions of the invention may be a computer program product on a computer-usable storage medium having computer-readable program code embodied on the medium. Any suitable non-transitory computer-readable medium may be utilized, including, but not limited to, static and dynamic storage devices, hard disks, optical storage devices, and magnetic storage devices.

[0059] Certain embodiments are disclosed herein with reference to illustrations of methods, signaling flow diagrams, systems, and computer program products. It will be understood that blocks of the illustrations and combinations of the blocks in the illustrations may be implemented by computer-executable instructions. These computer-executable instructions may be provided to one or more processor cores of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus (or a combination of devices and circuits) to produce a machine, such that the instructions, executing via the processor, implement the functions specified in the block or blocks.

[0060] These computer-executable instructions may also be stored in a non-transitory computer-readable medium that can direct a computer or other programmable data processing device (e.g., one or more processing cores) to function in a particular manner, such that the instructions stored in the computer-readable medium result in a product that includes instructions that implement the function specified in the block or blocks of the flowchart.The computer program instructions may also be loaded onto a computer or other programmable data processing device to cause a series of operations to be performed on the computer or other programmable device to produce a computer-implemented process, such that the instructions running on the computer or other programmable device provide steps for implementing the functions specified in the block or blocks of the flowchart or associated description.

[0061] Examples have been described above. It is obviously not possible to describe every conceivable combination of components or methodologies, but those skilled in the art will recognize that many other combinations and permutations are possible. For example, while some examples disclosed herein appear to describe a primarily premise-based system that may take advantage of hosted use of resources, the systems and methods disclosed herein may utilize various combinations of other amounts of hosted and premise-based resources according to user requirements. Accordingly, the disclosure is intended to encompass all such changes, modifications, and variations that fall within the scope of this application, including the appended claims. As used herein, the term "includes" means including, but is not limited to, the term "comprising" means comprehensive, but is not limited to.The term "based on" means based on, at least in part. Additionally, where the disclosure or claims specify "a," "a first," or "another" element, or the equivalent thereof, this is to be interpreted as including one or more such elements, and not as requiring or excluding two or more such elements.

Claims

[1] Computer-implemented method comprising: in response to enabling a connection management service (CMS) of a multi-tenant hosted system for a premise-based system, storing premise data and user configuration data associated with the premise-based system in a hosted configuration database of the hosted system, wherein the premise-based system and the hosted system define a hybrid communications system; Deploying the CMS in response to user input to specify user and resource parameters for a premise trunk group of the premise-based system to connect to a hosted trunk group of the hosted system, wherein CMS deployment data is stored in the hosted configuration database; in response to the deployment of the CMS Deploying a Session Border Controller to control at least one connection between the premise trunk group and the hosted trunk group based on the CMS provisioning data; Updating the hosted configuration database to configure the hosted trunk group based on the CMS provisioning data; and Store the premise configuration data for the premise trunk group based on the CMS deployment data; wherein, prior to activating the CMS, the method further comprises establishing a premise synchronization connection for authenticated communication between a premise configuration manager of the premise-based system and a hosted configuration manager of the hosted system. [2] The computer-implemented method of claim 1, wherein providing the CMS further comprises: Creating the premise trunk group for a selected premise site in response to the user input, wherein the premise trunk group for connecting to the hosted trunk group for a communication session comprises a resource in the selected premise site and a resource in a corresponding hosted site comprising the hosted trunk group; and Create extension ranges to define extensions that are activated in response to other user input for the hybrid communications system. [3] The computer-implemented method of claim 2, wherein the extension ranges for the hybrid communication system comprise at least one extension range for the premise-based system and at least one extension range for the hosted system, at least one of which is specified in response to extension information provided via an extension user input. [4] The computer-implemented method of claim 2, wherein updating the hosted configuration database further comprises generating a directory of extensions for users and resources in the hybrid communication system, the directory comprising a mapping table for mapping between unique identifiers for system resources within the hybrid communication system and extensions associated with the system resources within the hosted system. [5] The computer-implemented method of claim 4, wherein the extensions in each extension range stored in the directory of hosted configuration data for the premise-based system define remote off-site extensions relative to the hosted site, and wherein the extensions in each extension range in each extension range stored in the directory of premise configuration data for the premise-based system define remote off-site extensions relative to the selected premise site. [6] The computer-implemented method of claim 2, wherein creating the premise trunk group further comprises: Specifying at least one switch in the selected premise site to connect to the hosted site; and Setting port parameters for each specified switch. [7] The computer-implemented method of claim 2, storing provisioning data in the premise configuration database to define at least a range of offsite extensions for the premise-based system, wherein at least one of the offsite extensions corresponds to cloud-based users provisioned in the hosted site for operation with the premise-based system in the multi-tenant hosted system. [8] A computer-implemented method according to any preceding claim, wherein the premise configuration data stored in response to the provisioning of the CMS is retrieved from the hosted configuration database via the premise synchronization connection, the configuration data defining user parameters and corresponding premise configuration data for a CMS premise site comprising the premise trunk group. [9] A non-transitory computer-readable medium storing machine-readable instructions, comprising: a portal application interface for accessing hosted provisioning services configured to operate in a hosted system of a unified hybrid communications system, wherein the hybrid system also includes at least one premise-based system; and a connection management service (CMS) to store CMS provisioning data in a hosted configuration database of the hosted system in response to user input via the portal application interface to configure a given premise trunk group of the premise-based system for operation in the hybrid system, the CMS to further provide a session border controller to control at least one connection between the premise trunk group and a hosted trunk group of the hosted system based on the CMS provisioning data, the CMS to update the hosted configuration database to configure the hosted trunk group and cause premise configuration data for the given premise trunk group to be stored in the premise system based on the CMS provisioning data; where in response to another user input via the The portal application interface of the CMS is further configured to store CMS premise site parameters for the given premise trunk group for a selected premise site in the CMS provisioning data, wherein the CMS premise site parameters specify at least one switch in the selected premise site to be connected to the session border controller for communications with resources in the hosted trunk group via the session border controller; wherein, in response to extension user input via the portal application interface, the CMS is further configured to store at least a range of extensions for resources in the premise-based system as part of the CMS premise site parameters for the given premise trunk group; and wherein the CMS is configured to set storage of provisioning data in the on-premises configuration database to define a set of off-site extensions for the on-premises system, wherein at least one of the off-site extensions corresponds to at least one cloud-based user or resource provisioned in the hosted system for operation with the on-premises system in the hybrid system; wherein the medium further comprises a premise synchronization application interface for providing an authenticated communication connection between a premise configuration manager of the premise-based system and a hosted configuration manager of the hosted system, wherein the premise configuration data stored in response to the provisioning of the CMS is retrieved from the hosted configuration database via the authenticated communication connection, the premise configuration database defining user parameters and corresponding premise configuration data for a CMS premise site comprising the premise trunk group. [10] The medium of claim 9, wherein the CMS is further configured to store at least a range of extensions for hybrid resources implemented in response to the extension user input in the updated hosted configuration database. [11] The medium of claim 10, wherein the updated hosted configuration database further comprises a directory of extensions for users and resources in each of the premise-based system and the hosted system in the hybrid system, the directory comprising a mapping table for mapping between unique identifiers for system resources within the hybrid communication system and extensions associated with the system resources within the hosted system. [12] The medium of claim 11, wherein the extensions in each extension range stored in the directory of hosted configuration data for the premise-based system define remote off-site extensions relative to the hosted system, and wherein the extensions in each extension range n in each extension range stored in the directory of premise configuration data for the premise-based system define remote off-site extensions relative to the selected premise site. [13] Hybrid communication system comprising: at least one premise-based system that includes a portal to access and provide enabled hosted services operating in a multi-tenant hosted system of the unified hybrid communications system; wherein the hosted system comprises a hosted configuration manager to control configuration and provisioning of hosted resources in the hosted system, wherein the hosted configuration manager comprises a connection management service (CMS) enabled for the premise-based system to store CMS provisioning data in a hosted configuration database of the hosted system in response to user input provided via the portal to configure a given premise trunk group of the premise-based system for operation in the hybrid system; a session border controller configured to control at least one connection between the given premise trunk group and a hosted trunk group of the hosted system based on the provisioning of the session border controller based on the CMS provisioning data, wherein the hosted configuration database is updated to configure the hosted trunk group and causes premise configuration data for the given premise trunk group to be stored in the premise-based system based on the CMS provisioning data, and a premise synchronization communication connection for providing authenticated communication between a premise configuration manager of the premise-based system and the hosted configuration manager of the hosted system, wherein the premise configuration data stored in response to the provisioning of the CMS is pulled from the hosted configuration database via the premise synchronization communication connection, the premise configuration database defining user parameters and corresponding premise configuration data for a CMS premise site comprising the premise trunk group. [14] The system of claim 13, wherein the updated hosted configuration database further comprises a directory of extensions for users and resources in each of the premise-based system and the hosted system of the hybrid communication system, the directory comprising a mapping table for mapping between unique identifiers associated with system resources configured to operate within the hybrid communication system and extensions associated with the system resources within the hosted system, wherein the extensions in each extension range stored in the hosted configuration data directory for the premise-based system define remote offsite extensions relative to the hosted system, and wherein the extensions in each extension range n in each extension range stored in the directory of premise configuration data for the premise-based system define remote offsite extensions relative to a premise site selected in response to a selection user input.

Citation Information

Patent Citations

  • Provisioning hybrid services

    US62152476P0

  • System and method for hub and spoke virtual private network

    US20060029032A1

  • Enterprise mobile network for providing cellular wireless service using licensed radio frequency spectrum and the session initiation protocol

    US20100014494A1

  • Systems and Methods of Providing Multi-Homed Tandem Access

    US20120320907A1

  • System and method for providing dynamic elasticity of contact center resources

    US20140079207A1