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中会话路由如下示例:<extension name="local_route"> <condition field="destination_number" expression="^([rd]3.*)$"> <action application="set" data="api_hangup_hook=lua testHook.lua"/> <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命令示例
<action application="set" data="api_hangup_
hook
=jsrun cleanup.js ${uuid}"/>
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的出现,可以让我们更好地利用通信技术,不仅节省了通信成本,同时也提高了我们的工作效率。