ESL调用freeSWITCH

        ESL(Event Socket Library)是一种客户端-服务器协议,用于与FreeSWITCH进行通信。通过使用ESL,您可以通过程序控制FreeSWITCH,例如拨打电话、播放音频文件、监视来电等。

        以下是使用ESL连接和控制FreeSWITCH的基本步骤:

  1. 安装ESL库:您需要在您的应用程序中安装适当的ESL库,并将其链接到您的应用程序中。

  2. 连接到FreeSWITCH:使用ESL库连接到FreeSWITCH。在连接期间,您需要指定FreeSWITCH服务器的IP地址、端口和密码。

  3. 订阅事件:ESL需要订阅要监听的事件,例如电话呼入、挂断、播放结束等。

  4. 执行命令:您可以使用ESL发送命令给FreeSWITCH,例如拨打电话、播放音频文件、记录通话等。

        以下是一个简单的Python示例,它使用ESL连接到FreeSWITCH并执行一些命令:

import ESL

# Connect to FreeSWITCH
con = ESL.ESLconnection('localhost', '8021', 'ClueCon')

# Subscribe to events
con.events('plain', 'CHANNEL_ANSWER CHANNEL_HANGUP')

# Make a call and play an audio file
con.api('originate', 'user/1000 &playback(hello-world.wav)')

# Wait for events
while True:
    e = con.recvEvent(1000)
    if e:
        if e.getHeader('Event-Name') == 'CHANNEL_ANSWER':
            print('Call answered')
        elif e.getHeader('Event-Name') == 'CHANNEL_HANGUP':
            print('Call hung up')
            break

       在上述示例中,我们首先使用ESL连接到FreeSWITCH,然后订阅呼入通道应答和挂断事件。接下来,我们使用API命令originate拨打一个号码并播放音频文件。最后,我们等待FreeSWITCH发出的事件并根据事件类型执行相应的操作。

        请注意,这只是ESL的基本用法示例。要了解更多关于ESL的信息,请参阅FreeSWITCH官方文档。

       本文这里不想展开讲其他语言的调用,只想简单说下java下怎么调用。

       首先,笔者参考的是项目freeswitch-esl-all。地址为:https://gitee.com/zhouhailin/freeswitch-esl-allicon-default.png?t=N7T8https://gitee.com/zhouhailin/freeswitch-esl-all

        用idea打开这个项目,简单明了。

ESL调用freeSWITCH_第1张图片

        可以看到它就是通过InboundClient使用sendAsyncApiCommand方法来发送指令给freeSWITCH,执行originate等各种命令。使用的是8021这个端口,在freeSWITCH配置文件autoload_configs/event_socket.conf.xml里面是这样设置的。

ESL调用freeSWITCH_第2张图片

        然后,在你的idea项目中,可以参照范例,引入以下jar包。

ESL调用freeSWITCH_第3张图片

      如此,代码就可以很简单写出来。

      然后再这样调用就行了。

     这里的server_port对应的就是freeSWITCH的IP:8021。

你可能感兴趣的:(freeSWITCH,网络,wireshark,udp,ssl,信号处理,java)