【问题标题】:Lync 2013 - consuming 180 ringing responses from a forked requestLync 2013 - 使用来自分叉请求的 180 个响铃响应
【发布时间】:2014-11-25 12:33:41
【问题描述】:

是否可以将 Lync 2013 配置为在对 Lync 的 INVITE 触发多个对 Lync 订阅者端点的 INVITE(每个最终生成 180/183 消息)后仅向上游发送一个 180/183 振铃。

在同时响铃的情况下,我希望 Lync 使用所有这 180 秒以避免不必要的消息返回给 SBC 后面的发起方 INVITE'ing Lync。

它似乎是作为一个分叉代理而不是 b2bua。

【问题讨论】:

    标签: windows sip voip lync lync-2013


    【解决方案1】:

    说 Lync 分叉呼叫是对的。如果用户有多个终结点,Lync 会将呼叫分叉到每个终结点,然后每个终结点都将返回振铃响应。

    您可以创建一个MSPL 脚本来捕获 180 个响应。由于 MSPL 是无状态的,它需要一个支持应用程序(ServerApplication)来检查是否已经为当前呼叫发送了 180 响应,并阻止后续响铃响应。基于对所有请求的CallID 标头相同的假设,您可以决定发送哪些响应,哪些不发送。

    一个简单的 MSPL 类似于:

    <lc:applicationManifest
     lc:appUri="http://www.contoso.com/DefaultRoutingScript"
     xmlns:lc="http://schemas.microsoft.com/lcs/2006/05">
    <lc:responseFilter reasonCodes="1XX" />
    <lc:proxyByDefault action="true" />
    <lc:splScript><![CDATA[
        if (sipResponse && sipResponse.StatusCode == 180)
        {
            Dispatch("OnResponse");
        }
    ]]></lc:splScript>
    </lc:applicationManifest>
    

    然后在您的服务器应用程序中处理OnResponse 事件,我想像这样:

    public void OnResponse(object sender, ResponseReceivedEventArgs e)
    {
        if (e.Response.StatusCode == 180)
        {
            var callIdHeader = e.Response.AllHeaders.FindFirst(Header.StandardHeaderType.CallID);
            if (callIdHeader != null)
            {
                var callId = callIdHeader.Value;
                if (ShouldSendRingingResponse(callId))
                {
                    e.ClientTransaction.ServerTransaction.SendResponse(e.Response);
                }
            }
        }
    }
    
    public bool ShouldSendRingingResponse(string callId) { .... }
    

    然后你可以在ShouldSendRingingResponse函数中创建一些逻辑来查看是否发送180响应。

    请注意,我没有对此进行测试,这只是我将如何尝试处理这种情况的基本概述。

    【讨论】:

      【解决方案2】:

      在 Lync 中没有办法防止这种情况发生;但是,通常也会部署一个包含处理这种情况的选项的奥科 SBC。

      多个 18 倍: 设备支持多种18x响应(包括180 Ringing、181 Call is Forwarded、182 Call Queued、183 Session Progress)的互通,支持转发给主叫。 UA 可以配置为仅支持接收第一个 18x 响应(即设备仅将此响应转发给呼叫者),或接收多个 18x 响应(默认)。这由 IP 配置文件参数“SBC Remote Multiple 18x Support”配置

      【讨论】:

        猜你喜欢
        • 2014-05-26
        • 2019-08-10
        • 1970-01-01
        • 1970-01-01
        • 2010-10-23
        • 2018-08-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多