Providers

Providers administration tasks.

Overview

Providers are global carrier trunks or external services used by routing profiles, inbound DIDs, SMS delivery, and cost handling. Use Admin > Providers to create SIP, PJSIP, IAX2, DAHDI, LOCAL, or SMS providers and to review live channel counters.

Providers list with fictional documentation providers.
Providers list with fictional documentation providers.

Technology Selection

TechnologyUse forTypical fictional example
SIPLegacy chan_sip carrier trunks or IP-authenticated SIP gateways.Docs Telecom SIP Trunk at 203.0.113.20
PJSIPModern res_pjsip carrier trunks with endpoint, AOR, auth, and identify rows.Docs Telecom PJSIP Trunk with TLS/SRTP
IAX2IAX2 gateways or legacy interconnects.Docs IAX2 Gateway on port 4569
DAHDIAnalog, PRI, or hardware channel-group routing controlled outside SIP/PJSIP realtime.Docs Analog Gateway
LOCALLocal PBX routing targets that should be selected like a provider.Docs Local Route
SMSSMS delivery via HTTP, JSON, SOAP, SIP MESSAGE, SMSPortal, or AGI script.Docs SMS JSON Gateway

Configuration Workflow

Operational Notes

Shared Provider Fields

These fields appear on the provider page before technology-specific realtime options. Some fields are hidden when they do not apply to the selected provider technology.

Information

Provider Information fields filled with fictional SIP values.
Provider Information fields filled with fictional SIP values.
FieldApplies toPurposeFictional example
NameAll technologiesFriendly provider name shown in provider lists, route choices, reports, and provider-cost screens.Docs Telecom SIP Trunk
Peer NameAll technologiesStable technical identifier used by routing and, for realtime accounts, by Asterisk peer or endpoint rows. Keep it unique and avoid spaces.docs_telecom_sip
TechnologyAll technologiesSelects the provider driver or service type. It controls which realtime and SMS fields are visible.SIP, PJSIP, IAX2, DAHDI, LOCAL, or SMS
StatusAll technologiesControls whether the provider is usable. Enabled allows inbound and outbound use, Disabled removes it from routing, Only Inbound keeps inbound handling only.Enabled
Provider CostsExisting providersOpens the provider-cost editor for rating or cost data associated with the provider.Open costs for Docs Telecom SIP Trunk

Outbound Calls

Outbound Calls fields with fictional caller ID, digit, header, and routing values.
Outbound Calls fields with fictional caller ID, digit, header, and routing values.
FieldApplies toPurposeFictional example
Additional Header 1-6SIP, PJSIP, IAX2, SMSAdds SIP headers or SMS HTTP headers. Use one header per field in Header-Name: value format.X-Account-Code: docs-demo
CallerID PresentationSIP, PJSIP, IAX2, DAHDI, LOCALControls privacy and screening information sent when routing calls through the provider.Auto Privacy, CallerID not screened
Digits to AddAll outbound providersPrepends digits to the called number before the call or SMS is sent to the provider.+1
Number of digits to RemoveAll outbound providersRemoves leading digits from the called number before adding any outbound prefix.1
CallerID ModificationsVoice providersOptional outbound caller ID modification rule applied before the call leaves through this provider.No Modifications or Docs US E164 CallerID
CallerIDVoice providersForces a caller ID number for every call using the provider. Leave blank to use extension-derived caller ID.+15551230000
CallerID NameVoice providersForces a caller ID name for every call using the provider. Leave blank to use extension-derived caller ID name.Docs Main
CallerID allowed regexVoice providersValidates caller ID numbers accepted by the carrier. If the current caller ID does not match, MiRTA PBX falls back to DID, extension, or tenant defaults.^\+1555[0-9]{7}$
Max outbound channelsAll outbound providersLimits concurrent outbound channels. When the limit is reached, routing skips to another provider. Use Unlimited for no limit.12
PenaltyAll outbound providersProvider selection weight used by routing and round-robin choices. Lower penalty is preferred.10
Ignore SIP Cause codesVoice providersContinues to another provider even when this provider returns a SIP failure cause.checked for fallback routing
Ignore BUSYVoice providersContinues to another provider when this provider returns BUSY and the route should keep searching.checked for multi-carrier routes

