编译安装freeswitch时需要开启mod_callcenter、mod_fifo的编译,之后在安装完成之后在conf/autoload_configs/modules.conf.xml中去掉该模块相关行的注释。
配置方法,编辑conf/autoload_configs/callcenter.conf.xml
<configuration name="callcenter.conf" description="CallCenter">
<settings>
<!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
<!--<param name="dbname" value="/dev/shm/callcenter.db"/>-->
</settings>
<queues>
<queue name="support@default">
<param name="strategy" value="longest-idle-agent"/>
<param name="moh-sound" value="$${hold_music}"/>
<!--<param name="record-template" value="$${recordings_dir}/${strftime(%Y-%m-%d-%H-%M-%S)}.${destination_number}.${caller_id_number}.${uuid}.wav"/>-->
<param name="time-base-score" value="system"/>
<param name="max-wait-time" value="0"/>
<param name="max-wait-time-with-no-agent" value="0"/>
<param name="max-wait-time-with-no-agent-time-reached" value="5"/>
<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="60"/>
<param name="abandoned-resume-allowed" value="false"/>
</queue>
</queues>
<agents>
<agent name="1001@$${domain}" type="callback" contact="[call_timeout=10]user/1001@$${domain}" status="Available" max-no-answer="3" wrap-up-time="10" reject-delay-time="10" busy-delay-time="60" />
<agent name="1002@$${domain}" type="callback" contact="[call_timeout=10]user/1002@$${domain}" status="Available" max-no-answer="3" wrap-up-time="10" reject-delay-time="10" busy-delay-time="60" />
</agents>
<tiers>
<!-- If no level or position is provided, they will default to 1. You should do this to keep db value on restart. -->
<tier agent="1001@$${domain}" queue="support@default" level="1" position="1"/>
<tier agent="1002@$${domain}" queue="support@default" level="1" position="1"/>
</tiers>
</configuration>
其中domain是freeswitch的服务器ip地址,这种方法是配置静态的坐席,就是在配置文件中写死的,如果不符合项目中的要求,我们也可以用命令的方式动态添加坐席和梯队,但是queue是要固定的在配置文件中写好的。
动态添加agent和梯队:
新增agent
更新agent状态
将agent添加到梯队
agent、queue、tier配置好之后,需要配置拨号计划,添加:
<extension name="Callcenter Example">
<condition field="destination_number" expression="^7000$">
<action application="answer"/>
<action application="callcenter" data="support@default"/>
</condition>
</extension>
这样登录注册一个分机之后,拨打7000,就进入了callcenter,如果有agent在梯队中,就会转呼到这个agent上面