System and method for using multiple communication protocols in memory limited processors
First Claim
1. A telephone gateway device comprising:
- a first memory device external to a processor, the first memory device storing one or more telecommunication protocol templates, each of the one or more telecommunication protocol templates including a plurality of virtual machine instructions to implement a telecommunication protocol using one or more finite state machines and template state data;
a second memory device internal to the processor, the second memory device to store a state table of one or more finite state machines; and
the processor having access to the first memory device, the second memory device and firmware, the firmware adapted to operate a virtual machine, and wherein the processor;
causes the virtual machine to read first virtual machine instructions of a first telecommunication protocol template from the first memory device;
executes the first virtual machine instructions to instantiate a first finite state machine and to store a first state table based on template state data associated with the first virtual machine instructions at the second memory device, wherein the first finite state machine and the first state table specify a first telecommunication protocol; and
implements the first telecommunication protocol using the first state table and the first finite state machine.
15 Assignments
0 Petitions
Accused Products
Abstract
A system and method for implementing large and/or multiple telecommunication protocols utilizing memory-limited processors. Telecommunication protocols are expressed as virtual machine instructions defining a finite state machine. A telecommunication protocol engine implements the telecommunication protocols using a virtual machine operating under the control of a CPU. A telephony gateway comprising a telecommunication protocol engine interfaces with a communication device and a packet switched network. A network of telephony gateways communicating with a provider gateway facilitates communication over a packet switched network. A call placed by a calling telephony gateway to a receiving device on the same network or another network is routed according to a prefix in a telephone code sent by the calling telephony gateway.
-
Citations
26 Claims
-
1. A telephone gateway device comprising:
-
a first memory device external to a processor, the first memory device storing one or more telecommunication protocol templates, each of the one or more telecommunication protocol templates including a plurality of virtual machine instructions to implement a telecommunication protocol using one or more finite state machines and template state data; a second memory device internal to the processor, the second memory device to store a state table of one or more finite state machines; and the processor having access to the first memory device, the second memory device and firmware, the firmware adapted to operate a virtual machine, and wherein the processor; causes the virtual machine to read first virtual machine instructions of a first telecommunication protocol template from the first memory device; executes the first virtual machine instructions to instantiate a first finite state machine and to store a first state table based on template state data associated with the first virtual machine instructions at the second memory device, wherein the first finite state machine and the first state table specify a first telecommunication protocol; and implements the first telecommunication protocol using the first state table and the first finite state machine. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 17, 18, 19, 20, 26)
-
-
10. A method of implementing a telecommunication protocol, the method comprising:
-
selecting a first telecommunication protocol template by a processor of a telephony gateway device, wherein the first telecommunication protocol template includes one or more virtual machine instructions executable by a virtual machine at the telephony gateway device to implement a first telecommunication protocol; reading a first virtual machine instruction of the first telecommunication protocol template from a first memory device, wherein the first memory device is coupled to the processor via a bus; initializing a first finite state machine using the first virtual machine instruction, wherein the first telecommunication protocol template includes first template state data defining a first template state of the first finite state machine; storing the first template state at a second memory device of the telephony gateway device in a first state table, wherein the second memory device is internal to the processor; receiving an input at the processor via a telephony call; determining, by the virtual machine, an updated template state of the first finite state machine based on the first state table and the input; and storing an updated first state table at the second memory device, the updated first state table specifying the updated template state. - View Dependent Claims (11, 12, 13, 14, 15, 16, 22, 23, 24, 25)
-
-
21. A telephone gateway device, comprising:
-
a first memory device coupled to a processor by a bus, the first memory device storing one or more telecommunication protocol templates, each of the one or more telecommunication protocol templates including a plurality of virtual machine instructions to implement a telecommunication protocol using one or more finite state machines; a second memory device integral with the processor, the second memory device to store state data related to the one or more finite state machines during implementation of the telecommunication protocol; the processor having access to the first memory device and the second memory device, the processor configured to; read first virtual machine instructions from the first memory device, the first virtual machine instructions selected from a first telecommunication protocol template to implement a first telecommunication protocol; receive first template state data specifying an initial state of a first finite state machine; and execute the first virtual machine instructions using the first template state data to initialize the first finite state machine and to store an initial state table of the first finite state machine at the second memory device.
-
Specification