场景描述
有一个网关,位于nat后面,freeswitch位于公网。
freeswitch如何通过该网关进行外呼?
解决方案
1、内网网关注册到freeswitch,网关使用账号1005注册到freeswitch
2、freeswitch通过如下的拨号方案呼叫:
<extension name="xxx_extension1">
<condition field="destination_number" expression="^(\d{4,15})$">
<action application="export" data="absolute_codec_string=PCMU,PCMA"/>
<action application="bridge" data="{sip_invite_req_uri=sip:$1@${domain}}user/1005@${domain}"/>
</condition>
</extension>
或者通过下面的命令呼叫:
originate {sip_invite_req_uri=sip:18652003060@172.16.167.151}user/1005@172.16.167.151 &echo()
这里核心的地方是:sip_invite_req_uri变量
该变量可以用于修改invite的目的地址。
参考资料
http://freeswitch-users.2379917.n2.nabble.com/Registering-SIP-Trunks-to-Freeswitch-td7582602.html
https://wiki.freeswitch.org/wiki/Variable_sip_invite_req_uri