A system for cloud-enabling premises PDX

The integration of a SIP tie trunk and software bridge controller within the PBX system addresses the limitation of traditional PBX systems by enabling unified communications across both hardwired and mobile devices, enhancing functionality and user experience while maintaining operational efficiency.

JP7669519B2Active Publication Date: 2025-04-28INTERMEDIA NET INC
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2023560982
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-03-29
Filing Date
2022-03-28
Publication Date
2025-04-28
Estimated Expiration
2042-03-28

AI Technical Summary

Technical Problem

Traditional PBX systems are limited in integrating cellular or smart devices, as mobile devices act as 'dumb endpoints' for receiving calls and cannot initiate calls as part of the PBX system, lacking the ability to extend PBX functionality to these devices.

Method used

A system utilizing a Session Initiation Protocol (SIP) tie trunk between an existing PBX and a software bridge controller, allowing for unified communications by enabling simultaneous ringing on both hardwired and mobile devices, and allowing users to make outbound PSTN calls as if they were using their own hardwired devices.

Benefits of technology

Enables seamless integration of mobile and desktop applications with existing PBX systems, providing a unified communication experience across multiple devices, while maintaining ease of tracking and charging through existing PSTN services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007669519000001
    Figure 0007669519000001
  • Figure 0007669519000002
    Figure 0007669519000002
  • Figure 0007669519000003
    Figure 0007669519000003
Patent Text Reader

Abstract

In an example embodiment, a solution is provided that allows a PBX to utilize bridged mobile or desktop applications for collaboration and softphone usage. The solution works in conjunction with existing hardwired PBX devices without the need for additional hardware such as an edge router to be integrated with the PBX hardware. An incoming call can ring the user's hardwired device, such as a desk phone in the office, while simultaneously ringing a mobile device or desktop application (app). App users can make outbound PSTN calls and dial PBX extensions just as if they were using their hardwired device. In addition, PSTN services are utilized from the existing PBX, rather than bypassing it, which makes tracking and billing easier. A Session Initiation Protocol (SIP) tie trunk is used between the existing PBX and the software bridge controller.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] This application relates generally to telephone networks. More particularly, this application relates to a system for cloud-enabling premises PDX for telephone networks. [Background technology]

[0002] Many organizations use a private branch exchange (PBX) to manage telephone calls within the organization. Users of a PBX can communicate internally and externally. External communications may be handled using an analog telephone network such as the Public Switched Telephone Network (PSTN), using a digital network such as a T1, or using a packet network such as a Voice over IP (VoIP) network. A PBX allows an organization to have more telephones and other devices such as fax machines than they have physical telephone lines, and provides features such as call forwarding, voicemail, call recording, interactive voice menus, and call waiting.

[0003] Each device connected to the PBX is called an extension and has a designated extension telephone number. All of these devices, however, are physically connected to the PBX through a physical telephone or network cable and a line card or Ethernet port. As more users choose to use their mobile (cellular) phones / smartphones to make calls, at least in part, traditional PBXs are in danger of becoming obsolete.

[0004] Although some solutions are available to allow users to utilize cell phones / smartphones for calling and to integrate such phones into the PBX to enable features such as forwarding calls from internal physically connected phones within the PBX to cell phones, call forwarding does not integrate the mobile device or other device into the PBX. The mobile device or other device is only a dumb endpoint for receiving calls and has no in-call control capabilities. Also, the mobile device or other device cannot make calls as if it were part of the PBX. What is needed is a solution that allows organizations to extend PBX capabilities to cellular or smart devices.

[0005] The present disclosure is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference symbols indicate similar elements. [Brief description of the drawings]

[0006] [Figure 1] 1 is a block diagram illustrating a system for unified communications according to an example embodiment. [Diagram 2] FIG. 1 is a block diagram illustrating a system for cloud-activating a premises PDX according to an example embodiment. [Diagram 3] FIG. 1 is a block diagram illustrating a system for cloud-activating a premises PDX according to another example embodiment. [Figure 4] 4 is a ladder diagram illustrating a workflow according to an example embodiment. [Diagram 5] FIG. 10 illustrates an example scenario according to another example embodiment. [Figure 6] FIG. 10 illustrates another example scenario according to an example embodiment. [Figure 7] FIG. 10 illustrates another example scenario according to an example embodiment. [Figure 8] FIG. 10 illustrates another example scenario according to an example embodiment. [Figure 9]9 is a flow diagram illustrating a method 900 for bridging a first PBX and a second PBX according to an example embodiment. [Figure 10] FIG. 2 is a block diagram illustrating a software architecture that may be installed on any one or more of the devices described above. [Figure 11] FIG. 1 illustrates a schematic diagram of a machine in the form of a computer system on which a set of instructions may be executed to cause the machine to perform any one or more of the methodologies described herein, according to an example embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0007] The following description includes exemplary systems, methods, techniques, instruction sequences, and machine-readable media (e.g., computer program products) that embody example embodiments. In the following description, for purposes of explanation, numerous specific details are set forth to provide an understanding of various embodiments of the inventive subject matter. However, it may be apparent to one skilled in the art that embodiments of the inventive subject matter may be practiced without these specific details. In general, well-known instruction instances, protocols, structures, and techniques have not been shown in detail.

[0008] In one example embodiment, a solution is provided that allows a PBX to utilize bridged mobile or desktop applications that works in conjunction with existing hardwired PBX devices without requiring additional hardware such as an edge router integrated with the PBX hardware.

[0009] In one example embodiment, an incoming call can ring a user's hardwired device, such as a desk phone in an office, while simultaneously ringing a mobile device or desktop application (app). App users can make outbound PSTN calls and dial PBX extensions as if they were using their hardwired device. In addition, PSTN services are utilized from the existing PBX, rather than bypassing it, making tracking and billing easier.

[0010] In one example embodiment, the solution is accomplished by utilizing a Session Initiation Protocol (SIP) tie trunk between the existing PBX and a software bridge controller, providing a unified user experience with multiple devices that can be deployed virtually anywhere.

[0011] The configuration is accomplished by having every Cloud PBX user assign two extensions to the Bridge Controller to support "find me" and "follow me" services for the PBX users. The Bridge Controller and PBX are then configured to leverage private SIP tie trunks over the Internet to pass calls between the user devices. In particular, to bridge apps when the PBX device receives a PSTN or extension call, the PBX system is configured to invoke a simultaneous ringing pattern so that both the phone and the app can ring at the same time. The Cloud PBX user can dial the PBX extension and the PSTN number. The call is routed through the tie trunks. The outbound caller ID of the Cloud PBX user application is configured to be the same as the corresponding PBX user caller ID.

[0012] FIG. 1 is a block diagram illustrating a system 100 for unified communications according to an example embodiment. The term "unified communications" means that many different types of communications are handled through a single platform, including, for example, traditional telephone calls (such as PBX and PSTN calls), presence tracking (such as tracking whether an employee is available to communicate), chat and text capabilities, video conferencing, and file management. The unified communications platform may be referred to as a cloud PBX 102 and may include an application controller 104, an app server 106, a PBX server 108, configuration components 110, and a voice control panel (VCP) 112. The application controller 104 functions to control one or more applications running on the app server 106. Note that the app server 106 may actually be multiple app servers running for various applications available as part of the unified communications platform, including potentially separate applications for voice communications, chat / text, video conferencing, and file management. The PBX server 108 specifically handles the call routing of the calls. The configuration component 110 is where customer specific configurations may be maintained and acted upon, and the VCP 112 is a graphical user interface that can be used to set up and / or edit the configurations.

[0013] The Cloud PBX 102 may connect to a network layer 114 that includes a switching component 116 that performs packet switching and a Session Border Controller (SBC) 120 that communicates with the Internet 118 via SIP-tie trunks. An SBC 122 from another carrier may communicate directly with the PSTN 124.

[0014] Users of Cloud PBX 102 may maintain devices such as telephone / desktop clients 126 and mobile clients 128. The telephone / desktop clients 126 may connect directly through the Internet 118 via an Ethernet or Wi-Fi connection, for example, while the mobile clients may communicate through the Internet 118 via a mobile carrier 130 (or directly through a Wi-Fi connection).

[0015] The PBX 132 may maintain its own SBC 134, call routing component 136, feature component 138, and portal 140. The feature component 138 may provide various PBX features, such as internal text and presence features. Users of the PBX 132 may have hardwired clients 142, and the PBX 132 may connect to the PSTN 144. Furthermore, as described in more detail below, the PBX 132 may connect to the Internet 118 via a tie trunk.

[0016] FIG. 2 is a block diagram illustrating a system 200 for cloud-activating a premises PDX according to an example embodiment. The depicted system 200 is a simplified version of FIG. 1 to highlight key components in the bridge connection function. The system 200 includes a bridge controller 202, which may operate in a cloud environment. The bridge controller connects to a premises PBX 204 via a private SIP-tie trunk. A user may have one device 206 (such as a desk phone) directly connected to the premises PBX 204, while also having another device 208 (a desktop computer running a desktop app or a mobile device or cell phone running a mobile app) connected to the bridge controller through the Internet (and possibly through a cellular carrier). When another user calls the user, the system 200 allows both the device 206 and the device 208 to ring simultaneously.

[0017] The bridge controller 202 may actually include multiple components, including a session border controller and a cloud PBX. Figure 3 is a block diagram illustrating a system 300 for cloud activation of a premises PDX according to another example embodiment. Here, the system 300 includes a session border controller 302 and a cloud PBX 304.

[0018] The session border controller 302 serves as an interface between the cloud PBX 304 and the premises PBX 306. Some of the configuration processes to enable the additional features described herein are performed by the session border controller 302 and some are performed by the external PBX 304.

[0019] The diagram also shows three users and four devices 308, 310, 312, and 314. Device 308 is used by User 1 and is connected to Cloud PBX 304. For User 1, no devices are shown that are directly connected to Premise PBX 306. It is possible that User 1 has such devices and they are simply not shown, while it is also possible that User 1 simply does not have devices that can be directly connected to Premise PBX 306 (such as if User 1 is a fully remote or telecommuting worker). Devices 310 and 312 are used by User 2. Device 310 is connected to Cloud PBX 304 and device 312 is connected to Premise PBX 306. This may be the case when User 2 works in an office with a desk phone (such as device 312) and also occasionally takes work calls on a mobile device (such as device 310). Device 314 is used by User 3 and is connected to Premise PBX 306. For User 3, no devices are shown that are directly connected to Cloud PBX 304. While it is possible that User 3 has such devices and they are simply not shown, it is also possible that User 3 simply does not have devices that can be directly connected to Cloud PBX 304 (such as a worker who only takes work calls on a desk phone in the office and not on a mobile device, or perhaps does not own a mobile device).

[0020] Line 316 indicates that User 1 dials the extension of User 2 using device 308. This is sent to Cloud PBX 304, which may look up User 2 in a local routing table (local to Cloud PBX 304). The routing table may indicate that User 2 maintains devices 310 that connect directly to Cloud PBX 304, as well as devices that connect to Cloud PBX (while the local routing table may know what device 308 is, such as by having a device unique ID for device 308, it may not have such information for device 310). If simultaneous ringing is enabled for User 2's account, then Cloud PBX 304 indicates that it attempts to cause such simultaneous ringing. Line 318 indicates that Cloud PBX 304 rings device 310. Line 320 indicates that Cloud PBX 304 issues a find-me-follow-me (FMFM) command to extension 2 (EXT2). The local routing table informs Cloud PBX 304 of the identity 308 of the PBX in which User 2 maintains one or more other devices. Line 322 indicates that Cloud PBX 304 contacts the session border controller 302 corresponding to the premises PBX 306, and line 324 indicates that the corresponding session border controller 302 contacts the premises PBX 306 over a SIP tie trunk line with a DID command. Premises PBX 306 then accesses its local routing table to identify device 312 associated with User 2 and sends a DID command to device 312 so that device 312 rings at the same time as device 310.

[0021] Also depicted is the PSTN 326. Line 328 represents a call by the PSTN 326 to the premises PBX 306 calling User 2. The goal is for the call to also ring devices 310 and 312 simultaneously. The premises PBX 306 receives the call and looks up User 2 in a local routing table, notifying it that User 2 maintains device 312 that is directly connected to the premises PBX 306 and also maintains a device that is directly connected to the Cloud PBX 304. While the local routing table may have a unique device ID for device 312, it may not recognize the unique device ID for device 310. Line 330 represents the premises PBX 306 ringing device 312 directly. Line 332 indicates that the premises PBX 306 sends the call request to the corresponding session border controller 302, and line 334 represents that the corresponding session border controller 302 forwards the request to the Cloud PBX 304 over a SIP tie trunk. Cloud PBX 304 then searches its local routing table to identify device 310 corresponding to User 2, and line 336 then represents Cloud PBX 304 sending the call to device 310 to ring simultaneously with device 312.

[0022] Line 338 indicates that User 2 uses device 310 to call an outside number accessible through PSTN 326. Such Cloud DID call is handed off to Cloud PBX 304, which looks up User 2 in its local routing table and determines that such Cloud DID call needs to be sent through Premises PBX 306 (although technically it is not required to do so since Cloud PBX 304 may be directly connected to its own PSTN and possibly to PSTN 326, it may be beneficial to do so for tracking and / or billing purposes if User 2 is a user of Premises PBX 306). Thus, line 340 represents Cloud PBX sending the DID to the corresponding Session Border Controller 302, which then sends the DID to Premises PBX 306 (as represented by line 342). Premises PBX 306 then makes the call through PSTN 326 as represented by line 342.

[0023] Line 344 represents User 1 using device 308 to make a call to User 3, who manages device 314. Cloud PBX 304 looks up User 3 in its local routing table and determines that User 3 maintains a device in Premise PBX 306. Thus, line 346 represents Cloud PBX passing the call to the corresponding Session Border Controller 302, which then passes the call to Premise PBX 306 via a SIP tie trunk, as represented by line 348. Line 350 represents Premise PBX 306 sending the call to device 314, which rings (without simultaneous ringing, since User 3 has no other devices registered).

[0024] 4 is a ladder diagram illustrating a workflow 400 according to an example embodiment. Such workflow may include a customer 402, a VCP 404, a Cloud PBX 406, a billing component 408, a session border controller 410, and a premises PBX 412. The customer 402 may be an administrator who sets up a bridge connection of the Cloud PBX 406 and the premises PBX 412. The VCP 404 is a graphical user interface that may be used for configuration.

[0025] In operation 414, the customer 402 inputs tie trunk parameters to the VCP 404. These parameters may include, for example, a tie trunk name, a PBX type, a codec, and a number of simultaneous calls. In operation 416, the VCP 404 then provides the tie trunk parameters to the billing component 408, which generates a tie trunk in operation 418. In operation 420, the billing component 408 returns a tie trunk ID, a controller uniform resource locator (URL), a SIP user agent (UA) user name, and a SIP UA password. In operation 422, the VCP 404 returns the controller URL, the SIP user agent (UA) user name, and the SIP UA password to the customer 402. In operation 424, the VCP 404 may send the tie trunk ID to the Cloud PBX 406, which may populate the tie trunk ID into a corresponding entry in a local routing table.

[0026] In operation 426, the customer 402 enters the extensions reserved for the tie trunks into the VCP 404. These extensions are reserved for use by users of the premises PBX 412 and therefore are not used separately for other users of the cloud PBX 406. Thus, in operation 428, the VCP 404 registers these tie trunk extensions with the cloud PBX 406.

[0027] In operation 430, the customer 402 inputs a Cloud PBX user and sets FMFM parameters, a calling line ID (CLID), and an assigned bridge. In operation 432, the VCP 404 registers the Cloud PBX user with the Cloud PBX 406. Then, in operation 434, the customer 402 inputs SIP title trunk parameters, including a controller URL, a SIP UA user name, and a SIP UA password, into the premises PBX 412.

[0028] An outgoing call is made from the registered extension in operation 436. In response, Cloud PBX 406 adds the tie trunk ID to the SIP call request in operation 438, and in operation 440, Cloud PBX 406 sends a SIP request with the extension and the tie trunk ID to the billing component 408 so it can be registered as an outgoing call for billing purposes, at which point, in operation 442, the call is made through the premises PBX 412.

[0029] In operation 444, the inbound call is received via the premises PBX 412. In operation 446, the billing component 408 adds the inbound extension to a SIP call request and sends it to the Cloud PBX 406. In operation 448, the Cloud PBX 406 rings the corresponding device.

[0030] At operation 450, a call from a Cloud PBX user is received at Cloud PBX 406. In response, Cloud PBX 406 adds the tie trunk ID to the SIP call request at operation 452, and at operation 454, Cloud PBX 406 sends a SIP request with the PSTN and tie trunk ID to billing component 408 so it can be registered as an outgoing call for billing purposes, at which point, at operation 456, the call is made through premises PBX 412.

[0031] FIG. 5 illustrates an example scenario according to an example embodiment, where device 500 is used by an external call to dial a phone number present in premises PBX 502. The call is handed off to premises PBX 502 by PSTN 504. Premises PBX 502 identifies the extension for the call as x125 registered to Dan (by using the actual number dialed to extension mapping) and applies a SIM ring pattern to also ring extension x225, an external extension also registered to Dan. Such ring pattern is sent to Cloud PBX 506 through a tie trunk. Cloud PBX 506 then looks up the extension in its table to determine that device 508 should be ringed, while at the same time Premises PBX 502 looks up the extension in its table and the device that device 510 should be ringed. If no answer is found by Premises PBX 502, then it goes to voicemail.

[0032] FIG. 6 illustrates another example scenario according to an example embodiment. Here, device 600 is used by an external caller to dial a telephone number representing a general number for premises PBX 602. The call is handed off to premises PBX 602 by PSTN 604. Premises PBX 602 uses an auto attendant to request that the caller enter the extension of the call recipient. Once this is identified as x125 registered to Dan, a SIM ring pattern to also ring extension x225, an external extension also registered to Dan. Such ring pattern is sent through a tie trunk to Cloud PBX 606. Cloud PBX 606 then looks up the extension in its table to determine that device 608 should be ringed, while at the same time Premises PBX 602 looks up the extension and device 610 in its table that should be ringed. If no answer is found by Premises PBX 602, then it goes to voicemail.

[0033] 7 illustrates another example scenario according to an example embodiment, where device 700 is used by Dan to dial Amy's extension x120. Cloud PBX 702 identifies that x120 has Amy's registered Cloud PBX device 704, and then initiates a ringing pattern to ring device 704. Furthermore, Cloud PBX 702 passes the call through a SIP tie trunk to PBX 706, which looks up x120 in its table, determines that device 708 also serves that extension, and then initiates a ringing pattern on device 708.

[0034] 8 illustrates another example scenario according to an example embodiment, where device 800 is used by Dan to dial Amy's extension x120. Premises PBX 802 rings device 804 corresponding to x120. Furthermore, based on its tables, PBX 802 identifies that the call should be sent to extension x220 through a tie trunk, which then passes the call to Cloud PBX 806. Cloud PBX 806 then identifies that device 808 corresponds to such extension by being one of several potential devices registered with Amy's Cloud PBX 806. Thus, it initiates a ringing pattern to ring device 808.

[0035] 9 is a flow diagram illustrating a method 900 for bridging a first PBX and a second PBX according to an example embodiment. The first PBX has multiple communication devices directly connected via physical wiring, while lacking the capability to have communication devices directly connected via a wireless or Internet connection to the first PBX, while the second PBX has the capability to have communication devices directly connected via a wireless or Internet connection to the second PBX. In operation 902, a Session Initiation Protocol (SIP) tie trunk is established from a first Session Border Controller connected to the second PBX over the Internet to the first PBX.

