一、对接方式

FreeSWITCH里Gateway(网关)的概念。网关又称协议转换器,通常都是进行协议转换。这里说的网关指的是语音网关,如常用的SIP网关,负责SIP协议和七号信令或ISDN PRI(模拟信号)之间的转换。FreeSWITCH中的网关可以理解成一个SIP代理。通过SIP代理连接语音网关设备或系统,将SIP转换成模拟信号。简化一下过程, FreeSWITCH完成号码的落地工作

其简化后的过程大致如下:

OPenSIPS —-> FreeSWICTCH —-> 语音网关 —-> 运营商 —-> 手机或固话

对接的最终目的都是为了将通话转到网关上。按照对接方式,分成认证和非认证。非认证又称IP对接,或者SIP中继对接。简单理解认证方式就是,FreeSWITCH无法随意的将呼叫送到网关上,需要经过网关的认证。非认证方式,只要知道网关地址,大家都可以发起INVITE。

注册的SIP服务器
通常sip终端都需要注册到某台SIP服务器上(就像手机要连接到基站),以实现呼出和呼入的功能

注册在OpenSIPS上的SIP终端发起的呼叫请求将发送到OpenSIPS,OpenSIPS根据路由脚本配置使用load_balancer(负载均衡)模块或dispatcher(调度模块)将呼叫请求转发到其他sip服务器或网关上。反之当sip服务器或网关呼叫注册在OpenSIPS上的终端时,会呼入到OpenSIPS(只有OpenSIPS有被叫SIP终端的AOR信息),然后opensips再呼叫SIP终端。这是就是一个典型的注册服务器。

配置信息

中继配置
conf\sip_profiles\external

二、配置外呼

首先你要有某个运营商提供的sip账号,该SIP账号(或提供该账号的设备)在 FreeSWITCH 中称为SIP网关(Gateway)。添加一个网关只需要在 conf/sip_profiles/external/中创建一个XML文件:内容是:SIP服务器地址,可以是IP或IP:端口号  SIP用户名   密码

<gateway name="gw1">
    <param name="realm" value="SIP服务器地址,可以是IP或IP:端口号"/>
    <param name="username" value="SIP用户名"/>
    <param name="password" value="密码"/>
</gateway>

重启FS,使修改生效

或者指令freeswitch> sofia profile external rescan

显示一下网关的注册状态:

freeswitch> sofia status

如果显示 gateway gw1 的状态是 REGED,则表明已正确地注册到了网关上。你可以先用命令试一下网关是否工作正常:

freeswitch> originate sofia/gateway/gw1/xxxxxx &echo

3.5.1 从某一分机上呼出

修改拨号计划,创建一个新的XML文件— conf/dialplan/default/call_out.xml,内容如下:

 
<include>
  <extension name="call out">
    <condition field="destination_number" expression="^0(\d+)$">
      <action application="bridge" data="sofia/gateway/gw1/$1"/>
    </condition>
  </extension>
</include>

其中,“^0(d+)$”为正则表达式,“(d+)”匹配 0 后面的所有数字并存到变量$1中。然后通过bridge程序通过网关gw1打出该号码。当然,建立该XML后需要在控制台中执行reloadxml使之生效

3.5.2 呼入电话处理

创建以下XML文件并放到 conf/dialplan/public/my_did.xml中:

<include>
  <extension name="public_did">
    <condition field="destination_number" expression="^(你的DID)$">
      <action application="transfer" data="1000 XML default"/>
    </condition>
  </extension>
</include>

在FreeSWITCH中执行reloadxml使之生效。上述配置会将来话直接转接到分机 1000 上

4、总结:

FreeSWITCH的外呼场景主要通过配置网关注册、拨号计划来实现,实际上外呼中的呼叫、转接、会议都要用到这两个技术

网关如果在同一网段或者网关在FreeSWITCH的外网的话(实际上就是说FreeSWITCH可以直接访问到网关),就采用FreeSWITCH注册到网关或者指向网关的方式,这也是常用的方式。 如果网关在内网,而FreeSWITCH在外网的话,就只能采用内网网关注册到FreeSWITCH的方式。

拨号计划是 FreeSWITCH 中至关重要的一部分。它的主要作用就是对电话进行路由(从这一点上来说,相当于一个路由表)。说的简明一点,就是当一个用户拨号时,对用户所拨的号码进行分析,进而决定下一步该做什么。当然,实际上,它所能做的比你想象的要强大的多。

原文链接:https://blog.csdn.net/hj550636459/article/details/100080251

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