`
haoningabc
  • 浏览: 1478018 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

freeswitch的event_socket

    博客分类:
  • sip
阅读更多
event socket


A: 
nc -l -k 192.168.0.100  8040

B:
nc 192.168.0.100 8040

外连就是freeswitch代替B
内连就是freeswitch代替A

外连
dialplan/default.xml
<extension name="socket">
  <condition field="destination_number" expression="^1237$">
    <action application="socket" data="192.168.0.100:8040 async full"/>
  </condition>
</extension>


watch -n 1 'netstat -an|grep 8040'
监控nc端口

用客户端拨打1237
看端口变成 ESTABLISHED

去终端A 输入
connect 回车两下

Event-Name: CHANNEL_DATA
Core-UUID: c6699b05-fb5b-4feb-ae89-1d302ae28b21
FreeSWITCH-Hostname: bogon
FreeSWITCH-Switchname: bogon
FreeSWITCH-IPv4: 192.168.0.100
FreeSWITCH-IPv6: 2408%3A84e1%3A41%3A926d%3Af0f6%3A8a6f%3Ac0d%3A699c
Event-Date-Local: 2019-05-31%2011%3A22%3A50
Event-Date-GMT: Fri,%2031%20May%202019%2003%3A22%3A50%20GMT
Event-Date-Timestamp: 1559272970377169
Event-Calling-File: mod_event_socket.c
Event-Calling-Function: parse_command
Event-Calling-Line-Number: 2011
Event-Sequence: 829
Channel-Direction: inbound
Channel-Logical-Direction: inbound
Channel-Username: 1006
Channel-Dialplan: XML
Channel-Caller-ID-Name: 1006
Channel-Caller-ID-Number: 1006
Channel-Orig-Caller-ID-Name: 1006
Channel-Orig-Caller-ID-Number: 1006
Channel-Network-Addr: 192.168.0.101
Channel-ANI: 1006
Channel-Destination-Number: 1237




输入命令播放声音




sendmsg
call-command: execute
execute-app-name: playback
execute-app-arg: local_stream://moh
两下回车


返回
Content-Type: command/reply
Reply-Text: +OK

客户端开始播放声音



############

内连
配置 默认有
在 autoload_configs/event_socket.conf.xml里面
打开注释apply-inbound-acl ,value改成成lan
和修改ip
不改会报错:[WARNING] mod_event_socket.c:2641 IP 172.18.1.112 Rejected by acl "loopback.auto"
<configuration name="event_socket.conf" description="Socket Client">
  <settings>
    <param name="nat-map" value="false"/>
    <!--<param name="listen-ip" value="::"/>-->
    <param name="listen-ip" value="192.168.0.100"/>
    <param name="listen-port" value="8021"/>
    <param name="password" value="ClueCon"/>
    <!--<param name="apply-inbound-acl" value="loopback.auto"/>-->
    <param name="apply-inbound-acl" value="lan"/>
    <!--<param name="stop-on-bind-error" value="true"/>-->
  </settings>
</configuration>

端口为8021

所以用
#nc 192.168.0.100 8021
nc localhost 8021

auth ClueCon 两下回车

源码里的testclient.c

freeswitch/libs/esl/下的
#include <stdio.h>
#include <stdlib.h>
#include <esl.h>


int main(void)
{
    esl_handle_t handle = {{0}};

    esl_connect(&handle, "192.168.0.100", 8021, NULL, "ClueCon");

    esl_send_recv(&handle, "api status\n\n");

    if (handle.last_sr_event && handle.last_sr_event->body) {
        printf("%s\n", handle.last_sr_event->body);
    } else {
        // this is unlikely to happen with api or bgapi (which is hardcoded above) but prefix but may be true for other commands
        printf("%s\n", handle.last_sr_reply);
    }

    esl_disconnect(&handle);

    return 0;
}


   
#########

/opt/meituan/sip/freeswitch/libs/esl# make
生成.lib/libesl.a

FSDG-code/chapter19/myesl$ make

######

open -a /Applications/Google\ Chrome.app
open  "http://www.baidu.com"
分享到:
评论

相关推荐

    FreeSwitch的event_socket模块分析

    - **加载流程**:`mod_event_socket_load()`注册事件处理函数`event_handler()`,创建APP接口`socket_function`和API接口`event_sink_function`。加载完成后,`mod_event_socket_runtime()`线程负责接收连接,初始...

    freeswitch之mod_callcenter介绍

    ### Freeswitch之mod_callcenter模块介绍 #### 模块概述 `mod_callcenter`是Freeswitch中的一个强大模块,主要用于实现呼叫中心的功能。它能够处理来电分配、队列管理、座席状态监控等常见呼叫中心场景的需求。本文...

    esl.zip_CTI_esl freeswitch_freeswitch esl_freeswitch中间件_zip

    ESL(Event Socket Library)是Freeswitch提供的一种接口,用于与Freeswitch服务器进行通信。它是基于事件驱动的,允许外部应用程序发送命令到Freeswitch,接收服务器的响应,以及订阅和处理Freeswitch产生的事件。...

    freeswitch-eventsocket:这是一个正在进行的抽象类,用于处理 freeswitch 的 eventsocket 命令行

    自由切换事件套接字这是一个正在进行的抽象类,用于处理 freeswitch 的 eventsocket 命令行。 目前只实现了入站服务器。安装..代码块:: bash pip 安装 freeswitch-eventsocketTornado 的 IOLoop 下的实现下面是下的...

    freeswitch的esl控制方式demo

    Freeswitch是一款开源、多平台的VoIP通信系统,它支持多种协议和控制方式,其中包括XML配置和Event Socket Library(ESL)API。本资源主要关注的是通过ESL进行控制的方式,这是一种更加灵活且程序化的交互方式,尤其...

    FS-ESL_jssip_freeswitch_esl_mixj1i_

    本文将深入探讨一个与这一主题相关的项目:“FS-ESL_jssip_freeswitch_esl_mixj1i_”,这个项目实现了JSSIP与ESL(Event Socket Library)方式连接FreeSwitch,从而在Web应用中整合了VoIP功能。 **FreeSwitch**是一...

    freeswitch源码

    3. **API与Event Socket**:FreeSWITCH提供了丰富的API接口和Event Socket协议,允许通过网络与FreeSWITCH进行通信,进行实时控制和监控。Event Socket协议允许外部程序发送命令到FreeSWITCH,实现复杂的业务逻辑。 ...

    Freeswitch学习笔记

    FS还提供了Event Socket API,允许外部应用程序通过TCP连接与Freeswitch交互,控制通话流程。 4. **语音与视频处理**:Freeswitch内置了音频和视频编解码器,如G.711、Opus、VP8等。它还支持音频视频混合、回声消除...

    go-eventsocket, 面向go编程语言的FreeSWITCH事件套接字库.zip

    go-eventsocket, 面向go编程语言的FreeSWITCH事件套接字库 eventsocketFreeSWITCH 事件套接字 程序语言库。它支持入站和出站事件套接字连接,充当连接FreeSWITCH或者接受来自FreeSWITCH的连接以控制调用调用的客户端...

    freeswitch

    Java ESL调用FreeSWITCH发起呼叫 ... 修改D:\VS\freeswitch-1.6.19\Win32\Debug\conf\autoload_configs\event_socket.conf.xml文件 所依赖包:JAVA调用FreeSWITCH: 需要Jar包:org.freeswitch.esl.client-0.9.2.jar

    FreeSwitch完整的自定义模块定义和改善自定义事件的例子

    要创建自定义事件,你需要编写一个ESL(Event Socket Library)事件处理器。通过这个库,你可以发送和接收事件,与FreeSwitch进行交互。事件的定义通常在C语言的源代码文件中完成,包括事件名称、数据结构和处理函数...

    NetFreeSwitch.Framework-master.zip

    This framework helps interact with the FreeSwitch via its mod_event_socket. For more information about the mod_event_socket refer to FreeSwitch web site. It is fully asynchronous. Also it offers more ...

    Freeswitch集成科大讯飞及百度语音服务.docx

    vim /etc/freeswitch/autoload_configs/event_socket.conf.xml ``` 将 `&lt;param name="listen-ip" value=":"/&gt;` 改为 `&lt;param name="listen-ip" value="127.0.0.1"/&gt;` 4. 启动 Freeswitch 使用以下命令启动 ...

    eventsocket:FreeSWITCH事件套接字的扭曲协议

    eventsocket是FreeSWITCH的事件套接字的扭曲协议。 该协议在单个文件类中同时支持事件套接字的入站和出站方法。 它可以用于各种各样的目的。 它的目标是简单和可扩展,并将FreeSWITCH的所有功能导出到基于Twisted的...

    freeswitch 中文语音包

    使用FreeSwitch的内置脚本语言如Lua或ESL(FreeSWITCH Event Socket Library)编写脚本,可以创建复杂的语音流程逻辑,结合中文语音包实现交互式语音应用。 10. **拓展与开发** 开发者可以基于FreeSwitch API和...

    FreeSwitch1.2中文版

    开发部分则深入探讨了FreeSwitch的编程接口和开发工具,如XML控制接口(Mod_xml_curl)、Lua脚本支持和FreeSWITCH Event Socket Library(FESL)。通过这些工具,开发者可以编写自定义模块,实现高级功能,如通话...

    Freeswitch权威指南,freeswitch权威指南 pdf,C,C++源码.zip

    书中首先会介绍Freeswitch的基本架构和核心组件,包括Event Socket Library、Mod_python、Mod_lua等模块,以及如何配置和管理这些模块以满足不同的通信需求。 接下来,书中将详细讲解Freeswitch的脚本语言——XML ...

    freeswitch 架构分析

    外围模块是可以动态加载和卸载的动态库,例如`mod_sofia`、`mod_socket`等。核心与外围模块之间通过API进行通信,由于它们运行在同一地址空间内,因此可以直接通过函数调用来进行交互。 **核心(Core)的主要功能包括...

    C语言ESL连接FreeSwitch

    本主题聚焦于如何在C语言环境下使用ESL(Event Socket Library)来连接并通信FreeSwitch,这是一个开源的、功能强大的实时通信平台。FreeSwitch提供了一个丰富的API集合,其中包括ESL,用于与外部应用程序进行交互。...

Global site tag (gtag.js) - Google Analytics