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

# Voice go-live weekend: ship your phone system in two days

> A timed Saturday-to-Sunday execution sequence for moving a phone system — numbers, trunking, attestation, E911, one queue, recording — onto a live tenant, using one worked example (three DIDs, one SIP trunk, one support queue) with a named owner on every step and a rollback plan ready before Monday traffic.

# Voice Go-Live Weekend

Three checklists already cover the gates: the platform-wide [production go-live checklist](/guides/go-live-checklist), the [PSTN voice go-live checklist](/guides/voice-telephony-go-live-checklist) (numbers, identity, routing, recording, compliance), and the [contact-center go-live runbook](/guides/voice-ccaas-go-live-checklist) (softphone, queues, IVR, cutover). None of them answers "what do I do in what order this weekend?" — they list what must be true, not when to make it true.

This page is the execution sequence. It walks one worked tenant — **Three Rivers Insurance** — through three DIDs, one SIP trunk, and one support queue, from Saturday 09:00 to a phone system that takes real callers on Monday morning.

## How to use this page

**Inventory before you build.** Every walkthrough below writes new rows onto live objects; capture what exists first so Saturday 09:00 starts from a snapshot, not a guess:

* `GET /api/v1/numbers` — the current DID estate and each number's route.
* `GET /api/v1/voice/sip-trunks` — trunks already authorized.
* `GET /api/v1/voice/queues` — queues, agents, and SLA targets. The same dump doubles as the Saturday-11:00 baseline.

**Checklists are preflight evidence; this page is the sequence.** The [PSTN checklist](/guides/voice-telephony-go-live-checklist) and the [CCaaS runbook](/guides/voice-ccaas-go-live-checklist) tell each owner what to prove and file; this page tells them *when* to run each check so the proofs land in dependency order. Sign-off rows on those two sheets reference the slot below — not the other way around.

**Owners.** The worked tenant assigns three: **Maya** (Operations) owns numbers, queues, staffing, and the rollback call; **Devon** (Engineering) owns routing, trunks, and registration; **Priya** (Compliance) owns attestation, E911, and recording consent. Every slot below names its owner; an unnamed step is an unowned risk.

## Prerequisites

Do not start Saturday without these — a missing one turns an execution weekend into a discovery weekend:

1. The platform gates of the [production go-live checklist](/guides/go-live-checklist) pass: KYC approved, live API key active, wallet funded, webhooks verified.
2. Inventory on the old system: every DID, its current route, and its carrier account number — you cannot wave-order what you have not listed.
3. The three owners named and reachable for Saturday and Sunday.
4. A roll-forward plan for Monday (see Sunday 16:00), approved by all three before the first LOA is signed.

## The worked tenant

Three Rivers Insurance migrates off a premises PBX with:

| Asset | Detail |
| - | - |
| `+1 312 555 0164` | Main office DID — routes to the new support queue |
| `+1 800 555 0148` | Toll-free DID — routes to the owner/operator line |
| `+1 312 555 0177` | Direct owner line — rings the owner softphone group |
| One SIP trunk | BYOC trunk surviving from the old premises PBX |
| One queue | `support` — the only queue that goes live this weekend |

Wave order and the routing decision come from this table; the rest of the page treats it as the spec.

## Saturday 09:00 — Number inventory and porting wave order

*Owner: Maya (Operations). Time: 90 minutes.*

Ports are the only step in this plan whose lead time you do not control, so they go first.

1. **Collect the three accounts.** For each DID, pull the carrier account number, the PIN, and the authorized signer from the losing carrier. Build the inventory against [Port numbers](/guides/port-numbers).

2. **Sign three LOAs, one per DID.** Every port needs a letter of agency from the account holder. Walk the paperwork end to end once with the [first-port walkthrough](/guides/number-porting-walkthrough-first-port) so the second and third are copy-paste; `POST /api/v1/numbers/porting` submits each order against the same carrier account.

