✨ 博客主页:小小马车夫的主页
✨ 所属专栏:FreeSwitch开发实践
✨ 专栏介绍:主要介绍博主在实际项目中使用FreeSwitch开发外呼类项目的一些经验心得,主要涉及FreeSwitch的基本安装编译、基本配置、ESL、WSS、录音、自定义模块、media bug、语音播放、MRCP及对接AI机器人等内容。内容在持续更新中,如果感兴趣可以对专栏进行订阅~
前言
FreeSwitch开发一个重要应用是外呼,所谓外呼就拨打真实电话或手机号呼叫,配合语音机器人可以实现智能客服的功能。外呼配置主要是配置外呼服务器,外呼服务器主要指SIP网关,每个外呼服务器就是一个SIP节点,FreeSwitch服务也可以是一个SIP节点。
1、SIP网关配置
sip网关配置有两种模式,注册模式和非注册模式,下面分别对两种模式配置说明。
(1) 注册模式
注册模式下,需要一个密码:
配置
在FreeSwitch目录在conf\sip_profiles\external
创建文件,随便取个名字,如: my_gate.xml, 内容如下:
<include>
<gateway name="mygate_register">
<param name="realm" value="100.200.252.125:5060"/>
<param name="username" value="01012345678"/>
<param name="password" value="123456"/>
<param name="register" value="true"/>
</gateway>
</include>
说明:
gateway
网关定义,name
是网关配置名称,在拨号时用到realm
SIP网关的IP和端口, 其中IP可以替换为域名username
是就外呼拨号时被叫手机看到的来电号码password
是SIP网关认证的密码register
布尔类型, true=注册类型 false=非注册类型
加载网关配置
在FreeSwitch命令行运行如下命令:
freeswitch@test-l27-15-56> sofia status
Name Type Data State
=================================================================================================
external-ipv6 profile sip:mod_sofia@[::1]:5080 RUNNING (0)
external-ipv6 profile sip:mod_sofia@[::1]:5081 RUNNING (0) (TLS)
10.32.22.12 alias internal ALIASED
external profile sip:mod_sofia@10.32.22.12:5080 RUNNING (0)
external profile sip:mod_sofia@10.32.22.12:5081 RUNNING (0) (TLS)
external::mygate gateway sip:01012345678@100.200.252.125:5060 REG
internal-ipv6 profile sip:mod_sofia@[::1]:5060 RUNNING (0)
internal-ipv6 profile sip:mod_sofia@[::1]:5061 RUNNING (0) (TLS)
internal profile sip:mod_sofia@10.32.22.12:5060 RUNNING (0)
internal profile sip:mod_sofia@10.32.22.12:5061 RUNNING (0) (TLS)
=================================================================================================
4 profiles 1 alias
(2) 非注册模式
非注册模式下,不需要密码。
配置
在FreeSwitch目录在conf\sip_profiles\external
创建文件,随便取个名字,如: my_gate.xml, 内容如下:
<include>
<gateway name="mygate">
<param name="realm" value="100.200.252.125:5060"/>
<param name="username" value="01012345678"/>
<param name="register" value="false"/>
</gateway>
</include>
这里与注册模式的区别就是:
register
为false
加载网关配置
在FreeSwitch命令行运行如下命令:
freeswitch@test-l27-15-56> sofia status
Name Type Data State
=================================================================================================
external-ipv6 profile sip:mod_sofia@[::1]:5080 RUNNING (0)
external-ipv6 profile sip:mod_sofia@[::1]:5081 RUNNING (0) (TLS)
10.32.22.12 alias internal ALIASED
external profile sip:mod_sofia@10.32.22.12:5080 RUNNING (0)
external profile sip:mod_sofia@10.32.22.12:5081 RUNNING (0) (TLS)
external::example.com gateway sip:joeuser@example.com NOREG
external::mygate gateway sip:01012345678@100.200.252.125:5060 NOREG
internal-ipv6 profile sip:mod_sofia@[::1]:5060 RUNNING (0)
internal-ipv6 profile sip:mod_sofia@[::1]:5061 RUNNING (0) (TLS)
internal profile sip:mod_sofia@10.32.22.12:5060 RUNNING (0)
internal profile sip:mod_sofia@10.32.22.12:5061 RUNNING (0) (TLS)
=================================================================================================
4 profiles 1 alias
3、拨号计划配置
(1) 呼出配置
呼出配置,即往外呼叫,呼叫的对象就是SIP网关配置的外呼号码,具体配置示例如下:
在conf\dialplan\default
下创建路由配置文件 mycall.xml, 内容如下:
<include>
<extension name="mycall">
<condition field="destination_number" expression="^0(\d+)$">
<action application="bridge" data="sofia/gateway/mygate/$1"/>
</condition>
</extension>
</include>
destination_number
为拨号正则表达式sofia/gateway/mygate/$1
其中,mygate
是前面SIP网关配置的名字, $1为正则表达式中(\d+)
部分
呼叫命令举例:
originate user/1000 018600000001
- user/1000 为软电话1000
- 018600000001,为前面所述配置的正则,本例中 $1为18600000001,就是手机号码
(2) 呼入配置
呼入配置,即往内呼叫,就是真实手机号码呼叫到FS,由于FreeSwitch是背靠背协议,所以两端通信时,呼入和呼出配置基本没有区别。但当呼入配置的对象是FreeSwitch的内置模块(app)或者自定义模块,确很有用。
呼入命令举例:
originate sofia/gateway/mygate/18600000001 &echo
- 示例中sofia/gateway/mygate为配置的网关
- 18600000001 为手机号码,不同于呼出配置,这里直接使用手机号码
- echo为FreeSwitch内置模块echo, 回音程序,当然也可以自己开发的模块
总结
本文主要介绍了FreeSwitch外呼相关配置,主要有
- 外呼配置的模式,包括注册模式和非注册模式
- 网关加载的查看方法
- 拨号中常见的呼出配置和呼入配置
如果觉得有些帮助或觉得文章还不错,请关注一下博主,你的关注是我持续写作的动力。另外,如果有什么问题,可以在评论区留言,或者私信博主,博主看到后会第一时间回复。
【间歇性的努力和蒙混过日子,都是对之前努力的清零】
欢迎转载,转载请注明出处:https://blog.csdn.net/xxm524/article/details/126328064