/// <summary> /// Initialize from serviceConfig /// </summary> public void Initialize() { // Collect config values from Azure config. TraceEndpointInfo(); ServiceDnsName = GetString(ServiceDnsNameKey); ServiceCNAME = GetString(ServiceCNAMEKey, true); if (string.IsNullOrEmpty(ServiceCNAME)) { ServiceCNAME = ServiceDnsName; } AudioFileLocation = GetString(AudioFilePathKey); VideoFileLocation = GetString(VideoFilePathKey); X509Certificate2 defaultCertificate = GetCertificateFromStore(DefaultCertificateKey); RoleInstanceEndpoint instanceCallControlEndpoint = RoleEnvironment.IsEmulated ? null : GetEndpoint(InstanceCallControlEndpointKey); RoleInstanceEndpoint defaultEndpoint = GetEndpoint(DefaultEndpointKey); RoleInstanceEndpoint mediaControlEndpoint = RoleEnvironment.IsEmulated ? null : GetEndpoint(InstanceMediaControlEndpointKey); int instanceCallControlInternalPort = RoleEnvironment.IsEmulated ? DefaultPort : instanceCallControlEndpoint.IPEndpoint.Port; string instanceCallControlInternalIpAddress = RoleEnvironment.IsEmulated ? IPAddress.Loopback.ToString() : instanceCallControlEndpoint.IPEndpoint.Address.ToString(); int instanceCallControlPublicPort = RoleEnvironment.IsEmulated ? DefaultPort : instanceCallControlEndpoint.PublicIPEndpoint.Port; int mediaInstanceInternalPort = RoleEnvironment.IsEmulated ? 8445 : mediaControlEndpoint.IPEndpoint.Port; int mediaInstancePublicPort = RoleEnvironment.IsEmulated ? 20100 : mediaControlEndpoint.PublicIPEndpoint.Port; string instanceCallControlIpEndpoint = string.Format("{0}:{1}", instanceCallControlInternalIpAddress, instanceCallControlInternalPort); MicrosoftAppId = ConfigurationManager.AppSettings[MicrosoftAppIdKey]; if (string.IsNullOrEmpty(MicrosoftAppId)) { throw new ConfigurationException("MicrosoftAppId", "Key not found or empty value"); } // Create structured config objects for service. CallControlCallbackUrl = new Uri(string.Format( "https://{0}:{1}/{2}/{3}/", ServiceCNAME, instanceCallControlPublicPort, HttpRouteConstants.CallSignalingRoutePrefix, HttpRouteConstants.OnCallbackRoute)); NotificationCallbackUrl = new Uri(string.Format( "https://{0}:{1}/{2}/{3}/", ServiceCNAME, instanceCallControlPublicPort, HttpRouteConstants.CallSignalingRoutePrefix, HttpRouteConstants.OnNotificationRoute)); TraceConfigValue("CallControlCallbackUri", CallControlCallbackUrl); List <Uri> controlListenUris = new List <Uri> { new Uri("https://" + instanceCallControlIpEndpoint + "/"), new Uri("https://" + defaultEndpoint.IPEndpoint + "/") }; CallControlListeningUrls = controlListenUris; foreach (Uri uri in CallControlListeningUrls) { TraceConfigValue("Call control listening Uri", uri); } IPAddress publicInstanceIpAddress = RoleEnvironment.IsEmulated ? IPAddress.Loopback : GetInstancePublicIpAddress(ServiceDnsName); MediaPlatformSettings = new MediaPlatformSettings() { MediaPlatformInstanceSettings = new MediaPlatformInstanceSettings() { CertificateThumbprint = defaultCertificate.Thumbprint, InstanceInternalPort = mediaInstanceInternalPort, InstancePublicIPAddress = publicInstanceIpAddress, InstancePublicPort = mediaInstancePublicPort, ServiceFqdn = ServiceCNAME }, ApplicationId = MicrosoftAppId }; }
/// <summary> /// Initialize from serviceConfig /// </summary> public void Initialize() { // Collect config values from Azure config. TraceEndpointInfo(); ServiceDnsName = GetString(ServiceDnsNameKey); ServiceCNAME = GetString(ServiceCNAMEKey, true); if (string.IsNullOrEmpty(ServiceCNAME)) { ServiceCNAME = ServiceDnsName; } X509Certificate2 defaultCertificate = GetCertificateFromStore(DefaultCertificateKey); RoleInstanceEndpoint instanceCallControlEndpoint = RoleEnvironment.IsEmulated ? null : GetEndpoint(InstanceCallControlEndpointKey); RoleInstanceEndpoint defaultEndpoint = GetEndpoint(DefaultEndpointKey); RoleInstanceEndpoint mediaControlEndpoint = RoleEnvironment.IsEmulated ? null : GetEndpoint(InstanceMediaControlEndpointKey); int instanceCallControlInternalPort = RoleEnvironment.IsEmulated ? DefaultPort : instanceCallControlEndpoint.IPEndpoint.Port; string instanceCallControlInternalIpAddress = RoleEnvironment.IsEmulated ? IPAddress.Loopback.ToString() : instanceCallControlEndpoint.IPEndpoint.Address.ToString(); int instanceCallControlPublicPort = RoleEnvironment.IsEmulated ? DefaultPort : instanceCallControlEndpoint.PublicIPEndpoint.Port; int mediaInstanceInternalPort = RoleEnvironment.IsEmulated ? 8445 : mediaControlEndpoint.IPEndpoint.Port; int mediaInstancePublicPort = RoleEnvironment.IsEmulated ? 20100 : mediaControlEndpoint.PublicIPEndpoint.Port; string instanceCallControlIpEndpoint = string.Format("{0}:{1}", instanceCallControlInternalIpAddress, instanceCallControlInternalPort); MicrosoftAppId = ConfigurationManager.AppSettings[MicrosoftAppIdKey]; if (string.IsNullOrEmpty(MicrosoftAppId) || string.Equals(MicrosoftAppId, DefaultMicrosoftAppIdValue)) { throw new ConfigurationException("MicrosoftAppId", "Update app.config in WorkerRole with AppId from the bot registration portal"); } string microsoftAppPassword = ConfigurationManager.AppSettings[MicrosoftAppPasswordKey]; if (string.IsNullOrEmpty(microsoftAppPassword) || string.Equals(microsoftAppPassword, DefaultMicrosoftAppPasswordValue)) { throw new ConfigurationException("MicrosoftAppPassword", "Update app.config in WorkerRole with BotSecret from the bot registration portal"); } // Create structured config objects for service. CallControlCallbackUrl = new Uri(string.Format( "https://{0}:{1}/{2}/{3}/", ServiceCNAME, instanceCallControlPublicPort, HttpRouteConstants.CallSignalingRoutePrefix, HttpRouteConstants.OnCallbackRoute)); NotificationCallbackUrl = new Uri(string.Format( "https://{0}:{1}/{2}/{3}/", ServiceCNAME, instanceCallControlPublicPort, HttpRouteConstants.CallSignalingRoutePrefix, HttpRouteConstants.OnNotificationRoute)); AzureInstanceBaseUrl = new Uri(string.Format( "https://{0}:{1}/", ServiceCNAME, instanceCallControlPublicPort)); TraceConfigValue("CallControlCallbackUri", CallControlCallbackUrl); List <Uri> controlListenUris = new List <Uri>(); if (RoleEnvironment.IsEmulated) { controlListenUris.Add(new Uri("https://" + defaultEndpoint.IPEndpoint.Address + ":" + DefaultPort + "/")); } else { controlListenUris.Add(new Uri("https://" + instanceCallControlIpEndpoint + "/")); controlListenUris.Add(new Uri("https://" + defaultEndpoint.IPEndpoint + "/")); }; CallControlListeningUrls = controlListenUris; foreach (Uri uri in CallControlListeningUrls) { TraceConfigValue("Call control listening Uri", uri); } IPAddress publicInstanceIpAddress = RoleEnvironment.IsEmulated ? IPAddress.Loopback : GetInstancePublicIpAddress(ServiceDnsName); MediaPlatformSettings = new MediaPlatformSettings() { MediaPlatformInstanceSettings = new MediaPlatformInstanceSettings() { CertificateThumbprint = defaultCertificate.Thumbprint, InstanceInternalPort = mediaInstanceInternalPort, InstancePublicIPAddress = publicInstanceIpAddress, InstancePublicPort = mediaInstancePublicPort, ServiceFqdn = ServiceCNAME }, ApplicationId = MicrosoftAppId }; }