[0036] In operation 904, a first device of a first user is registered under a first extension with a second PBX, where the first user has a second device registered with the first PBX under the second extension. In operation 906, the second PBX also maintains a first data structure indicating that the first device is registered to the first extension and a second data structure indicating that the first extension is associated with the first PBX via a SIP tie trunk. In some example embodiments, both of these data structures are contained within the same data structure.

[0037] In operation 908, upon receiving the call request from the first PBX via the first session border controller, the second PBX rings the first device when the first PBX rings the second device. This is accomplished by accessing a first data structure using an identification of the first extension to identify the first device. In operation 910, upon receiving the call request from the first device, the second PBX rings the first device when it sends the call request to the first PBX via the first session border controller. This is accomplished by accessing a second data structure using an identification of the first extension to identify the first PBX and the SIP tie trunk.

[0038] FIG. 10 is a block diagram 1000 illustrating a software architecture 1002 that may be installed on any one or more of the devices described above. It may be appreciated that FIG. 10 is merely a non-limiting example of a software architecture and that many other architectures may be implemented to facilitate the functionality described herein. In various embodiments, the software architecture 1002 is implemented by hardware, such as the machine 1100 of FIG. 11, which includes a processor 1110, a memory 1130, and an input / output (I / O) component 1150. In such an example architecture, the software architecture 1002 may be conceptualized as a stack of multiple layers, where each layer may provide a particular function. For example, the software architecture 1002 includes layers such as an operating system 1004, a library 1006, a framework 1008, and an application 1010. Optionally, the application 1010 may call an API call 1012 through the software stack and receive a message 1014 in response to the API call 1012, consistent with some embodiments.

[0039] In various implementations, the operating system 1004 manages hardware resources and provides common services. The operating system 1004 comprises, for example, a kernel 1020, services 1022, and drivers 1024. The kernel 1020 serves as an abstraction layer between the hardware and other software layers, consistent with some embodiments. For example, the kernel 1020 provides memory management, processor management (e.g., scheduling), component management, networking, and security configuration, among other functions. The services 1022 can provide other common services for other software layers. The drivers 1024 are responsible for controlling or interfacing with the underlying hardware, according to some embodiments. For example, the drivers 1024 may include a display driver, a camera driver, a BLUETOOTH (registered trademark) or BLUETOOTH (registered trademark) LE (Low Energy) driver, a flash memory driver, a serial communications driver (e.g., a USB (Universal Serial Bus) driver), a Wi-Fi (registered trademark) driver, an audio driver, a power management driver, and the like.

[0040] In some embodiments, libraries 1006 provide a low-level common infrastructure utilized by applications 1010. Libraries 1006 may include system libraries 1030 (e.g., C standard libraries), which may provide functions such as memory allocation functions, string manipulation functions, mathematical functions, etc. In addition, the library 1006 may include API libraries 1032 such as a media library (e.g., a library for supporting the presentation and manipulation of various media formats, such as Moving Picture Experts Group-4 (MPEG4), H.264 or Advanced Video Coding (AVC), Moving Picture Experts Group Layer-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, JPEG or Joint Photographic Experts Group (JPG), or Portable Network Graphics (PNG)), a graphics library (e.g., an OpenGL framework used for rendering two-dimensional (2D) and three-dimensional (3D) graphical content on a display), a database library (e.g., SQLite for providing various relational database functions), and a web library (e.g., WebKit for providing web browsing functions). The library 1006 may also include a wide variety of other libraries 1034 to provide many other APIs to the application 1010.

[0041] The framework 1008, according to some embodiments, provides a high-level common infrastructure that can be utilized by the applications 1010. For example, the framework 1008 provides various GUI functionality, high-level resource management, high-level location services, etc. The framework 1008 can provide a wide range of other APIs that can be utilized by the applications 1010, some of which may be specific to a particular operating system 1004 or platform.

[0042] In an example embodiment, the applications 1010 include a home application 1050, a contacts application 1052, a browser application 1054, a book reader application 1056, a location application 1058, a media application 1060, a messaging application 1062, a games application 1064, and a wide variety of other applications (such as third party applications 1066). According to some embodiments, the applications 1010 are programs that perform functions defined in the program. A variety of programming languages ​​may be employed to create one or more of the applications 1010, which may be structured in a variety of ways, such as an object-oriented programming language (e.g., Objective-C, Java, or C++) or a procedural programming language (e.g., C or assembly language). In one particular example, a third party application 1066 (e.g., an application developed using an ANDROID® or IOS® Software Development Kit (SDK) by an entity other than a particular platform vendor) may be mobile software running on a mobile operating system (such as IOS®, ANDROID®, a WINDOWS® phone, or another mobile operating system). In such an example, the third party application 1066 may invoke API calls 1012 provided by the operating system 1004 to facilitate the functionality described herein.

[0043] FIG. 11 illustrates a schematic representation of a machine 1100 in the form of a computer system on which a set of instructions may be executed to cause the machine 1100 to perform any one or more of the methodologies described herein, according to an example embodiment. In particular, FIG. 11 illustrates a schematic representation of a machine 1100 in the form of an example computer system on which instructions 1116 (e.g., software, programs, applications 1010, applets, apps, or other executable code) may be executed to cause the machine 1100 to perform any one or more of the methodologies described herein. For example, the instructions 1116 may cause the machine 1100 to perform the method 900 of FIG. 9. Additionally or alternatively, the instructions 1116 may implement FIGS. 1-9, etc. The instructions 1116 transform the general unprogrammed machine 1100 into a specific machine 1100 programmed to perform the functions described and illustrated in the manner described. In alternative embodiments, the machine 1100 may operate as a standalone device or be coupled (e.g., networked) with other machines. In a networked deployment, the machine 1100 may operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 1100 may include, but is not limited to, a server computer, a client computer, a PC, a tablet computer, a laptop computer, a netbook, a set-top box (STB), a portable digital assistant (PDA), an entertainment media system, a mobile (cellular) phone, a smartphone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a web appliance, a network router, a network switch, a network bridge, or any machine capable of executing, serially or otherwise, instructions 1116 that specify actions to be taken by the machine 1100.Additionally, while only a single machine 1100 is shown, the term "machine" should also be understood to include a collection of machines 1100 that individually or jointly execute instructions 1116 to perform any one or more of the methodologies described herein.

[0044] The machine 1100 may include a processor 1110, a memory 1130, and an input / output component 1150, which may be configured to communicate with each other, such as via a bus 1102. In an example embodiment, the processor 1110 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, a processor 1112 and a processor 1114 that may execute instructions 1116. The term "processor" is intended to include a multi-core processor 1110 that may include two or more independent processors 1112 (sometimes referred to as "cores") that may execute instructions 1116 simultaneously. Although FIG. 11 shows multiple processors 1110, the machine 1100 may have a single processor 1112 having a single core, a single processor 1112 having multiple cores (e.g., a multi-core processor), multiple processors 1110 having a single core, multiple processors 1110 having multiple cores, or any combination thereof.

[0045] The memory 1130 may comprise a main memory 1132, a static memory 1134, and a storage unit 1136, all accessible to the processor 1110, such as via the bus 1102. The main memory 1132, the static memory 1134, and the storage unit 1136 store instructions 1116 that embody any one or more of the methodologies or functions described herein. The instructions 1116 may also reside, completely or partially, in the main memory 1132, in the static memory 1134, in the storage unit 1136, in one or more of the processors 1110 (e.g., in a processor's cache memory), or any suitable combination thereof, during execution of the instructions 1116 by the machine 1100.

[0046] The input / output components 1150 may include a wide variety of components for receiving input, providing output, generating output, sending information, exchanging information, capturing measurements, and the like. The particular input / output components 1150 included in a particular machine 1100 may depend on the type of machine 1100. For example, a portable machine such as a mobile phone may likely include a touch input device or other such input mechanism, while a headless server machine may not likely include such a touch input device. It may be appreciated that the input / output components 1150 may include many other components not shown in FIG. 11. The input / output components 1150 are categorized according to function merely to simplify the following description, and the categorization is in no way limiting. In various embodiments, the input / output components 1150 may include an output component 1152 and an input component 1154. Output components 1152 may include visual components (e.g., a display such as a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), auditory components (e.g., speakers), haptic components (e.g., vibration monitors, resistance mechanisms), other signal generators, etc. Input components 1154 may include alphanumeric input components (e.g., a keyboard, a touch screen configured to receive alphanumeric input, a photo-optical keyboard, or other alphanumeric input component), point-based input components (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or another pointing instrument), haptic input components (e.g., a physical button, a touch screen that provides the position and / or force of a touch or touch gesture, or other haptic input component), audio input components (e.g., a microphone), etc.

[0047] In further example embodiments, the input / output component 1150 may include a biometric component 1156, a motion component 1158, an environmental component 1160, or a position component 1162, among a wide range of other components. For example, the biometric component 1156 may include components for detecting facial expressions (e.g., hand expressions, facial expressions, vocal expressions, body gestures, or eye tracking), measuring biosignals (e.g., blood pressure, heart rate, body temperature, sweat, or brain waves), identifying people (e.g., voice identification, retina identification, face identification, fingerprint identification, or electroencephalogram-based identification), and the like. The motion component 1158 may include an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), and the like. The environmental components 1160 may include, for example, a light sensor component (e.g., a light meter), a temperature sensor component (e.g., one or more thermometers to detect ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), an acoustic sensor component (e.g., one or more microphones to detect background noise), a proximity sensor component (e.g., an infrared sensor to detect nearby objects), a gas sensor (e.g., a gas detection sensor to detect concentrations of harmful gases for safety or to measure pollutants in the atmosphere), or other components that may provide readings, measurements, or signals corresponding to the surrounding physical environment. The location component 1162 may include a location information sensor component (e.g., a global positioning system (GPS) receiver component), an altitude sensor component (e.g., an altimeter or barometer to detect air pressure from which altitude may be derived), a direction sensor component (e.g., a magnetometer), etc.

[0048] Communications may be implemented using a wide variety of technologies. The input / output component 1150 may comprise a communication component 1164 operable to couple the machine 1100 to a network 1180 via a coupling 1182 and to couple the machine 1100 to a device 1170 via a coupling 1172. For example, the communication component 1164 may comprise a network interface component or another suitable device for interfacing with the network 1180. In further examples, the communication component 1164 may include a wired communication component, a wireless communication component, a cellular communication component, a near field communication (NFC) component, a Bluetooth component (e.g., Bluetooth Low Energy), a Wi-Fi component, and other communication components for providing communication via other modalities. The device 1170 may be another machine or any of a wide variety of peripheral devices (e.g., a peripheral device coupled via USB).

[0049] Additionally, the communication component 1164 may include a component that detects an identifier or is operable to detect an identifier. For example, the communication component 1164 may include a radio frequency identification (RFID) tag reading component, an NFC smart tag detection component, an optical reading component (e.g., an optical sensor for detecting one-dimensional barcodes such as Universal Product Code (UPC) barcodes, multi-dimensional barcodes such as Quick Response (QR) Code, Aztec Code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D barcodes, and other optical codes), or an acoustic detection component (e.g., a microphone for identifying tagged audio signals). Additionally, various information may be derived via communications component 1164, such as location information via Internet Protocol (IP) geolocation, location information via Wi-Fi® signal triangulation, location information via detecting NFC beacon signals that may indicate specific location information, etc.

[0050] Executable Instructions and Machine Storage Media Various memories (i.e., 1130, 1132, 1134 and / or memory of processor 1110) and / or storage units 1136 may store one or more sets of instructions 1116 and data structures (e.g., software) that embody or are utilized by any one or more of the methodologies or functions described herein. These instructions (e.g., instructions 1116), when executed by processor 1110, cause various operations to be performed to implement the disclosed embodiments.

[0051] As used herein, the terms "machine storage medium", "device storage medium", and "computer storage medium" may mean the same thing and be used interchangeably. The terms refer to a single or multiple storage devices and / or media (e.g., centralized or distributed databases and / or associated caches and servers) that store executable instructions 1116 and / or data. The terms are therefore to be understood to include, but are not limited to, solid-state memory, including the processor 1110's internal memory or cloud, and optical and magnetic media. Specific examples of machine storage media, computer storage media, and / or device storage media include, by way of example, semiconductor memory devices (e.g., erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), field-programmable gate arrays (FPGA), and flash memory devices), magnetic disks (such as internal hard disks and removable disks), magneto-optical disks, and non-volatile memory including CD-ROM and DVD-ROM disks. The terms "machine storage media," "computer storage media," and "device storage media" specifically exclude carrier waves, modulated data signals, and other such media, at least some of which are covered by the term "signal media" described below.

[0052] Transmission medium In various example embodiments, one or more portions of network 1180 may be an ad-hoc network, an intranet, an extranet, a VPN, a LAN, a WLAN, a WAN, a WWAN, a MAN, the Internet, a portion of the Internet, a portion of the PSTN, a plain old telephone service (POTS) network, a mobile (cellular) telephone network, a wireless network, a Wi-Fi network, another type of network, or a combination of two or more of such networks. For example, network 1180 or a portion of network 1180 may include a wireless or cellular network, and coupling 1182 may be a code division multiple access (CDMA) connection, a Global System for Mobile communications (GSM) connection, or another type of cellular or wireless coupling. In such examples, the coupling 1182 may implement any of various types of data transfer technologies (such as Single Carrier Radio Transmission Technology (1xRTT), Evolution-Data Optimized (EVDO) technology, General Packet Radio Service (GPRS) technology, Enhanced Data rates for GSM Evolution (EDGE) technology, third Generation Partnership Project (3GPP) including 3G, fourth generation wireless (4G) networks, Universal Mobile Telecommunications System (UMTS), High Speed ​​Packet Access (HSPA), Worldwide Interoperability for Microwave Access (WiMAX), Long-Term Evolution (LTE) standards, others defined by various standards setting organizations, other long-range protocols, or other data transfer technologies).

[0053] The instructions 1116 may be transmitted or received over the network 1180 using a transmission medium via a network interface device (e.g., a network interface component included in the communication component 1164) and utilizing any one of several known transmission protocols (e.g., HTTP). Similarly, the instructions 1116 may be transmitted or received using a transmission medium to the device 1170 via a coupling 1172 (e.g., a peer-to-peer coupling). The terms "transmission medium" and "signal medium" mean the same thing and may be used interchangeably in this disclosure. The terms "transmission medium" and "signal medium" shall be understood to include any intangible medium capable of storing, encoding, or carrying the instructions 1116 for execution by the machine 1100, including digital or analog communication signals or other intangible media to facilitate communication of such software. Thus, the terms "transmission medium" and "signal medium" shall be understood to include any form of modulated data signal, carrier wave, and the like. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.

[0054] Computer-Readable Medium The terms "machine-readable medium," "computer-readable medium," and "device-readable medium" mean the same thing and may be used interchangeably in this disclosure. The term is defined to include both machine storage media and transmission media. Thus, the term includes both storage devices / media and carrier waves / modulated data signals.

Claims

