转自:http://blog.csdn.net/jizha/article/details/7570447
实现效果:
客户A打入呼叫中心,假设是座席B(号码是11102)负责接听,则在B接听前,向A播放“11102话务员为您服务”。
实现该功能的脚本名称是speakworknumber.lua
实现步骤:
1、添加两个号码:1000和11102,1000作为模拟客户,11102作为座席
目录:/usr/local/freeswitch/conf/directory/default
添加文件: 1000.xml 11102.xml
2、添加拨号方案,调用功能脚本speakworknumber.lua
修改文件:/usr/local/freeswitch/conf/dialplan/default.xml
添加如下内容:
- <extension name=”speakdemo”>
- <condition field=”destination_number” expression=”^9999$”>
- <action application=”lua” data=”speakworknumber.lua”/>
- </condition>
- </extension>
<extension name="speakdemo"> <condition field="destination_number" expression="^9999$"> <action application="lua" data="speakworknumber.lua"/> </condition> </extension>
3、添加脚本speakworknumber.lua
目录:/usr/local/freeswitch/scripts
脚本内容如下:
- session1 = session;
- session2 = freeswitch.Session(“user/11102”);
- local waitTimes = 20;
- –如果座席所在的那条通道还没准备好,则进行等待
- while session2:ready() == false and waitTimes > 0 do
- waitTimes = waitTimes – 1;
- end
- –播放语音提示音
- –播放数字11102
- session:say(“11102”, “en”, “name_spelled”, “pronounced”);
- –播放录音文件“号话务员为您服务”
- session1:streamFile(“serviceforyou.wav”);
- if session2:ready() == true then
- freeswitch.consoleLog(“err”,”\n start to bridge.\n”);
- — 接通客户与座席
- freeswitch.bridge(session1, session2);
- else
- freeswitch.consoleLog(“err”, “\n channels2 is not ready, please check it.”);
- end
session1 = session; session2 = freeswitch.Session("user/11102"); local waitTimes = 20; --如果座席所在的那条通道还没准备好,则进行等待 while session2:ready() == false and waitTimes > 0 do waitTimes = waitTimes - 1; end --播放语音提示音 --播放数字11102 session:say("11102", "en", "name_spelled", "pronounced"); --播放录音文件“号话务员为您服务” session1:streamFile("serviceforyou.wav"); if session2:ready() == true then freeswitch.consoleLog("err","\n start to bridge.\n"); -- 接通客户与座席 freeswitch.bridge(session1, session2); else freeswitch.consoleLog("err", "\n channels2 is not ready, please check it."); end
4、启动FreeSWITCH或使用reloadxml重新载入配置文件
5、使用软电话客户端登陆1000和11102。然后使用1000拨打9999进行测试。