# Instructions Instructions allow your application to perform tasks during a call, such as play a message to participants given a particular locale, or starting a recording. The following instructions are available to use: ## playFiles Plays Interactive Voice Response (IVR) files for the supported locale or SSML commands at the Sinch backend. An IVR message is played only on the caller's side. Available to use in a response to an [Incoming Call Event](/docs/voice/api-reference/voice/callbacks/ice) callback, an [Answered Call Event](/docs/voice/api-reference/voice/callbacks/ace) callback, or a [Prompt Input Event](/docs/voice/api-reference/voice/callbacks/pie) callback. **Example code** **Schema** ## say Plays a synthesized text-to-speech message to the end user. The message is provided in the text field. Available to use in a response to an [Incoming Call Event](/docs/voice/api-reference/voice/callbacks/ice) callback, an [Answered Call Event](/docs/voice/api-reference/voice/callbacks/ace) callback, or a [Prompt Input Event](/docs/voice/api-reference/voice/callbacks/pie) callback. **Example code** **Schema** ## sendDtmf Plays DTMF tones in the call. Available to use in a response to an [Incoming Call Event](/docs/voice/api-reference/voice/callbacks/ice) callback or a [Prompt Input Event](/docs/voice/api-reference/voice/callbacks/pie) callback. **Example code** **Schema** ## setCookie Creates a cookie for the call. Available to use in a response to an [Incoming Call Event](/docs/voice/api-reference/voice/callbacks/ice) callback, an [Answered Call Event](/docs/voice/api-reference/voice/callbacks/ace) callback, or a [Prompt Input Event](/docs/voice/api-reference/voice/callbacks/pie) callback. **Example code** **Schema** If you set a cookie in the response to an event (like “ice” or “ace”), it will be sent along in subsequent events in the session (like for instance “dice”). This can be used to keep simple application state during a call. Limitations The total size of cookie data (keys and values) may not exceed 1024 bytes. ## answer Forces the callee to answer the call. **Example code** **Schema** Normally, a call is “answered” when a callee picks up a call from a caller (for instance, when the callee picks up when doing a `connectPstn` action for an incoming call, see [connectPstn](/docs/voice/api-reference/svaml/actions#connectpstn)). This normally means that the call duration starts “ticking” on the caller's phone and that sound can flow in both directions. This is normally handled automatically, but by adding the `answer` instruction, you can force the incoming call to be answered before the call is connected and a callee picks up. For instance, if you add the `answer` instruction in an ICE response with the `connectPstn` action, the caller's phone will pick up and its call duration will start ticking immediately (and not wait until the callee answers the call). ## startRecording Starts recording the call. Available to use in a response to an [Incoming Call Event](/docs/voice/api-reference/voice/callbacks/ice) callback, an [Answered Call Event](/docs/voice/api-reference/voice/callbacks/ace) callback, or a [Prompt Input Event](/docs/voice/api-reference/voice/callbacks/pie) callback. **Example code** **Schema** Note: Recording calls when using the `connectMxp` action is not supported. ## stopRecording Stops an ongoing recording for the current call. Available to use in a response to a [Prompt Input Event](/docs/voice/api-reference/voice/callbacks/pie) callback. **Example code** **Schema**