FreeSWITCH+Workerman+PHP 搭建呼叫中心

由于FreeSWITCH官方已经不再维护FreeSWITCH php esl模块了,但是通过mod_event_socket仍然可以使用php连接;我们可以使用 Workerman 作为中间件,进行连接网站与FreeSWITCH,实现在网站拨号、显示当前话机状态(空闲、振铃、通话、来电)等信息。

mod_event_socket是一个基于TCP的接口来控制FreeSWITCH。默认值是绑定到127.0.0.1端口8021,默认密码是ClueCon。

FreeSWITCH+Workerman+PHP 搭建呼叫中心

开发思路:
1、用 Workerman 创建一个 websocket 服务,对自己的网站进行服务;
2、再用 Workerman 创建一个客户端去连接 FreeSWITCH服务器的 mod_event_socket,

代码示例

<?php use WorkermanWorker; require_once __DIR__ . ‘/Workerman/Autoloader.php’; $worker = new Worker ( ‘websocket://0.0.0.0:5678’ ); $worker->onWorkerStart=function($worker){ //链接freeswitich 服务器 默认 tcp 8021 端口 密码:ClueCon $fsconn = new AsyncTcpConnection(‘tcp://127.0.0.1:8021’); //workerman 与freeswitch 在同一服务器,不同时输入正确IP地址 $fsconn->onMessage = function($fsconn, $data) { $array = array(” “,” ”,”t”,”n”,”r”); $content_type= str_replace($array, ”, $data); if ($content_type == “Content-Type:auth/request”) { $re=$fsconn->send(“auth ClueConrnrn”); $re=$fsconn->send(“event json ALLrnrn”); //订阅所有的事件,项目中可以有选择订阅 } }; $fsconn->connect(); }; $worker->onMessage = function ($connection, $data) { //TODO //此处接受网站发来的消息,如外呼、注册等消息 //可参考向指定客户端发送消息案例 http://doc.workerman.net/faq/send-data-to-client.html }; Worker::runAll ();

前端用 WebSocket 连接服务器的 5678端口,参考 https://www.runoob.com/html/html5-websocket.html

原创文章,作者:admin,如若转载,请注明出处:https://ntib.cn/128.html

(0)
adminadmin
上一篇 2018年11月18日 下午10:37
下一篇 2018年11月18日

相关推荐

发表回复

登录后才能评论
WeChat