private byte[] GetUMPromptPreview(PromptPreviewRpcRequest request, Guid dialPlanGuid) { UMPromptPreviewRpcTarget umpromptPreviewRpcTarget = (UMPromptPreviewRpcTarget)UMPromptPreviewRpcTargetPicker.Instance.PickNextServer(dialPlanGuid); if (umpromptPreviewRpcTarget == null) { throw new RpcUMServerNotFoundException(); } byte[] audioData; try { ResponseBase responseBase = umpromptPreviewRpcTarget.ExecuteRequest(request) as ResponseBase; if (responseBase == null) { throw new InvalidResponseException(umpromptPreviewRpcTarget.Name, string.Empty); } ErrorResponse errorResponse = responseBase as ErrorResponse; if (errorResponse != null) { throw errorResponse.GetException(); } PromptPreviewRpcResponse promptPreviewRpcResponse = responseBase as PromptPreviewRpcResponse; if (promptPreviewRpcResponse == null) { throw new InvalidResponseException(umpromptPreviewRpcTarget.Name, string.Empty); } audioData = promptPreviewRpcResponse.AudioData; } catch (RpcException ex) { throw new InvalidResponseException(umpromptPreviewRpcTarget.Name, ex.Message, ex); } return(audioData); }
protected override void InternalProcessRecord() { TaskLogger.LogEnter(); PromptPreviewRpcRequest request = null; ObjectId identity = null; string parameterSetName; switch (parameterSetName = base.ParameterSetName) { case "AACustomGreeting": request = new UMAACustomPromptRpcRequest(base.AutoAttendant, this.PromptFileName); identity = base.AutoAttendant.Identity; goto IL_1ED; case "AfterHoursWelcomeGreeting": request = UMAAWelcomePromptRpcRequest.AfterHoursWithCustomBusinessName(base.AutoAttendant, this.TestBusinessName); identity = base.AutoAttendant.Identity; goto IL_1ED; case "AfterHoursWelcomeGreetingAndMenu": request = UMAAWelcomePromptRpcRequest.AfterHoursWithCustomKeyMapping(base.AutoAttendant, this.TestMenuKeyMapping); identity = base.AutoAttendant.Identity; goto IL_1ED; case "BusinessHours": request = new UMAABusinessHoursPromptRpcRequest(base.AutoAttendant); identity = base.AutoAttendant.Identity; goto IL_1ED; case "BusinessLocation": request = new UMAABusinessLocationPromptRpcRequest(base.AutoAttendant); identity = base.AutoAttendant.Identity; goto IL_1ED; case "BusinessHoursWelcomeGreeting": request = UMAAWelcomePromptRpcRequest.BusinessHoursWithCustomBusinessName(base.AutoAttendant, this.TestBusinessName); identity = base.AutoAttendant.Identity; goto IL_1ED; case "BusinessHoursWelcomeGreetingAndMenu": request = UMAAWelcomePromptRpcRequest.BusinessHoursWithCustomKeyMapping(base.AutoAttendant, this.TestMenuKeyMapping); identity = base.AutoAttendant.Identity; goto IL_1ED; case "DPCustomGreeting": request = new UMDPCustomPromptRpcRequest(this.DataObject, this.PromptFileName); identity = this.DataObject.Identity; goto IL_1ED; } ExAssert.RetailAssert(false, "Invalid parameter set {0}", new object[] { base.ParameterSetName }); try { IL_1ED: ADObjectId adobjectId = (base.AutoAttendant == null) ? ((ADObjectId)this.DataObject.Identity) : base.AutoAttendant.UMDialPlan; UMPrompt umprompt = new UMPrompt(identity); umprompt.AudioData = this.GetUMPromptPreview(request, adobjectId.ObjectGuid); if (base.ParameterSetName == "DPCustomGreeting" || base.ParameterSetName == "AACustomGreeting") { umprompt.Name = this.PromptFileName; } else { umprompt.Name = base.ParameterSetName; } base.WriteObject(umprompt); } catch (LocalizedException exception) { base.WriteError(exception, ErrorCategory.NotSpecified, null); } TaskLogger.LogExit(); }