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

Вопрос по использованию mod_callcenter

Использование и настройка других открытых VoIP PBX

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

tma
Сообщения: 1809
Зарегистрирован: 18 сен 2010, 20:50
Контактная информация:

Вопрос по использованию mod_callcenter

Сообщение tma »

Всем привет,

Есть настройки в callcenter.conf.xml

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

    <queue name="sales@domain.ru">
      <param name="strategy" value="longest-idle-agent"/>
      <param name="moh-sound" value="$${hold_music}"/>
      <param name="record-template" value="$${recordings_dir}/sales-${strftime(%Y-%m-%d-%H-%M-%S)}.${destination_number}.${caller_id_number}.${uuid}.wav"/>
      <param name="time-base-score" value="queue"/>
      <param name="tier-rules-apply" value="false"/>
      <param name="tier-rule-wait-second" value="300"/>
      <param name="tier-rule-wait-multiply-level" value="true"/>
      <param name="tier-rule-no-agent-no-wait" value="false"/>
      <param name="discard-abandoned-after" value="14400"/>
      <param name="max-wait-time" value="0"/>
      <param name="max-wait-time-with-no-agent" value="120"/>
    </queue>

  <agents>
    <agent name="2XX@domain.ru" type="callback" contact="[call_timeout=15]user/2XX@domain.ru" status="Available" max-no-answer="3" wrap-up-time="10" reject-delay-time="10" busy-delay-time="60" />
  </agents>
  <tiers>
    <tier agent="2XX@domain.ru" queue="sales@domain.ru" level="1" position="1"/>
  </tiers>
Динамические агенты организованы таким образом:

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

    <extension name="agent_login">
      <condition field="destination_number" expression="^agent-login$">
        <action application="set" data="res=${callcenter_config(agent set status ${caller_id_number}@${domain_name} 'Available')}" />
        <!-- <action application="set" data="res=${callcenter_config(tier add ${domain_name} ${caller_id_number}@${domain_name} 'Ready' 1 1)}" /> -->
        <action application="answer" data=""/>
        <action application="sleep" data="500"/>
        <action application="playback" data="ivr/ivr-you_are_now_logged_in.wav"/>
        <action application="hangup" data=""/>
      </condition>
    </extension>

    <extension name="agent_logoff">
      <condition field="destination_number" expression="^agent-logoff$">
        <action application="set" data="res=${callcenter_config(agent set status ${caller_id_number}@${domain_name} 'Logged Out')}" />
        <!-- <action application="set" data="res=${callcenter_config(tier del ${domain_name} ${caller_id_number}@${domain_name})}" /> -->
        <action application="answer" data=""/>
        <action application="sleep" data="500"/>
        <action application="playback" data="ivr/ivr-you_are_now_logged_out.wav"/>
        <action application="hangup" data=""/>
      </condition>
    </extension>
Проблема в том, что если агент разрегистрируется, его статус меняется на Logged Out и позвонивший клиент висит в пустой очереди.
Хотелось бы, чтобы клиент не висел в пустой очереди, а сразу уходил дальше (по моей предыдущей теме - в голосовой ящик).
Есть идея перед попаданием в очередь запрашивать число активных агентов и если их 0 - идти дальше.
НО! Если во время нахождения в очереди агент меняет статус на Logged Out, то клиент так же продолжает болтаться в пустой очереди.

Примеров в интернете не нашел. Такое впечатление, что проблема есть только у меня.

P.S. В догонку. Почему callcenter.conf.xml удается прописать только в autoload_configs/callcenter.conf.xml, в отдельном конфиге FreeSWITCH просто игнорирует описание очередей...
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Вопрос по использованию mod_callcenter

Сообщение Vlad1983 »

http://garantum.ru/content/152-callcenter_freeswitch
max-wait-time-with-no-agent
Дефолтное значение для отключения равно 0. Значение задаётся в секундах и определяет промежуток времени, в течение которого очередь должна оставаться пустой (без подключенных агентов) прежде чем будут отключены все участники. Этот принцип обеспечивает защиту от случаев, когда все ожидающие участники выпадают из очереди при случайном отключении всех агентов.
описание очередей должно быть в пределах <configuration name="callcenter.conf" description="CallCenter"></configuration>
можно включить части через метки для препроцессора
ЛС: @rostel
tma
Сообщения: 1809
Зарегистрирован: 18 сен 2010, 20:50
Контактная информация:

Re: Вопрос по использованию mod_callcenter

Сообщение tma »

В том-то и дело, что чхать он хотел на значение max-wait-time-with-no-agent.
Игрался - ставил 1 секунду, 0 и т.д.
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Вопрос по использованию mod_callcenter

Сообщение Vlad1983 »

не нулевой max-wait-time при ненулевом max-wait-time-with-no-agent пробовали?
ЛС: @rostel
tma
Сообщения: 1809
Зарегистрирован: 18 сен 2010, 20:50
Контактная информация:

Re: Вопрос по использованию mod_callcenter

Сообщение tma »

Да.
Есть ненулевой max-wait-time, то висит в очереди, в том числе пустой, пока не истечет время.
Поведение абсолютно непонятное пока...
Можете дать 100% рабочий пример для теста?
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
pan-user
Сообщения: 128
Зарегистрирован: 24 мар 2011, 13:40

Re: Вопрос по использованию mod_callcenter

Сообщение pan-user »

tma - просит копипасту. куда катится мир. )
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Вопрос по использованию mod_callcenter

Сообщение Vlad1983 »

показал бы рабочий пример, если бы хоть раз пользовался этим модулем

mod_callcenter.c строки 2489 по 2506
где нет после условий "switch_log_printf" добавить руками с уникальным текстом, характеризующим условия
перекомпилять и наблюдать в консоли что выполнилось что нет
или gdb ловить, но это долгая песня рассказывать как им пользоваться

подозреваю что-то не так с queue->last_agent_exist_check, queue->last_agent_exist
ЛС: @rostel
tma
Сообщения: 1809
Зарегистрирован: 18 сен 2010, 20:50
Контактная информация:

Re: Вопрос по использованию mod_callcenter

Сообщение tma »

Vlad1983 писал(а):показал бы рабочий пример, если бы хоть раз пользовался этим модулем
mod_fifo лучше? Или еще варианты есть?
Vlad1983 писал(а): или gdb ловить, но это долгая песня рассказывать как им пользоваться
Иногда проще свой модуль написать, чем дебажить чужой и исправлять чужие глюки. ;)
Думал, что документации и примеров хватит, ан нет - придется в код лезть...
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
tma
Сообщения: 1809
Зарегистрирован: 18 сен 2010, 20:50
Контактная информация:

Re: Вопрос по использованию mod_callcenter

Сообщение tma »

pan-user писал(а):просит копипасту
Пример и копипаст - разные вещи.
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Вопрос по использованию mod_callcenter

Сообщение Vlad1983 »

mod_fifo так же не пробовал

ещё одна мелочь, про которую все забывают: через reloadxml применяется только диалплан
после изменения конфигурации и якобы её применения нужно проверить все ли применилось

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

fs_cli -x "callcenter_config queue list"
ЛС: @rostel
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH