freeswitch安装mod_python让你的freeswitch服务器支持python脚本

Song • 1457次浏览 • 0个评论 • 2018-09-20 06:25:43

一、安装和配置

1、构建mod_python

Debian/Ubuntu上安装python-dev软件包:

apt-get install python python-dev

2、在modules.conf中启用编译:

FreeSWITCH源文件夹中,编辑modules.conf并取消注释languages/mod_python;重新编译并安装FreeSWITCH:

make mod_python-install

configure脚本将尝试检测您现有的python版本。如果找不到它或者它不支持多线程,它将打印一条警告消息。

您可以指定要配置的参数以使其使用特定版本:

./configure --with-python=... (eg, --with-python=/usr/bin/python2.7)

make current会自动修复makefile,以防它生成(正确,或根本没有)。使python-reconf重新生成它。

二、启用mod_python

打开conf/autoload_configs/modules.conf.xml并添加一个条目让mod_python自动启动:

<load module="mod_python"/>

三、查找Python模块

告诉python解释器如何找到python模块有两种不同的方法。如果你不做其中任何一个,嵌入式Python解释器将无法找到你的python脚本。

假设你有:

<action application="python" data="foo.bar"/>

这告诉python加载生活在foo 包中的bar 模块。

复制或符号链接到site-packages目录,即源文件位于/usr/local/freeswitch/scripts/bar.py中:

find / -name "site-packages"
cd /path/to/python/site-packages
# ubuntu默认是/usr/local/lib/python2.7/site-packages
ln -s /usr/local/freeswitch/scripts .

通过复制也可以做到这一点。

添加到PYTHONPATH环境变量,如果文件位于/usr/src/foo/bar.py,请将以下内容添加到系统环境启动

export PYTHONPATH=$PYTHONPATH:/usr/src

别忘了,foo包目录需要一个__init__.py。在启动freeswitchshell中,需要定义此环境变量。

四、调用mod_python应用程序

要从dialplan调用Python应用程序,您可能应该熟悉Dialplan。您只需将其称为类似于以下的应用程序:

<action application="python" data="foo.bar"/>

模块是bar,在foo包中。请参阅“ 查找python模块”部分,告诉嵌入式python解释器如何查找此模块。

如果您的模块(例如,test.py)不在任何包目录中,那么您将使用:

<action application="python" data="test"/>

在这两种情况下,您都需要省略.py文件扩展名,否则它将无法正常工作。它只需要一个完全限定的模块名称。

如果使用带有FreeswitchXML dialplan模块,您可以将它放在dialplan中。不要忘记你的'条件'标签和所有的善良。

可以使用python命令从CLI调用Python脚本:

freeswitch> python foo.bar

如果你以这种方式调用它,你的python handler()函数将被调用而不带参数。

提交评论
要回复文章请先登录注册
用户评论
  • 没有评论
    公告
    中国晚上好,随时随地分享前沿科技,好吃好玩,有趣有料的新鲜事;本站可以分享资源,技术,观点,态度;同时希望大家做一个文明的分享者!
    广告
    pytorch中文网