> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# PSTN dial-in and SIP room systems for video rooms

> Give phone callers and venue room systems (Poly, Cisco, Lifesize) a way into a scheduled video room: retrieve the dial-in numbers and PIN, the SIP URI and H.323 dial strings, and roll them out org-wide.

# PSTN dial-in and SIP room systems for video rooms

A scheduled video room is not limited to browser joins. Every room also carries a phone dial-in with a PIN, a direct SIP address, and a room-system connection block, so a caller on a plain handset or a venue conference endpoint (Poly, Cisco, Lifesize) lands in the same room as the browser attendees.

This guide shows how to retrieve those connection details for a scheduled room, how to roll them out at the org level, and what a phone caller looks like on the canvas once joined.

## Who joins how

Three audiences reach the same room by different paths:

| Audience | Join path | What they get |
| - | - | - |
| Browser and app attendees | The room join URL | Full video, audio, screen share, and chat |
| Audio-only callers on a phone | A dial-in number plus the room PIN | Audio only; the caller enters the PIN after dialling |
| Venue room systems | The room's SIP URI, or an H.323 dial string | The endpoint's camera and display join the room as one participant |

All three paths land in one room: a dialed-in caller hears and is heard by the browser attendees, and the room system's video appears on the canvas like any other participant.

## Prerequisites

Before working through this page:

* **A scheduled room id.** Create the room in the dashboard or with `POST /api/v1/video/rooms-scheduled`. The examples on this page use `vroom_5f2c9a1b`.
* **A dial-in footprint.** The numbers returned per room are the dial-in numbers provisioned for your organization. Which countries are covered is an org-level provision; if you need a country you do not have yet, have it provisioned before you publish invite emails.
* **A room-system plan.** Decide which venues connect over SIP (any standards-based endpoint can dial the SIP URI) and which still run H.323 (H.323 needs a gateway provisioned for your organization).

Both endpoints are read-only: you retrieve a room's connection details, you do not configure them per room.

## Retrieve dial-in numbers and the PIN

`GET /api/v1/video/rooms-scheduled/{id}/dial-in` (operation `listVideoRoomsScheduledByIdDialIn`) returns the room's phone numbers, the PIN a caller enters after dialling, and the direct SIP URI.

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/video/rooms-scheduled/vroom_5f2c9a1b/dial-in" \
  -H "X-API-Key: dv_live_sk_..."
```

```json theme={null}
{
  "data": {
    "room_id": "vroom_5f2c9a1b",
    "room_name": "Q3 all-hands",
    "sip_uri": "sip:vroom_5f2c9a1b@orbit.devotel.io",
    "sip_edge_uri": null,
    "pin": "482913",
    "dial_in_numbers": [
      { "number": "+15551230000", "label": "US" },
      { "number": "+44205550100", "label": "UK" },
      { "number": "+49695550100", "label": "DE" }
    ],
    "pstn_available": true,
    "instructions": "To join by phone, dial +15551230000 (US) or +44205550100 (UK) or +49695550100 (DE), then enter PIN 482913#. SIP callers can dial sip:vroom_5f2c9a1b@orbit.devotel.io directly."
  },
  "meta": { "request_id": "req_8f2ab1c0", "timestamp": "2026-10-12T09:00:00.000Z" }
}
```

Reading the response:

* `dial_in_numbers` lists one entry per provisioned number with a country `label`. Publish the number nearest each attendee, plus at least one fallback.
* `pstn_available` is `false` when your organization has no dial-in numbers. The room is still reachable over SIP via `sip_uri`, and `instructions` says exactly that.
* `pin` is stable per room, so you can print it into an invite once and it stays valid for that room.
* `instructions` is a finished, attendee-facing sentence. Paste it into calendar invites as-is.

### Regional fallback

Because the number list is the same for every room in your organization, resolve each attendee's country to a number once and reuse the mapping across all invites. Always include one fallback number for attendees whose country is not in the list; a caller on any listed number enters the same PIN and reaches the same room.

## Connect a room system (SIP or H.323)

`GET /api/v1/video/rooms-scheduled/{id}/room-system` (operation `listVideoRoomsScheduledByIdRoomSystem`) returns the connection block in the dialect room systems speak: the SIP URI and edge, the H.323 gateways and dial strings, the alias, and the PIN.

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/video/rooms-scheduled/vroom_5f2c9a1b/room-system" \
  -H "X-API-Key: dv_live_sk_..."
```

