> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # unhold > Release a call from hold. [calling-call-hold]: /docs/server-sdks/reference/typescript/relay/call#events [call-events]: /docs/server-sdks/reference/typescript/relay/call#events Release the call from hold, resuming normal audio between the parties. > **Info** > > This method emits [`calling.call.hold`][calling-call-hold] events. See [Call Events][call-events] for payload details. ## **Parameters** None. ## **Returns** `Promise>` -- Server response confirming the unhold operation. ## **Example** ```typescript {19} import { RelayClient } from '@signalwire/sdk'; const client = new RelayClient({ project: process.env.SIGNALWIRE_PROJECT_ID!, token: process.env.SIGNALWIRE_API_TOKEN!, contexts: ['default'] }); client.onCall(async (call) => { await call.answer(); await call.play([{ type: 'tts', text: 'Please hold while I look that up.' }]); // Put the call on hold await call.hold(); // Do some processing... await new Promise((resolve) => setTimeout(resolve, 5000)); const result = await call.unhold(); console.log(`Call resumed from hold: ${JSON.stringify(result)}`); await call.play([{ type: 'tts', text: 'Thanks for holding. I have your answer.' }]); }); await client.run(); ``` > Release a call from hold.