FAQ

CTEngine

It is a telephony communication platform, framework and server all-in-one. Built in Java – one of the most popular and powerful programming languages in the world especially for server-side applications.
CTEngine communicates seamlessly with Asterisk (min v12) by provided driver to handle calls and other telephony operations.
*in the future we might look to support other telecommunication systems
CTEngine is able to 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.
You could, but CTEngine platform brings service development to a higher level. Asterisk is quite complex and requires 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 the 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 on Asterisk and server machine power. As far as we know, Asterisk installed on a 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 tuning. CTEngine does not consume a lot of memory resources – approx. 50-200 MB of RAM, depending on its configuration. The 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 in-depth – all that you need is to install it on your server (and we can always help you)
  2. Java programming language makes it possible 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 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 locally or over network. Their communication is made over TCP protocol and they do not have to be installed on the same machine, but this option is also possible and it depends of the performance requirements. If ISDN protocol is required, installation of the additional hardware Digium or Sangoma digital board is also necessary.
Yes, our first and 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. You can find other services under the Solutions menu.

CTRouter

CTRouter is a solution created on the CTEngine platform. It can be used for multiple purposes:
  • connecting older ISDN telephony infrastructure with new modern VoIP devices and remote systems
  • solving the issue of various protocol codec conversion
  • organizing a large telephony infrastructure by connecting multiple media processing and SIP servers, PBX, phones, PSTN trunks, etc.
  • used as a 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 the possibility to create multiple failovers for each trunk. When a trunk has its own failover definition, it means that if the main trunk from the route definition is unavailable, the call will be routed to the first available trunk defined in failovers, starting from the first one. This feature removes the necessity of defining multiple routes just to handle that issue.
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 subaddresses – 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)