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

AgentCalled в AMI

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

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

Ответить
Аватара пользователя
tol_iwan
Сообщения: 273
Зарегистрирован: 11 апр 2014, 11:29
Откуда: Брянск
Контактная информация:

AgentCalled в AMI

Сообщение tol_iwan »

Пытаюсь слушать AgentCalled в AMI.
Если в очереди использую в качестве member Local-каналы, то событие посылается для всех member-ов. Если использую конкретный тип - SIP к примеру - отправляется только тому, кому вызов направлен.
Почему такое поведение нигде не нашел, сам догнать не могу. Есть мысли?

Update:
Asterisk13
Конфиг:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
agents.conf

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

[4002]
fullname=operator2
[4003]
fullname=operator3
[4004]
fullname=operator4
[4005]
fullname=operator5
extension.conf

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

[agent_login]
; Регистрация агента
exten => *98,1,NoOp(Регистрация агента)
 same	 => 	n,Background(${SoundFolder}/agent-user)
 same	 => 	n,WaitExten(2)
 same	 => 	n,Hangup()
exten => _400[2345],1,NoOp(Регистрация агента ${EXTEN})
 same	 => 	n,PauseQueueMember(,Local/${EXTEN}@agents/n)
 same	 => 	n,AgentLogin(${EXTEN})
 same	 => 	n,ExecIf($[${AGENT_STATUS}=INVALID]?Background(${SoundFolder}/agent-incorrect):)
 same	 => 	n,NoOp(Неверный номер агента, статус регистрации - ${AGENT_STATUS})
 same	 => 	n,Hangup()
exten => i,1,NoOp(Неверный номер агента)
 same	 => 	n,Background(${SoundFolder}/agent-incorrect)
 same	 => 	n,Hangup()

[agents]
exten = _4XXX,1,NoOp()
same = n,AgentRequest(${EXTEN})
same = n,Congestion()
queue.conf

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

[queue]
musicclass=no
autopause=no
monitor-format=wav
context=default
timeout=25
wrapuptime=5
strategy=linear
Тут либо все SIP, либо все Local 
member => SIP/2535
member => SIP/2536
member => Local/4002@agents/n,,,Agent:4002
member => Local/4003@agents/n,,,Agent:4003
member => Local/4004@agents/n,,,Agent:4004
member => Local/4005@agents/n,,,Agent:4005
Логи чуть позже добавлю - отъехать срочно надо, не успеваю добавить )))
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: AgentCalled в AMI

Сообщение virus_net »

Исходя из:
Asterisk 13 Application_AgentRequest
нИверю:
tol_iwan писал(а):то событие посылается для всех member-ов
Логи в студию.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Аватара пользователя
tol_iwan
Сообщения: 273
Зарегистрирован: 11 апр 2014, 11:29
Откуда: Брянск
Контактная информация:

Re: AgentCalled в AMI

Сообщение tol_iwan »

Спасибо за направление, как говорится сам дурак, в логи и не глянул. Событие вообщем-то ни при чем.
Дело в распределении очереди - linear, оно путало. При этом распределении "вызывать начиная с первого в порядке перечисления. Динамические агенты, будут вызываться в порядке добавления". Вот он так и вызывает, а поскольку тестирую с активным последним, то получается проходит всех.
Не понятно, почему он пытается вызывать тех, кто недоступен. В состоянии очереди же показано, что member Unavailable. Значит очередь все-таки отслеживает его статус. Напомню опять же, что речь идет о каналах Local(с опцией "/n", если критично, она указана для возможности отбоя именно канала агента).
При других распределениях видно, что вызов распределяется среди всех, включая недоступных, и на первом доступном естественно останавливается.
Лог под сполером.
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:

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

    -- Executing [XXXXXXXXXX@queue_ext:6] Queue("SIP/XXXXXXXXXX-0000c470", "queue") in new stack
    -- Started music on hold, class 'no', on channel 'SIP/XXXXXXXXXX-0000c470'
    -- Executing [4003@agents:1] NoOp("Local/4003@agents-00001348;2", "") in new stack
    -- Called Local/4003@agents/n
    -- Executing [4003@agents:2] AgentRequest("Local/4003@agents-00001348;2", "4003") in new stack
    -- Agent '4003' not logged in.
    -- Executing [4003@agents:3] Congestion("Local/4003@agents-00001348;2", "") in new stack
    -- Local/4003@agents-00001348;1 is circuit-busy
    -- Nobody picked up in 0 ms
  == Spawn extension (agents, 4003, 3) exited non-zero on 'Local/4003@agents-00001348;2'
    -- Executing [4002@agents:1] NoOp("Local/4002@agents-00001349;2", "") in new stack
    -- Called Local/4002@agents/n
    -- Executing [4002@agents:2] AgentRequest("Local/4002@agents-00001349;2", "4002") in new stack
    -- Agent '4002' not logged in.
    -- Executing [4002@agents:3] Congestion("Local/4002@agents-00001349;2", "") in new stack
    -- Local/4002@agents-00001349;1 is circuit-busy
    -- Nobody picked up in 0 ms
  == Spawn extension (agents, 4002, 3) exited non-zero on 'Local/4002@agents-00001349;2'
    -- Executing [4004@agents:1] NoOp("Local/4004@agents-0000134a;2", "") in new stack
    -- Called Local/4004@agents/n
    -- Executing [4004@agents:2] AgentRequest("Local/4004@agents-0000134a;2", "4004") in new stack
    -- Channel Local/4004@agents-0000134a;2 joined 'simple_bridge' basic-bridge <b6c561e9-22d9-4c74-ad6e-56552d4450aa>
    -- Stopped music on hold on SIP/2536-0000c41c
    -- Local/4004@agents-0000134a;1 is ringing
    -- <SIP/2536-0000c41c> Playing 'beep.slin' (language 'ru')
В данном случае выхлоп состояния очереди перед звонком:
CLI> queue show queue

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

queue has 0 calls (max unlimited) in 'random' strategy (0s holdtime, 46s talktime), W:0, C:9, A:2, SL:55.6% within 0s
   Members:
      Local/4002@agents/n (ringinuse enabled) (Unavailable) has taken no calls yet
      Local/4003@agents/n (ringinuse enabled) (Unavailable) has taken no calls yet
      Local/4004@agents/n (ringinuse enabled) (Not in use) has taken 1 calls (last was 458 secs ago)
      Local/4005@agents/n (ringinuse enabled) (Not in use) has taken 2 calls (last was 481 secs ago)
   No Callers
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH