我有两个Lync客户端Hulk和Batman。绿巨人称蝙蝠侠为蝙蝠侠的Lync客户端。
现在,我想编写一个 UCMA 4.0 受信任的应用程序,该应用程序应接受该来电,以便两个Lync客户端Hulk和Batman之间存在RTP连接。
我执行以下操作:
_userEndpoint.RegisterForIncomingCall<AudioVideoCall>(IncomingCallDelegate);
使用new
关键字创建了用户端点(使用SIP URI sip:batman_lync@artus.demo 配置):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
属性是只读的,InnerEndpoint.Gruu
的setter受保护。我不知道如何获得给定SIP URI的Gruu ......
感谢。
答案 0 :(得分:0)
您正在有效地将另一个设备(端点)添加到SIP地址,然后在该设备上应答呼叫,以便呼叫在已应答的其他设备上停止响铃是正确的。不可否认,我很惊讶在场,并没有改变到#34;。
如果您想在特定设备上自动接听电话,我会建议UCMA可能是错误的工作工具,并建议使用Lync Client SDK在本地监听传入的AV电话。