Skip to content

Line Profiles

A line profile is a reusable service class: every setting that describes what kind of line this is rather than whose line it is. Hundreds of lines typically share a handful of profiles — standard, executive, lobby, fax — and upgrading a subscriber is a one-field change on the line.

line-profiles:
standard:
inbound-translation-context: from-lines
screening-context: no-premium
calling-features: [voicemail, dnd, cfa, cfb, cfna]
feature-code-map: standard
codecs: [g722, ulaw, alaw]
Field Required Meaning
inbound-translation-context yes The translation context walked for every number lines with this profile dial — including forward targets and voicemail callback.
screening-context no Destination screening applied after translation, before dialing. Empty = unrestricted.
special-number-profile no Which special-number profile intercepts emergency numbers for these lines. Empty = the default profile.
calling-features no The feature entitlements granted to these lines (below).
max-ring-time no Seconds a call rings these lines’ devices before no-answer handling (voicemail / CFNA) takes over. Default 25. A subscriber’s own call-forward-no-answer timeout, when set, overrides it for that line.
feature-code-map no Which feature-code map these lines can dial. Empty = no star codes.
allow-unrestricted-caller-id no Let devices assert their own external caller ID (below). Default off.
codecs no Ordered codec policy for these lines (below). Empty = no restriction.
max-concurrent no Template concurrent-call cap applied to each line individually. A line’s own max-concurrent overrides it. Zero/absent = unlimited.

Calling features — entitlement, not state

Section titled “Calling features — entitlement, not state”

calling-features lists what lines with this profile are allowed to use. The subscriber-facing state itself (DND on/off, forward targets, speed dials) is managed per line through the API or portal:

Flag Grants
voicemail Unanswered/busy/DND calls fall to the line’s mailbox; without it, a configured mailbox is ignored
dnd Do-not-disturb
cfa Call-forward always
cfb Call-forward on busy
cfna Call-forward on no-answer (with configurable timeout)
spam Accepted for a future inbound spam-screening capability; no effect in this release

Entitlement is enforced on both sides:

  • The management API refuses to set feature state a line’s profile doesn’t grant.
  • At call time, existing state for a non-granted feature is ignored — so downgrading a profile immediately disables the features it revoked, without touching stored subscriber state. Re-granting the feature brings the old state back.

By default the switch enforces line caller ID: whatever a device puts in its From header is discarded and the line’s configured caller-id / internal-caller-id are presented. Subscribers cannot spoof.

allow-unrestricted-caller-id: true relaxes this for the profile: a presented caller ID passes through (falling back to the configured one when the device sends nothing). Reserve it for trusted use cases — a PBX behind registered devices asserting its own DID block, a call-center presenting campaign numbers — and remember that as the operator you remain responsible for the identities your lines originate with.

This choice also sets the STIR/SHAKEN stakes: when your namespace signs outbound calls, line-originated calls are signed at attestation A (the switch enforced the caller ID) — but lines on an unrestricted profile are signed at B, since the asserted number wasn’t verified.

codecs is an ordered list of permitted codecs (Asterisk names — ulaw, alaw, g722, g729, opus, gsm, ilbc, and the other names in the codec appendix):

  • Inbound offers from these lines’ devices are stripped to this set at the edge; an offer with no permitted codec is refused with SIP 488 before anything rings.
  • Outbound dials to these lines offer this set, in listed order of preference.
  • Empty means no policy — whatever the endpoints negotiate passes through.

Keep the list short and put your preferred codec first: [g722, ulaw] gives HD audio between capable endpoints with a universal fallback.

line-profiles:
# Full-featured knowledge-worker line.
executive:
inbound-translation-context: from-lines
calling-features: [voicemail, dnd, cfa, cfb, cfna]
feature-code-map: standard
codecs: [g722, ulaw]
# Courtesy phone: internal-only, no features, no star codes.
lobby:
inbound-translation-context: from-lines
screening-context: internal-only
max-concurrent: 1
# Fax / analog adapter: G.711 only, nothing clever.
fax:
inbound-translation-context: from-lines
codecs: [ulaw]
# Call-center line asserting campaign caller IDs.
dialer:
inbound-translation-context: from-dialer
allow-unrestricted-caller-id: true
screening-context: domestic-only
codecs: [ulaw]

All four share translation contexts and screening contexts defined once — profiles are where the reusable pieces are bundled into a sellable class of service.