```json theme={null}
{
  "data": {
    "room_id": "vroom_5f2c9a1b",
    "room_name": "Q3 all-hands",
    "alias": "vroom_5f2c9a1b",
    "pin": "482913",
    "sip": {
      "uri": "sip:vroom_5f2c9a1b@orbit.devotel.io",
      "edge_uri": null
    },
    "h323": {
      "available": true,
      "gateways": [{ "address": "h323gw.orbit.devotel.io", "label": "EU" }],
      "alias": "vroom_5f2c9a1b",
      "dial_strings": ["h323:vroom_5f2c9a1b@h323gw.orbit.devotel.io"]
    },
    "instructions": "SIP room systems (Poly / Cisco / softphone) dial sip:vroom_5f2c9a1b@orbit.devotel.io directly. H.323 room systems register to h323gw.orbit.devotel.io (EU) and dial alias vroom_5f2c9a1b. Enter PIN 482913# when the room prompts for it."
  },
  "meta": { "request_id": "req_91c7de02", "timestamp": "2026-10-12T09:05:00.000Z" }
}
```

### Worked example: onboard a Poly X70 over SIP

1. Retrieve the room-system block for the scheduled room.
2. On the Poly's admin interface, place a call to `sip.uri` from the device dial pad, or store it as the meeting address on a calendar entry. If your organization routes SIP through a dedicated edge, point the device's outbound proxy at `sip.edge_uri`.
3. When prompted, enter the PIN followed by `#`.
4. The endpoint joins as one participant carrying the venue's camera and display.

### H.323 venues

When `h323.available` is `true`, give each legacy endpoint one of the ready-to-dial `dial_strings`, or have it register to a gateway `address` and dial `h323.alias`. When it is `false`, your organization has no H.323 gateway provisioned; connect those endpoints in SIP mode instead, which needs no gateway.

The PIN is the same on both surfaces: for a given room, `pin` in the dial-in response and `pin` in the room-system response always match.

## Org-level configuration and invites

Dial-in numbers and H.323 gateways are provisioned per organization, not per room. Every scheduled room in your organization draws on the same number pool and gateways, and each room derives its own PIN. That is the shared-pool model: there is no per-room number assignment to administer. If your compliance posture requires a dedicated DID pool for a particular event series, that is a provisioning change for your account team, not a room setting.

The video room consoles surface the same dial-in block for each scheduled room, and the `instructions` string is built to be pasted. Copy it (or the console block) into the calendar invite so attendees receive numbers and PIN together with the join link; there is no separate per-attendee configuration. See [Video room consoles](/guides/video-room-consoles) for the console view.

## Phone callers in the room

A dialed-in caller joins audio-only. On the canvas they appear as a tile without camera, alongside the browser participants, and the roster marks them as joined by phone rather than by browser. A phone caller joins as a regular participant and never as a moderator, and the same moderator controls apply to them as to any other participant: a host can mute them or remove them from the room.

## Common join failures

| Symptom | Where to look |
| - | - |
| `503` from either endpoint | Dial-in or room-system interop is not configured for your organization. Confirm with your account team that numbers and gateways are provisioned. |
| `404` | The room id is wrong, or the room belongs to a different organization. |
| Caller is rejected after dialling | The PIN must be entered followed by `#`. Check the PIN was retrieved for the same room id. |
| `pstn_available: false` | No dial-in numbers are provisioned for the organization. SIP join via `sip_uri` still works. |
| `h323.available: false` | No H.323 gateway is provisioned. Use the SIP path instead. |
| One-way audio or drops at the venue | See [Troubleshooting video call quality](/troubleshooting/video-call-quality). |

## Related

* [Video meetings and conferences](/guides/video-meetings)
* [Video room templates](/guides/video-room-templates)
* [Persistent video rooms](/guides/video-persistent-rooms)
* [Video room consoles](/guides/video-room-consoles)
* [Voice-to-video escalation](/guides/voice-video-escalation)
* [UCaaS, CCaaS, and CPaaS](/concepts/ucaas-ccaas-cpaas)
* [Troubleshooting video call quality](/troubleshooting/video-call-quality)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.