Список форумов Asterisk Forum Asterisk Forum
The Asterisk Open Source PBX - Russian Community
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ПравилаПравила   ГруппыГруппы   ИзбранноеИзбранное    LinksСсылки   РегистрацияРегистрация 
 RSSRSS   ПрофильПрофиль   Войти и проверить личные сообщения   ВходВход 

покинуть очередь по условию

 
Список форумов Asterisk Forum -> Asterisk IP PBX    вывод темы на печать
Предыдущая тема :: Следующая тема  
Автор Сообщение
Yur4ek



Зарегистрирован:
25.05.2010
Сообщения: 121

Статус: Оффлайн 

СообщениеДобавлено: Ср Фев 01, 2017 11:24    Заголовок сообщения: покинуть очередь по условию

На астериске имеется некоторое количество очередей, но сами агенты зарегистрированы не на нем, а на камалио, с которым астер связан транком. Этот транк у меня настроен как единственный агент во всех очередях.
Камалио настроен отдавать разные SIP коды на абонент занят и абонент не зарегистрирован. Так вот, получив в ответ, что абонент не зарегистрирован, мне надо покинуть очередь до завершения таймаута в команде Queue и перейти к следующему шагу в диалплане.
Сейчас у меня очередь завернута через локальный канал в контекст queue. Я получаю 404 прыгаю на s-leave а что делать дальше?
Код:

[queue]
exten => s,1,Noop()
   same => n,Set(__MASTER_STR=${CHANNEL(name)})
   same => n,Dial(SIP/ts-lb-1/${PEER},${DIALTIMEOUT},gb(set-handler^s^1))
   same => n,GotoIF(${REGEX("^SIP 404.*$" ${SHARED(SIPcause)})}?s-leave,1)
   same => n,Hangup()
exten => s-leave,1,Noop()

[set-handler]
exten => s,1,Set(CHANNEL(hangup_handler_push)=t-handler,s,1)
exten => s,n,Return()

[t-handler]
exten => s,1,Set(SHARED(SIPcause,${MASTER_STR})=${HANGUPCAUSE(${CHANNEL(name)},tech)})
exten => s,n,Return()
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
virus_net



Зарегистрирован:
05.10.2014
Сообщения: 377
Откуда: Москва

Статус: Оффлайн 

СообщениеДобавлено: Чт Фев 02, 2017 07:15    Заголовок сообщения:

А где же в вашем диалплане вызов application queue ? Его вообще не наблюдается. Есть Dial куда-то.

Как мысли на попробовать: Покинуть можно через редирект канала куда либо ещё или попытаться использовать leavewhenempty=yes, а перед этим самому менять статус агента на Unavailable через DEVICE_STATE.

_________________
mega-net.ru - IT аутсорсинг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Телефон
Yur4ek



Зарегистрирован:
25.05.2010
Сообщения: 121

Статус: Оффлайн 

СообщениеДобавлено: Чт Фев 02, 2017 10:05    Заголовок сообщения:

Отклеился кусочек диалплана, но там просто цепочка команд queue с таймаутами, правда они оформлены в виде AGI скрипта, который эту цепочку и выстраивает в зависимости от логики из БД. Входящий вызов должен их посетить не задерживаясь в очередях без агентов, пока на него не ответят.

Проблема с камалио в том, что статус агента я узнаю только после того, как отправлю INVITE с астериска и получу SIP 404. А с трансфером идея хорошая. Я могу выставить переменные, чтобы скрипт отличил повторный вызов и перевести канал еще раз на него, но agi-скрипт тоже вызывается из очереди, иначе астериск выключает MOH между командами queue, хотя если в диалплане идет серия команд Queue, то музыка между ними не прерывается, то ли в AGI баг, то ли в диалплане фича. получается что мне надо как-то сделать трансфер на свое место в очереди, но вроде это легче, чем отказаться от queue, ставить все входящие на холд, и как-то скриптом еще и очередность поддерживать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
virus_net



Зарегистрирован:
05.10.2014
Сообщения: 377
Откуда: Москва

Статус: Оффлайн 

СообщениеДобавлено: Чт Фев 02, 2017 15:32    Заголовок сообщения:

Ну не видя полной картины, дебага и пр. мне сложно сказать что либо ещё.
Какие там у вас цепочки с AGI мне представить сложно.

Added after 3 hours 38 minutes:

P.S.
Мне самому интересна эта тема. Тема убрать asterisk за kamailio и создать кластер из asterisk`ов. Все руки только никак не доходят, чтобы начать пробовать... Sad
Да и схем, по которым это могло бы работать, может быть несколько, а чтобы выбрать какую то, нужно пробовать все схемы... понять плюсы и минусы каждой.
А по состоянию на сейчас, у меня больше вопросов к такой схеме работы, чем ответов на них.

Added after 2 minutes:

Кстати:
Yur4ek писал(а):
Этот транк у меня настроен как единственный агент во всех очередях.

а почему не chan Local ? Мне кажется с ним проще будет с агентами.

_________________
mega-net.ru - IT аутсорсинг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Телефон
Yur4ek



Зарегистрирован:
25.05.2010
Сообщения: 121

Статус: Оффлайн 

СообщениеДобавлено: Вт Фев 07, 2017 10:14    Заголовок сообщения:

Камаилио по своему интересен, он такой из себя фаерволл и роутер sip пакетов, а астериски за ним можно горизонтально масштабировать. Единственное конечно очень мало информации окромя официального сайта. Во вногие вещи приходится врубаться самостоятельно, на нашем форуме одно сообщение в год.

Я тут обнаружил что у астериска уже много лет есть интерфейс ARI, и через него я могу ставить скриптом каналы на MOH, а как подойдет очередь создать бридж и в первом приближении это выглядит проще на порядок, а то с этими очередями смотрящими в локальные каналы разработка такая запутанная становиться, просто превращается в ад.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
virus_net



Зарегистрирован:
05.10.2014
Сообщения: 377
Откуда: Москва

Статус: Оффлайн 

СообщениеДобавлено: Ср Фев 08, 2017 07:14    Заголовок сообщения:

Согласен, что инфы мало. По какой то причине люди не охотно делятся своими знаниями по этой теме. Хотя можно наверно понять почему - сложно, долго. Те кто в силах разобраться не сидят на форумах и в блогах.

Да, ARI есть. Я даже писал статью о нем. Не думаю, что это будет проще.

_________________
mega-net.ru - IT аутсорсинг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Телефон
Список форумов Asterisk Forum -> Asterisk IP PBX Ответить на тему
Страница 1 из 1

Добавить в Избранное

 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
You cannot attach files in this forum
You cannot download files in this forum