2

我有两个 Lync 客户 Hulk 和 Batman。绿巨人打电话给蝙蝠侠,之后它给蝙蝠侠的 Lync 客户打电话。

现在,我想编写一个UCMA 4.0受信任的应用程序,它应该接受来电,以便在两个 Lync 客户端 Hulk 和 Batman 之间建立 RTP 连接。

我执行以下操作:

_userEndpoint.RegisterForIncomingCall<AudioVideoCall>(IncomingCallDelegate);

用户端点(使用 SIP URI sip:batman_lync@artus.demo 配置)是使用以下new关键字创建的:new UserEndpoint(_collaborationPlatform, endpointSettings);

但是由于这个new关键字,调用实际上被分叉到两个位置:它响铃 Batman 的 Lync 客户端并被 IncomingCallDelegate调用。一旦我接听电话IncomingCallDelegate,蝙蝠侠的 Lync 客户端就停止响铃,但很遗憾,Lync 客户端不在通话中(它的状态也设置为“可用”)。

public void IncomingCallDelegate(object sender, CallReceivedEventArgs<AudioVideoCall> args)
{
    _logger.Log("Call incoming...");
    var call = args.Call;

    call.BeginAccept(ar =>
    {
        call.EndAccept(ar);
        _logger.Log("Call accepted.");
    }, null);
}

如何接受正确的用户端点?用户端点的EndpointUri属性是只读的,并且 setterInnerEndpoint.Gruu是受保护的。无论如何,我不知道如何为给定的 SIP URI 获取 Gruu ......

谢谢。

4

1 回答 1

0

您实际上是在向 SIP 地址添加另一个设备(端点),然后在该设备上接听电话,因此呼叫在其他设备上停止响铃是正确的,因为它已被接听。诚然,我很惊讶出席并没有变成“待命”。

如果您想在特定设备上自动接听电话,我建议 UCMA 可能是该工作的错误工具,并建议使用 Lync Client SDK 在本地监视传入的 AV 呼叫。

于 2014-07-23T08:30:32.000 回答