public override void LoadParameterData(byte[] parameterData) { this.Flags = (PhoneFlags)parameterData[0]; this.NumberingFlags = (NAIFlags)parameterData[1]; this.Number = IsupUtility.UnReverseNumber(parameterData, 2, this.Flags.HasFlag(PhoneFlags.IsOdd)); }
public static IsupPhoneNumberParameter OriginalCalledNumber( Contact callerContact, PhoneFlags flags, NAIFlags naiFlags = NAIFlags.PresentationRestricted | NAIFlags.Isdn) { return(Create(IsupParameterType.OriginalCalledNumber, callerContact, flags, naiFlags)); }
private static IsupPhoneNumberParameter Create( IsupParameterType parameterType, Contact callerContact, PhoneFlags flags, NAIFlags naiFlags = NAIFlags.PresentationRestricted | NAIFlags.Isdn) { return(new IsupPhoneNumberParameter(parameterType) { Number = callerContact.Address.Split('@') .FirstOrDefault(), Flags = flags, NumberingFlags = naiFlags }); }
public override byte[] GetParameterData() { if (string.IsNullOrWhiteSpace(this.Number)) { throw new InvalidOperationException("number must be valid for use with IsupPhoneNumberParameter"); } var hexData = IsupUtility.GetReversedNumber(this.Number).ToArray(); var isEven = (this.Number.Length % 2) == 0; this.Flags = isEven ? PhoneFlags.IsEven : PhoneFlags.IsOdd; this.Flags |= PhoneFlags.NAINationalNumber; this.NumberingFlags |= NAIFlags.Isdn; return(new[] { (byte)this.Flags, (byte)this.NumberingFlags }.Concat(hexData).ToArray()); }
public void TestNumberInfo(string number, string expectedValue, PhoneFlags flags, NAIFlags naiFlags) { var cp = new CalledNumber { Number = number }; cp.Flags = flags; cp.NumberingFlags = naiFlags; Assert.AreEqual(expectedValue.ToUpperInvariant(), cp.ToHex()); }
public static IsupPhoneNumberParameter RedirectingNumber(Contact contact, PhoneFlags flags, NAIFlags naiFlags = NAIFlags.PresentationRestricted | NAIFlags.Isdn) { return(Create(IsupParameterType.RedirectingNumber, contact, flags, naiFlags)); }