AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Задержка вызова агенту в очереди.

Asterisk IP PBX 3 сообщений -
#1

есть четыре сервера в разных районах города, три диспетчерских и один центральный.

задача стоит сделать так чтобы вызов поступающий на центральный сервер , проходил одновременно на всех диспетчерских, реализовано так:
на центральном очередь:
[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 секунд. и первая фирма всегда в приоритете,

задача сделать задержку вызова на одну из фирм. чтобы уровнять шансы что звонок появится одновременно у всех.

вопрос как это можно реализовать ?
#2

Можно через локальные каналы.
То есть вы определяете локальный канал:
Код:
[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 работает нормально).
#3

Спасибо, работает, сам бы не догадался.