Freeswitch将407代理身份验证转换为480临时不可用

时间:2016-05-02 12:26:07

标签: freeswitch

网络设置如下。

最终用户------- Kamailio -------- Freeswitch ----- Sip Server A

  1. SIP服务器A中的注册成功,因为请求直接通过kamailio传递到SIP服务器A,留下了freeswitch。
  2. 在收到来自最终用户的邀请请求到Kamailio然后自由切换并到达SIP服务器A时,它响应407代理身份验证以验证用户但是回复freeswitch发送ACK
  3. 但是freeswitch回复到kamailio,因为480临时不可用而且电话正在掉线。

    最终用户------ Kamailio ----------- Freeswitch -------- SIP服务器A

    注册-------&gt; | ----------------------------------------------&GT; | < / p>

    | -----------> | <----------------------- 200 OK
    

    邀请-------------&gt; | ---------------------&GT; | --------------------&GT; |

                                |<----------- 407  
                                       (Proxy Auth Req.)   
                               ACK ---------> |
    
      | <--------- | <-------- 480 
                          (Temporary Unavailable) 
    
  4. 所以这是我的问题,

    1. 将freeswitch中的响应代码从407更改为480的原因?
    2. 如何配置freeswitch,以便将407响应直接传递给kamailio,而不是转换为480.
    3. 需要建议......

1 个答案:

答案 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>