SkypeSDK视频和音频问题 - 找不到mediaRelayAccessToken

时间:2016-09-22 06:21:04

标签: skype skype-for-business skypedeveloper

我在将音频或视频服务添加到封面时遇到问题。 聊天服务对我来说很好。 当我添加视频或音频服务时,我收到以下错误:

Error: GET /ucwa/oauth/v1/applications/113925534802/communication/mediaRelayAccessToken failed: 404
{
  [functions]: ,
  __proto__: { },
  code: "RequestFailed",
  description: "GET /ucwa/oauth/v1/applications/113925534802/communication/mediaRelayAccessToken failed: 404",
  message: "GET /ucwa/oauth/v1/applications/113925534802/communication/mediaRelayAccessToken failed: 404",
  name: "Error",
  req: { },
  rsp: { },
  stack: "Error: GET /ucwa/oauth/v1/applications/113925534802/communication/mediaRelayAccessToken failed: 404
at process (https://swx.cdn.skype.com/build2015/v5/SDK-build.js:8079:29)
at Anonymous function (https://swx.cdn.skype.com/build2015/v5/SDK-build.js:8018:29)
at Anonymous function (https://swx.cdn.skype.com/build2015/v5/SDK-build.js:1714:25)
at map (https://swx.cdn.skype.com/build2015/v5/SDK-build.js:1331:25)
at decompose (https://swx.cdn.skype.com/build2015/v5/SDK-build.js:8017:25)
at Anonymous function (https://swx.cdn.skype.com/build2015/v5/SDK-build.js:8007:29)
at handle (https://swx.cdn.skype.com/build2015/v5/SDK-build.js:2220:33)
at Anonymous function (https://swx.cdn.skype.com/build2015/v5/SDK-build.js:698:25)"
}

Skype For Business插件已安装并正常运行。 目前尚未安装Skype Edge服务器。 我正在使用Internet Explorer 11。

使用Microsoft的Skype Web SDK On Prem Sample以及我自己的网站发生错误。

当我尝试第二次将视频或音频添加到同一个对话时,我根本没有收到任何错误消息,但它仍然无法正常工作。请求不会出现在开发工具或fiddler中。我正在使用最新版本的Skype SDk引导程序。

客户端和服务器都位于同一子网中。

提前致谢。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。不确定它是如何发生的,但是sdk在获取或应用媒体配置时遇到麻烦。 您可以使用此解决方法:

在sdk的调试版本中的第18,892行之后,注释掉两个调用:

uninit(); throw error;

init()部分的MediaConfig函数中。导致:

function init() { pcMediaConfig = mediaPlugin.createComponent({ type: 'MediaPlatformConfig', hide: true, inproc: false }); pcMediaConfig.event(onPluginComponentEvent); pcMediaConfig.state.changed(function (state) { log('pcMediaConfig.state = ' + state); }); var p = pcMediaConfig.load().then(getMediaConfig).then(setMediaConfig).then(null, function (error) { log('MediaConfig::init rejected'); //uninit(); //throw error; }); return p; }

因此,您必须下载引导程序和sdk以永久应用修补程序。要执行此操作,只需在调试版本(引导程序版本1.2.5)中获取并在函数onConfig(config)第48行中替换

}, config.corsScript && (scriptAttributes.crossOrigin = ""), loader.loadScript(getPackageUrl(config), null, handleError, scriptAttributes);

}, config.corsScript && (scriptAttributes.crossOrigin = ""), loader.loadScript("./scripts/SkypeSDK.js", null, handleError, scriptAttributes);

或您的等效路径

答案 1 :(得分:1)

目前这是Skype Web SDK的限制:它依赖mediaRelayAccessToken来继续进行音频/视频通话。开发团队意识到了这个问题,可能会在未来的Skype Web SDK版本中修复。

上面推荐的hacky方式基本上是允许SDK在缺少mediaRelayAccessToken时继续调用,因此它可以让你绕过这个问题。

边缘服务器返回媒体中继访问令牌,因此您也可以尝试部署边缘服务器以解决此问题。