Inbound Calls

Inbound Calls fields with fictional DID normalization and user variables.
Inbound Calls fields with fictional DID normalization and user variables.
FieldApplies toPurposeFictional example
Inbound Digits to AddInbound voice providersPrepends digits to the inbound DID or called number before destination matching.+1
Inbound Number of digits to RemoveInbound voice providersRemoves leading digits from the inbound DID or called number before adding any inbound prefix.0
DID ModificationsInbound voice providersOptional modification rule applied to inbound called numbers before DID matching.Docs US DID Normalize
Same provider IN and OUTInbound and forwarded voice callsControls whether calls entering from the provider may also be sent out through the same provider.Yes
Allow custom extensionsInbound voice providersAllows inbound calls from the provider to match custom extensions. Use only for trusted providers.unchecked
Normalize numberInbound voice providersRemoves URI or signaling decoration before matching the number to PBX destinations.checked
Get number fromInbound SIP/PJSIP-style signalingChooses where the inbound called number is read from: standard Request-URI, SIP To header, or a fixed value.SIP To: Header
Set toWhen Get number from is Set toFixed DID or destination number used instead of a number from signaling.+15551239999
Variable name 1-3Inbound voice providersCustom inbound channel variable name stored with the USR- prefix for routing or dialplan logic.ProviderName
Variable value 1-3Inbound voice providersValue assigned to the matching custom inbound channel variable.Docs Telecom SIP Trunk

Save, Delete, and Back

FieldApplies toPurposeFictional example
SaveAll providersStores the provider and creates, updates, or removes realtime account rows as required by the selected technology and Use Realtime Account.Save after replacing all fictional values.
DeleteExisting providersDeletes the provider and removes related realtime rows for SIP, PJSIP, or IAX2 providers.Delete an unused Docs Test Provider after checking routing references.
BackAll providersReturns to the Providers list without submitting the form.Use after reviewing settings.
Floating SaveLong formsLets administrators save from lower sections without scrolling back to the bottom button row.Visible while editing realtime account fields.

SIP Provider

Use SIP technology for chan_sip provider trunks. SIP providers can create and maintain a global sipfriends realtime row when Use Realtime Account is enabled.

SIP realtime account settings with fictional chan_sip trunk values.
SIP realtime account settings with fictional chan_sip trunk values.

Common Realtime Fields

FieldApplies toPurposeFictional example
Use Realtime AccountSIP, PJSIP, IAX2Creates and maintains the Asterisk realtime peer, endpoint, AOR, auth, or IAX row for the provider.checked
TransportSIP, PJSIPSIP signaling transport. For PJSIP this maps to transport objects such as transport-udp, transport-tcp, or transport-tls.UDP or TLS
RTP Encryption (SRTP)SIP, PJSIPEnables SRTP media encryption when supported by the provider. PJSIP stores this as media_encryption=sdes.No for standard UDP SIP, Yes for TLS/SRTP trunks
HostSIP, PJSIP, IAX2Remote provider address. Use an IP address when inbound realtime matching must identify the carrier by source IP.203.0.113.20
PortSIP, PJSIP, IAX2Remote signaling port. Defaults are commonly 5060 for SIP/PJSIP and 4569 for IAX2.5060
Outbound ProxySIP, PJSIPProxy URI or host used for outbound signaling when required by the carrier.sip-proxy.example.invalid
UsernameSIP, PJSIP, IAX2Authentication username sent to the provider. PJSIP stores this in ps_auths.username, chan_sip as defaultuser.docs_sip_user
PasswordSIP, PJSIP, IAX2Authentication secret for the provider. Use a unique carrier-supplied or generated secret.FictionalSecret-2026
QualifySIP, PJSIPEnables SIP OPTIONS reachability checks and controls timeout behavior.Yes
Qualify FrequencySIP, PJSIPInterval in seconds between provider reachability checks.60 secs
CodecsSIP, PJSIP, IAX2Allowed audio codecs. MiRTA PBX stores disallow=all and the selected allow list.alaw, ulaw, g722
Session ExpiresSIP, PJSIPMaximum SIP session refresh interval in seconds.1800
DTMF ModeSIP, PJSIPDTMF signaling method. PJSIP maps RFC 2833 to rfc4733.RFC 2833/RFC 4733
RTP KeepaliveSIP, PJSIPSends RTP keepalive packets to help keep NAT bindings and media paths active.5 seconds

SIP-Only Fields

FieldApplies toPurposeFictional example
From UserSIP onlychan_sip fromuser value used in the SIP From header.+15551230000
From DomainSIP onlychan_sip fromdomain value used when the provider requires a specific domain in the From header.sip.example.invalid
Send RPIDSIP onlyControls whether caller identity is sent using Remote-Party-ID, P-Asserted-Identity, or both.PAI
Trust RPIDSIP onlyControls whether inbound Remote-Party-ID or P-Asserted-Identity data is trusted for caller identity.PAI
Trust Outbound for CallerID PresentationSIP onlyControls how prohibited caller presentation is handled in RPID/PAI headers.Legacy
Session TimersSIP onlychan_sip session timer policy: accept remote requests, originate timers, or refuse timers.Accept
Progress inbandSIP onlyControls whether Asterisk generates in-band progress audio before answer.Yes
NATSIP onlychan_sip NAT behavior. force_rport,comedia is common for symmetric RTP and response routing.force_rport,comedia
Call response timer (ms) - T1SIP onlyMilliseconds to wait for response to SIP messages.500
Call setup timer (ms) - BSIP onlyMaximum milliseconds to wait for call setup before autocongestion when no provisional response arrives.5000
Can ReinviteSIP onlyAllows Asterisk to attempt direct media re-invites. Use No when recording, NAT, or media control should keep Asterisk in the RTP path.No
Allow TransferSIP onlychan_sip allowtransfer. When enabled, the peer may request SIP REFER transfers.No
InsecureSIP onlychan_sip authentication matching option. Port, Invite is common for IP-authenticated trunks.Port, Invite

Fictional SIP Example

Name: Docs Telecom SIP Trunk
Peer Name: docs_telecom_sip
Technology: SIP
Host: 203.0.113.20
Port: 5060
Username: docs_sip_user
From User: +15551230000
From Domain: sip.example.invalid
NAT: force_rport,comedia
Insecure: Port, Invite

PJSIP Provider

Use PJSIP technology for res_pjsip provider trunks. MiRTA PBX maintains related ps_endpoints, ps_aors, ps_auths, and ps_endpoint_id_ips rows when realtime is enabled.

PJSIP realtime account settings with fictional res_pjsip trunk values.
PJSIP realtime account settings with fictional res_pjsip trunk values.

Common Realtime Fields

FieldApplies toPurposeFictional example
Use Realtime AccountSIP, PJSIP, IAX2Creates and maintains the Asterisk realtime peer, endpoint, AOR, auth, or IAX row for the provider.checked
TransportSIP, PJSIPSIP signaling transport. For PJSIP this maps to transport objects such as transport-udp, transport-tcp, or transport-tls.UDP or TLS
RTP Encryption (SRTP)SIP, PJSIPEnables SRTP media encryption when supported by the provider. PJSIP stores this as media_encryption=sdes.No for standard UDP SIP, Yes for TLS/SRTP trunks
HostSIP, PJSIP, IAX2Remote provider address. Use an IP address when inbound realtime matching must identify the carrier by source IP.203.0.113.20
PortSIP, PJSIP, IAX2Remote signaling port. Defaults are commonly 5060 for SIP/PJSIP and 4569 for IAX2.5060
Outbound ProxySIP, PJSIPProxy URI or host used for outbound signaling when required by the carrier.sip-proxy.example.invalid
UsernameSIP, PJSIP, IAX2Authentication username sent to the provider. PJSIP stores this in ps_auths.username, chan_sip as defaultuser.docs_sip_user
PasswordSIP, PJSIP, IAX2Authentication secret for the provider. Use a unique carrier-supplied or generated secret.FictionalSecret-2026
QualifySIP, PJSIPEnables SIP OPTIONS reachability checks and controls timeout behavior.Yes
Qualify FrequencySIP, PJSIPInterval in seconds between provider reachability checks.60 secs
CodecsSIP, PJSIP, IAX2Allowed audio codecs. MiRTA PBX stores disallow=all and the selected allow list.alaw, ulaw, g722
Session ExpiresSIP, PJSIPMaximum SIP session refresh interval in seconds.1800
DTMF ModeSIP, PJSIPDTMF signaling method. PJSIP maps RFC 2833 to rfc4733.RFC 2833/RFC 4733
RTP KeepaliveSIP, PJSIPSends RTP keepalive packets to help keep NAT bindings and media paths active.5 seconds

PJSIP-Specific Fields

FieldApplies toPurposeFictional example
TransportPJSIP onlyMaps to the selected PJSIP transport object. Use TLS when the carrier requires encrypted signaling.TLS
Host and PortPJSIP onlyUsed to build the AOR contact and, when Host is an IP address, the endpoint identify match.198.51.100.30:5061
Username and PasswordPJSIP onlyStored in ps_auths. If username is empty, MiRTA PBX does not attach username/password auth.docs_pjsip_user
Outbound ProxyPJSIP onlyPJSIP outbound proxy string for the endpoint.sip:edge.example.invalid;transport=tls
Send RPIDPJSIP onlyMaps to PJSIP send_rpid and send_pai.PAI
Direct MediaPJSIP onlyAllows PJSIP to attempt direct RTP. Disable when NAT, recording, transcoding, or media control requires Asterisk in the RTP path.No
Allow TransferPJSIP onlyPJSIP allow_transfer. When enabled, the endpoint may request SIP REFER transfers.No
RTP Encryption (SRTP)PJSIP onlyStores media_encryption=sdes when enabled.Yes
Qualify Frequency and TimeoutPJSIP onlyStored on the AOR as qualify_frequency and qualify_timeout.60 secs

Fictional PJSIP Example

Name: Docs Telecom PJSIP Trunk
Peer Name: docs_telecom_pjsip
Technology: PJSIP
Transport: TLS
RTP Encryption: Yes
Host: 198.51.100.30
Port: 5061
Outbound Proxy: sip:edge.example.invalid;transport=tls
Send RPID: PAI
Direct Media: No
Allow Transfer: No

IAX2 Provider

Use IAX2 technology for IAX trunks and legacy interconnects. IAX2 uses fewer signaling fields than SIP/PJSIP and stores its realtime account in iaxfriends.

IAX2 realtime account settings with fictional gateway values.
IAX2 realtime account settings with fictional gateway values.

IAX2 Fields

FieldApplies toPurposeFictional example
HostIAX2 onlyRemote IAX2 peer address.203.0.113.45
PortIAX2 onlyRemote IAX2 signaling/media port.4569
UsernameIAX2 onlyStored as the IAX2 username used for authentication.docs_iax_user
PasswordIAX2 onlyIAX2 secret used for authentication.FictionalSecret-2026
CodecsIAX2 onlyAllowed codecs stored in the IAX realtime row.alaw, ulaw
Use Realtime AccountIAX2 onlyCreates or updates the row in iaxfriends.checked

Shared Routing Fields

IAX2 providers still use the shared outbound and inbound fields for digit manipulation, caller ID presentation, caller ID fallback, channel limits, penalties, and custom inbound variables.

Fictional IAX2 Example

Name: Docs IAX2 Gateway
Peer Name: docs_iax2_gateway
Technology: IAX2
Host: 203.0.113.45
Port: 4569
Username: docs_iax_user
Codecs: alaw, ulaw

DAHDI Provider

Use DAHDI technology for analog, PRI, or hardware channel-group resources that are managed by the telephony node outside SIP/PJSIP realtime. DAHDI providers do not show the realtime account block.

DAHDI provider fields with fictional analog gateway values.
DAHDI provider fields with fictional analog gateway values.

DAHDI Field Details

FieldApplies toPurposeFictional example
TechnologyDAHDI onlyUse when routing to analog, PRI, or channel-group resources managed by DAHDI outside SIP/PJSIP realtime.DAHDI
Peer NameDAHDI onlyIdentifier operators recognize as the DAHDI group or channel target.dahdi_docs_group1
CallerID PresentationDAHDI onlyControls presentation flags applied before dialing through the DAHDI provider.Auto Privacy and Screen
Digits to Add / RemoveDAHDI onlyNormalizes outbound numbers for PSTN gateway expectations.Remove 0, add blank
Get number from / Set toInbound DAHDI useSets or normalizes the inbound called number when signaling does not carry the DID in a SIP-style header.Set to +15551234444
Max outbound channelsDAHDI onlyProtects limited analog or PRI capacity.4

Shared Fields Still Used

DAHDI providers still use provider name, peer name, status, outbound digit manipulation, caller ID presentation, caller ID overrides, caller ID allowed regex, max outbound channels, penalty, inbound digit manipulation, DID modifications, custom variables, and save/delete controls.

Fictional DAHDI Example

Name: Docs Analog Gateway
Peer Name: dahdi_docs_group1
Technology: DAHDI
Status: Enabled
Max outbound channels: 4
Get number from: Set to +15551234444

LOCAL Provider

Use LOCAL technology when a PBX-local route should be selected by routing profiles like a provider. LOCAL providers do not create SIP, PJSIP, or IAX realtime rows.

LOCAL provider fields with fictional local route values.
LOCAL provider fields with fictional local route values.

LOCAL Field Details

FieldApplies toPurposeFictional example
TechnologyLOCAL onlyUses a local route target instead of an external SIP/IAX/DAHDI carrier account.LOCAL
Peer NameLOCAL onlyStable local-route identifier for administrators and routing profiles.docs_local_route
Digits to Add / RemoveLOCAL onlyNormalizes the number before local routing.No add, remove 0
CallerID and CallerID NameLOCAL onlyOptionally forces caller ID for calls sent through the local route.+15551230000 and Docs Local
Max outbound channelsLOCAL onlyLimits local-route concurrency, or Unlimited when no limit is needed.Unlimited
Inbound optionsLOCAL when used for inbound-like routingCan still normalize destination numbers and set custom variables before matching.Normalize number checked

Shared Fields Still Used

LOCAL providers still use common identity, status, outbound digit manipulation, caller ID controls, max outbound channels, penalty, inbound normalization, DID modification, and custom variable fields. Additional SIP/SMS headers and realtime account settings are hidden.

Fictional LOCAL Example

Name: Docs Local Route
Peer Name: docs_local_route
Technology: LOCAL
Status: Enabled
Max outbound channels: Unlimited
Penalty: 50

SMS Provider

Use SMS technology for outbound text-message delivery. SMS providers reuse provider identity, status, outbound digit manipulation, additional headers, channel limits, and penalty fields, then expose protocol-specific delivery fields.

SMS Field Details