3. **Assign waves.** The wave plan exists so a stuck FOC never strands the main number:

   | Wave | DID | Why |
   | - | - | - |
   | Wave 1 | Toll-free `+1 800 555 0148`, direct `+1 312 555 0177` | Neither is the main office line; each can slip a day without touching the inbound answer path. |
   | Wave 2 | Main `+1 312 555 0164` | Ports only after wave 1's FOC windows confirm and the queue (Sunday 09:00) exists to receive it. |

4. **Request FOC for Monday 06:00 on all three.** Firm order commitments from the losing carrier land before the weekend closes; Monday 06:00 keeps the cutover off-peak and ahead of business hours.

5. **Record the windows.** Each porting order exposes its FOC date and status timeline (`GET /api/v1/numbers/porting/{id}/timeline`). `filled` waves cleanly; a `foc_rejected` or a port that stalls in `submitted` bumps the affected DIDs to the next carrier window and flips the rollback names in the Sunday-16:00 worksheet. Batch cadence and status vocabulary follow [porting sequence](/guides/inbound-call-portability).

Exit test: three LOAs signed, three port orders submitted, FOC windows written down, and the carrier account/PIN document filed where Devon and Priya can reach it.

## Saturday 11:00 — Routing decision

*Owner: Devon (Engineering). Time: 2 hours.*

Pick how live calls reach the tenant now, because everything after lunch configures a different path.

* **SIP trunk (BYOC).** Your own PBX keeps dialing out; inbound terminates at Orbit over a trunk you authorize. Choose it when a premises system survives the migration — Three Rivers keeps its conference-room PBX, so the trunk is the connecting leg. Guide: [Connect a SIP trunk (BYOC)](/guides/sip-trunk-connection).
* **API direct.** No reuse hardware; the Devotel softswitch handles the trunk. Choose it when nothing from the old system is kept.
* **Host-associated DID.** A DID rings a registered PBX or softphone extension. Choose it when you only need a direct line live, not a queue.

For Three Rivers (SIP trunk):

1. **Authorize the trunk** (`POST /api/v1/voice/sip-trunks`): SSL on, the TLS endpoint IP and port set, digest credentials minted, and the PBX's public egress IP allowlisted.
2. **Register both legs and place the loop.** Register the conference-room PBX on the trunk leg and one browser softphone on the app leg per [the browser softphone guide](/guides/voice-browser-softphone). The [first-call walkthrough](/guides/sip-trunk-first-call-walkthrough) supplies the probe (`/api/v1/voice/sip-trunks/probe`) and the exact 200 OK INVITE/REGISTER checks.
3. **One registered softphone loop per leg.** Place an outside-to-PBX call across the trunk and a softphone-to-softphone call on the app leg. Sprint rule: a leg that loops in one direction only is a misconfiguration, not a partial success — fix it before leaving the slot.

Exit test: the trunk row shows registered, each leg passed one full call loop, and the chosen path is written at the top of the sign-off worksheet so nobody re-litigates it on Sunday.

## Saturday 14:00 — STIR/SHAKEN attestation and E911 drill

*Owner: Priya (Compliance). Time: 90 minutes.*

Both drills run before any DID carries traffic, so a caller-ID or emergency-address defect is found on Saturday, not Monday.

1. **Set the attestation posture.** Assemble the [STIR/SHAKEN attestation guide](/guides/stir-shaken-attestation-guide) end to end: resolve each DID to the ownership level it actually qualifies for (full A where the number is yours and the identity matches), set the attestation floor, and own the delegate-certificate lifecycle on any ported number the floor depends on.
2. **Verify on the wire.** Read the attestation header off the live trace from the 11:00 test calls — full `A`, not `B` or `C` — and cross-check the [attestation checklist tool](/guides/stir-shaken-checklist-tool), which reports the same level the carrier sees on each DID.
3. **Enable E911 drill mode.** Point the emergency dial at the test destination per the [E911 drill guide](/guides/e911-emergency-drill) — a drill routes to the test desk, never a live PSAP.
4. **Dial 933 and read back the address.** The drill returns the address-of-record for the customer's physical service address. File the returned address in the compliance binder; if it reads stale or wrong, correct the address on file and re-drill — this gate blocks only its own exit test.
5. **File acceptance, then exit drill mode.** The drill acceptance report (the dial-to-test-destination check, the address it returned, the timestamp) goes into the binder with the attestation snapshot. Live short emergency codes (911/112/999/000) remain blocked at platform dispatch — drill mode exercises the 933 path only.

Exit test: attestation renders as full `A` on a live outbound trace, the checklist tool reads green on all three DIDs, the 933 drill returned the filed address, and the acceptance report is in the binder.

## Sunday 09:00 — Queue staffing

*Owner: Maya (Operations). Time: 2 hours.*

Build the queue the main DID will terminate into:

1. **Create the `support` queue** per [Set up and run voice queues](/guides/voice-queues) — concrete values, not defaults: `maxWaitSeconds`, `targetServiceLevelSeconds`, the `overflowAction` (voicemail box), the `routingStrategy`, and the skill tags a caller must match.
2. **Enroll the first agent and mint the softphone credential.** Register one agent's softphone end to end per the [browser softphone guide](/guides/voice-browser-softphone) and enroll the agent with the matching skill so the eligibility set is not empty. Enroll only where the skill matches — a queue that filters on a skill nobody holds answers no one. (The first-queue tutorial this slot pairs with is the `voice-queues` guide.)
3. **Wire wrap-up codes.** Define the queue's disposition catalog per [wrap-up codes](/voice/wrap-up-codes): at minimum `resolved`, `callback-requested`, `wrong-department`, and the code the Saturday-16:00 SIP fallback call used (`trunk-fallback`). Set `requireDisposition` on for launch week so every call carries an outcome.
4. **Point the main DID.** Attach the queue route to `+1 312 555 0164` (route type `queue` with the new `queueId`) — the port has not landed, so this is pre-positioning, not traffic.
5. **Place one real outside call.** From a personal mobile, dial the toll-free number already moved (or the softphone's test DID), reach the queue, and let the enrolled agent answer. This single call is the first outside caller the queue ever served — if it lands, wiring, eligibility, and the softphone registry are all proven at once against [the live floor](/guides/contact-center-live-floor).

Exit test: one real outside call answered in the queue, one wrap-up code recorded, and the DID-to-queue row visible on `GET /api/v1/numbers`.

## Sunday 13:00 — Recording, retention, and compliance flags

*Owner: Priya (Compliance). Time: 90 minutes.*

Recording is a tenant-owned control: you decide whether calls record, for how long they live, and where the media lands.

1. **Turn the recording lifecycle on.** Enable recording per [recording lifecycle operations](/guides/recording-lifecycle-operations) and set the retention window — Three Rivers records all three DIDs and keeps media 90 days, because its regulator requires a defined window rather than indefinite retention. Choose Orbit-managed storage unless the tenant owns the archive, and verify the lifecycle job enforces the window, not just records it.
2. **Wire BYO storage if the tenant owns the archive.** If retention must land in the tenant's own bucket, follow [voice recording BYO storage](/guides/voice-recording-byo-storage) and confirm a recorded call materializes an object in the tenant bucket — not just a green config row.
3. **Choose the consent prompt or beep per jurisdiction.** Two-party consent jurisdictions take the per-queue consent prompt; one-party jurisdictions take the periodic beep. Set the flag per queue, then verify the prompt or beep actually fires on a live test call per [the consent prompt configuration](/guides/compliance-dpa-baa-recording-consent). The prompt is a tenant-owned control; the platform carries it, your jurisdiction chooses it.
4. **Verify on both call shapes.** A recorded call produces a media object with the retention date set and the consent artifact in the CDR; a call you excluded from recording produces nothing. Both outcomes are proof — check each.

Exit test: retention window is set, a test call produced a media object with the consent artifact attached, and the lifecycle ran over the window correctly.

## Sunday 16:00 — Rollback, sign-off, and the Monday plan

*Owner: all three. Time: 60 minutes. Close the weekend with a rollback path you can execute, a worksheet you can sign, and a Monday you can run.*

**Rollback.** Every DID keeps its old route stored against it, so rollback is a re-pointable single write per DID:

* Repoint `+1 312 555 0164` back at the legacy destination by updating the number's route (`PATCH /api/v1/numbers/{id}`) to the pre-migration value. The port never landed in-tenant, so the carrier simply keeps answering the old path.
* The trunk disable is the second line: flip the trunk row inactive on `PATCH /api/v1/voice/sip-trunks/{id}` and the monitored alarms go quiet with the legs.
* Fill the **PSTN/CCaaS sign-off worksheet** — every check on the [PSTN checklist](/guides/voice-telephony-go-live-checklist) and the [CCaaS runbook](/guides/voice-ccaas-go-live-checklist) now has an owner, a result, and evidence in the binder. Those sheets remain the preflight record; this page was the order you ran them in.

**Monday 06:00 — the FOC window opens.** Confirm each port's FOC at 06:00, re-point each landed DID to its new route, and watch; the hour-by-hour plan:

| Hour | What runs |
| - | - |
| 06:00 | FOC check on all three ports; re-point landed DIDs to their new routes. |
| 07:00 | First callers hit the queue as business opens in the tenant's timezone. |
| 08:00 | Devon reviews trunk metrics — registration state, 200 OK rate, per-leg jitter. |
| 09:00 | Priya confirms attestation headers on live traffic and first recorded calls carrying consent artifacts. |
| 12:00 | Maya reads the queue SLA against `targetServiceLevelSeconds` on the wallboard; adjust staffing if the floor drifts. |
| 16:00 | All three owners review the day: port statuses, trunk stability, recording retention, wrap-up coverage. Exit the weekend only when the sheet is clean. |

The [PSTN checklist](/guides/voice-telephony-go-live-checklist#5-sign-off-record) and the [CCaaS runbook](/guides/voice-ccaas-go-live-checklist#7-cutover) hold the sheet format; this table is when to run each line of it.

## Failure playbook — the three likeliest jams

* **FOC rejected on a wave.** The losing carrier bounced the port (bad account number, mismatched signer, or a freeze on the line). The affected DID falls back to its wave's rollback name; correct the rejection reason per [porting sequence](/guides/inbound-call-portability) and resubmit for the next window. The main number never ports before wave 1 clears, so a wave-1 rejection delays the schedule, never strands it.
* **Trunk registration 401-loop before 15:00.** The SIP credential on the trunk leg does not match what the PBX presents, or the egress IP is not allowlisted. Triage off the [troubleshooting page](/channels/voice/sip-trunks-troubleshooting) (REGISTER/401/REGISTER-200OK triplet) and stay in drill mode — do not proceed to DID re-pointing until the Saturday-11:00 exit test passes again.
* **Consent prompt or beep silent on a live call.** The per-queue consent flag is off, or the prompt asset failed to attach. Re-check the [recording-consent configuration](/guides/compliance-dpa-baa-recording-consent), place one more test call, and only then close the Sunday-13:00 slot. A missing consent artifact in a recorded call is a regulator finding, not a cosmetic defect.

## Related reading

* [PSTN voice go-live checklist](/guides/voice-telephony-go-live-checklist) — the preflight evidence this sequence orders
* [Contact-center (voice/CCaaS) go-live runbook](/guides/voice-ccaas-go-live-checklist) — the queue-and-softphone layer, stacked on the PSTN sheet
* [Production go-live checklist](/guides/go-live-checklist) — the platform gates required before Saturday
* [Port numbers](/guides/port-numbers) — LOA, FOC, and wave mechanics
* [SIP trunk first call](/guides/sip-trunk-first-call-walkthrough) — the probe and the exact 11:00 exit test
* [Browser softphone](/guides/voice-browser-softphone) — the agent credential every leg registers with
* [Voice country coverage](/guides/voice-country-coverage) — confirm Monday's outbound destinations before first dial


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