esl 简介

来源:互联网 发布:淘宝娱乐宝下载安装 编辑:程序博客网 时间:2024/05/17 02:31

Event Socket 简介

  • Event Socket 是操控FreeSWITCH的“瑞士军刀”。它可以通过Socket方式使用FreeSWITCH提供的所有的App程序和API命令。
  • 由于绝大多数程序语言都支持Socket,因而他几乎可以跟任何语言开发的程序通信。
  • 它避免了开源许可证的兼容性问题。

Event Socket Library(ESL) 简介

  • 对Event Socket的封装

最简单的Event Socket程序

#include "esl.h"#include <iostream>int main(){    // 初始化一个handle,用于标识到FreeSWITCH的Socket连接    esl_handle_t handle = {{ 0 }};    // 连接服务器,如果成功 handle 就代表连接成功了    esl_status_t status = esl_connect(&handle, "172.16.160.12", 8021, NULL, "ClueCon");    // 发送一个命令,并接收返回值    esl_send_recv(&handle, "api status\n\n");    // last_sr_event 应该是 last server response event,即针对上面命令的响应    if (handle.last_sr_event && handle.last_sr_event->body)    {        std::cout << handle.last_sr_event->body;    }    // 断开连接     esl_disconnect(&handle);    return 0;}

ESL 事件模型

#include "esl.h"#include <iostream>/** * Brief: esl 事件模型 * Author: Cynhard * Date: 20160906 */int main(){    // 初始化一个handle,用于标识到FreeSWITCH的Socket连接    esl_handle_t handle = {{ 0 }};    // 连接服务器,如果成功 handle 就代表连接成功了    esl_status_t status = esl_connect(&handle, "172.16.160.12", 8021, NULL, "ClueCon");    // 注册事件    esl_events(&handle, ESL_EVENT_TYPE_PLAIN, "ALL");  // 注册所有事件    // 所有的App和事件都以同步的方式执行    handle.event_lock = 1;    // 接收事件    while ((status = esl_recv_event(&handle, 1, NULL)) == ESL_SUCCESS)     {        if (handle.last_ievent)        {            // process event            // ...        }    }    // 关闭连接    esl_disconnect(&handle);    system("pause");    return 0;}
0 0
原创粉丝点击