Bitfocus AS
logo
logo
Bitfocus AS
logo
logo
Sign upSign in

Loading...

Bitfocus

Subscribe to our newsletter

The latest news, articles, and resources, sent to your inbox.

FacebookInstagramGitHubYouTubeLinkedIn

Products

  • Buttons
  • Companion

Integrations

  • Supported Devices
  • Developer Community
  • Connection Development

Support

  • Support Overview
  • Documentation
  • Video Tutorials
  • Community Forum

Sales

  • Resellers & Integrators
  • Buttons Pricing

Updates

  • Case Studies
  • Events & Trade Shows
  • Press Releases
  • Product Updates
  • Webinars

Legal

  • Legal Overview
  • Privacy Policy
  • Buttons EULA
  • Terms & Cookie Policy

Company

  • About us
  • Press kit
  • Careers

© 2026 Bitfocus AS. All rights reserved.

Tielines
Docs for
Overview
Getting started
What is Bitfocus Buttons?
Install Buttons and get started
Manage your Buttons license
Activate Buttons offline
Find your way around Buttons
Create your first backup
Add an ATEM connection
Choose a control method
Choose an installation path
Install Buttons on Debian or Ubuntu
Understand HA clustering
Kubernetes HA
Update or remove Buttons
Positions
Understand positions
Create a position
Add controls and sections to a position
Create your first button
Use a connection's presets
Build more capable button actions
Add more feedback to a button
Organize controls in a section
Shift Section
Organize controls with a Folder Section
Add a Popover Section
Build and reuse a Shared Section
Build a Router Section
Understand Custom Routers
Custom Router panel
Surfaces
Surface compatibility
Add and attach a surface
Device orientation
Connections
Update a connection's module safely
Monitor and troubleshoot a connection
Router integrations
VideoHub and AJA KUMO
Utah Scientific BPS
Generic SW-P-08
Nevion VideoIPath
Arkona BLADE//runner
Routing
Physical routing
Configure ports and labels
Take a physical route
Understand route status
Topology graph
Routing Presets
Get started with virtual routing
Configure Nested Shapes
Reverse routing
Tielines
Routing Projects
Routing settings
Troubleshoot a route
Tally
Understand the Tally system
Send ATEM tally and labels to a UMD
Interpret Active Tally state
TSL/UMD connections
Diagnose tally problems
NMOS
Understand NMOS in Buttons
Connect Buttons to an NMOS Registry
Built-in Registry Server
Configure NMOS connections
Discover and adopt
Browse the NMOS inventory
Manage NMOS multicast addresses
Diagnose NMOS problems
Understand Cuelists
Build a Cuelist
Read and advance a running Cuelist
Control a Cuelist from a Position
Workflows
Understand workflows
Build your first workflow
Reuse a group of workflow nodes safely
Troubleshoot a workflow
Recipes
Sequence a timed automation
Call an HTTP endpoint from a workflow
REST endpoint
Use variables
Understand variable scope
Understand nested variables
Update expressions for v1.8
Plan and use Tags
Access
Create and manage users
Create roles and assign permissions
Grant access to specific resources
Show different controls by role
Sessions
Set up PIN and NFC sign-in
SSO
Get started with SSO
Connect a generic OIDC provider
Connect LDAP or Active Directory
Map identity claims to roles
Secure a Buttons deployment
Integrations
External control
Connect to Bitfocus Listener
USB Relay
Install USB Relay on Windows
Install USB Relay on macOS
Install USB Relay on Linux
Install USB Relay on a Raspberry Pi
Get started with the Control API
Secure and monitor the Control API
Control API reference
API reference
Administration
Enable and manage installable features
Services and health
Configure and monitor scheduled backups
Restore a backup and verify it
Export or import Buttons configuration
Store and rotate connection secrets
Replace the HTTPS certificate
HA backup and recovery
Settings
Collect support information
Reference
Glossary
Button Inspector reference
Network ports reference
Expressions
Internal actions reference
Routing Presets panel reference
Startup configuration reference
Workflow nodes
Connection workflow nodes
Workflow workflow nodes
Internal workflow nodes
Position workflow nodes
API workflow nodes
Utility workflow nodes

Loading...

Previous
← Reverse routing
Next
Routing Projects →
Contact support →
You are viewing documentation for Buttons 1.8.See the docs for Buttons 1.6
Buttons/Routing/Tielines

Tielines

The Tieline system makes multiple individual routers behave like one larger router. An operator can request that a source on Router A reaches a destination on Router B without needing to know how the routers are connected or which intermediate routes are required.
Behind that request, the signal cannot jump directly between the routing matrices. The physical connection normally runs from a destination port on the first router to a source port on the next router. Completing the end-to-end route therefore requires a route on the first router, an available connection between the routers, and another route on the next router.
Buttons hides this complexity from the operator. It models the inter-router connections as Relations, limits their permitted use with Routing Rules, finds an allowed path, and reserves the shared connections used by that path.
Tielines are shared routing resources. A cross-router route is retained as a Route Request so Buttons can continue to account for the Relations it occupies. Projects group those retained routes so they can be found and released when a production is finished.

How the parts fit together#

A Tieline route uses these product concepts:
  • A routing domain is the set of ports that can route locally. In most installations, this is one router.
  • A Relation tells Buttons about the physical connection from a destination port on one router to a source port on another.
  • A Routing Rule identifies the edge sources, edge destinations, and Relations that may form a Tieline path.
  • A Route Request retains the selected cross-router route and its path through the Relations.
  • A Project groups retained routes for a production, event, room booking, or other period of use.
For example, a route from Replay A on Router A to PCR 2 Multiview on Router B may resolve as:
Replay A source
→ Router A Tieline Out destination
→ Relation
→ Router B Tieline In source
→ PCR 2 Multiview destination
The operator selects only Replay A → PCR 2 Multiview. Buttons uses the Relation to understand that the two routers are connected, then plans and executes the route required on each router.

Before you begin#

Identify:
  • The routers the route must cross.
  • The physical transit connection between each pair of routers.
  • The destination port that feeds each physical connection.
  • The source port that receives from each physical connection.
  • The edge sources and destinations allowed to use those connections.
  • How routes should be grouped and released through Projects.
Confirm the physical signal direction before creating Relations. Reversing the endpoints models a different path.

Warning

Taking or releasing a Tieline route can change several router destinations. Become familiar with the path and release behavior before deploying it in production.

Create Relations between routers#

A Relation represents the physical connection from a destination port on one router to a source port on another. It tells Buttons where a signal can cross between routers; it does not execute a route when it is created.
  1. Open Routing → Relations.
  2. Select Create Relation.
  3. Enter a Relation Label that identifies both sides of the connection.
  4. On the Destinations side, select the port that feeds the physical transit connection.
  5. On the Sources side, select the port that receives the signal from that connection.
  6. Confirm at least one essence mapping between the staged destination and source: Buttons proposes a pattern automatically when the two sides are compatible, and Create stays disabled until at least one mapping exists. Review the proposed mapping (or build one by hand) before continuing.
  7. Leave Use for tielines on unless this Relation should carry port metadata without being eligible for Tieline routing: see below.
  8. Review the staged pair.
  9. Select Create.
Select several matching destination/source pairs to create several Relations in one operation. Buttons adds a number to the label for each generated Relation. Turn on Create Multiple when the dialog should remain open for another batch.
Repeat this for every independent physical transit path. Parallel cables or channels should be separate Relations because each can be occupied independently.

Exclude a Relation from Tieline routing#

Every Relation has its own Use for tielines setting, on by default. A Relation with it turned off is ignored by Tieline path selection and hidden from the Tieline graphs: useful for a Relation that exists to carry port/essence metadata for other purposes without being a candidate route Buttons should ever pick. The Relations list shows this as a Tielines column (Yes/No), and it can be changed later from the Relation's own edit dialog.

Inspect Relations#

The Relations page shows:
  • From and To transit endpoints.
  • Whether the Relation is enabled.
  • The Active Signal currently reported at the transit input.
  • The retained Route Request using the Relation, or Available when none is assigned.
  • A Capacity Overview of the configured Relations.
A Relation can carry the same upstream source to more than one downstream destination while that source remains on the transit path. A competing source needs another allowed Relation or must wait until the occupied path is released.
Disabling a Relation prevents it from being selected for a new path. It does not describe or repair the physical connection itself.

Create a Routing Rule#

A Relation is not automatically available to every route. At least one Routing Rule must associate permitted edge ports with the Relations they may use.
  1. Open Routing → Routing Rules.
  2. Select Create Rule.
  3. Enter a Label, such as Router A replay to Router B PCR.
  4. Open the new rule.
  5. Add the edge Source Ports allowed to originate routes.
  6. Add the edge Destination Ports allowed to receive those routes.
  7. Add the Relations that may carry them: only Relations with Use for tielines on are offered here.
  8. Leave Enabled on.
  9. Add a Description when the operational boundary is not clear from the label.
  10. Save the rule.
A Relation can appear in several rules. Buttons considers a Relation allowed for a source-to-destination route only when an enabled rule contains that source, destination, and Relation.

Keep transit endpoints out of manual routing#

Routing Rules provide two separate controls for their Relation endpoints:
  • Hide ports removes the endpoints from manual routing interfaces while keeping them available to Tieline planning.
  • Protect ports rejects direct route requests to those endpoints so they can only be changed as part of a Tieline path.
Use these controls when operators should work with the edge source and destination rather than the intermediate transit ports. Leave them off while initially inspecting the configuration.

Understand path selection#

When a route is staged, Buttons builds a routing graph from the configured routing domains (normally the routers) along with enabled Relations, enabled Routing Rules, retained Route Requests, and current reservations.
Buttons then:
  1. Checks whether the source and destination can route locally on the same router or routing domain.
  2. If they are not, finds an allowed path through the configured Relations.
  3. Excludes Relations that are unavailable, disallowed by the applicable rule, occupied by a competing source, or temporarily reserved by another routing operation.
  4. Reuses an occupied Relation when the retained path already carries the same source and the remaining path is valid.
  5. Produces the intermediate physical route requests required for the selected path.
  6. Retains the cross-router Route Request so later planning can account for the occupied Relations.
Buttons searches for an eligible short path through the graph. Do not rely on one particular parallel Relation being chosen unless the Routing Rules restrict the available choice accordingly.

Preview and take a Tieline route#

  1. Open Routing → Execute.
  2. Select the edge source and destination.
  3. Select Paths.
  4. Review the source, destination, and intermediate path shown for the staged route.
  5. If no path is shown, review the Relation, Routing Rule, endpoint availability, and current Route Requests before taking the route.
  6. Select a Project when one should own the retained route.
  7. Select Take.
  8. Review the routing report and the resulting route state.
A route that stays within one routing domain (normally one router) does not claim a Relation. A cross-router route creates or updates a retained Route Request and may occupy one or more Relations.

Use Projects for housekeeping#

Projects give retained routes an operational owner and make it possible to release a production's routes together.

Tip

Assign Tieline routes to Projects so technical staff can find and release all routes held for a production in one place.

  1. Create or identify the production's Project.
  2. Stage the Tieline route in Routing → Execute.
  3. Review Paths.
  4. Select the Project before selecting Take.
  5. When the production finishes, inspect the Project and release the routes it holds.
An administrator can turn on Require project for tielines to reject Tieline routes that do not have a Project. See Group and release routes with Projects for creation, assignment, release, expiry, and archival guidance.

Inspect occupancy and retained routes#

Use Routing → Relations for a transit-resource view:
  • Available means no retained Route Request currently uses the Relation.
  • A Route Request tag identifies the retained route using it.
  • Active Signal shows the currently reported source at the Relation endpoint.
Use Routing → Projects for a production view. It shows which retained routes belong together and whether they still need release.
Use Paths in Routing → Execute for a proposed-route view. It shows how the currently staged route is expected to cross the configured Relations.
These views answer different questions. An active signal on a transit port does not by itself identify which Project owns the retained route; inspect the Route Request or Project for that context.

Release a Relation manually#

If technical staff need to clear every retained route using a specific Relation:
  1. Open Routing → Relations.
  2. Right-click the Relation.
  3. Select Release Route Requests.
  4. Confirm the release.
  5. Review the routing report if any route could not be released.
This acts on all retained Route Requests using the selected Relation. Prefer releasing through a Project when the goal is to clean up one production, because a Relation may be shared by routes with different operational owners.

If no valid path is found#

Check the model in this order:
  1. Confirm that the source and destination ports exist and are available.
  2. Confirm each Relation's destination-to-source direction and Enabled state.
  3. Confirm an enabled Routing Rule contains the edge source, edge destination, and required Relations.
  4. Inspect Paths for the first missing or blocked segment.
  5. Inspect Relations for retained Route Requests from competing sources.
  6. Confirm a Project is selected when Require project for tielines is enabled.
  7. Confirm the physical transit connection and all routing devices remain controllable.
A route can have no valid path even when both edge endpoints are healthy. The missing part may be topology, policy, occupancy, Project context, or the physical transit connection.

Where to go next#

  • Group and release routes with Projects.

Was this helpful?

Was this helpful?

0 of 0 users found this page helpful