【FreeSwitch开发实践】外呼网关配置(拨打电话)

✨ 博客主页:小小马车夫的主页
✨ 所属专栏: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>

这里与注册模式的区别就是:registerfalse

加载网关配置

在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

  • 50
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 90
    评论
评论 90
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一马途追

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值