public static ProxyAddressCollection UpdateSipNameEumProxyAddress(ProxyAddressCollection emailAddresses) { if (emailAddresses == null) { throw new ArgumentNullException("emailAddresses"); } string text = null; foreach (ProxyAddress proxyAddress in emailAddresses) { if (proxyAddress.Prefix == ProxyAddressPrefix.SIP) { if (text != null) { text = null; break; } text = proxyAddress.ValueString; } } EumProxyAddress eumProxyAddress = null; if (!string.IsNullOrEmpty(text)) { foreach (ProxyAddress proxyAddress2 in emailAddresses) { if (proxyAddress2.Prefix == ProxyAddressPrefix.UM && proxyAddress2.IsPrimaryAddress) { EumProxyAddress eumProxyAddress2 = proxyAddress2 as EumProxyAddress; EumAddress eumAddress = (EumAddress)eumProxyAddress2; if (eumAddress.IsSipExtension && !string.Equals(eumAddress.Extension, text, StringComparison.OrdinalIgnoreCase)) { eumProxyAddress = eumProxyAddress2; break; } } } } ProxyAddressCollection proxyAddressCollection = (ProxyAddressCollection)emailAddresses.Clone(); if (eumProxyAddress != null) { string phoneContext = ((EumAddress)eumProxyAddress).PhoneContext; EumAddress eumAddress2 = new EumAddress(text, phoneContext); EumProxyAddress item = new EumProxyAddress(eumAddress2.ToString(), true); proxyAddressCollection.Remove(eumProxyAddress); proxyAddressCollection.Add(item); } return(proxyAddressCollection); }
private static MultiValuedProperty <string> GetTargetUserExtensions(ADUser sourceUser, UMDialPlan targetDialPlan, out string targetUserSipResourceIdentifier) { EumAddress?eumAddress = null; foreach (ProxyAddress proxyAddress in sourceUser.EmailAddresses) { if (proxyAddress.IsPrimaryAddress && proxyAddress.Prefix == ProxyAddressPrefix.UM && EumAddress.IsValidEumAddress(proxyAddress.AddressString)) { eumAddress = new EumAddress?(EumAddress.Parse(proxyAddress.AddressString)); break; } } if (eumAddress == null) { throw new CouldNotGenerateExtensionException(); } MultiValuedProperty <string> multiValuedProperty = new MultiValuedProperty <string>(); UMUriType umuriType = Utils.DetermineNumberType(eumAddress.Value.Extension); if (umuriType != targetDialPlan.URIType) { throw new SourceAndTargetDialPlanURITypeMismatchException(umuriType.ToString(), targetDialPlan.URIType.ToString()); } if (umuriType == UMUriType.TelExtn) { multiValuedProperty.Add(eumAddress.Value.Extension); targetUserSipResourceIdentifier = null; } else { targetUserSipResourceIdentifier = eumAddress.Value.Extension; } foreach (ProxyAddress proxyAddress2 in sourceUser.EmailAddresses) { if (!proxyAddress2.IsPrimaryAddress && proxyAddress2.Prefix == ProxyAddressPrefix.UM && EumAddress.IsValidEumAddress(proxyAddress2.AddressString)) { EumAddress eumAddress2 = EumAddress.Parse(proxyAddress2.AddressString); if (eumAddress2.PhoneContext == eumAddress.Value.PhoneContext) { multiValuedProperty.Add(eumAddress2.Extension); } } } return(multiValuedProperty); }
private void UpdateAddress(string extension, string phoneContext) { base.Address = EumAddress.BuildAddressString(extension, phoneContext); }