Rate this page:

How to debug scenarios

One of the important processes during any app development is debugging. Learn how to use the built-in Voximplant debugger in development.


The debugger is available while you open a scenario in our cloud IDE. To open a scenario, go to the Applications section, click your target application, switch to the Scenarios tab, and click on a scenario. In the upper right corner, you will see a Debug button with a dropdown menu to set debugging parameters before the first run and adjust them as needed.

When you click Debug, a Debug parameters dialog will appear. If you click Use last settings, the debugger runs immediately.

Being in Debug parameters, you should specify the rule for debugging purposes and one of the three debugging criteria, which are available in the dropdown:

  • Calls from specific IP address – the debugger will be connected to a session started by a call from the specified IP address.
  • Calls from specific phone number – the debugger will be connected to a session started by a call to/from the specified phone number.
  • All calls – the debugger will be connected to a session started by any call that matches the specified Rule.

The debugger will be launched after the Debug button click, you can see its interface on the image below:

The interface and functionality are very similar to Developer tools (like Firebug) for web browsers that are used to debug Javascript apps and contains Scripts, Watch Expressions, Call Stack, Breakpoints and Console sections. The debugger will be waiting for a new session that matches specified parameters (Application, Rule, Criteria) to appear after pressing the 'START' button. If some breakpoint was specified script execution will be paused at the line with breakpoint and Controls can be used for step-by-step debugging or to resume execution.

Debug keyword

The debugger recognizes the debugger keyword in scenarios, so you can use as in regular JS development.

Note that a JavaScript scenario can output into the Debug Console via the trace() function:

a trace() call

a trace() call