专家前辈入驻,谈笑有鸿儒,往来无白丁,共同学习探讨IMS/IPPBX相关技术
欢迎同行加入IMS/IPPBX/VoIP/SIP QQ交流群:255404741(猛戳直接加群)
SIP Trunk + DID 固然能够解决不同SIP域间呼叫互通的问题,但却不是唯一的解决方案,DID理解和配置都不易,且两域是something like从属的上下级的关系,满足不了独立的个体化需求。SIP域间直接的IP对接的方式就是解决此问题的。
Precondition说明:
本域:imsclub.com/122.112.86.102: 5060
测试分机:sip:1010@122.112.86.102
外域:42.96.203.28:5060
测试分机:sip:88885000@42.96.203.28
目的:实现注册在42.96.203.28的分机可以直接呼叫注册在imsclub.com/122.112.86.102上的分机,例如88885000拨1010进行直接呼叫(42.96.203.28的服务器需要配置相应的sip route到imsclub.com)。
public dialplan
acl 配置允许接受某域的请求
确保acl.conf.xml配置允许接受某域的请求,否则会收到invite会被rejected:
sofia.c:8034 IP 42.96.203.28 Rejected by acl "domains". Falling back to Digest auth.
修改conf/autoload_configs/acl.conf.xml:
<network-lists>
<configuration>
......
<list name="domains" default="deny">
<!-- domain= is special it scans the domain from the directory to build the ACL -->
<node type="allow" domain="$${domain}"/>
<!-- Added by vinco zhang at 2014-06-01 for zhangwenge gateway -->
<!-- why domain="42.96.203.28" doesn't work ? -->
<!-- <node type="allow" domain="42.96.203.28"/> -->
<!-- use cidr= if you wish to allow ip ranges to this domains acl. -->
<!-- <node type="allow" cidr="192.168.0.0/24"/> -->
<!-- Added by vinco zhang at 2014-06-01 for zhangwenge gateway -->
<node type="allow" cidr="42.96.203.28/32"/>
</list>
</network-lists>
</configuration>
acl配置生效
freeswitch@internal> reloadacl reloadxml
acl测试 & 呼叫测试
1. Test an IP address against one of your ACL's
2014-06-02 18:30:18.681340 [INFO] mod_dialplan_xml.c:558Processing 88885000 <88885000>->1010 in context default
1010话机接起,这样外域对接的incoming call 成功了!抓包确认包确实是从 42.96.203.28:5060-->122.112.86.102:5060(而不是通过sip trunk到达122.112.86.102:5080)
鸣谢:感谢 张文阁 前辈提供对接的sip服务器