環境: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 獲取,微信公眾號:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/551060.html
標籤:其他
上一篇:Rust編程語言入門之高級特性
下一篇:返回列表