> 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.

# waitForRinging

> Wait for a call to reach the ringing state.

[relayevent]: /docs/server-sdks/reference/typescript/relay/events

[wait-for]: /docs/server-sdks/reference/typescript/relay/call/wait-for

Wait for the call to reach the `ringing` state. Returns immediately if the call
is already ringing or past that state. A typed wait over [`waitFor()`][wait-for].

## **Parameters**

**`timeout`** `number | undefined`

Maximum milliseconds to wait. Throws an `Error` if exceeded. `undefined`
waits indefinitely.

---

## **Returns**

`Promise<`[`RelayEvent`][relayevent]`>` -- The state-change event.

## **Example**

```typescript {10}
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) => {
  const event = await call.waitForRinging(5000);
  console.log(event.params.call_state);
  await call.answer();
});

await client.run();
```