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 Workerman\Worker; 
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 ClueCon\r\n\r\n");			
			$re=$fsconn->send("event json ALL\r\n\r\n");	//订阅所有的事件,项目中可以有选择订阅				
		}
	};
	$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://blib.cn/15844.html

(2)
上一篇 2019年12月27日 上午11:13
下一篇 2020年2月24日 下午5:23

相关推荐

  • 大唐高鸿语音网关配置及查询IP电话号

    在配置freeswitch 呼叫中心时,公司一直使用鼎信通达FXS模拟网关,配置使用都比较方便,偶尔使用了一款大唐高鸿的设备,型号为MG3000-R32,32口的FXS模拟网关,配…

    2019年9月10日
  • nginx/apache 添加跨越请求

    现在有很多的网站、系统都使用前后端分离的方式进行开发,有时候使用的不是相同的域名,这样就会存在跨域的问题,我们需要配置nginx或apache 来允许跨域的请求 apache 开启…

    经验分享 2021年12月16日
  • Dcitys 城市分站站群 友情链接相互设置功能

    Dcitys 城市分站站群最初底部显示的链接都是随机显示的,在1.3.3版本中添加了分站相互链接的功能,底部链接显示当前城市、同级城市和上下级城市。随机与相互链接方式可自选,默认为…

    2021年4月25日
  • php cookie当前页无效 刷新后生效问题

    在做php程序时,需要设置 cookie 保存一些登录信息等数据,特殊情况需要设置后读取当前cookie的值,但测试的时候,当前页的cookie值没有,只有刷新一次后才会有数据 &…

    2018年11月9日
  • CentOS 查看CPU温度

    CentOS 查看cpu等硬件温度可以使用 lm_sensors 的软件,lm_sensors是一款linux的硬件监控的软件,可以帮助我们来监控主板,CPU的工作电压,风扇转速、…

    2021年10月6日
  • CentOS Linux 6安全基线检查

    1、 设置用户权限配置文件的权限 加固建议执行以下5条命令 chown root:root /etc/passwd /etc/shadow /etc/group /etc/gsha…

    懒人建站 2019年4月22日
  • 谷歌chrome浏览器免费vpn 插件

    由于一些原因吧,在国内不能访问使用Google的搜索引擎,而一些 vpn 有限制使用,使用浏览器的vpn插件可完美解决问题。 下载 vpn插件  百度网盘链接失效 用新地…

    2020年2月24日
  • bootstrap框架栅格间隔太大问题

    一直使用bootstrap框架,栅格间的间距过大,默认为 30px, bootstrap CSS 源码 如果因栅格间距太大,影响美观,可以重新设置,在bootstrap后面添加如下…

    2019年6月24日
  • 如何禁止自动填充浏览器记住的密码?

    有时做表单中,出于某种原因,不需要自动填充浏览器记住的密码,或不允许自动记录,我们只需要在表单最上面添加相同的表单元素控件,这样浏览器就不会自动填充。 <input type…

    2019年12月11日
  • 同步 Linux 服务器的时间

    不知道什么原因,centos 运行一段后,发现系统时间与 当前时间不符,差了几分钟,看着对不上,心里很是不舒服,就想着同步一下系统时间, centos 同步时间命令 ntpdate…

    经验分享 2020年3月14日

发表评论

您的电子邮箱地址不会被公开。