public void TestSampledCallProgressTest() { const string hexStream = "2c02012c01fa00"; var callProgress = new IsupCallProgress(); callProgress.EventInformation.Indicator = EventInformation.EventIndicator.Progress; callProgress.AddOptionalParameter( new OptionalIsupParameter(IsupParameterType.GenericNotificationIndicator, 1, new[] { (byte)0xfa })); var txt = callProgress.GetByteArray(); Assert.AreEqual(hexStream, txt.ToHex().ToLower()); var cp = IsupBody.Load(new ByteStream(txt, 0)); Assert.AreEqual(txt.ToHex().ToLower(), cp.GetByteArray().ToHex().ToLower()); }
public static IEnumerable <Body> GetBodies(byte[] data, string boundaryId) { var bs = new ByteStream(data, 0); var headers = new Dictionary <string, string>(StringComparer.InvariantCultureIgnoreCase); foreach (var l in bs.Lines()) { if (l == "--" + boundaryId) { headers.Clear(); continue; } if (l == string.Empty) { if (!headers.ContainsKey("Content-Type")) { // empty line, no headers, I think there's no more data yield break; } switch (headers["Content-Type"].Split(';').First().ToLowerInvariant()) { case "application/sdp": yield return(SdpBodyParser.GetBody(bs, headers["Content-Type"])); break; case "application/isup": yield return(IsupBody.Load(bs)); break; } headers.Clear(); continue; } var kvp = l.Split(':'); headers[kvp.First().Trim()] = string.Concat(kvp.Skip(1).ToArray()).Trim(); } }
public static IsupBody GetBody(ByteStream bs) { var isupBody = IsupBody.Load(bs); return(isupBody); }