环境描述:
双网卡:
外网网卡:172.16.1.100/24 网关:172.16.1.254
内网网卡:192.168.2.33/24 未配置网关
在external.xml和internal.xml中将sip-ip和rtp-ip改为内网192.168.2.33
xml_curl配置:
原因:
xml_curl在分机注册时候,会向http发送action为sip_auth的请求,该请求的domain是外网IP,注册时,无论是外网IP,还是内网IP,都可以注册成功。
呼叫的时候,xml_curl会向http发送user_call的Action,请求的domain,还是外网IP,默认情况下,返回分机注册xml字符串时,都是把domain原封不动的回填。
在呼叫的时候,如果还是外网IP,由于分机是在internal上的,会找不到注册分机,所以提示注册失败。
所以,在收到user_call的Action时,把domain改为内网的IP地址,返回去,就可以了!
如果还不行,改一下dial-string 书上的xml_curl模块中dial-string是个巨坑,不过注释给了提示。
改成下面这个试试:
{presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(*/${dialed_user}@${dialed_domain})}