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

Очередь исходящих

Добавлено: 06 май 2023, 14:54
AllooZef
Есть несколько транков на РТК. Необходимо сделать, чтобы если транк свободен, вызов шел всегда на него, если по нему уже говорят - на следующий и т.д. Наверное, по этому поводу написано дофига, но я не могу сообразить, как это должно называться. Если я ищу в гугле "очереди", то нахожу только обработку входящих...

Re: Очередь исходящих

Добавлено: 06 май 2023, 16:16
ded
Если самописные конфиги, то перед Dial надо проверять занятость транка через ChanIsAvail
CLI> core show application ChanIsAvail

-= Info about application 'ChanIsAvail' =-

[Synopsis]
Check channel availability

[Description]
This application will check to see if any of the specified channels are
available.
This application sets the following channel variables:
${AVAILCHAN}: The name of the available channel, if one exists
${AVAILORIGCHAN}: The canonical channel name that was used to create the
channel
${AVAILSTATUS}: The device state for the device
${AVAILCAUSECODE}: The cause code returned when requesting the channel

[Syntax]
ChanIsAvail([Technology2/Resource2[&...]][,options])

[Arguments]
Technology2/Resource2
Optional extra devices to check
If you need more then one enter them as Technology2/Resource2&Te
chnology3/Resourse3&.....
Technology/Resource
Specification of the device(s) to check. These must be in the forma
of 'Technology/Resource', where <Technology> represents a particula
channel driver, and <Resource> represents a resource available to th
particular channel driver.
options
a: Check for all available channels, not only the first one
s: Consider the channel unavailable if the channel is in use at all
t: Simply checks if specified channels exist in the channel list

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

exten => s,n,Set(VOIPCHECK=0)
exten => s,n,Set(PEERCHECK1=myprovider-out) ; SIP peer name as defined in sip.conf
; Make sure to have qualify=yes enabled for this SIP peer!
exten => s,n,NoOp(-- ${PEERCHECK1} status: ${SIPPEER(${PEERCHECK1}:status)} --)
exten => s,n,ExecIf($["${SIPPEER(${PEERCHECK1}:status):0:2}" = “OK”]|Set|VOIPCHECK=1)
; Now route and dial any way you like based on the value of VOIPCHECK

and then route it based on the value of VOIPCHECK with the gotoIF command
https://www.voip-info.org/asterisk-cmd-chanisavail/
http://www.voip-info.org/wiki/view/Asterisk+cmd+GotoIf

Если freePBX - то создав один маршрут надо просто добавить в него транки, которые обеспечивают вызовы в мир по единому шаблону. Перебор будет выполняться автоматически.
https://wiki.freepbx.org/display/FPG/Tr ... User+Guide

Если хочется что-то посложнее -
https://community.freepbx.org/t/new-tru ... eepbx/7330

Re: Очередь исходящих

Добавлено: 07 май 2023, 06:26
AllooZef
При использовании PJSIP что-нибудь будет отличаться?

Re: Очередь исходящих

Добавлено: 07 май 2023, 07:10
AllooZef
Правильно я понял, что ChanIsAvail (Technology/resource[&Technology2/resource2…][|options]), если я перечислю в аргументах все каналы по порядку, выдаст мне имя 1го свободного?

Re: Очередь исходящих

Добавлено: 07 май 2023, 12:02
AllooZef
Читал-читал, так и не понял в СИПе под доступным понимается зарегистрированный или тот, по которому в данный момент не звонят?
С одной стороны: "it is primarily to tell you whether it would be possible to send a call there." С другой оно возвращает статускоды. И что тогда понимается под busy?

Re: Очередь исходящих

Добавлено: 07 май 2023, 15:08
Zavr2008
Не проще обратиться в саппорт РТ чтобы многоканальность сделали?

Если онанизма хочется, то просто в цикле можно рандомным номером пытаться прозваниваться и в зависимости от DIALSTATUS рулить..

Re: Очередь исходящих

Добавлено: 07 май 2023, 15:46
AllooZef
В смысле, 5 каналов по одному транку? У них на сайте висит: "Мы этого не делаем". Очередь исходящих у них там реализована, мало того, она из "кабинета" управляется. Но отдают-то они только 5 отдельных номеров в расчете, что на каждом номере по аппарату. Остальное - на свой страх и риск. Или - "наша виртуальная АТС" с полной прослушкой всех внутрифирменных базаров.

Re: Очередь исходящих

Добавлено: 07 май 2023, 17:40
ded
AllooZef писал(а): У них на сайте висит: "Мы этого не делаем".
Голосуйте ногами. Зачем вам такой провайдер?
AllooZef писал(а):Читал-читал, так и не понял в СИПе под доступным понимается зарегистрированный или тот, по которому в данный момент не звонят?
С одной стороны: "it is primarily to tell you whether it would be possible to send a call there." С другой оно возвращает статускоды. И что тогда понимается под busy?
В вашем случае - неизвестность, что там вам возвращает провайдер при поытке Dial через транк, по которому течёт разговор вашего коллеги, входящий, или исходящий - не важно. Провайдер по неразумению может возвращать отлуп SIP 500 - Internal server error? или SIP 488 (NOT ACCEPTED HERE).
Теоретически должен отдавать правильно - Congextion, SIP 480 Temporarily unavailable. И это не то же самое, что (удалённый) абонент занят -
If the phone number you are calling is busy, the error code received is SIP 486.

Re: Очередь исходящих

Добавлено: 07 май 2023, 17:57
Zavr2008
У них на сайте висит: "Мы этого не делаем".
А не на сайте - просто у вашего менеджера спросите. делают они)

ВАТС РТ юзают многие- так там юзвера делаете только одного для того чтобы зарегать астер там и всё, не нужно остальное никому)

Re: Очередь исходящих

Добавлено: 08 май 2023, 14:17
AllooZef
Ценная информация! Попробую связаться. Это, конечно, тот еще гиморой на заводе: техдиректор-гендиректор-отдел снабжения... Но оно того стоит.

До сего момента у нас TAU-8 стоит и древний аналоговый Панасоник 12-36 в который даже молния прилетала. Я 1 номер от него "отцепил", в смысле на TAU разлогинил, и экспериментальный Астериск на 5 телефонов замутил. Всем понравилось.