Страница 1 из 2
Проверка занятости транка
Добавлено: 04 фев 2015, 14:05
soh
День добрый, хотелось бы совета. Есть два транка. Первый транк одноканальный, второй трехканальный. Первый транк для звонков более предпочтительный и поэтому он стоит первый в приоритете звонков. Но как сделать так, чтоб при занятом первом транке, исходящие звонки шли через второй транк? Путано и сумбурно конечно, но, надеюсь, что суть я ясно выразил.
Re: Проверка занятости транка
Добавлено: 04 фев 2015, 14:18
ded
ОМГ!
exten => _X,1,Dial(SIP/trunk1/${EXTEN})
exten => _X,1,Dial(SIP/trunk2/${EXTEN})
Re: Проверка занятости транка
Добавлено: 04 фев 2015, 14:53
soh
Нет. К сожалению так не пойдет. Это было бы самым простым решением.
Увы, но первый провайдер не дает
503 "Service Unavailable" или там Everyone is busy/congested at this time .
Он проговаривает какую-то фигню в трубку и висит, пока АТС сама не отвалится, поэтому и возникает такой вопрос.
Звонок провайдеру результатов не дал. Вот я и подумал, может костыли какие есть? Или долбить провайдера и требовать ответ корректный?
Re: Проверка занятости транка
Добавлено: 04 фев 2015, 14:59
ded
Логика такая: если пользователь is busy/congested, то зачем его долбить со второго транка?
Если уж очень надо - используйте конструкцию GotoIF
http://www.voip-info.org/wiki/view/Aste ... DIALSTATUS
Re: Проверка занятости транка
Добавлено: 04 фев 2015, 15:08
soh
Ну окей, а если статус звонка "ANSWER", у провайдера с одной линией, даже, когда линия уже занята кем-то. И получается, что звонок совершен и все замечательно, якобы, но на самом деле линия была занята и мы получили отлуп, но Астериск этого не понял?
Re: Проверка занятости транка
Добавлено: 04 фев 2015, 15:19
soh
При звонке по этому транку происходит следующее теперь.
Код: Выделить всё
-- Executing [93369010@Office:2] Dial("SIP/170-0000002f", "SIP/sipteleout/4434343,,tT") in new stack
== Using SIP RTP CoS mark 5
-- Called SIP/sipteleout/4434343
-- SIP/sipteleout-00000030 [b]answered [/b]SIP/170-0000002f
> doing dnsmgr_lookup for 'siptele.ru'
> ast_get_srv: SRV lookup for '_sip._udp.siptele.ru' mapped to host siptele.ru, port 5060
> doing dnsmgr_lookup for 'siptele.ru'
> ast_get_srv: SRV lookup for '_sip._udp.siptele.ru' mapped to host siptele.ru, port 5060
== Spawn extension (Office, 93369010, 2) exited non-zero on 'SIP/170-0000002f'
Оно действительно отвечает. Проговаривает "...ваш... спасибо..." и вешает трубку. Астериск уходит в
h, в полной уверенности, что звонок совершен.
Код: Выделить всё
Executing [h@Office:1] Verbose("SIP/170-00000031", "ANSWER") in new stack
Re: Проверка занятости транка
Добавлено: 04 фев 2015, 15:29
ded
1) ANSWER не надо делать.
2) Ваш вопрос был - Но как сделать так, чтоб при занятом первом транке, исходящие звонки шли через второй транк?
Что есть статус занятости на первом транке? 503 Service unavailable? Ну тогда анализируйте по этому статусу и Goto If 503 Service unavailable направляйте через другой транк.
Re: Проверка занятости транка
Добавлено: 04 фев 2015, 15:45
soh
Ну, значит я неправильно поставил вопрос. Провайдер не дает никаких ошибок. Просто подходит к телефону робо-баба и говорит, что-то (перевод не полный видать, поэтому проговаривается только "...ваш... до свидания". Трубка вешается, звонок, якобы, успешно совершен. Вот что с этим делать. Оно дальше не пытается звонить по второму транку, для него звонок прошел успешно. Мне пинать провайдера или придумывать какие-то костыли?
Re: Проверка занятости транка
Добавлено: 04 фев 2015, 16:11
ded
Пинать провайдера. Это тарифицированный звонок по всем признакам, а значит - ложная тарификация, FAS.
Re: Проверка занятости транка
Добавлено: 04 фев 2015, 16:26
soh
Да. Вы правы. Провайдера попинал, сказали, что подкрутить на сервере ничего не могут, но могут сменить сервер. Тот сервер дает четкий отлуп и все работает. Спасибо