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, и вообще он достаточно прост, но для мелкой компании сойдёт.
<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 (там хороший пример)
и диалплан, где для теста было
А тут 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
У этого модуля возможностей больше.
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>
<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
спасибо, отличное введение. Буду разбираться
ОтветитьУдалить