{
"type": "object",
"properties": {
"phone_number": {
"type": "string",
"description": "E.164 phone number, e.g. +14155552671"
},
"termination_uri": {
"type": "string",
"description": "SIP termination host[:port], e.g. example.zt.provider.com:5060 — no sip: prefix"
},
"auth_mode": {
"type": "string",
"enum": [
"userpass",
"ip"
],
"description": "How the provider authorizes this trunk (default 'userpass'). 'userpass' requires sip_trunk_username and sip_trunk_password; 'ip' requires both to be omitted."
},
"sip_trunk_username": {
"type": "string",
"description": "SIP authentication username — required for auth_mode userpass, forbidden for ip"
},
"sip_trunk_password": {
"type": "string",
"description": "SIP authentication password (stored encrypted) — required for auth_mode userpass, forbidden for ip"
},
"nickname": {
"type": "string",
"description": "Display nickname for this trunk"
}
},
"required": [
"phone_number",
"termination_uri"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}