Home / Work / Case study

Beanfield · Jul to Sep 2026

Vancouver IPTV launch

Beanfield took IPTV to British Columbia. I built the platform side: how a Vancouver set-top box reaches the platform, the regional bundles and pricing plans the billing system cannot create, and the end-to-end provisioning test that proved a real order works.

My roleTechnical lead, platform side
Worked withIT Infrastructure, Product, a field vendor
Result5 cities live: Toronto, Montreal, Ottawa, Gatineau, Vancouver
ProofEnd-to-end test PASS, 16 Sep 2026

The problem

  • Vancouver sells a different line-up from Toronto: British Columbia regional channels, and none of the Quebec-only channels.
  • The platform had no bundles or pricing plans for the region, and the billing system (BOSS) cannot create them, so they had to be built on the IPTV platform by hand and match the billing catalogue exactly.
  • The BC media edge servers existed but carried no traffic, and the internal Vancouver test box could not reach the platform at all.

What I did

  1. 8 Jul 2026, mapped the stream path. Documented how a set-top box is sent to the Vancouver edge: an HTTP redirect at the public front door.
  2. 29 Jul, fixed the test box. Found it sat in an internal management routing instance with no DNS and no route to the public delivery addresses. Moved it to the normal customer service path: 58 of 58 requests returned HTTP 200, with no firewall change needed.
  3. 19 Aug, checked the edges. Recorded the BC edges as pre-production and flagged an edge clock 6 hours behind, to fix before cutover.
  4. 28 Aug, built three channel bundles by copy-and-trim with read-back verification: Skinny Basic (45 channels), Sports Lover (57) and Essentials (98), each an exact match to the billing catalogue, with French and English names. Closed an "a la carte" gap on 1 Sep.
  5. 16 Sep, built three pricing plans: Essentials (83 service links), Skinny Basic (108) and Sports Lover (108). Plan count went from 24 to 27 with zero deletes.
  6. 16 Sep, ran the end-to-end test. A real billing order on Skinny Basic flowed into the platform and played: PASS. Wrote the repeatable runbook.
  7. Reused the method for Toronto, Ottawa, Gatineau and Montreal bundles and plans, again with zero deletes.

Results

Before

No BC bundles or plans; test box unable to reach the platform; edges carrying no traffic.

After

3 bundles and 3 plans matching billing exactly; test box 58 of 58 OK; provisioning test PASS; Vancouver live as the fifth city.

Two defects were only caught because every write was read back: a delete that never fired and a French name that did not change. "Verify before done" is the habit this project proved.

What was hard

  • The test-box failure looked like a firewall problem; the real cause was a routing-instance mismatch.
  • Billing and platform catalogues must match item for item, so every bundle was compared line by line with the catalogue.
  • Builder scripts (pricing plans, market bundles, a la carte gap sweep) now make the next market a repeatable job.

Stack

SmartLabs SmartTUBE / SDPSmartMedia edge redirectorBOSS billingEMS catalogueDNS and VRF routingMetabasePython builders