The Telecom Engine (TE) Language is a high level functional programming language that provides rapid application development and easy code maintenance for large and complex telecommunications applications. The syntax of the language has some similarity to the ‘C’ programming language but has been simplified to provide protection against common bugs that can have a catastrophic effect on critical telecommunications systems. Random system crashes caused by memory overwrites or invalid pointer accesses in ‘C’ or ‘C++’ can be a nightmare scenario for a system that is taking thousands of calls a day or passing millions of minutes of voice traffic a month.
All TE applications are compiled to byte-code, in a similar way to the Java language, and this byte code is then executed by the TE Runtime engine. This run-time engine provides a self contained and rubust environment within which the byte code can be run, providing protection from system crashes and bugs to ensure a stable and crash free system.
The Runtime Engine has been designed to be extremely fast, borrowing techniques from PC games programming to allow high density systems to be run in a single PC chassis. This means that many thousands of tasks/byte code programs can be running simultaeously in a single PC chassis allowing for high density solutions to be implemented.
The source code for an application should be created using a text editor in a file with the extension .TES (Telecom Engine Source file). Additional source files with the extension .FUN can be provided which contain the source code for individual functions (the .FUN file should have the same name as the function it contains). The TES file is then compiled using the TCL.EXE compiler to create a file with the same name but with a .TEX extension (Telecom Engine eXcecutable). This .TEX file contains the byte code operations that are executed by the TE Runtime Engine.
The Telecom Engine is a multi-tasking environment where many hundreds of byte code applications can be running simultaneously. Typically for Telecommunications applications there will be a single task running for each network channel which will handle the processing of inbound and outbound calls and the playing of speech files and received DTMF etc on that channel. Many other tasks could also be running to manage the allocation of various resources, updating the screen, communicating with remote host systems etc. The Telecom Engine is designed so that once started each task requires little or no operating system resources and the engine can switch between tasks extremely quickly creating a real-time multitasking environment that can process hundreds (or thousands) of simultaneous calls.