ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

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

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

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

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

Сообщение tma » 16 янв 2016, 16:28

Всем привет,

Есть настройки в 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
tma
 
Сообщений: 1809
Зарегистрирован: 18 сен 2010, 20:50

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

Сообщение Vlad1983 » 16 янв 2016, 17:34

http://garantum.ru/content/152-callcenter_freeswitch
max-wait-time-with-no-agent
Дефолтное значение для отключения равно 0. Значение задаётся в секундах и определяет промежуток времени, в течение которого очередь должна оставаться пустой (без подключенных агентов) прежде чем будут отключены все участники. Этот принцип обеспечивает защиту от случаев, когда все ожидающие участники выпадают из очереди при случайном отключении всех агентов.


описание очередей должно быть в пределах <configuration name="callcenter.conf" description="CallCenter"></configuration>
можно включить части через метки для препроцессора
ЛС: @rostel
Vlad1983
 
Сообщений: 4251
Зарегистрирован: 09 авг 2011, 11:51

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

Сообщение tma » 16 янв 2016, 21:14

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

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

Сообщение Vlad1983 » 16 янв 2016, 21:29

не нулевой max-wait-time при ненулевом max-wait-time-with-no-agent пробовали?
ЛС: @rostel
Vlad1983
 
Сообщений: 4251
Зарегистрирован: 09 авг 2011, 11:51

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

Сообщение tma » 16 янв 2016, 21:37

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

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

Сообщение pan-user » 16 янв 2016, 21:46

tma - просит копипасту. куда катится мир. )
pan-user
 
Сообщений: 128
Зарегистрирован: 24 мар 2011, 14:40

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

Сообщение Vlad1983 » 16 янв 2016, 22:08

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

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

подозреваю что-то не так с queue->last_agent_exist_check, queue->last_agent_exist
ЛС: @rostel
Vlad1983
 
Сообщений: 4251
Зарегистрирован: 09 авг 2011, 11:51

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

Сообщение tma » 16 янв 2016, 23:41

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 » 16 янв 2016, 23:42

pan-user писал(а):просит копипасту

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

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

Сообщение Vlad1983 » 17 янв 2016, 11:24

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

ещё одна мелочь, про которую все забывают: через reloadxml применяется только диалплан
после изменения конфигурации и якобы её применения нужно проверить все ли применилось
Код: выделить все
fs_cli -x "callcenter_config queue list"
ЛС: @rostel
Vlad1983
 
Сообщений: 4251
Зарегистрирован: 09 авг 2011, 11:51

След.

Вернуться в FreeSwitch, SER, Yate и другие

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH