ARCAMUSA VOICE ENGINEERING

Asterisk & PJSIP Architecture

Understand endpoint, AOR, auth, registration, identify, transport and dialplan relationships before changing a production trunk.

Core engineering model

An endpoint defines channel behavior. Each decision must be verified against the deployed Asterisk version, peer requirements and packet evidence rather than copied as a universal setting.

An AOR locates contacts. Each decision must be verified against the deployed Asterisk version, peer requirements and packet evidence rather than copied as a universal setting.

Auth proves credentials; identify maps inbound traffic. Each decision must be verified against the deployed Asterisk version, peer requirements and packet evidence rather than copied as a universal setting.

Guides in this cluster

Operational boundary

PJSIP separates transport, endpoint behavior, address-of-record contacts, authentication, outbound registration and inbound identification. Those objects form a graph; troubleshooting must follow the exact reference that the failed transaction used rather than assuming similarly named sections are linked.

Field workflow

Map each trunk in a diagram before change. Identify the transport, endpoint, AOR/contact, outbound auth, optional registration, identify rule and dialplan context. Validate the installed option names, back up the complete object set, change the smallest coherent group and inspect loaded objects before placing a call.

Read-only starting pointCOMMANDBASH
pjsip show transports
pjsip show endpoint carrier-endpoint
pjsip show aor carrier-aor
pjsip show identifies

Verification standard

A healthy CLI inventory shows each named object and its intended relationship. Then prove registration separately from outbound INVITE admission and inbound identify matching. Finally validate negotiated media. No single CLI status proves all three paths.

Failure patterns

An endpoint with no contact cannot be dialed; a registration can succeed while the endpoint points to another AOR; identify can select the wrong context; the first compatible transport can be selected when none is explicit. Resolve the missing graph edge before changing codecs or NAT.

Security and governance

Auth objects contain secrets, identify objects establish network trust and contexts expose dialplan capabilities. Protect configuration permissions, constrain match ranges, isolate inbound contexts and avoid posting object dumps that reveal topology or credentials.

Object lifecycle and controlled reload

Configuration lifecycle begins before a reload. Parse the proposed sections for duplicate names, confirm module availability, compare option support with the installed branch and identify active dialogs that may depend on the object. A transport can be more restart-sensitive than an endpoint or AOR; do not promise a reload-only change without checking the specific release. Plan a drain or maintenance window when required.

After loading, inspect the object graph and then observe a transaction selecting it. The endpoint name printed in a log is direct evidence of selection; a similarly named AOR is not. For outbound calls, confirm the resolved contact and transport. For inbound calls, confirm the identifier and restricted context. For REGISTER, preserve challenge and authenticated retry separately.

Retire stale objects deliberately. Remove obsolete identify ranges, contacts, transports and auth references only after traffic and configuration dependency checks. Orphaned credentials and broad identify rules enlarge attack surface even when no current dialplan points to them.

Operational assurance

Use configuration templates only when ownership and override order are understood. A value inherited from a template can make the rendered endpoint differ from the visible local section, so inspect the loaded object. Track configuration source, reviewer, deployment time and rollback artifact. For realtime or generated configuration, verify the authoritative backend rather than editing a file that is not consumed. Monitor object reload errors and unknown options after upgrades. Asterisk can continue running with an earlier loaded state when a new configuration is rejected, which makes file inspection alone misleading.

Review cadence

Maintain a sanitized object inventory showing names and relationships without credentials or real addresses. Review it after upgrades and compare CLI-rendered values with configuration sources. Test one registration-auth model and one IP-auth model only where actually used. Remove stale sections through change control, because an unused broad identify or unrestricted context can become reachable after a later routing change.

Exit criteria

A rollback must restore every related object, not only the endpoint section. Re-run object inspection after rollback and place separate inbound and outbound tests. Confirm that temporary auth material, duplicate sections and test identify rules were removed from the active configuration.

Authoritative references

Related engineering resources

Last substantively reviewed: 2026-09-13