VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

DAHDI: Несколько Dial подряд одного exten

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Ответить
shines2
Сообщения: 36
Зарегистрирован: 31 мар 2016, 17:53

DAHDI: Несколько Dial подряд одного exten

Сообщение shines2 »

Наткнулся на очередные грабли с DAHDI. С внутренними SIP такое не наблюдается

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

exten => 91,1, NoOp("${EXTEN} test")
same => n, Dial(DAHDI/g1/101,5,t)
same => n, Dial(DAHDI/g1/102&DAHDI/g1/101,5,t)
same => n, Dial(DAHDI/g1/103&DAHDI/g1/102&DAHDI/g1/101,,t)
Результат:
Звонит 5 сек 101, как и положено
Далее 5 сек звонит только 102, 101 молчит. Логи утверждают, что 101 busy.
Далее звонят 103 и 101. 102 молчит. Логи утверждают, что 102 busy.
Пробовал ставить wait(10) между dial - ничего не изменилось.
Куда копать?
awsswa
Сообщения: 2390
Зарегистрирован: 09 июн 2012, 10:52
Откуда: Россия, Пермь skype: yarick_perm

Re: DAHDI: Несколько Dial подряд одного exten

Сообщение awsswa »

В очереди с пенальти
платный суппорт по мере возможностей
shines2
Сообщения: 36
Зарегистрирован: 31 мар 2016, 17:53

Re: DAHDI: Несколько Dial подряд одного exten

Сообщение shines2 »

awsswa писал(а):В очереди с пенальти
Пытался. Переход к очередному пенальти осуществляется только по busy. По неответу его не будет.
shines2
Сообщения: 36
Зарегистрирован: 31 мар 2016, 17:53

Re: DAHDI: Несколько Dial подряд одного exten

Сообщение shines2 »

Реализовал все редким извращением. :twisted: Фрагмент из первого поста, который не работает, я тоже планировал использовать в очереди таким же образом. Т.е. он располагался бы в контексте queue.
Да, мало ли кому интересно будет, а то встречал много безответных тем, как реализовать очередь, чтобы звонил сначала n сек номер N, потом по неответу n сек номер N и K звонили вместе и т.д. При этом, если N занят, то сразу переходим к N и K (точнее, только K, т.к. N занят) и т.д. Вот этот алгоритм у меня и реализован.
queues.conf

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

[myqueue]
strategy = ringall
autofill=yes
timeout=10 
retry=1
member => local/my@queue
dialplan.conf

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

[incoming]
exten => s,1, NoOp("incoming")
same => n, Set(DB(myqueue/numcall)=0)
same => n, Queue(myqueue,t,,,300)
same => n, Hangup()
[queue]
exten => my,1, NoOp("for queue")
same => n         ,Set(NUMCALL=${DB(myqueue/numcall)})
same => n         ,Set(NUMCALL=$[${NUMCALL}+1])
same => n         ,Set(DB(myqueue/numcall)=${NUMCALL})
same => n         ,GotoIf($[${NUMCALL}=1]?lab001:lab002)
same => n(lab001)   ,Dial(DAHDI/g1/101,10,t)
same => n           ,Goto(lab005)
same => n(lab002) ,GotoIf($[${NUMCALL}=2]?lab003:lab004)
same => n(lab003)   ,Dial(DAHDI/g1/101&DAHDI/g1/102,10,t)
same => n           ,Goto(lab005)
same => n(lab004) ,Dial(DAHDI/g1/101&DAHDI/g1/102&DAHDI/g1/103,10,t)
same => n(lab005), Busy



ded
Сообщения: 15630
Зарегистрирован: 26 авг 2010, 19:00

Re: DAHDI: Несколько Dial подряд одного exten

Сообщение ded »

как реализовать очередь, чтобы звонил сначала n сек номер N, потом по неответу n сек номер N и K звонили вместе и т.д.
Эти сценарии уже хорошо проточены и отшлифованы, используются в стандартных раскладках Ring groups & Queues, во FreePBX. Поэтому много безответных тем, как реализовать очередь, потому что ручное конструирование сценариев - неблагодарная работа, требующая знаний и пониманий.
Конкретно - чтобы звонил сначала n сек номер N, потом по неответу n сек номер N и K звонили вместе и т.д. характерен не для очередей (потому что появляется недостоверная статистика о халатности неответивших операторов), а для групп вызовов - Ring groups, и называется прогрессивное серийное искание (memoryhunt & memoryhunt-prim).
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH