URL reference
Click-to-call room URLs
Build a link to room.html that joins a meeting, pre-fills a phone number to dial, pins a specific outbound SIP trunk, sets the display name, or starts with the camera off — without writing any code. Paste it into an email, an intranet button, a CRM record, an email signature, or a QR code.
The full parameter list
| Parameter | Type | Example | What it does |
|---|---|---|---|
| room | string | stefan-test | Meeting room name / slug. Any visitor with the same room= value lands in the same meeting. Use a guessable slug for an open meeting; use an unguessable random slug (e.g. r-7a3f9c2e) for a private one-off call where the URL is the access token. |
| name | string | Stefan | Display name shown to other participants. Skipping it makes the page ask for a name on join. |
| dial | E.164 / ext | %2B4915157610183 | Phone number or PBX extension the bridge dials when the first browser participant arrives. URL-encode the leading + as %2B. Internal extensions like 610 work too. |
| trunk | trunk Id | tr_4194b9eab3de | Optional. Pins the outbound dial to a specific SIP trunk. Without it the bridge picks the lowest-Priority trunk that can carry the call. Useful when one trunk has the right caller-ID, the right rate, or a regulatory pin for that destination. |
| cam | off | off | Start with the camera disabled. Audio-only feel. Equivalent: nocam=1. |
| nocam | 1 | 1 | Synonym for cam=off. |
The page always sits at /room.html. A URL pointing at the host root (/?room=…) is served by the marketing landing page and the parameters are silently ignored — always include /room.html in the path.
Common patterns
1) Two people in a meeting room
Both visit the same URL, no dialling.
2) Click-to-call a number
You join the room, the bridge phones the number, the phone joins as a participant on answer.
3) Click-to-call via a specific trunk
Same as above, but pin the dial to one outbound trunk by Id.
4) Audio-only, name pre-set
Useful for phone-like buttons embedded in CRMs and mobile signatures.
5) Internal PBX extension
The bridge dials a registered SIP user instead of a PSTN number.
6) Full one-shot link
Random room (URL is the access token), audio-only, name pre-set, dial through a pinned trunk.
Encoding notes
URL parameters follow standard application/x-www-form-urlencoded escaping rules. The two characters you have to watch for in click-to-call URLs:
| Literal | Encoded | Why |
|---|---|---|
| + | %2B | In query strings + means “space”. The dial number’s leading + must be %2B. |
| space | %20 or + | If name has a space (e.g. “John Doe”), use John%20Doe or John+Doe. |
How the dial flows
When the page loads with a dial= parameter, the browser joins the room over WebSocket, then sends a single {type:"dial", number:…, trunk:…} message to the server. The server runs the dial through the FraudGuard layer (allowlist, blocklist, per-day caps, per-IP caps), hands it to the SIP bridge over an HMAC-signed local POST, and the bridge places the SIP call to your configured trunk. The phone answers, joins the room as a regular audio-only participant, and the audio mixer fans you in.
The dial is fired once per browser load. A reload or a second visitor joining the same room does not re-trigger it. If you need to call back, close the tab and click the link again.
Related
Related pages: API overview · signal.ashx REST · REST API reference · Virtual numbers.