Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Version History

« Previous Version 3 Next »

Trunks are used for PBX interaction with third-party SIP servers. Interoperability means routing outgoing calls and accepting incoming calls via DID.

Trunks are authorized in two ways:

  • If the call came from an address from the "Trunk#super_trunk_ip" list, then, depending on the "any_extension/any_did" parameters, the call immediately goes to the desired extension.

  • If the address is not in "super_trunk_ip" and the call came to a DID, then it is checked whether this DID belongs to this trunk (according to "network_permission_group_id") and is passed on the extensions only in this case.

Description of data structures

Name

Type

Description

Required

Default value

name

string

Trunk name

yes

direction

string("in","out","all")

Trunk direction. The trunk can be incoming (value “in”), in which case incoming calls to DID can be received through the trunk, outgoing (value “out”), in which case outgoing calls can be routed through the trunk, and bidirectional (value “all”).

no

id

integer

Уникальный идентификатор транка. Поле только для чтения.

-

-

network_permission_group_id

integer

Идентификатор группы доверенных сетей, запросы из которых разрешены для данного транка. Применяется для транков с направлением in и all

yes, if trunk direction is in or all

null

address

string

Адрес SIP-сервера, на который будет отправлен вызов согласно правилам маршрутизации. Применяется для транков с направлением out и all. Указывается в виде host:port. В качестве host может быть доменное имя, ":port" опционален (5060 в случае отсутствия). Если необходимо использвать протокол tcp, то  "host:port;tranport=tcp"

yes, if trunk direction is out or all

null

status_in

string("active","blocked")

Статус транка на приём входящих вызовов. Если параметр имеет значение blocked, то на попытку вызова DID данного транка система вернет ошибку.

no

blocked

status_out

string("active","blocked"

Статус транка на приём исходящих вызовов. Если параметр имеет значение blocked, то попытка внешнего вызова через данный транк завершится ошибкой.

no

blocked

sbc_mode

string

Включить (значение yes) или отключить (значение no) режим sbc для транка. Если режим SBC включен, то медиаданные для вызовов, идущих через транк, будут проходить через тот же адрес, что и SIP-сообщения.

no

strip

integer

Количество символов, которые будут удалены из начала номера при отправке исходящего вызова через данный транк.

no

null

pri_prefix

string

Префикс, который будет добавлен в начало номера при отправке исходящего вызова через данный транк.

no

null

auth_username

string

Имя пользователя для авторизации при отправке исходящего вызова через данный транк.

no

null

auth_pass

string

Пароль пользователя для авторизации при отправке исходящего вызова через данный транк.

no

null

from_username

string

Имя пользователя в поле From при отправке исходящего вызова через данный транк.

no

null

from_domain

string

Домен в поле From при отправке исходящего вызова через данный транк.

no

null

insert_internal_user

string("yes","no")

Если параметр имеет значение "yes", то при отправке исходящего вызова через транк на внешний SIP-сервер в пакет INVITE будет добавлен заголовок Ringme-user, который будет содержать полное имя добавочного, с которого осуществляется вызов, в формате с префиксом домена: префикс_домена*префикс_клиента*номер_добавочного

no

yes

array(string)

Список адресов в виде ip[:port] для проверки, могут ли вызовы с них использоваться для вызова на любой DID или добавочный. Адреса уникальны в пределах всей АТС.

no

[]

any_extension

string("yes","no")

Если вызов из "super_trunk_ip", на глобальный номер добавочного (xxxx*xxx*xxx), то он разрешел при значении параметра "yes".

no

no

any_did

string("yes","no")

Если вызов из "super_trunk_ip", на номер DID, то он разрешел при значении параметра "yes".

no

no

channel_limit

integer

Максимально количество одновременных каналов, используемых транком. Суммируются входящие/исходящие. При значении "0" ограничение отсутствует.

no

0

in_anumber_rule_id

integer

При входящем вызове из транка, преобразует А-номер согласно соответствующим правилам  набора

no

null

out_anumber_rule_id

integer

При вызове, уходящем в транк, преобразует A-номер (From field) согласно соответствующим правилам  набора

no

null

use_dns_srv

boolean

При включении опции "use_dns_srv", если параметр "address" транка указан в виде домена без порта, то анализируются SRV записи этого домена и в случае неудачи исходящего вызова по одному адресу (таймаут), вызов будет отправлен на другой. Таймаут доступности каждого адреса устанавливается в 6 секунд (вместо 30 при use_dns_srv=false

Например, "address" = srvtest.ucom4b.com 

  1. для srvtest.ucom4b.com

$ host -t srv _sip._udp.srvtest.ucom4b.com
_sip._udp.srvtest.ucom4b.com has SRV record 10 50 5067 srvpbx1.ucom4b.com.
_sip._udp.srvtest.ucom4b.com has SRV record 20 50 5068 srvpbx2.ucom4b.com.
Тогда в случае недоступности srvpbx1.ucom4b.com:5067 вызов будет направлен на srvpbx1.ucom4b.com:5068 (Priority 10 и 20 соответственно)

  1. для srvtest.ucom4b.com

$ host -t srv _sip._udp.srvtest.ucom4b.com
_sip._udp.srvtest.ucom4b.com has SRV record 20 50 5067 srvpbx1.ucom4b.com.
_sip._udp.srvtest.ucom4b.com has SRV record 20 50 5068 srvpbx2.ucom4b.com.
вызовы будут уходить и резервироваться по SRV записям случайным образом (Priority одинаковый)

  1. для srvtest.ucom4b.com есть более одной A записи, но нет SRV записей: вызовы будут уходить и резервироваться по А записям случайным образом


Важно: если "address" указан с портом, то логика резервирования никак не работает: вызов отправляется на первую попавшуюся А запись домена.

no

false

  • No labels