Telecommunications provider agent
First Claim
1. A method of operating a provider agent software interface between an telephony hub and a session manager, wherein the telephony hub is operational to interwork between telephony signals over a plurality of channels and Asynchronous Transfer Mode (ATM) signals over a plurality of ATM virtual connections in response to interwork instructions, wherein the telephony hub is operational to detect on-hook events, off-hook events, and digit events and to provide event messages, wherein the telephony hub is operational to provide dial tone, ringback, and busy signals in response to tone instructions, wherein the session manager is operational to transmit and receive invite messages, reply messages, join messages, confirm messages, and terminate messages, the method comprising:
- (a) receiving an off-hook event message for a channel from the telephony hub, and in response, transmitting a dial tone instruction for the channel to the telephony hub;
(b) receiving a plurality of digit event messages for the channel from the telephony hub, and in response, transmitting an invite message indicating a dialed number for the channel to the session manager;
(c) receiving a reply message for the channel from the session manager indicating an alerting condition, and in response, transmitting a ringback tone instruction for the channel to the telephony hub;
(d) receiving a join message for the channel from the session manager, and in response, transmitting an add stream message for the channel to the session manager;
(e) receiving a confirm message for the channel from the session manager, and in response, transmitting an interwork instruction for the channel to the telephony hub to interwork a telephony signal on the channel with an ATM signal on a selected virtual channel for the channel; and
(f) repeating steps (a), (b), (c), (d), and (e) for at least 100 additional channels.
1 Assignment
0 Petitions
Accused Products
Abstract
The invention is a provider agent product and method that operates as a software interface between an telephony hub and a session manager in an advanced communications network. The provider agent receives event messages from the telephony hub indicating on-hook events, off-hook events, and digit events. The provider agent instructs the telephony hub to provide dial tone, ring current, ringback, and busy signals to the telephones. The provider agent also exchanges messages with a session manager in the network. These messages include: invite messages, reply messages, join messages, confirm messages, and terminate messages. In response to the above processing, the provider agent instructs the telephony hub to interwork telephony signals on a telephony channel with ATM signals on an ATM virtual channel. The provider agent is comprised of a plurality of software objects that are stored on a software storage medium and that include: a controller object, port objects, and event objects. The provider agent objects are executed by a multithreaded processing system and each object has a separate processing thread. The provider agent and the telephony hub communicate through an application programming interface that is specified in an Interface Definition Language (IDL) of a Common Object Request Broker Architecture (CORBA).
15 Citations
20 Claims
-
1. A method of operating a provider agent software interface between an telephony hub and a session manager, wherein the telephony hub is operational to interwork between telephony signals over a plurality of channels and Asynchronous Transfer Mode (ATM) signals over a plurality of ATM virtual connections in response to interwork instructions, wherein the telephony hub is operational to detect on-hook events, off-hook events, and digit events and to provide event messages, wherein the telephony hub is operational to provide dial tone, ringback, and busy signals in response to tone instructions, wherein the session manager is operational to transmit and receive invite messages, reply messages, join messages, confirm messages, and terminate messages, the method comprising:
-
(a) receiving an off-hook event message for a channel from the telephony hub, and in response, transmitting a dial tone instruction for the channel to the telephony hub;
(b) receiving a plurality of digit event messages for the channel from the telephony hub, and in response, transmitting an invite message indicating a dialed number for the channel to the session manager;
(c) receiving a reply message for the channel from the session manager indicating an alerting condition, and in response, transmitting a ringback tone instruction for the channel to the telephony hub;
(d) receiving a join message for the channel from the session manager, and in response, transmitting an add stream message for the channel to the session manager;
(e) receiving a confirm message for the channel from the session manager, and in response, transmitting an interwork instruction for the channel to the telephony hub to interwork a telephony signal on the channel with an ATM signal on a selected virtual channel for the channel; and
(f) repeating steps (a), (b), (c), (d), and (e) for at least 100 additional channels. - View Dependent Claims (2, 3, 4, 5, 6, 7)
(g) transmitting a second interwork instruction for the channel to the telephony hub to stop interworking the channel and the selected virtual channel;
(h) after step (g), receiving another invite message for the channel from the session manager, and in response, determining that the invite message is associated with the channel, transmitting a ring instruction for the channel to the telephony hub, and transmitting another reply message indicating an alerting condition for the channel to the session manager;
(i) receiving another off-hook event message for the channel from the telephony hub, and in response, transmitting another join message for the channel to the session manager;
(j) receiving a join stream message for the channel from the session manager, and in response, transmitting a reference information message for the channel to the session manager;
(k) receiving a confirm message for the channel from the session manager, and in response, transmitting a third interwork instruction for the channel to the telephony hub to interwork another telephony signal on the channel with another ATM signal on another selected virtual channel for the channel; and
(l) repeating steps (g), (h), (i), (j) and (k) for at least 100 additional channels.
-
-
3. The method of claim 2 wherein step (g) further comprises receiving an on-hook event message for the channel from the telephony hub, and in response, transmitting a terminate message for the channel to the session manager and transmitting the second interwork instruction for the channel.
-
4. The method of claim 2 wherein step (g) further comprises receiving a termination message for the channel from the session manager, and in response, transmitting the second interwork instruction for the channel.
-
5. The method of claim 1 wherein the provider agent is comprised of a plurality of objects and wherein the provider agent is executed by a multithreaded processing system and the objects each have a separate processing thread.
-
6. The method of claim 1 wherein the provider agent and the telephony hub communicate through an application programming interface that is specified in an Interface Definition Language (IDL) of a Common Object Request Broker Architecture (CORBA).
-
7. The method of claim 1 wherein determining that the invite message is associated with the channel in step (h) further comprises associating the called number in the invite message with the channel.
-
8. A method of operating a provider agent software interface between an telephony hub and a session manager, wherein the telephony hub is operational to interwork between telephony signals over a plurality of channels and Asynchronous Transfer Mode (ATM) signals over a plurality of ATM virtual connections in response to interwork instructions, wherein the telephony hub is operational to detect on-hook events, off-hook events, and digit events and to provide event messages, wherein the telephony hub is operational to generate dial tone, ringback, and busy signals in response to tone instructions, wherein the session manager is operational to transmit and receive invite messages, reply messages, join messages, confirm messages, and terminate messages, the method comprising:
-
(a) in a first event object, receiving an off-hook event message for a first channel from the telephony hub, and in response, transmitting an off-hook indication for the first channel to a first port object;
(b) in the first port object, receiving the off-hook indication for the first channel, and in response, transmitting a dial tone instruction for the first channel to the telephony hub;
(c) in the first event object, receiving a plurality of digit event messages for the first channel from the telephony hub, and in response, transmitting a plurality of digit indications for the first channel to the first port object;
(d) in the first port object, receiving the digit indications for the first channel, and in response, transmitting a dialed number indication for the first channel to a controller object;
(e) in the controller object, receiving the dialed number indication for the first channel, and in response, transmitting an invite message for the first channel to the session manager;
(f) in the controller object, receiving a reply message for the first channel from the session manager indicating an alerting condition, and in response, transmitting an alerting indication for the first channel to the first port object;
(g) in the first port object, receiving the alerting indication for the first channel, and in response, transmitting a ringback tone instruction for the first channel to the telephony hub;
(h) in the controller object, receiving a join message for the first channel from the session manager, and in response, transmitting an add stream message for the first channel to the session manager;
(i) in the controller object, receiving a confirm message for the first channel from the session manager, and in response, transmitting a confirm indication for the first channel to the first port object; and
(j) in the first port object, receiving the confirm indication for the first channel, and in response, transmitting a first interwork instruction for the first channel to the telephony hub to interwork a telephony signal on the first channel and with an ATM signal on a selected virtual channel for the first channel. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
(k) in the controller object, transmitting a controller object heartbeat signal at regular intervals;
(l) in the first port object, transmitting a first port object heartbeat signal at regular intervals;
(m) in the first event object, transmitting a first event object heartbeat signal at regular intervals; and
(n) in a thread manager, receiving the heartbeat signals, and in response, transmitting a switch-over signal if at least a portion of the heartbeat signals are not received.
-
-
12. The method of claim 8 further comprising after step (j):
-
(k) in the first event object, receiving an on-hook event message for the first channel from the telephony hub, and in response, transmitting an on-hook indication for the first channel to the first port object;
(l) in the first port object, receiving the on-hook indication for the first channel, and in response, transmitting a terminate indication for the first channel to the controller object and transmitting a second interwork instruction for the first channel to the telephony hub to stop interworking the first channel and the selected virtual channel for the first channel; and
(m) in the controller object, receiving the terminate indication for the first channel, and in response, transmitting a terminate message for the first channel to the session manager.
-
-
13. The method of claim 8 further comprising after step (j):
-
(k) in the controller object, receiving a termination message for the first channel from the session manager, and in response, transmitting a termination indication for the first channel to the first port object; and
(l) in the first port object, receiving the termination indication for the first channel, and in response, transmitting a second interwork instruction for the first channel to the telephony hub to stop interworking the first channel and the selected virtual channel for the first channel.
-
-
14. The method of claim 8 further comprising:
-
(k) in a second event object, receiving an off-hook event message for a second channel from the telephony hub, and in response, transmitting an off-hook indication for the second channel to a second port object;
(l) in the second port object, receiving the off-hook indication for the second channel, and in response, transmitting a dial tone instruction for the second channel to the telephony hub;
(m) in the second event object, receiving a plurality of digit event messages for the second channel from the telephony hub, and in response, transmitting a plurality of digit indications for the second channel to the second port object;
(n) in the second port object, receiving the digit indications for the second channel, and in response, transmitting a dialed number indication for the second channel to a controller object;
(o) in the controller object, receiving the dialed number indication for the second channel, and in response, transmitting an invite message for the second channel to the session manager;
(p) in the controller object, receiving a reply message for the second channel from the session manager indicating an alerting condition, and in response, transmitting an alerting indication for the second channel to the second port object;
(q) in the second port object, receiving the alerting indication for the second channel, and in response, transmitting a ringback tone instruction for the second channel to the telephony hub;
(r) in the controller object, receiving a join message for the second channel from the session manager, and in response, transmitting an add stream message for the second channel to the session manager;
(s) in the controller object, receiving a confirm message for the second channel from the session manager, and in response, transmitting a confirm indication for the second channel to the second port object; and
(t) in the second port object, receiving the confirm indication for the second channel, and in response, transmitting a second interwork instruction for the second channel to the telephony hub to interwork a telephony signal on the second channel with an ATM signal on a selected virtual channel for the second channel.
-
-
15. The method of claim 8 further comprising:
-
(k) in the controller object, receiving an invite message from the session manager and determining that the invite message is associated with a second channel, and in response, transmitting an invite indication for the second channel to a second port object;
(l) in the second port object, receiving the invite indication for the second channel, and in response, transmitting an alerting indication for the second channel to the controller object and transmitting a ring instruction for the second channel to the telephony hub;
(m) in the controller object, receiving the alerting indication for the second channel from the second port object, and in response, transmitting a reply message indicating an alerting condition for the second channel to the session manager;
(n) in a second event object, receiving an off-hook event message for the second channel from the telephony hub, and in response, transmitting an off-hook indication for the second channel to the second port object;
(o) in the second port object, receiving the off-hook indication for the second channel, and in response, transmitting a join indication for the second channel to the controller object;
(p) in the controller object, receiving the join indication for the second channel from the second port object, and in response, transmitting a join message for the second channel to the session manager;
(q) in the controller object, receiving a join stream message for the second channel from the session manager, and in response, transmitting a reference information message for the second channel to the session manager;
(r) in the controller object, receiving a confirm message for the second channel from the session manager, and in response, transmitting a confirm indication for the second channel to the second port object; and
(s) in the second port object, receiving the confirm indication for the second channel, and in response, transmitting a second interwork instruction for the second channel to the telephony hub to interwork a telephony signal on the second channel with an ATM signal on a selected virtual channel for the second channel.
-
-
16. A provider agent product that includes software objects for execution in a microprocessor system to provide an interface between an telephony hub and a session manager, wherein the telephony hub is operational to interwork between telephony signals over a plurality of channels and Asynchronous Transfer Mode (ATM) signals over a plurality of ATM virtual connections in response to interwork instructions, wherein the telephony hub is operational to detect on-hook events, off-hook events, and digit events and to provide event messages, wherein the telephony hub is operational to provide dial tone, ringback, and busy signals in response to tone instructions, wherein the session manager is operational to transmit and receive invite messages, reply messages, join messages, confirm messages and terminate messages, the provider agent product comprising:
-
a first event object that is operational to direct the microprocessor system to receive an off-hook event message for a first channel from the telephony hub and responsively transmit an off-hook indication for the first channel, and to receive a plurality of digit event messages for the first channel from the telephony hub and responsively transmit a plurality of digit indications for the first channel;
a first port object that is operational to direct the microprocessor system to receive the off-hook indication for the first channel from the first event object and responsively transmit a dial tone instruction for the first channel to the telephony hub, to receive the digit indications for the first channel from the first event object and responsively transmit a dialed number indication for the first channel, to receive an alerting indication for the first channel and responsively transmit a ringback tone instruction for the first channel to the telephony hub, and to receive a confirm indication for the first channel and responsively transmit a first interwork instruction for the first channel to the telephony hub to interwork a telephony signal on the first channel with an ATM signal on a selected virtual channel for the first channel;
a controller object that is operational to direct the microprocessor system to receive the dialed number indication for the first channel from the first port object and responsively transmit an invite message for the first channel to the session manager, to receive a reply message for the first channel from the session manager indicating an alerting condition and responsively transmit the alerting indication for the first channel to the first port object, to receive a join message for the first channel from the session manager and responsively transmit an add stream message for the first channel to the session manager, and to receive a confirm message for the first channel from the session manager and responsively transmit the confirm indication for the first channel to the first port object; and
a software storage medium that is operational to store the controller object, the first port object, and the first event object. - View Dependent Claims (17, 18, 19, 20)
a second event object that is operational to direct the microprocessor system to receive an off-hook event message for a second channel from the telephony hub and responsively transmit an off-hook indication for the second channel, and to receive a plurality of digit event messages for the second channel from the telephony hub and responsively transmit a plurality of digit indications for the second channel;
a second port object that is operational to direct the microprocessor system to receive the off-hook indication for the second channel from the second event object and responsively transmit a dial tone instruction for the second channel to the telephony hub, to receive the digit indications for the second channel from the second event object and responsively transmit a dialed number indication for the second channel, to receive an alerting indication for the second channel and responsively transmit a ringback tone instruction for the second channel to the telephony hub, and to receive a confirm indication for the second channel and responsively transmit a second interwork instruction for the second channel to the telephony hub to interwork a telephony signal on the second channel with an ATM signal on a selected virtual channel for the second channel;
wherein the controller object is operational to direct the microprocessor system to receive the dialed number indication for the second channel from the second port object and responsively transmit an invite message for the second channel to the session manager, to receive a reply message for the second channel from the session manager indicating an alerting condition and responsively transmit the alerting indication for the second channel to the second port object, to receive a join message for the second channel from the session manager and responsively transmit an add stream message for the second channel to the session manager, and to receive a confirm message for the second channel from the session manager and responsively transmit the confirm indication for the second channel to the second port object; and
wherein the software storage medium is operational to store the second port object and the second event object.
-
-
20. The provider agent product of claim 16 wherein:
-
the controller object is further operational to direct the microprocessor system to receive an invite message for a second channel from the session manager and responsively determine that the invite message is associated with the second channel and transmit an invite indication for the second channel, to receive an alerting indication for the second channel and responsively transmit a reply message indicating an alerting condition for the second channel to the session manager, to receive a join indication for the second channel and responsively transmit a join message for the second channel to the session manager, to receive a join stream message for the second channel from the session manager and responsively transmit a reference information message for the second channel to the session manager, to receive a confirm message for a second channel from the session manager and responsively transmit a confirm indication for the second channel; and
further comprising;
a second port object that is operational to direct the microprocessor system to receive the invite indication for the second channel from the controller object and responsively transmit the alerting indication for the second channel to the controller object and transmit a ring instruction for the second channel to the telephony hub, to receive an off-hook indication for the second channel and responsively transmit the join indication for the second channel to the controller object, and to receive the confirm indication for the second channel from the controller object and responsively transmit a second interwork instruction for the second channel to the telephony hub to interwork the a telephony signal on the second channel with an ATM signal on a selected virtual channel for the second chancel;
a second event object that is operational to direct the microprocessor system to receive an off-hook event message for the second channel from the telephony hub and responsively transmit the off-hook indication for the second channel to the second port object; and
wherein;
the software storage medium is further operational to store the second port object and the first port object.
-
Specification