It is a telephony communication platform, framework and server in-one. It is built in Java – one of the most popular and powerful programming languages in the world especially for server side applications.
To handle calls and other telephony operations CTEngine communicates with Asterisk (min v12) seamlessly by provided driver.
*in the future we might have a look to support other telecommunication systems
CTEngine is able communicate with other telecommunication systems with all protocols which are available in Asterisk: TDM (ISDN) and VoIP (SIP, PJSIP and IAX2). Protocol and codec conversion between multiple call legs is supported.
Of course you can, but CTEngine platform brings service development on higher level. Asterisk is quite complex project and it requires a deep knowledge in order to build advanced solutions. Asterisk allows application development in native C language. This requires good knowledge of both, C language and Asterisk architecture. It is also possible to build services in dialplan scripting language by using existing and available native Asterisk applications, but with this approach developer is very limited with options. With CTEngine it is possible to develop multithreaded applications in object oriented Java language which communicates with Asterisk via modern REST API interface.
This depends of Asterisk and server machine power. As far as we know, Asterisk installed on stronger dedicated machine with more CPU cores can handle thousands of simultaneous calls, but this can differ so you should follow instructions on Asterisk sites for optimization and tunning. CTEngine doesn’t consume a lot of memory resources – approx. 50-200 MB of RAM, depending of its configuration. CPU power of the machine generally has greater significance for the overall performance.
CTEngine is a platform that brings a lot of features and solves various problems for you:
  1. no need to know Asterisk deeply – all what you need is to install it on your server (and we can always help you)
  2. Java programming language gives you possibility to build object-oriented multithreading services and solutions
  3. platform has pre-built modules and features:
    • multi-tenancy – manage clients and users
    • administration – manage servers, channels, services (CTApplication), plugins (CTPlugin)
    • real-time monitoring & controlling – check what’s going on and act on-time
    • statistics – view or export call detail records in tables and charts
    • debugging
    • logging
    • integration possibilities with other systems via HTTP(S) and/or WS(S) and API
  4. possibility to update services without an interruption
CTEngine can be installed on any machine and operating system. It only requires Java 8 Runtime Environment (JRE) which is also platform independent. It can be installed in-house (local computer or server) or cloud-based in data centers. It is possible to install it on virtual machines or on dedicated servers as well. Since CTEngine is using Asterisk for low-level telephony operations, it has to communicate with it localy or over network. Their communication is made over TCP protocol so in fact they do not have to be installed on the same machine, but this option is also possible and it depends of the performace requirements. If ISDN protocol is required, installation of the additional hardware Digium or Sangoma digital board is also necessary.
Yes, our first and the main solution is CTRouter. It is a gateway and router service that can handle call routing based on user defined rules. It is fully web managed and controlled. Other services you can find under Solutions menu.


CTRouter is solution created on CTEngine platform. It can be used for multiple purposes:
  • connecting older ISDN telephony infrastructure with new modern VoIP devices and remote systems
  • solving a problematic of various protocol codec conversion
  • organizing large telephony infrastructure by connecting multiple media processing and SIP servers, PBX, phones, PSTN trunks, etc.
  • used as gateway toward PSTN
This is possible via user web interface by simple operations such as:
  • Add new Route – define routing rule name, IN and OUT settings (caller number, called number, protocol, trunk)
  • Edit Route – modify existing route
  • Delete Route – permanently remove route
  • Activate / Deactivate Route – set route active or inactive
  • Evaluate Route – test route even before creation
  • Test Routes – find matching route for simulated incoming call
UI also provides possibility to create multiple failovers for each trunk. When trunk has it’s own failover definition, it means that if main trunk from the route definition is unavailable, call will be routed to other first available trunk defined in failovers, starting from the first one. This feature removes a necessity for defining multiple routes just to handle that problematic.
There are few more settings that can be managed in CTRouter:
  • max. no-answer timeout
    • -1 for no timeout (system waits until one side disconnects)
    • > 0 for max no-answer timeout in seconds
  • forward caller and called subadresses – defines if ISDN subaddress values should be forwarded (*supports also VoIP)
  • forward caller name – defines if caller name should be forwarded (*available only in IP protocols)