Sinch Voice Application Markup Language (SVAML)

SVAML is a call control markup language developed by Sinch. When your application or server receives a callback event from the Sinch platform, it can respond with a SVAML object to control the voice call. The SVAML object type is defined like this:

Array of objects (svaml.instruction)

The collection of instructions that can perform various tasks during the call. You can include as many instructions as necessary.

object (svaml.action)

The action that will control the call. Each SVAML object can only include one action.

SVAML Quick Reference

A SVAML object is made up of Actions and Instructions. A SVAML object must contain exactly one action but can have as many instructions as necessary.

Actions

ActionFunctionalityICEACEPIE*
hangupEnds the call
continueContinues the call
connectPstnDictates how the PSTN call will be connected
connectMxpDetermines whether the app-app call will be connected
connectConfConnects the call to a conference
connectSipConnects the call to a SIP server
connectStreamConnects the call to a Stream/Websocket server - Closed beta
runMenuPlays a menu to the callee
parkPuts an incoming call on hold
PIE* callbacks

PIE callbacks are not available for DATA calls; only PSTN and SIP calls.

Instructions

Note:

Instructions must always accompany an action and will not work standalone.

InstructionFunctionalityICEACEPIE*
playFilesPlays Interactive Voice Response (IVR) files
sayPlays a text-to-speech message*
sendDtmfSend DTMF tones
setCookieSets a cookie that can be accessed throughout the call
startRecordingStarts call recording
stopRecordingStops call recording
answerForces the callee to answer the call.
PIE* callbacks

PIE callbacks are not available for DATA calls; only PSTN and SIP calls.

say* in ICE callbacks

When using the say instruction with ICE callbacks, not all providers will deliver the message to the callee. To ensure the say instruction is heard, use the answer instruction before say, as in the following example:
Copy
Copied
instructions: [
    {
      "name": "answer",
    },
    {
      "name": "say",
      "text": "This is a say command issued from an instruction.",
      "locale": "en-US",
     },
]
We'd love to hear from you!
Rate this content:
Still have a question?
 
Ask the community.