freeswitch如何实现发送完invite之后发送INFO
时间: 2024-01-09 10:04:06 浏览: 35
在 FreeSWITCH 中,可以使用 ESL(Event Socket Library)API 来发送 INVITE 和 INFO 消息。首先,你需要打开一个 ESL 连接,并使用该连接发送 INVITE 请求。一旦接收到 200 OK 响应,即表示对方已经接受邀请并准备好通话。接着,你可以使用相同的连接发送 INFO 请求。
以下是一个示例代码片段,演示如何使用 ESL 发送 INVITE 和 INFO 请求:
```
#include <esl.h>
esl_handle_t *handle = esl_connect("127.0.0.1", 8021, "ClueCon", NULL);
esl_send_recv(handle, "sendmsg\n"
"call-command: execute\n"
"execute-app-name: sofia\n"
"execute-app-arg: sip/1000@192.168.1.100\n"
"event-lock: true\n\n");
esl_send_recv(handle, "sendmsg\n"
"call-command: execute\n"
"execute-app-name: info\n"
"execute-app-arg: sip/1000@192.168.1.100\n"
"event-lock: true\n\n");
esl_disconnect(handle);
```
在这个示例中,我们首先使用 `esl_connect` 函数创建一个 ESL 连接。然后,我们使用 `esl_send_recv` 函数发送一个 INVITE 请求,并等待 200 OK 响应。接着,我们使用相同的函数发送一个 INFO 请求。
值得注意的是,这个示例中的请求都是同步发送的,也就是说,程序会一直等待服务器的响应。如果你需要异步发送请求,则可以使用 `esl_send` 函数。在这种情况下,你需要使用事件循环来等待服务器的响应。