I'm trying to get a UCMA application (Skype for Business application SDK) running in server core. After making some modifications to the runtime installers, I've managed to get an app started, registered, placing, and receiving calls, but I'm running
into an issue with playing back prompts. The issue is that calling this code:
WmaFileSource source = new WmaFileSource("0-9.wma");
source.EndPrepareSource(source.BeginPrepareSource(MediaSourceOpenMode.Buffered, null, null));
Throws an exception:
Unhandled Exception: Microsoft.Rtc.Signaling.OperationFailureException: PrepareSource failed. Verify that the file is valid, has proper permissions, and can be accessed. ---> Microsoft.Rtc.Internal.Media.FileSourceException: OpenFile failed,hr=-2147467263
at Microsoft.Rtc.Internal.Media.RtpAsyncResultNoResult.EndInvoke()
at Microsoft.Rtc.Collaboration.AudioVideo._RtpMediaFileSource.EndOpenFile(IAsyncResult iAsyncResult)
at Microsoft.Rtc.Collaboration.AudioVideo.WmaFileSource.EndPrepareSourceImpl(IAsyncResult ar)
--- End of inner exception stack trace ---
at Microsoft.Rtc.Signaling.SipAsyncResult`1.ThrowIfFailed()
at MCUDialoutRepro.Program.PlaceAVCall(String sipAddress) in D:\gitcode\prototypes\MCUDialoutRepro\MCUDialoutRepro\Program.cs:line 264
at MCUDialoutRepro.Program.Main(String[] args) in D:\gitcode\prototypes\MCUDialoutRepro\MCUDialoutRepro\Program.cs:line 561
I've verified that the file is available, accessible, and valid, and the same code works fine on a server 2016 machine with desktop experience installed. I have the media foundation role installed, so I'm thinking that there's a missing codec for WMA.
I did try out the server essentials media pack, but that didn't appear to install.
I also pulled a list of dependencies on microsoft.rtc.collaboration, and found that there were a lot of missing dependencies on my server core system according to dependency walker:
ACLUI.DLL
AEPIC.DLL
AVRT.DLL
CERTCA.DLL
COMCTL32.DLL
COMCTL32.DLL
COMDLG32.DLL
COMPPKGSUP.DLL
COREUICOMPONENTS.DLL
CRYPTNET.DLL
CRYPTNGC.DLL
CRYPTUI.DLL
DBGCORE.DLL
DCOMP.DLL
DEVMGR.DLL
DFSCLI.DLL
DMCMNUTILS.DLL
DMPUSHPROXY.DLL
DSREG.DLL
EAPPCFG.DLL
EDPUTIL.DLL
EFSADU.DLL
EFSCORE.DLL
EFSWRT.DLL
ELSCORE.DLL
FECLIENT.DLL
FMS.DLL
IEADVPACK.DLL
IEAPFLTR.DLL
IEFRAME.DLL
IEUI.DLL
IMGUTIL.DLL
INETCOMM.DLL
IRI.DLL
MFC42U.DLL
MI.DLL
MIUTILS.DLL
MLANG.DLL
MPRMSG.DLL
MSFEEDS.DLL
MSHTML.DLL
MSI.DLL
MSLS31.DLL
MSOERT2.DLL
MSVCP110_WIN.DLL
NETAPI32.DLL
NEWDEV.DLL
OCCACHE.DLL
ODBC32.DLL
OLEDLG.DLL
OMADMAPI.DLL
POLICYMANAGER.DLL
PRINTUI.DLL
PRNTVPT.DLL
PUIAPI.DLL
RASAPI32.DLL
RASMAN.DLL
RTUTILS.DLL
RTWORKQ.DLL
SHDOCVW.DLL
SLC.DLL
TAPI32.DLL
TBS.DLL
TPMCOREPROVISIONING.DLL
TWINAPI.DLL
UIAUTOMATIONCORE.DLL
VAULTCLI.DLL
WEBIO.DLL
WEBSOCKET.DLL
WER.DLL
WEVTAPI.DLL
WINHTTP.DLL
Can anyone think of what else I might be able to try to get this to work, or is this going to stay in the realm of "not supported"? It would be nice to be able to support server core for our SFB apps (because containers eventually), but it's
already starting to get pretty far off the support grid.