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
| Field | Applies to | Purpose | Fictional example |
|---|---|---|---|
| SMS Protocol | SMS only | Selects delivery method: Web URL, JSON Web URL, SOAP Web URL, SIP MESSAGE, SMSPORTAL, or AGISCRIPT. | JSONWEBURL |
| SIP Provider | SMS SIPMESSAGE | SIP provider used to send outbound SMS with SIP MESSAGE. | Docs Telecom SIP Trunk |
| SMS URL/AGI Script Name | WEBURL, JSONWEBURL, SOAPWEBURL, AGISCRIPT | HTTP endpoint or AGI script name used for delivery. | https://sms.example.invalid/v1/messages |
| SOAP Action | SOAPWEBURL | SOAPAction header value sent with SOAP SMS requests. | SendMessage |
| HTTP Content Type | JSONWEBURL, SOAPWEBURL | Content-Type header. Leave blank to use the protocol default when acceptable. | application/json or text/xml |
| User / Password | WEBURL, JSONWEBURL, SOAPWEBURL | HTTP authentication credentials when required by the SMS provider. | docs-json-user and a fictional secret |
| Client ID / API Secret | SMSPORTAL | SMSPortal credentials. MiRTA PBX uses them to request a bearer token before sending messages. | fictional-client-id |
| Post data | WEBURL | POST body in param=value¶m2=value format. Values are not automatically URL encoded. | to=${SMSDESTNUM}&text=${URIENCODE(${SMSTEXT})} |
| JSON data | JSONWEBURL | One field.path:value[:type] line per JSON field. Dot notation creates nested objects; numeric parts can create JSON arrays. | messages.0.content:${SMSTEXT} |
| SOAP data | SOAPWEBURL | SOAP or XML body sent to the SMS provider. | <Text>${SMSTEXT}</Text> |
| Additional Header 1-6 | SMS HTTP protocols | Extra HTTP headers for SMS requests. | Authorization: Bearer fictional-token |
JSON Web URL

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

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

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 uses the Client ID and API Secret to request a bearer token from the SMSPortal REST API before sending the message payload.
SIP MESSAGE

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
| Variable | Meaning |
|---|---|
${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. |