Есть настройки в 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>
Хотелось бы, чтобы клиент не висел в пустой очереди, а сразу уходил дальше (по моей предыдущей теме - в голосовой ящик).
Есть идея перед попаданием в очередь запрашивать число активных агентов и если их 0 - идти дальше.
НО! Если во время нахождения в очереди агент меняет статус на Logged Out, то клиент так же продолжает болтаться в пустой очереди.
Примеров в интернете не нашел. Такое впечатление, что проблема есть только у меня.
P.S. В догонку. Почему callcenter.conf.xml удается прописать только в autoload_configs/callcenter.conf.xml, в отдельном конфиге FreeSWITCH просто игнорирует описание очередей...

