IP Library Granted Patent US 8,054,947
Granted Patent B2
US 8,054,947 · App. 11/048,044 · Granted Nov 8, 2011

Apparatus and method for multiplexing communication signals

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,054,947
App. No.
11/048,044
Granted
Nov 8, 2011
Kind
B2
Abstract

In a PBX environment, a middleware module abstracts communication cards so that the plurality of channels associated therewith are grouped for efficiency. The middleware module recognizes unoperational channels, and restarts the hardware associated with the channels as well as allowing conferencing and transferring calls when the PBX switch does not support same. Preferably, for outgoing calls, the middleware adapter controls the state of interfaces for all hardware adapters and tries to deliver calls over active interfaces. In case of failure, the middleware adapter investigates and makes a decision if the call should be delivered over another adapter. In this way, redundant and highly available solutions are implemented transparent to application and interface drivers. For incoming calls, the middleware adapter accepts calls from all hardware adapters and presents these calls to applications as if these calls are issued by one adapter.

Claims (46)

1. A system for maintaining connections with a public switched telephone network (PSTN) and with devices of a private branch exchange (PBX), wherein the system comprises:

(a) a personal computer (PC) based server for housing a plurality of printed circuit boards for routing signals onto communication interfaces of the PSTN or the PBX and a plurality of application programming interfaces (APIs) for controlling operation of the communication interfaces;

(b) a memory for storing an interface routine in the server; and

(c) a processor in the server, the processor being in communication with the memory for running the interface routine such that the processor is operative to:

isolate the plurality of APIs from the plurality of printed circuit boards;

determine whether each of the plurality of printed circuit boards is operational;

store a state for each of the plurality of printed circuit boards by running a watchdog routine;

store a state of operation for each of the plurality of printed circuit boards that is operational;

select, by the plurality of APIs, one of the plurality of printed circuit boards for utilization to complete a connection;

if the selected printed circuit board is not operational, attempt reload of the selected printed circuit board;

if the selected printed circuit board is not operational after attempting reload, then store a state of the selected not operational printed circuit board as ignore to prevent the selected printed circuit board from being utilized on subsequent attempts;

if a state of one of the plurality of printed circuit boards is newly loaded during the watchdog routine, start the newly loaded printed circuit board, determine a state of the newly loaded printed circuit board, store the state of the newly loaded printed circuit board;

receive a first signal that requests usage of the selected printed circuit board from one of the plurality of APIs;

if the selected printed circuit board is operational, then direct the first signal to the selected printed circuit board; and

if the selected printed circuit board is not operational and has an ignore state, choose an alternative printed circuit board without trying the selected non-operational printed circuit board based upon the state of the non-operational selected printed circuit board.

2. A system as recited in claim 1 , wherein the processor is further operative to activate a newly added printed circuit board and allow the newly added printed circuit board to be called by any of the plurality of API.

3. A system as recited in claim 1 , wherein the first signal is selected from the group consisting of data, a facsimile transmission, and a telephone connection.

4. A system for maintaining connections with a plurality of communication cards of a private branch exchange (PBX), wherein the PBX includes at least one application programming interface (API) for controlling operation of the PBX, the system comprising:

(a) a PC server having a memory for storing a watchdog routine and a processor for running the watchdog routine; and

(b) an adapter card in communication with the processor, the adapter card being operative to:

use the memory for storing an interface routine and state information related to a routine run by the watchdog routine; and

wherein the processor being further operative to:

(1) check and store a state of the plurality of communication cards based on a prompt from the watchdog routine;

(2) test operability of the plurality of communication cards, wherein if one of the communication cards is not operational, attempt reload and restart of the non-operational communication card;

(3) if the non-operational communication card is still not operational after attempting reload and restart, then prevent the non-operational communication card from being called and disassociate all resources utilized by the non-operational communication card by identifying a state of the non-operational communication card as non-operational;

(4) if the state of one of the plurality of communication cards is newly loaded, attempt load and start of the newly loaded communication card;

(5) if the newly loaded communication card is not operational after attempting load and start, then prevent the newly loaded communication card from being called and disassociate all resources utilized by the newly loaded communication card by identifying a state of the newly loaded communication card as non-operational;

(6) receive a signal that requests utilization of a communication card from the at least one API;

(7) if the requested communication card is operational, then direct the signal to the requested communication card; and

(8) if the requested communication card is not operational based on the checking of the state of the plurality of communication cards, then choose an alternative communication card from the plurality of communication cards without trying the requested communication card.

5. A system as recited in claim 4 , wherein the processor is further operative to notify the plurality of API that communication cards are not operational and to simulate disconnection thereof.

6. A system as recited in claim 4 , wherein the processor is further operative to check the state periodically.

7. A system as recited in claim 4 , wherein the processor checks the state approximately every 20 seconds.

8. A system as recited in claim 4 , wherein the processor is further operative to:

isolate the at least one API from the plurality of communication cards.

9. A method for maintaining connections between devices of a private branch exchange (PBX) or public switched telephone network (PSTN) using a personal computer running a server program having a plurality of interface printed circuit boards and a plurality of application programming interfaces (APIs) for controlling operation of the PBX or PSTN, the method comprising the steps of:

utilizing each of the plurality of interface printed circuit boards when the plurality of interface printed circuit boards are operational without redundant unused boards;

determining whether any of the plurality of interface printed circuit boards are non-operational;

storing a state for each of the plurality of printed circuit boards by running a watchdog routine;

storing a state of operation for each of the plurality of printed circuit boards that is operational;

selecting, by the plurality of APIs, one of the plurality of printed circuit boards for utilization to complete a connection;

if a selected printed circuit board is not operational, attempting reload of the selected interface printed circuit board;

if the selected printed circuit board is not operational after attempting reload, then marking the selected interface printed circuit board as non-operational;

receiving a signal that calls one of the plurality of interface printed circuit boards from one of the plurality of APIs;

if the selected interface printed circuit board is operational, then directing the signal to the called printed circuit board; and

if the selected interface printed circuit board is marked non-operational, choosing an alternative interface printed circuit board without trying the selected non-operational interface printed circuit board.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2018
From: DIALOGIC CORPORATION
To: SANGOMA US INC.
Reel/Frame 045111/0957 →
RELEASE OF SECURITY INTEREST Recorded Jan 25, 2018
From: SILICON VALLEY BANK
To: DIALOGIC (US) INC.
Reel/Frame 044733/0845 →
SECURITY AGREEMENT Recorded Jun 30, 2015
From: DIALOGIC (US) INC.; DIALOGIC INC.; DIALOGIC US HOLDINGS INC.; DIALOGIC DISTRIBUTION LIMITED; DIALOGIC MANUFACTURING LIMITED; DIALOGIC CORPORATION; DIALOGIC GROUP INC.
To: SILICON VALLEY BANK
Reel/Frame 036037/0165 →
RELEASE OF SECURITY INTEREST Recorded Nov 25, 2014
From: OBSIDIAN, LLC
To: DIALOGIC CORPORATION, F/K/A EICON NETWORKS CORPORATION; DIALOGIC INC.; DIALOGIC (US) INC., F/K/A DIALOGIC INC. AND F/K/A EICON NETWORKS INC.; DIALOGIC DISTRIBUTION LIMITED, F/K/A EICON NETWORKS DISTRIBUTION LIMITED; DIALOGIC MANUFACTURING LIMITED, F/K/A EICON NETWORKS MANUFACTURING LIMITED; DIALOGIC US HOLDINGS INC.; DIALOGIC RESEARCH INC., F/K/A EICON NETWORKS RESEARCH INC.; DIALOGIC JAPAN, INC., F/K/A CANTATA JAPAN, INC.; CANTATA TECHNOLOGY, INC.; EAS GROUP, INC.; SHIVA (US) NETWORK CORPORATION; EXCEL SWITCHING CORPORATION; EXCEL SECURITIES CORPORATION; CANTATA TECHNOLOGY INTERNATIONAL, INC.; BROOKTROUT NETWORKS GROUP, INC.; BROOKTROUT TECHNOLOGY, INC.; SNOWSHORE NETWORKS, INC.; BROOKTROUT SECURITIES CORPORATION
Reel/Frame 034468/0654 →