задача стоит сделать так чтобы вызов поступающий на центральный сервер , проходил одновременно на всех диспетчерских, реализовано так:
на центральном очередь:
[all_taxi]
member => SIP/000000@lider
member => SIP/000000@fortuna
member => SIP/406007@times
timeoutrestart = no
strategy = ringall
=======================
на сателитах
[in]
exten => _X.,1,Ringing()
exten => _X.,n,NoOp(q=${CALLERID(num)})
exten => _X.,n,Queue(Callcenter,ntT,,,55)
exten => _X.,n,Goto(_X.,1)
====
в общем работает, вызов приходит во все сервера , далее операторы снимают звонок чере софтику которая работает с вызовами через AMI на уровне канала, (1ска)
но из за того что все сервера стоят у разных провайдеров то пинги до каждого сервера разные, у оной фирмы менее милисек у других от 5 до 50
из за этого звонок появляется у дальних с задержкой в 1-2 иногда 4-5 секунд. и первая фирма всегда в приоритете,
задача сделать задержку вызова на одну из фирм. чтобы уровнять шансы что звонок появится одновременно у всех.
вопрос как это можно реализовать ?
То есть вы определяете локальный канал:
| Код: |
| [loc_chan] exten => local1,1,Wait(5) same => n,Dial(SIP/000000@lider) same => n,Hangup() |
А далее прописываете в очереди:
| Код: |
| member => Local/local1@loc_chan |
Но в такой схеме надо смотреть, какая версия астера у вас стоит. Не все безупречно работают с локальными каналами (у меня, например, на 10.3.0-rc2 работает нормально).