若FreeSWITCH以前已经编译过,需要增加PHP ESL模块支持,操作步骤如下

安装依赖

yum -y install libxml2-devel pcre-devel bzip2-devel curl-devel gmp-devel aspell-devel libtermcap-devel gdbm-devel db4-devel libedit-devel php-devel

进如FreeSWITCH源码目录,执行如下命令

/root/freeswitch-1.4.26

./configure

cd libs/esl/

[root@localhost esl]# make phpmod-install

make MYLIB=".././.libs/libesl.a" SOLINK="-shared -Xlinker -x" CFLAGS="-I/root/freeswitch-1.4.26/libs/esl/src/include -I/root/freeswitch-1.4.26/src/include -I/root/freeswitch-1.4.26/src/include -I/root/freeswitch-1.4.26/libs/libteletone/src -fPIC -fvisibility=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1 -g -ggdb -DHAVE_OPENSSL" CXXFLAGS="-I/root/freeswitch-1.4.26/libs/esl/src/include -I/root/freeswitch-1.4.26/src/include -I/root/freeswitch-1.4.26/src/include -I/root/freeswitch-1.4.26/libs/libteletone/src -fPIC -fvisibility=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1" CXX_CFLAGS="" -C php

make[1]: Entering directory `/root/freeswitch-1.4.26/libs/esl/php'

g++ -I/root/freeswitch-1.4.26/libs/esl/src/include -I/root/freeswitch-1.4.26/src/include -I/root/freeswitch-1.4.26/src/include -I/root/freeswitch-1.4.26/libs/libteletone/src -fPIC -fvisibility=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1 -I/root/freeswitch-1.4.26/libs/esl/src/include -I/root/freeswitch-1.4.26/src/include -I/root/freeswitch-1.4.26/src/include -I/root/freeswitch-1.4.26/libs/libteletone/src -fPIC -fvisibility=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -Wno-unused-label -Wno-unused-function -c esl_wrap.cpp -o esl_wrap.o

g++ -shared -Xlinker -x esl_wrap.o .././.libs/libesl.a -lcrypt -lcrypt -ledit -lncurses -lm -ldl -lnsl -lm -lm -lcrypt -lm -lcrypt -lpthread -o ESL.so -L. -lssl -lcrypto

make[1]: Leaving directory `/root/freeswitch-1.4.26/libs/esl/php'

make -C php install

make[1]: Entering directory `/root/freeswitch-1.4.26/libs/esl/php'

test -d "/usr/lib64/php/modules" || mkdir -p "/usr/lib64/php/modules"

cp ESL.so "/usr/lib64/php/modules"

test -d "/usr/share/pear" || mkdir -p "/usr/share/pear"

cp ESL.php "/usr/share/pear"

test -d "/etc/php.d" || mkdir -p "/etc/php.d"

test -f "/etc/php.d/esl.ini" || echo 'extension=ESL.so' > "/etc/php.d/esl.ini"

make[1]: Leaving directory `/root/freeswitch-1.4.26/libs/esl/php'

到此为止已经编译完成,进入到目录,该目录下有如下文件

cd freeswitch-1.4.26/libs/esl/php/

[root@localhost /]# ls

ESL.php ESL.so esl_wrap.cpp esl_wrap.o Makefile Makefile.am Makefile.in php_ESL.h single_command.php test.php

测试是否成功,可运行single_command.php脚本,传入任何FreeSWITCH命令作为参数,如下已经成功执行命令

[root@localhost /]# ./single_command.php version

Command to run is: version

FreeSWITCH Version 1.4.26~64bit ( 64bit)

后期ESL开发过程中只需拷贝文件ESL.php和ESL.so到项目目录,并引入ESL.php文件即可

参考官方文档https://freeswitch.org/confluence/display/FREESWITCH/Event+Socket+Library

