пятница, 30 мая 2014 г.

FreeSWITCH: работа с очередями

2 основных модуля: mod_fifo и mod_callcenter



mod_fifo
FIFO stands for "First In, First Out". As calls enter the queue, they are arranged in order so that the call that has been in the queue for the longest time will be the first call to get answered. Generally FIFO call queues are used in "first come, first served" call scenarios such as customer service call centers.
An alternative to mod_fifo is mod_callcenter which is more of a traditional ACD application.

http://wiki.freeswitch.org/wiki/Mod_fifo
.

2 конфига:
autoload_configs/fifo.conf.xml  настройки модуля
диалплан, у меня dialplan/public.xml

По непонятной причине описывать агентов в fifo.conf.xml оказалось бесполезно, ни fifo reparse, ни fifo reparse del_all их не читают. И даже reload mod_fifo не помогает. А вот через fs_cli и fifo_member add добавляется на ура, в моём случае так:
fifo_member add test_fifo@sip.ru user/102@sip.ru

где в диалплане есть секция
    <extension name="queue_test">
      <condition field="destination_number" expression="^(990)$">
        <action application="answer"/>
        <action application="sleep" data="1000"/>
        <action application="set" data="fifo_music=/usr/share/%{fsname}/sounds/music/48000/ponce-preludio-in-e-major.wav"/>
        <action application="fifo" data="test-fifo@sip.ru in"/>
      </condition>
    </extension>

    <extension name="unqueue_test">
      <condition field="destination_number" expression="^(991)$">
        <action application="answer" />
        <action application="fifo" data="test-fifo@sip.ru out nowait"/>
      </condition>
    </extension>

Есть только 2 режима звонков: ringall и enterprise, и вообще он достаточно прост, но для мелкой компании сойдёт.

mod_callcenter
У этого модуля возможностей больше.

http://wiki.freeswitch.org/wiki/Mod_callcenter
https://confluence.freeswitch.org/display/FREESWITCH/mod_callcenter

тоже 2 конфига
autoload_configs/callcenter.conf.xml (там хороший пример)

и диалплан, где для теста было

    <extension name="callcenter_test">
      <condition field="destination_number" expression="^(992)$">
        <action application="answer"/>
        <action application="sleep" data="1000"/>
        <action application="callcenter" data="callcenter-test@sip.ru"/>
      </condition>
    </extension>

А тут reload mod_callcenter работает как надо, перестраивает базу агентов на базе конфига. Правда, в настройке агентов тут посложнее, сначала надо настроить очередь, потом добавить номера агентов в agents, а затем связать их  в tiers. Это понятно не сразу. Также пока непонятно, если надо слать вызов сразу например на 2 агентов, потом на след двух итд.

Управлять таймаутами можно через [leg_timeout=5], [call_timeout=5] при early_media-что-то = false

И ещё чуть линков
http://www.thenoccave.com/2011/10/17/freeswitch-queues-with-mod_callcenter/
http://comments.gmane.org/gmane.comp.telephony.freeswitch.user/60948

1 комментарий: