Страница 1 из 1

Исходящие звонки через разные транки (pjsip)

Добавлено: 08 июл 2019, 10:18
rduke
Добрый день,
в данный момент настраиваю астер с несколькими исходящими линиями (больше десяти) для разных пользователей. Пользователи 1XX ходят на ТФОП(исходящие) строго через номер 11-11-11, 2ХХ через 22-22-22 и т.д.

Писать для каждой группы пользователей контекст "From-111111" и там указывать Dial(PJSIP/${EXTEN}@111111) я не хочу, это объёмно, топорно и не изящно :) Коллеги, подскажите пожалуйста как можно в pjsip.conf завернуть исходящие с конкретных экстеншенов на конкретные номера? Насколько понимаю там этот функционал есть. **Каюсь переход с chan_sip на pjsip дается крайне трудно, вероятно я уже старенький, либо тупой **

Конфиги на данный момент выглядят следующим образом.

Код: Выделить всё

;pjsip.conf.d/isp_111111.conf
[111111]
type=registration
outbound_auth=111111
server_uri=sip:somedomain.rt.ru:5060
client_uri=sip:111111@somedomain.rt.ru:5060
retry_interval=60
expiration=120
contact_user=111111

[111111]
type=auth
auth_type=userpass
password=2BSJ7HsdJhaDadg
username=111111

[111111]
type=aor
default_expiration=180
qualify_frequency=30
contact=sip:somedomain.rt.ru:5060

[111111]
type=endpoint
context=Incoming
disallow=all
allow=alaw
allow=ulaw
allow=g722
outbound_auth=111111
aors=111111
from_user=111111
from_domain=somedomain.rt.ru:5060
direct_media=no

[111111]
type=identify
endpoint=111111
match=somedomain.rt.ru:5060

Код: Выделить всё

;================================ ENDPOINT TEMPLATES
[user-endpoint](!)
type = endpoint
context = Local
allow = !all,g722,ulaw,alaw
direct_media = no
trust_id_outbound = yes
device_state_busy_at = 1
dtmf_mode = auto_info

[user-auth](!)
type = auth
auth_type = userpass
password = egGz4QKEkF840W9

[user-aor](!)
type = aor
max_contacts = 15

;================================ ENDPOINT DEFINITIONS
#include pjsip.conf.d/users_1XX.conf

Код: Выделить всё

;pjsip.conf.d/users_1XX.conf
[100](user-endpoint)
auth = 100
aors = 100
context = From-111111
callerid = Иванов <100>

[100](user-auth)
username = ivanov
password = egQ50W9

[100](user-aor)
mailboxes = 100@example
...

Код: Выделить всё

;extensions.conf

[globals]
TRUNK = 555555

[From-111111]
exten = _X.,1,Verbose('Enter to From-111111 context')
 same = n,Set(GLOBAL(TRUNK)=111111)
 same = n,Goto(Internal-Main,${EXTEN},1)

[Internal-Main]
exten = _[8,+7]XXXXXXXXXX,1,Verbose(1, "User ${CALLERID(num)} dialed ${EXTEN}.")
 same = n,Dial(PJSIP/8${EXTEN:-10}@${TRUNK})
 same = n,Hangup();

Re: Исходящие звонки через разные транки (pjsip)

Добавлено: 08 июл 2019, 12:03
zzuz
Все приемы маршрутизации диалплана , которые можно применить к chan_sip , также можно применить и к chan_pjsip. В написании диалплана это не играет роли.

Re: Исходящие звонки через разные транки (pjsip)

Добавлено: 08 июл 2019, 12:23
rduke
Коллеги, подскажите пожалуйста как можно в pjsip.conf завернуть исходящие с конкретных экстеншенов на конкретные номера?
Речь о том чтобы исходящий транк настраивать в конфиге pjsip, а не в диалплане. Диалплан как раз и не должен участвовать.

Re: Исходящие звонки через разные транки (pjsip)

Добавлено: 08 июл 2019, 12:37
ded
Вам будет проще использовать синтаксис
exten => _[8,+7]XXXXXXXXXX/100,1,Dial(PJSIP/111111/${EXTEN}) ; для внутреннего номера 100
и так далее.

Re: Исходящие звонки через разные транки (pjsip)

Добавлено: 08 июл 2019, 13:00
rduke
Принципиально смена синтаксиса в диалплане ничего не поменяет, при 10+ внешних линий получится избыточная портянка. Уж если мастерить некрасивые велосипеды, тогда проще дать "set_var = TRANK=111111" в конфиге pjsip и в диалплане иметь единый контекст для всех исходящих звонков. Но я то ищу решение "из коробки", оно должно быть в pjsip.

Re: Исходящие звонки через разные транки (pjsip)

Добавлено: 08 июл 2019, 13:54
ded
ОК, напишите, когда найдёте.

Re: Исходящие звонки через разные транки (pjsip)

Добавлено: 08 июл 2019, 20:21
Wapo
Ну сделайте mysql-таблицу вн.номер - транк. И тащите направление через AGI. Управлять/менять меньше будет хлопот.