Event Socket 简介
- Event Socket 是操控FreeSWITCH的“瑞士军刀”。它可以通过Socket方式使用FreeSWITCH提供的所有的App程序和API命令。
- 由于绝大多数程序语言都支持Socket,因而他几乎可以跟任何语言开发的程序通信。
- 它避免了开源许可证的兼容性问题。
Event Socket Library(ESL) 简介
最简单的Event Socket程序
#include "esl.h"
#include <iostream>
int main()
{
esl_handle_t handle = {{ 0 }};
esl_status_t status = esl_connect(&handle, "172.16.160.12", 8021, NULL, "ClueCon");
esl_send_recv(&handle, "api status\n\n");
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>
int main()
{
esl_handle_t handle = {{ 0 }};
esl_status_t status = esl_connect(&handle, "172.16.160.12", 8021, NULL, "ClueCon");
esl_events(&handle, ESL_EVENT_TYPE_PLAIN, "ALL");
handle.event_lock = 1;
while ((status = esl_recv_event(&handle, 1, NULL)) == ESL_SUCCESS)
{
if (handle.last_ievent)
{
}
}
esl_disconnect(&handle);
system("pause");
return 0;
}