FreeSWITCH Gateway

1、配置网关

配置网关gw1

1  <include>
2      <gateway name="gw1">    
3          <param name="username" value="90231"/>
4          <param name="realm" value="112.242.28.98:5060"/>
5          <param name="password" value="123456"/>
6     </gateway>
7   </include>

配置好后,重新加载配置文件。使用下面命令查看网关是否注册成功:

1 sofia status gateway

2、路由配置

2.1 认证模式下路由配置

1  <extension name="Call-Out">
2     <condition field="destination_number" expression="^9(\d+)(x*)$" require-nested="false">
3         <action application="bridge" data="sofia/gateway/gw1/$1"/>
4     </condition>
5 </extension>

2.2 非认证模式下路由配置和认证下路由配置相同

1 <extension name="Call-Out">
2     <condition field="destination_number" expression="^9(\d+)(x*)$" require-nested="false">
3         <action application="bridge" data="sofia/gateway/gw1/$1"/>
4     </condition>
5 </extension>

2.3 没有网关时直接指向IP

1 <extension name="Call-Out">
2     <condition field="destination_number" expression="^9(\d+)(x*)$" require-nested="false">
3         <action application="bridge" data="sofia/internal/112.242.28.98:5060/$1"/>
4     </condition>
5 </extension>

2.4 其它情况

有时候网关在内网,而FreeSWITCH在公网,FreeSWITCH无法直接指向内网地址,也无法注册到网关设备上。这时需要用到NAT,让内网网关注册到FreeSWITCH上。内网注册过去后,会在路由器上做一个内外网端口映射。FreeSWITCH无法直接到达网关,但是通过外网端口则能到达内网网关了。此时假设内网以分机9999注册到FreeSWITCH上(当然也可以用别的方式来做,比附路由器上做端口映射,内网和外网做端口映射,不过这种方式不够灵活)。

在FreeSWITCH的console调用:

1 sofia_contact 9999

得到结果:

1 sofia/internal/sip:9999@112.242.28.98:5060

从这里我们可以知道网关对应的外网地址和端口,那只要把呼叫信息发到112.242.28.98:5060即可。

1 <extension name="Call-Out">
2     <condition field="destination_number" expression="^9(\d+)(x*)$" require-nested="false">
3         <action application="bridge" data="${regex(${sofia_contact(internal/9999@${domain_name})}|^(.+)sip:(.+)@(.+)|%1sip:$1@%3)}"/>
4     </condition>
5 </extension>

 

posted @ 2022-05-05 11:40  钟齐峰  阅读(1430)  评论(0编辑  收藏  举报