1. 1. A system comprising: a first session border controller configured to establish a Session Initiation Protocol (SIP) tie trunk over the Internet to a first private branch exchange (PBX), the first PBX having a number of communication devices directly connected via physical wiring, but lacking the capability to have communication devices directly connected to the first PBX via a wireless connection or an Internet connection; and a second PBX capable of having a communications device connected to the second PBX via a wireless connection or a direct Internet connection and configured to register a first device of a first user under a first extension, wherein the first user has a second device registered to the first PBX under a second extension, the second PBX further configured to maintain a first data structure indicating that the first device is registered to the first extension and to maintain a second data structure indicating that the first extension is associated with the first PBX via the SIP tie trunk.

2. 2. The system of claim 1, wherein the second PBX is further configured, upon receiving a call request from the first PBX via the first session border controller, to ring the first device when the first PBX is ringing the second device.

3. 3. The system of claim 2, wherein the second PBX rings the second device by accessing the first data structure using an identification of the first extension to identify the first device.

4. 2. The system of claim 1, wherein the second PBX is further configured, upon receiving a call request for the first device, to ring the first device while transmitting the call request to the first PBX via the first session border controller.

5. 5. The system of claim 4, wherein the second PBX sends the call request to the first PBX by accessing the second data structure using an identification of the first extension to identify the first PBX and the SIP tie trunk.

6. The system of claim 1 , wherein the first data structure and the second data structure are both part of a single data structure.

7. 2. The system of claim 1, wherein the first PBX is connected to a public switched telephone network.

8. 1. A method for bridging a first private branch exchange (PBX) and a second private branch exchange (PBX), comprising: establishing a Session Initiation Protocol (SIP) tie trunk from a first Session Border Controller connected to the second PBX via an Internet to the first PBX, the first PBX having a plurality of communication devices directly connected via physical wiring but lacking the capability of having communication devices directly connected to the first PBX via a wireless connection or an Internet connection, the second PBX having the capability of having communication devices directly connected to the second PBX via a wireless connection or an Internet connection; registering a first device of a first user under a first extension using the second PBX, the first user having a second device registered with the first PBX under a second extension; maintaining a first data structure indicating that the first device is registered to the first extension, and maintaining a second data structure indicating that the first extension is associated with the first PBX via the SIP tie trunk.

9. 9. The method of claim 8, further comprising, upon receiving a call request from the first PBX via the first session border controller, using the second PBX to ring the first device when the first PBX is ringing the second device.

10. 10. The method of claim 9, wherein the second PBX rings the second device by accessing the first data structure using an identification of the first extension to identify the first device.

11. 9. The method of claim 8, further comprising the step of, upon receiving a call request for the first device, using the second PBX to ring the first device while transmitting the call request to the first PBX through the first session border controller.

12. 12. The method of claim 11, wherein the second PBX sends the call request to the first PBX by accessing the second data structure using an identification of the first extension to identify the first PBX and the SIP tie trunk.

13. The method of claim 8 , wherein the first data structure and the second data structure are both part of a single data structure.

14. 9. The method of claim 8, wherein the first PBX is connected to a public switched telephone network.

15. 1. A computer-readable storage medium comprising instructions, which when implemented by one or more computers, cause the one or more computers to: Establishing a Session Initiation Protocol (SIP) tie trunk over the Internet from a first Session Border Controller connected to a second PBX, the first PBX having a plurality of communication devices directly connected via physical wiring but lacking the capability of having communication devices directly connected to the first PBX via a wireless connection or an Internet connection, the second PBX having the capability of having communication devices directly connected to the second PBX via a wireless connection or an Internet connection; registering a first device of a first user under a first extension using the second PBX, the first user having a second device registered with the first PBX under a second extension; maintaining a first data structure indicating that the first device is registered to the first extension, and maintaining a second data structure indicating that the first extension is associated with the first PBX via the SIP tie trunk.

16. 16. The computer-readable storage medium of claim 15, wherein the operations further comprise, upon receiving a call request from the first PBX via the first session border controller, ringing the first device using the second PBX when the first PBX is ringing the second device.

17. 17. The computer-readable storage medium of claim 16, wherein the second PBX rings the second device by accessing the first data structure using an identification of the first extension to identify the first device.

18. 16. The computer-readable storage medium of claim 15, wherein the operations further comprise: upon receiving a call request for the first device, ringing the first device using the second PBX while transmitting the call request to the first PBX via the first session border controller.

19. 20. The computer-readable storage medium of claim 18, wherein the second PBX sends the call request to the first PBX by accessing the second data structure using an identification of the first extension to identify the first PBX and the SIP tie trunk.

20. 16. The computer-readable storage medium of claim 15, wherein the first data structure and the second data structure are both part of a single data structure.

Citation Information

Patent Citations

  • Public emergency liaison conference speech system

    JP2003143303A

  • Mobile telephone extension system and extension telephone roaming method

    JP2006080949A

  • Telephone service method and system using personal switch box

    JP2017123646A

  • System and Method for Providing IP PBX Service

    US20100162034A1

  • Communicating Information Pertaining to Cancelling of Forked Call Requests

    US20120170725A1