freeswitch嵌入python脚本

操作系统:debian8.5_x64

freeswitch 版本 : 1.6.8

python版本:2.7.9

开启python模块

安装python lib库

apt-get install python-dev

编辑modules.conf,开启python模块:

languages/mod_python

编译安装:

./configure && make && make install

在modules.conf.xml中开启python支持;

启动freeswitch;

测试脚本

API测试

添加测试脚本:

文件路径:/usr/local/freeswitch/scripts/test1.py

文件内容:

import freeswitch

def fsapi(session,stream,env,args):
   stream.write("hello")
   freeswitch.consoleLog("info","test")

控制台测试

[email protected]> python test1
hello
2016-09-06 23:06:09.069753 [NOTICE] mod_python.c:212 Invoking py module: test1
2016-09-06 23:06:09.069753 [DEBUG] mod_python.c:283 Call python script
2016-09-06 23:06:09.069753 [INFO] switch_cpp.cpp:1360 test
2016-09-06 23:06:09.069753 [DEBUG] mod_python.c:286 Finished calling python script
[email protected]>

APP测试

文件路径: /usr/local/freeswitch/scripts/testCall.py

文件内容:

import freeswitch
def handler(session, args):
    session.answer()
    freeswitch.console_log("info","testCall")
    session.streamFile("local_stream://moh")
    freeswitch.msleep(3000)
    session.hangup()

在dialplan中加入如下配置:

<extension name="python test script">
        <condition field="destination_number" expression="^400123456$">
            <action application="python" data="testCall"/>
        </condition>
</extension>

注册话机,拨打400123456号码即可听到moh声音,同时看到freeswitch控制台日志。

本文github地址:

https://github.com/mike-zhang/mikeBlogEssays/blob/master/2016/20160906_freeswitch嵌入python脚本.md

欢迎补充

时间: 2024-10-23 11:11:26

freeswitch嵌入python脚本的相关文章

在C语言中如何嵌入python脚本

最近在写配置文件时,需要使用python脚本,但脚本是一个监控作用,需要它一直驻留在linux中运行,想起C语言中能够使用deamon函数来保留一个程序一直运行,于是想到写一个deamon,并在其中嵌入python脚本. 上网查一下,发现确实有办法做到,下面亲测有效: #include <Python.h> #include <stdio.h> int main() { Py_Initialize(); PyRun_SimpleString("print 'Hello P

2018-11-25随笔-今天谈谈C++嵌入Python脚本中遇到的问题

由于现在很多底层协议用C/C++,然后机器学习或者深度学习等算法模型使用基于Python的TensorFlow来实现.所以现在C++用来做框架,做软件界面,然后调用Python的算法脚本来进行计算是很常见的需求. 我们的项目中也存在着这样的需求.下面来记录一下相应的实现方式. 背景:C++上用MFC做界面,Python上是import了numpy与pandas模块的处理功能(后续的基于sklearn与TensorFlow的脚本还没嵌入,配置方式相同,后续实验会再放上来) 软件配置:win10/6

freeswitch嵌入lua脚本

1. lua installyum install -y readline-devel ncurses-devewget http://www.lua.org/ftp/lua-5.3.1.tar.gztar zxf lua-5.3.1.tar.gzcd lua-5.3.1make linuxmake install 2. lua example1) freeswitch/scripts/hello.lua`print ("Hello World!")` 2) conf/dialplan

利用ngx_python模块嵌入到Python脚本

导读 Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发. ngx_python 是为 nginx 嵌入 python 脚本的模块. 环境 - python 2.7.* - nginx-1.6.3+ 安装 git clone https://github.com/rryqszq4/ngx_python.git wget 'http://nginx.org/d

工程脚本插件方案 - c集成Python基础篇(VC++嵌入Python)

序: 为什么要集成脚本,怎么在工程中集成Python脚本. 在做比较大型的工程时,一般都会分核心层和业务层.核心层要求实现高效和稳定的基础功能,并提供调用接口供业务层调用的一种标准的框架划分.在实际中根据需求会拆分的更细.外部的表现形式就是一个核心动态库,带着一堆业务业务动态库.通过一个调度程序把这些链接起来,外加一堆配置文件,就形成一个完成的项目. 这种模式在一个团队开发中,工作职责比较容易划分.制定API接口后,开发工作基本可以并行实现,包括后期的功能测试(白盒.黑盒).不管工程使用什么语言

【转载】关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 &ndash; 指定文件编码类型

下面的内容来自:http://www.cnblogs.com/blueskylcc/p/5332642.html, 对方也是转的,不过没有找到转载的出处: 1.#!/usr/bin/python 是用来说明脚本语言是 python 的 是要用 /usr/bin下面的程序(工具)python,这个解释器,来解释 python 脚本,来运行 python 脚本的. 2.# -*- coding: utf-8 -*- 是用来指定文件编码为 utf-8 的 详情可以参考:PEP 0263 - Defin

Python ----脚本CGI、特点、应用、开发环境

CGI CGI 目前由NCSA维护,NCSA定义CGI如下: CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口. CGI程序可以是Python脚本.Perl脚本.Shell脚本.C或者C++程序等. 服务器 在你进行CGI编程前,确保您的Web服务器支持CGI及已经配置了CGI的处理程序. 所有的HTTP服务器执行CGI程序都保存在一个预先配置的目录.这个目录被称为CGI目录,并按照惯例,它被

C++嵌入Python,以及两者混用

以前项目中是C++嵌入Python,开发起来很便利,逻辑业务可以放到python中进行开发,容易修改,以及功能扩展.不过自己没有详细的研究过C++嵌入python的细节,这次详细的研究一下.首先我们简单的使用C++调用一个Python的py脚本,然后通过Python使用C++中的对象和方法.我们使用的Python是2.7.11 1. 使用C++使用python的功能,比如我们写一个show.py,代码如下: def show(name): return "hello " + name

Qgis 里的Python脚本介绍

QGIS 入门演示之<用 QGIS 画矢量交通路线图> 脚本编程之准备知识<Python 教程> QGIS API QGIS插件库 运行QGIS脚本,对于桌面应用来讲有4种方式: QGIS 启动时自动运行Python脚本 QGIS 控制台中运行发布的Python命令 创建Python写的插件 创建基于QGIS API的应用程序 QGIS服务端绑定: 2.8 开始,QGIS服务端包含Python插件 (see: Server Python Plugins) 2.11开始 (2015-