Sign inGet Started

Create a gateway on a SIP trunk

POST
/v1/voice/trunks/{trunk_id}/gateways
const gateway = await bird.voice.trunks.gateways.create("TRUNK_ID", {
  sip_uri: "sip:pbx.example.com:5060",
  priority: 0,
  destination_format: "1234#{number}",
});
console.log(gateway.id, gateway.priority);
响应201
{
  "id": "vtg_01krdgeqcxet5s7t44vh8rt9mg",
  "trunk_id": "spt_01krdgeqcxet5s7t44vh8rt9mg",
  "sip_uri": "sip:pbx.example.com:5060",
  "priority": 0,
  "origination_format": "+{number}",
  "destination_format": "+{number}",
  "created_at": "2026-05-20T09:14:52Z",
  "updated_at": "2026-05-25T16:42:01Z"
}
Adds a gateway address for forwarding inbound calls to this trunk.
Gateways are tried in priority order, lowest first, until one answers. Gateways with equal priority share calls evenly. sip_uri identifies the peer host, while destination_format and origination_format control the called and calling number formats. Both number formats default to E.164.
A SIP URI already registered on this trunk returns 409 Conflict. An invalid SIP URI, a SIP URI carrying a user part, or a malformed number format returns 422. A trunk outside the workspace returns 404 Not Found. A trunk without inbound calling enabled returns 412 Precondition Failed.
A trunk supports at most 20 gateways. Creating another returns 422; delete a gateway before adding its replacement. SIP ports must be between 1 and 65535.
参数
trunk_id
string
请求载荷
sip_uri
string
必填
SIP URI an inbound call to this trunk should be forwarded to. Give the host only, with an optional port: which number is dialed there comes from destination_format, so a URI carrying a user part is rejected.
priority
integer
必填
The order gateways are tried in, lowest first. Give two gateways the same priority to share calls between them evenly.
origination_format
string
How this gateway wants the calling number spelled. Write a template whose {number} stands for the number without its leading +; the result is stated in the P-Asserted-Identity header of the delivered call.
Omit it for E.164, which is +{number}. The template may add digits, letters and the characters -_.!~*'()&=+$,;?/%# around {number}, which may appear at most once, and anything else in braces is rejected so a misspelled placeholder cannot reach a call.
A format with no {number} at all states the same identity on every call, which is what a peer that only accepts one authorized number wants. The call then carries nothing about who really called.
destination_format
string
How this gateway formats the dialed number. In the template, {number} represents the number without its leading +. The result is placed before the sip_uri host. For example, 1234#{number} formats +31201234567 as sip:1234#31201234567@pbx.example.com:5060.
Omit it for E.164, which is +{number}. A format with no {number} at all sends every number this trunk answers to one fixed number, so 777000447973 reaches sip:777000447973@pbx.example.com:5060 whatever was dialed. The same rules as origination_format apply to what the template may contain.
响应载荷
id
string
必填
Unique identifier for this gateway.
trunk_id
string
必填
sip_uri
string
必填
SIP URI an inbound call to this trunk is forwarded to. The host only: which number is dialed at that host comes from destination_format, because it changes with every call.
priority
integer
必填
The order gateways are tried in, lowest first. Gateways sharing a priority take an equal share of calls, and any of them may be tried first on a given call.
origination_format
string
必填
How the calling number is spelled to this gateway, as a template whose {number} stands for the number without its leading +. It is stated in the P-Asserted-Identity header of the delivered call.
A gateway that has not asked for anything else reports +{number}, which is E.164. A format with no {number} states that same identity on every call, whoever called.
destination_format
string
必填
How this gateway formats the dialed number. In the template, {number} represents the number without its leading +. The result is placed before the sip_uri host. For example, 1234#{number} formats +31201234567 as sip:1234#31201234567@pbx.example.com:5060.
A gateway that has not asked for anything else reports +{number}, which is E.164. A format with no {number} is dialed as it stands, so every number the trunk answers reaches that one number.
created_at
string
必填
updated_at
string
必填