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
Action | Functionality | ICE | ACE | PIE* |
---|---|---|---|---|
hangup | Ends the call | ☑ | ☑ | ☑ |
continue | Continues the call | ☐ | ☑ | ☑ |
connectPstn | Dictates how the PSTN call will be connected | ☑ | ☐ | ☑ |
connectMxp | Determines whether the app-app call will be connected | ☑ | ☐ | ☐ |
connectConf | Connects the call to a conference | ☑ | ☑ | ☑ |
connectSip | Connects the call to a SIP server | ☑ | ☐ | ☑ |
connectStream | Connects the call to a Stream/Websocket server - Closed beta | ☑ | ☐ | ☐ |
runMenu | Plays a menu to the callee | ☑ | ☑ | ☑ |
park | Puts 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.
Instruction | Functionality | ICE | ACE | PIE* |
---|---|---|---|---|
playFiles | Plays Interactive Voice Response (IVR) files | ☑ | ☑ | ☑ |
say | Plays a text-to-speech message | ☑* | ☑ | ☑ |
sendDtmf | Send DTMF tones | ☑ | ☐ | ☑ |
setCookie | Sets a cookie that can be accessed throughout the call | ☑ | ☑ | ☑ |
startRecording | Starts call recording | ☑ | ☑ | ☑ |
stopRecording | Stops call recording | ☐ | ☐ | ☑ |
answer | Forces 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:instructions: [
{
"name": "answer",
},
{
"name": "say",
"text": "This is a say command issued from an instruction.",
"locale": "en-US",
},
]