Claims
- 1. A telecommunication protocol engine comprising a microprocessor linked to a flash memory, wherein:
the flash memory comprises a first telecommunication protocol expressed as a first template comprising one or more virtual machine instructions; the microprocessor comprises a CPU linked to a random access memory (RAM) and a firmware adapted to operate a virtual machine, and wherein the CPU is adapted to:
direct the virtual machine to read the first template of virtual machine instructions from the flash memory; store a current first template virtual machine instruction in the RAM; receive first template state data; and execute the current first template virtual machine instruction using the first template state data.
- 2. The telecommunication protocol engine of claim 1, wherein the telecommunication protocol is selected from the group consisting of Session Initiation Protocol (SIP), H.323 protocol, STUN, and DHCP.
- 3. The telecommunication protocol engine of claim 1, wherein the first template of virtual machine instructions comprises one or more first template finite state machines.
- 4. The telecommunication protocol engine of claim 1 further comprising an I/O port, and wherein the CPU is further adapted to receive first template state data from the I/O port.
- 5. The telecommunication protocol engine of claim 1, wherein the flash memory further comprising a second telecommunication protocol expressed as a second template comprising one or more virtual machine instructions, and wherein the CPU is further adapted to:
direct the virtual machine to read the second template of virtual machine instructions from the flash memory; store a current second template virtual machine instruction in the RAM; receive second template state data; and execute the current second template virtual machine instruction using the second template state data.
- 6. The telecommunication protocol engine of claim 5, wherein the telecommunication protocol is selected from the group consisting of Session Initiation Protocol (SIP), H.323 protocol, STUN, and DHCP.
- 7. The telecommunication protocol engine of claim 5, wherein the second template of virtual machine instructions comprises one or more second template finite state machines.
- 8. The telecommunication protocol engine of claim 5 further comprising an I/O port, and wherein the CPU is further adapted to receive second template state data from the I/O port.
- 9. The telecommunication protocol engine of claim 5 wherein the CPU is further adapted to receive first template state data from at least one of the one or more second template finite state machines.
- 10. The telecommunication protocol engine of claim 5 wherein the CPU is further adapted to receive second template state data from at least one of the one or more first template finite state machines.
- 11. The telecommunication protocol engine of claim 1, wherein the microprocessor is linked to the-flash memory via a data bus.
- 12. The telecommunication protocol engine of claim 11, wherein the data bus is a serial bus.
- 13. The telecommunication protocol engine of claim 11, wherein the data bus is a parallel bus.
- 14. A method of implementing a telecommunication protocol using a telecommunication protocol engine, the method comprising:
receiving a call at a microprocessor to implement a first telecommunication protocol; selecting a first template, wherein the first template comprises the first telecommunication protocol expressed as one or more virtual machine instructions; directing a virtual machine to read the first template; initializing the virtual machine with first template state data to arrive at a first current state; implementing the first telecommunication protocol; and entering a new first state.
- 15. The method of implementing a telecommunication protocol using a telecommunication protocol engine of claim 14, wherein the first telecommunication protocol is selected from the group consisting of Session Initiation Protocol (SIP), H.323 protocol, and STUN, and DHCP.
- 16. The method of implementing a telecommunication protocol using a telecommunication protocol engine of claim 14, wherein the first template of virtual machine instructions comprises one or more first template finite state machines.
- 17. The method of implementing a telecommunication protocol using a telecommunication protocol engine of claim 14, wherein first template state data is received by the telecommunication protocol engine.
- 18. The method of implementing a telecommunication protocol using a telecommunication protocol engine of claim 14, wherein the method further comprises:
receiving a call at a microprocessor to implement a second telecommunication protocol; selecting a second template, wherein the second template comprises a second telecommunication protocol expressed as one or more virtual machine instructions; directing the virtual machine to read the second template; initializing the virtual machine with second template state data to arrive at a second current state; implementing the second telecommunication protocol; and entering a new second state.
- 19. The method of implementing a telecommunication protocol using a telecommunication protocol engine of claim 18, wherein the second telecommunication protocol is selected from the group consisting of Session Initiation Protocol (SIP), H.323 protocol, and STUN, and DHCP.
- 20. The method of implementing a telecommunication protocol using a telecommunication protocol engine of claim 18, wherein the second template of virtual machine instructions comprises one or more second template finite state machines.
- 21. The method of implementing a telecommunication protocol using a telecommunication protocol engine of claim 18, wherein second template state data is received by the telecommunication protocol engine.
- 22. The method of implementing a telecommunication protocol using a telecommunication protocol engine of claim 18, wherein first template state data is received from at least one of the one or more second template finite state machines.
- 23. The method of implementing a telecommunication protocol using a telecommunication protocol engine of claim 18, wherein second template state data is received from at least one of the one or more first template finite state machines.
- 24. A telephony gateway comprising:
a customer device interface adapted to connect to a customer device; a network interface adapted to connect to a network; a telecommunication protocol engine connected to the customer device interface and to the network interface, the telecommunication protocol engine comprising a microprocessor linked to a flash memory, wherein:
the flash memory comprises a first telecommunication protocol expressed as a first template comprising one or more virtual machine instructions; the microprocessor comprises a CPU linked to a random access memory (RAM) and a firmware adapted to operate a virtual machine, and wherein the CPU is adapted to:
direct the virtual machine to read the first template of virtual machine instructions from the flash memory; store a current first template virtual machine instruction in the RAM; receive first template state data; and execute the current first template virtual machine instruction using the first template state data.
- 25. The telephony gateway of claim 24, wherein the telecommunication protocol is selected from the group consisting of Session Initiation Protocol (SIP), H.323 protocol, STUN, and DHCP.
- 26. The telephony gateway of claim 24, wherein the first template of virtual machine instructions comprises one or more first template finite state machines.
- 27. The telephony gateway of claim 24 wherein the telecommunication protocol engine further comprising an I/O port, and wherein the CPU is further adapted to receive first template state data from the I/O port.
- 28. The telephony gateway of claim 24, wherein the flash memory further comprises a second telecommunication protocol expressed as a second template comprising one or more virtual machine instructions, and wherein the CPU is further adapted to:
direct the virtual machine to read the second template of virtual machine instructions from the flash memory; store a current second template virtual machine instruction in the RAM; receive second template state data; and execute the current second template virtual machine instruction using the second template state data.
- 29. The telephony gateway of claim 28, wherein the telecommunication protocol is selected from the group consisting of Session Initiation Protocol (SIP), H.323 protocol, STUN, and DHCP.
- 30. The telephony gateway of claim 28, wherein the second template of virtual machine instructions comprises one or more second template finite state machines.
- 31. The telephony gateway of claim 28 further comprising an I/O port, and wherein the CPU is further adapted to receive second template state data from the I/O port.
- 32. The telephony gateway of claim 28 wherein the CPU is further adapted to receive first template state data from at least one of the one or more of the second template finite state machines.
- 33. The telephony gateway of claim 28 wherein the CPU is further adapted to receive second template at least one of the one or more of the first template finite state machines.
- 34. The telecommunication protocol engine of claim 28, wherein the microprocessor is linked to the flash memory via a data bus.
- 35. The telecommunication protocol engine of claim 34, wherein the data bus is a serial bus.
- 36. The telecommunication protocol engine of claim 34, wherein the data bus is a parallel bus.
- 37. A method of directing a call in a packet switched telecommunication system, the method comprising:
receiving a dialing code from a calling device; determining the network of a receiving device from the dialing code; selecting a telecommunication protocol based on the network of the receiving device; and connecting the calling device to the receiving device using the selected telecommunication protocol.
- 38. The method of directing a call in a packet switched telecommunication system as in claim 37, wherein the dialing code comprises a prefix of 777, and wherein determining the network of a receiving device from the dialing code comprises determining that the receiving device is connected to the same network as the calling device.
- 39. The method of directing a call in a packet switched telecommunication system as in claim 38, wherein the dialing code is preceded with, and followed by, the symbol #.
- 40. The method of directing a call in a packet switched telecommunication system as in claim 38, wherein method further comprises receiving a personal identification number prior to receiving the dialing code.
- 41. The method of directing a call in a packet switched telecommunication system as in claim 40, wherein the personal identification code terminates with the symbol “*”.
- 42. A method of establishing a call in a packet switched telecommunication system between a first device, a second device, and a third device, wherein a call has been established between the first device and the second device, the method comprising:
sending a sharing signal from a first device to a second device; in response to the sharing signal, interrupting the call between the first device and a second device; initiating a call from the first device to the third device; and sharing data among the first device, the second device and the third device.
- 43. A communication system comprising a service provider gateway in communication with a first telephony gateway and a second telephony gateway, wherein each telephony gateway comprises:
means for implementing a telecommunication protocol as a finite state machine; means for sending and receiving communications via a switched packet switched telecommunications network; and means for connecting to a communications device; and wherein the service provider gateway comprises: means for sending and receiving communications via a switched packet network; means for processing the data according to the selected telephony protocol; means for connecting the first telephony gateway to the second telephony gateway according to data received from the first telephony gateway; and means for billing users of the communication system.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority under 35 U.S.C. §119(e) from provisional application number 60/394,207 filed Jul. 5, 2002 and application Ser. No. 10/354,527 filed Jan. 30, 2003 both of which applications are incorporated by reference herein, in their entirety, for all purposes.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60394207 |
Jul 2002 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10354527 |
Jan 2003 |
US |
Child |
10613656 |
Jul 2003 |
US |