我正在使用清单和Windows服务编写Lync MSPL应用程序。在我的manifest.am中,我有以下代码:
<?xml version="1.0"?>
<r:applicationManifest
r:appUri="http://www.company.no/LyncServerFilter"
xmlns:r="http://schemas.microsoft.com/lcs/2006/05">
<r:requestFilter methodNames="ALL"
strictRoute="true"
domainSupported="false"/>
<r:responseFilter reasonCodes="ALL"/>
<r:proxyByDefault action="true" />
<r:allowRegistrationBeforeUserServices action="true" />
<r:splScript>
<![CDATA[
callId = GetHeaderValues("Call-ID");
cseq = GetHeaderValues("CSeq");
content = "";
sstate = GetHeaderValues("subscription-state");
xevent = GetHeaderValues("Event");
xdir = GetHeaderValues("Direction");
xexp = GetHeaderValues("Session-Expires");
referto = GetHeaderValues("Refer-To");
if (sipRequest)
{
if (sipRequest.Method == "INVITE") {
if (ContainsString(sipRequest.Content, "m=audio", true)) {
content = "audio";
}
else if (ContainsString(sipRequest.Content, "m=video", true)) {
content = "video";
}
else if (ContainsString(sipRequest.Content, "m=message", true)) {
content = "message";
}
else if (ContainsString(sipRequest.Content, "m=application", true)) {
content = "application";
}
else {
content = "unknown";
}
}
else if (sipRequest.Method == "NOTIFY" || sipRequest.Method == "BENOTIFY") {
content = sipRequest.Content;
}
DispatchNotification("OnRequest", sipRequest.Method, sipMessage.From, sipMessage.To, callId, cseq, content, xdir, xevent, sstate, xexp, referto);
if (sipRequest) {
ProxyRequest();
}
}
else if(sipResponse) {
DispatchNotification("OnResponse", sipResponse.StatusCode, sipResponse.StatusReasonPhrase, sipMessage.From, sipMessage.To, callId, cseq, content, xdir, xevent, sstate, xexp, referto);
ProxyResponse();
}
]]></r:splScript>
</r:applicationManifest>
我在Lync前端服务器上的事件日志中收到以下错误消息: Lync Server应用程序MSPL脚本执行因错误而中止
申请Uri在'http://www.company.no/LyncServerFilter',第60行 错误:0x80070057 - 参数不正确
其他信息:ProxyRequest仅对sipRequest有效
第60行是我调用ProxyRequest的地方:
if (sipRequest) {
ProxyRequest();
}
问题:
答案 0 :(得分:1)
ProxyRequest方法接受uri的参数,这就是您收到编译错误消息的原因。
所以你应该这样称呼它:
ProxyRequest(""); // send to the URI specified in the request itself
删除它的有效性与将proxyByDefault设置设置为true相同:
如果为true,则服务器会自动代理应用程序未处理的任何消息。如果为false,则删除该消息,并且在应用程序执行顺序中遵循此应用程序的应用程序将不会收到该消息。默认值为true。
作为旁注,您可以使用compilespl.exe作为Lync Server SDK的一部分,以便在尝试在lync服务器上启动之前验证您的MSPL脚本是否正确。
在单独编译MSPL应用程序&#39;中查看此link。部分。