自定义Python版本ESL库访问FreeSWITCH
环境:CentOS 7.6_x64 Python版本:3.9.12 FreeSWITCH版本 :1.10.9
一、背景描述
ESL库是FreeSWITCH对外提供的接口,使用起来很方便,但该库是基于C语言实现的,Python使用该库的话需要使用源码进行编译。 如果使用系统自带的Python版本进行编译,过程会比较流畅,就不描述了。这里记录下使用自定义Python版本(比如自编译的Python版本)编译及使用ESL的过程,并提供预编译的二进制文件。
二、具体实现
1、准备自定义Python环境
这里使用 Python 3.9.12 版本,具体编译过程可参考这篇文章:
关注微信公众号(聊聊博文)后回复 2022072401 获取。
Python环境目录:/usr/local/python39
2、准备编译环境
1)配置环境变量
souce /usr/local/python39/env.sh
文件内容:
#! /bin/bash
pydir=/usr/local/python39
export CFLAGS="-I$pydir/include"
export LDFLAGS="-L$pydir/lib"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$pydir/lib
2)将python3的软链接指向python3.9
具体如下:
ln /usr/local/python39/bin/python3.9 -s /usr/bin/python3
3)配置python-config
将 python3.9-config 复制到 freeswitch-1.10.9.-release/libs/esl/python3 目录:
mv python-config python-config-bak
cp /usr/local/python39/bin/python3.9-config python-config
3、编译ESL库
1) 生成Makefile文件
进入 freeswitch-1.10.9.-release 目录,执行如下命令:
./devel-bootstrap.sh && ./configure
注意:该步骤需要在第2步完成之后进行。
2)编译ESL模块
进入 freeswitch-1.10.9.-release/libs/esl 目录,执行 编译操作:
make py3mod
三、运行效果
1、ESL库导入效果
在编译目录导入ESL库,具体效果如下:
2、接收事件
这里将ESL库复制到其它机器进行事件接收测试,示例代码如下:
from ESL import *
con = ESLconnection("localhost","8021","ClueCon")
if con.connected:
con.events("plain", "all");
while True:
e = con.recvEvent()
if e:
print(e.serialize())
运行效果如下:
3、发送命令
这里将ESL库复制到其它机器进行originate测试,示例代码如下:
from ESL import *
con = ESLconnection("localhost","8021","ClueCon")
if con.connected:
e = con.api("bgapi originate user/1000 &echo")
print(e.getBody())
else:
print("Not connected")
运行效果如下:
四、资源下载
本文涉及源码及预编译二进制文件,可以从如下途径获取:
关注微信公众号(聊聊博文)后回复 20230424 获取。
相关文章
- python识别文字位置_如何利用Python识别图片中的文字
- python中矩阵转置4种方法「建议收藏」
- python数组拼接字符串_Python练习题——数组拼接
- Python 变量的作用域
- python控制键盘鼠标实现窗口程序自动化2021.10.14
- 【说站】python饼状图的介绍及绘制
- 【说站】python中PyQt创建菜单栏
- Python制作《精灵进化》
- python type error是什么意思_Python 报错 TypeError:’DoesNotExist’对象不可调用
- 短短几十行 Python 代码,实现分词功能搜索引擎(2.0版)
- 慎用!3个容易被打的Python恶搞脚本
- 【测试开发】python系列教程:Python 推导式
- aes加密算法python版本
- 狂揽两千星,速度百倍提升,高性能Python编译器Codon开源
- python-Python与SQLite数据库-SQLite数据库的基本知识(二)
- python-Python与SQLite数据库-处理SQLite查询结果(二)
- Python学习之路 (三)爬虫(二)详解编程语言
- Linux查看Python版本的有效方法(linux查看python版本)
- Linux 启动 Python编程之旅(linux打开python)
- 一步步学习:利用Python连接MySQL数据库(python连接mysql数据库)
- 从 Python 连接到 MySQL:实现更多强大的数据库应用(python和mysql)
- 太赞了!Python竟可以轻松实现音频格式无损转换