freeswitch php esl,FreeSWITCH增加PHP ESL模块支持相关推荐

  1. 添加议题模块html,WordPress 技巧:为评论模块增加更多 HTML 标签支持

    WordPress 原生的评论模块内容,支持使用 HTML 标签来增强评论内容的格式和效果.但是这肯定会带来一些安全隐患,特别是评论这种随便一个浏览者都可以提交数据的地方,容易产生跨站攻击(XSS), ...

  2. Nginx平滑升级,并增加清除缓存模块

    平滑升级nginx0.8.46到nginx1.0,并增加清除缓存模块 ×××: wget http://labs.frickle.com/files/ngx_cache_purge-1.0.tar.g ...

  3. 万粉博主为CSDN增加粉丝数据分析模块【硬核】

    万粉博主为CSDN增加粉丝数据分析模块[硬核] 1. 写在前面 2. 数据准备 2.1. 博客主页面 2.2. 粉丝主页面(多个) 3. 代码展示 3.1. 爬取博客主页面粉丝数据 3.2. 爬取粉丝 ...

  4. 电钢琴电子琴如何增加蓝牙MIDI模块BLE连接手机双模支持U盘播放

    简介 随着电子乐器的不断兴起,用户体验至上的apple,竟然把乐器MIDI和蓝牙整合在一起,出了一个蓝牙MIDI标准 这就大大增加了乐器和IOS系统的设备互动性了,你可以选择iphone,当然也可以选 ...

  5. 【原创】关于X10DAC增加TPM2.0模块升级Windows11的二三事儿

    关于X10DAC增加TPM2.0模块升级Windows11的二三事儿 背景 TPM2.0 关于处理器 尾声 背景 Windows11已经发布好久好久了,一直想升级,笔记本经过一番隐私相关的折腾,终于能 ...

  6. 激光雷达模块支持提高高速公路速度

    激光雷达模块支持提高高速公路速度 LiDAR module supports increased highway speed What's LIDAR? 自动驾驶技术的出现,无疑地扩大了激光成像探测和 ...

  7. 技嘉B85M-D3V刷入NVME模块支持NVME SSD启动

    技嘉B85M-D3V刷入NVME模块支持NVME SSD启动 目的:自己留存 前因:机械硬盘已经慢的跟蜗牛一样了,是时候更换固态硬盘了,而主板不带nvme插槽,再加上sata和nvme的ssd,价格相 ...

  8. Openwrt增加对 sd card 支持

    一.硬件平台 1.1 控制器:MT7620(A9内核) 二.软件平台 2.1.开发环境:Ubuntu12.04 2.2.软件版本:openwrt 官方15.05版本SDK开发包(CHAOS CALME ...

  9. ClewareControl 2.4 发布,传感器控制程序,增加对 python 的支持

    为什么80%的码农都做不了架构师?>>>    ClewareControl 2.4 增加对 python 的支持,可轻松开发使用该接口的相关应用. Clewarecontrol 可 ...

  10. 用python操作浏览器的三种方式_python的webbrowser模块支持对浏览器进行一些操作...

    python 的 webbrowser 模块支持对浏览器进行一些操作 主要有以下三个方法: webbrowser.open(url, new=0, autoraise=True) webbrowser ...

最新文章

  1. retinaface tensorRT
  2. 牛客竞赛语法入门班数组栈、队列和stl习题【未完成】
  3. java取网页源码_Java获取任意http网页源代码的方法
  4. interface abstract与virtual
  5. ZOJ3805Machine(二叉树左右子树变换)
  6. 第3課 ここはデパートです
  7. magento图片处理 Customize Magento’s Image Resize Functionality
  8. 一看就懂的例子告诉你用react-redux的正确姿势
  9. 百度 自然语言处理API
  10. 天猫广告业务独立运营
  11. python列表姓氏,Python程序可以打印完整姓氏的名字的缩写吗?
  12. 飞思卡尔K60最小系统设计板方案
  13. bt种子制作php,BT种子制作
  14. 我的世界联机侠服务器文件夹,我的世界联机侠空岛服务器怎么建 | 手游网游页游攻略大全...
  15. 2.2.2-6-2 补码位乘法(Booth算法)
  16. rf 433/868MHZ sub-1g 无线通信知识系列(3):组网信道
  17. excel 中如何设置误差线以及其意义
  18. SAP采购订单屏幕BADI增强(实例)
  19. Teach Yourself Programming in Ten Years——用十年教会自己编程
  20. 数字信号处理 | 实验二 MATLAB z换和z逆变换分析+求解差分方程+求解单位冲击响应+求解幅频相频特性曲线+求解零极点

热门文章

  1. redis下载配置并简单测试(免安装版)
  2. ifix组态软件研究控制按钮权限
  3. java:单例模式的五种实现方式
  4. 摩尔庄园不同服务器账号互通吗,摩尔庄园手游服务器互通吗?摩尔庄园手游不同区可以一起玩吗?...
  5. 视频+案例 | 钟南山院士谈5G医疗
  6. jTopo 拓扑图(入门)
  7. 通达oa php漏洞,通达OA前台任意用户登录漏洞
  8. Mouse Without Borders 使用经验
  9. TAOCP中1.1习题1解答与思考
  10. xcode ios 模拟器安装运行