FieldApplies toPurposeFictional example
SMS ProtocolSMS onlySelects delivery method: Web URL, JSON Web URL, SOAP Web URL, SIP MESSAGE, SMSPORTAL, or AGISCRIPT.JSONWEBURL
SIP ProviderSMS SIPMESSAGESIP provider used to send outbound SMS with SIP MESSAGE.Docs Telecom SIP Trunk
SMS URL/AGI Script NameWEBURL, JSONWEBURL, SOAPWEBURL, AGISCRIPTHTTP endpoint or AGI script name used for delivery.https://sms.example.invalid/v1/messages
SOAP ActionSOAPWEBURLSOAPAction header value sent with SOAP SMS requests.SendMessage
HTTP Content TypeJSONWEBURL, SOAPWEBURLContent-Type header. Leave blank to use the protocol default when acceptable.application/json or text/xml
User / PasswordWEBURL, JSONWEBURL, SOAPWEBURLHTTP authentication credentials when required by the SMS provider.docs-json-user and a fictional secret
Client ID / API SecretSMSPORTALSMSPortal credentials. MiRTA PBX uses them to request a bearer token before sending messages.fictional-client-id
Post dataWEBURLPOST body in param=value&param2=value format. Values are not automatically URL encoded.to=${SMSDESTNUM}&text=${URIENCODE(${SMSTEXT})}
JSON dataJSONWEBURLOne field.path:value[:type] line per JSON field. Dot notation creates nested objects; numeric parts can create JSON arrays.messages.0.content:${SMSTEXT}
SOAP dataSOAPWEBURLSOAP or XML body sent to the SMS provider.<Text>${SMSTEXT}</Text>
Additional Header 1-6SMS HTTP protocolsExtra HTTP headers for SMS requests.Authorization: Bearer fictional-token

JSON Web URL

SMS JSON Web URL provider with nested JSON fields and fictional values.
SMS JSON Web URL provider with nested JSON fields and fictional values.

JSON Web URL post data uses one line per JSON field in field.path:value[:type] format. Dot notation creates nested objects. Numeric path parts create numeric object keys which encode as JSON array indexes when sequential. Use :array to force a single-value array.

sender.number:${SMSSOURCENUM}
sender.name:${SMSNAME}
messages.0.destination:${SMSDESTNUM}
messages.0.content:${SMSTEXT}
message.metadata.tenant:${TENANTNAME}
recipients:${SMSDESTNUM}:array

Web URL

SMS Web URL provider with fictional POST data.
SMS Web URL provider with fictional POST data.

Web URL post data is sent as a raw form-style body. The script does not automatically URL encode values, so encode values explicitly when the provider requires it.

SOAP Web URL

SMS SOAP Web URL provider with fictional SOAP action and XML data.
SMS SOAP Web URL provider with fictional SOAP action and XML data.

SOAP Web URL sends the configured SOAP/XML body and optional SOAPAction header. Set HTTP Content Type to text/xml unless the provider documents a different value.

SMSPortal

SMSPortal provider with fictional client credentials.
SMSPortal provider with fictional client credentials.

SMSPortal uses the Client ID and API Secret to request a bearer token from the SMSPortal REST API before sending the message payload.

SIP MESSAGE

SMS SIP MESSAGE provider with a fictional SIP provider selection.
SMS SIP MESSAGE provider with a fictional SIP provider selection.

SIP MESSAGE sends the SMS through a selected SIP provider. Choose a SIP provider that is trusted and configured for message delivery.

AGI Script

AGISCRIPT runs the named AGI script for SMS delivery. Use this only for custom integrations maintained by the PBX administrator. The SMS URL/AGI Script Name field stores the script name.

Available SMS Variables

VariableMeaning
${SMSDESTNUM}Destination number after SMS routing and digit handling.
${SMSSOURCENUM}Source number for the message.
${SMSNAME}Peer or sender name available to the SMS script.
${SMSTEXT}Message text.
${EMERGENCYNOTES}Emergency notes from the extension when available.
${TENANTNAME}Tenant name.
${BILLINGCODE}Tenant billing code.
${EXTRACODE}Tenant extra code.
${EXTRAFIELD001}, ${EXTRAFIELD002}, ${EXTRAFIELD003}Tenant custom extra fields.