网络设置如下。
最终用户------- Kamailio -------- Freeswitch ----- Sip Server A
但是freeswitch回复到kamailio,因为480临时不可用而且电话正在掉线。
最终用户------ Kamailio ----------- Freeswitch -------- SIP服务器A
注册-------&gt; | ----------------------------------------------&GT; | < / p>
| -----------> | <----------------------- 200 OK
邀请-------------&gt; | ---------------------&GT; | --------------------&GT; |
|<----------- 407
(Proxy Auth Req.)
ACK ---------> |
| <--------- | <-------- 480
(Temporary Unavailable)
所以这是我的问题,
需要建议......
答案 0 :(得分:0)
FreeSWITCH不是SIP代理,FreeSWITCH是B2BUA。这意味着FreeSWITCH试图对SIP服务器A进行独立呼叫。如果它成功,那么FreeSWITCH将使用来自最终用户的呼叫(而不是来自kamailio,因为kamailio是此方案中的SIP代理,而不是B2BUA)来桥接它。它不能重新发送407到kamailio,因为它没有适当的机制。但您可以在FreeSWITCH端的网关中存储身份验证信息,并指示FreeSWITCH为每个用户掷拨号方案进行适当的调用。
如果你在external.xml SIP-profile config中写下这样的东西,它将会起作用:
<gateway name="asterlink.com">
<param name="username" value="cluecon"/>
<param name="password" value="2007"/>
<!--/// do not register ///-->
<param name="register" value="false"/>
</gateway>
在dialplan default.xml中的类似内容:
<extension name="end-user">
<condition field="${sip_from_user}" expression="<end_user_caller_id_number>">
<action application="bridge" data="sofia/gateway/asterlink.com/${destination_number}"/>
</condition>
</extension>