When using the Sinch Voice platform in many use cases a callback server will be required to control the flow of a call.
This is for you to be able to have control over certain elements, such as: authorising calls, routing calls, setting a cli (calling line identifier) to the receiving user. It is mandatory to have a callback server for calling a PSTN destination
You will need an application server that can parse incoming HTTP POST requests and return HTTP POST responses with SVAML commands (json) in the HTTP body. Some example callback severs can be found here: Sinch Github voice samples or for simple testing you can use a service such as https://webhook.site
You configure your application server URL in the Sinch Dashboard Voice & Video -> Apps -> In-app Voice & Video SDKs -> Callback URL.
SVAML is a call control markup language developed by Sinch. When your application or server receives a callback event from the Sinch Voice platform, it can respond with a SVAML object to control the voice call. https://developers.sinch.com/docs/voice/api-reference/svaml/
The figure below illustrates the lifecycle of a call and shows where both callbacks and REST API calls are located or can be made.
Developer documentation related to callbacks: https://developers.sinch.com/docs/voice/api-reference/callbacks