Exemple #1
0
        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);
        }
Exemple #2
0
        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);
 }