dialpla.xml中会话路由如下示例:

<extension name="local_route">
<condition field="destination_number" expression="^([rd]3.*)$">
<action application="set" data="api_hangup_hook=lua testHook.lua"/>
<action application="lua" data="robot.lua"/>
</condition>
</extension>

Hook的注册是通过set这个app实现,并且定义了hook的lua执行脚本:

<action application="set" data="api_hangup_hook=lua testHook.lua"/>

而testHook.lua的内容,像取一些会话的信息,如通话ID、挂机时间、挂断方、通话时间等,可以在通道变量中获取,如下示例:

my_call_id = env:getHeader("uuid")
my_end_time = env:getHeader("end_uepoch")
my_hangup_party = env:getHeader("sip_hangup_disposition")
my_billusec = env:getHeader("billusec")
freeswitch.consoleLog("DEBUG", "enter ---------> ")
freeswitch.consoleLog("DEBUG", "my_call_id " .. my_call_id)
freeswitch.consoleLog("DEBUG", "my_end_time  " .. my_end_time)
freeswitch.consoleLog("DEBUG", "my_hangup_party " .. my_hangup_party)
freeswitch.consoleLog("DEBUG", "duration " .. my_billusec)

也可以根据业务逻辑,借助FreeSWITCH内置的其他application(如curl模块、amqp模块等)与其他服务节点进行交互。

dialpla.xml中会话路由如下示例:&lt;extension name="local_route"&gt; &lt;condition field="destination_number" expression="^([rd]3.*)$"&gt; &lt;action application="set" data="api_hangup_hook=lua testHook.lua"/&gt; &lt;action application="lua" ...
freeswitch 支持UDP、TCP、WS(websocket)、WSS方式进行注册,而反向代理是指通过nginx配置,通过WSS的方式连接WS,这样使得 freeswitch 连接对外是加密的;当然 freeswitch 本身是支持WSS的, 用ngnix一般除了反向代理,更多的是作负载均衡,这里只介绍向代理的部分。 1. ngnix的配置,包括ssl证书反向代理配置; 2. js sip 工具对反向代理支持的配置; 3. 注意事项,不按步骤2修改会发生的错误。 详细参见:https://blog.csdn.net/xxm524/article/details/125573738
1: 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
当我们用一个电话呼叫另外一个号码时,我们的电话成为Call-ID(CID), 而被叫号码是destination number(DID),当CID主动挂断是,我们通常可能需要做一通电话结束的 处理 。 这时候hungup hook 就非常有必要. 相当于你注册了一个callback function,一旦CID主动挂断或者由于某些异常挂断时,需要通知对应的回调函数做 处理 。 test. lua ...
通道变量名api_hangup_ hook 介绍在挂断时执行指定API命令示例 &lt;action application="set" data="api_hangup_ hook =jsrun cleanup.js ${uuid}"/&gt; originate {api_hangup_ hook =' lua confhangup hook . lua ',session_in_hangup_ hook =t...
1、通道接通和 挂机 后自动执行命令或脚本: <actionapplication="bridge"data="{api_on_answer=' lua test. lua para1 para2'}sofia/gateway/mygateway/02588888888"/> <action application="set" data="api_hangup_ hook = lua ...
文章目录网页集成软电话配置 freeswitch 开启wssnginx配置自签名https域名页面集成软电话开发 网页集成软电话 网页集成软电话需要使用https协议,页面与 freeswitch 平台建立websocket长连接。使用js sip 库进行相关开发 生成https自签名证书 下载ssl.ca-0.1.tar.gz wget http://files. freeswitch .org/downloads/ssl.ca-0.1.tar.gz 解压ssl.ca-0.1.tar.gz tar zxfv
最近在看 freeswitch ,按照官网上装完,运行,用两个X-Lite当内网客户端,A呼B,B接通后30s左右就结束了,并且一端挂断另一端也没啥反应,Wireshark抓包查看问题,发现 sip 消息有问题,地址ip被替换为外网ip导致消息发送不到FS; 解决:打开/etc/ freeswitch / sip _profiles下的配置文件internal.xml,将外网配置注释掉,重启FS; 分析:...
1.nginx支持https安装配置 本文运行环境在centeros7内网,需要在服务器上安装好nginx,可以参考百度https://blog.csdn.net/long690276759/article/details/82790002 还需要通过opensll生成证书,需要用到.key .crt ,pem文件,下面有提到。 nginx.conf文件修改 找到nginx.conf的位置...
拿到客户需求 想了一下 无非就是主叫挂断后被叫继续延长时间。。。但是平常都是遇到说要增加被叫挂断以后延长主叫时间的 经过一番摸索 发现可以利用exec_after_bridge_app=transfer以及exec_after_bridge_arg=calleeafterbridge这两个参数 freeswitch 的esl中如何监听通话状态以及是否挂断? freeswitch 在挂断前执行指定脚本 freeswitch 在ubuntu / centos / debian中使用odbc连接mysql freeswitch 使用mod_xml_curl实现动态认证以及动态配置  Fr...
### 回答1: Freeswitch 是一个开源的 VoIP 软交换平台,它能 处理 实时音频、视频和消息通信,提供语音、视频、会议、代理、PSTN接入等功能,为通信行业提供了一种灵活而又强大的解决 方案 。FusionPBX是一个易于安装、配置和使用的开源通信系统,它是在 Freeswitch 基础上开发的,提供了可视化的管理界面和多种功能,包括电话管理、呼叫路由、IVR等。 Freeswitch 和FusionPBX的结合能够为企业提供一套完整的通信解决 方案 Freeswitch 提供了强大的通信技术支持,而FusionPBX则提供了更加直观的管理界面和完善的功能。企业可以根据自己的需要进行定制和配置,实现高效地通信管理。此外, Freeswitch 和FusionPBX的开源特性也极大地降低了企业的成本,为企业节约了大量开发和维护费用。 综上所述, Freeswitch 和FusionPBX的结合为企业提供了一套完整的通信解决 方案 ,能够满足企业的通信需求并节省大量的开发和维护费用。 ### 回答2: Freeswitch 是一个免费的软交换平台,它支持多种不同的现代通信技术,包括 VoIP 、呼叫中心、即时通讯以及传真等。它是一个非常强大、可扩展并且灵活的软件系统,可以支持数百万名用户。 FusionPBX则是一种基于 Freeswitch 的开源电话管理系统,提供了多种功能,包括电话会议、呼叫转接、语音信箱、自动语音应答、手机应用、WebRTC等等。它还提供了强大的管理接口,以帮助管理员轻松管理各种任务,如分配电话号码、管理用户、维护设备等等。 FusionPBX具有良好的可扩展性,可以与任何支持 SIP 或 IAX2 协议的 PBX 集成,因此可以扩展至全球范围内。此外,它还提供了专业的技术支持和指导,并得到全球用户的高度评价。 总之, Freeswitch 和FusionPBX的出现,可以让我们更好地利用通信技术,不仅节省了通信成本,同时也提高了我们的工作效率。