public void Execute(StringTokenizer reader, SdpMessage message)
 {
     var time = new SdpTimings();
     time.AddFieldValue(GetFieldValuePair(reader));
     while (reader.Length > 0)
     {
         var type = reader.ReadPeekChar();
         if (type == 't') time.AddFieldValue(GetFieldValuePair(reader));
         else if (type == 'z') time.AddFieldValue(GetFieldValuePair(reader));
         else break;
     }
     message.Times.Add(time);
 }
        public SdpMessage Parse(string message)
        {
            var sdpMessage = new SdpMessage();
            var stringTokenizer = new StringTokenizer(message);

            while(stringTokenizer.Length > 0)
            {
                ISdpParseCommand command;
                if (commands.TryGetValue(stringTokenizer.ReadPeekChar(), out command))
                    command.Execute(stringTokenizer, sdpMessage);
            }

            return sdpMessage;
        }
 public void Execute(StringTokenizer reader, SdpMessage message)
 {
     var media = new SdpMediaDescriptions();
     media.AddFieldValue(GetFieldValuePair(reader));
     while (reader.Length > 0)
     {
         var type = reader.ReadPeekChar();
         if (type == 'i') media.AddFieldValue(GetFieldValuePair(reader));
         else if (type == 'c') media.AddFieldValue(GetFieldValuePair(reader));
         else if (type == 'b') media.AddFieldValue(GetFieldValuePair(reader));
         else if (type == 'k') media.AddFieldValue(GetFieldValuePair(reader));
         else if (type == 'a') media.AddFieldValue(GetFieldValuePair(reader));
         else break;
     }
     message.Medias.Add(media);
 }
 public void Execute(StringTokenizer reader, SdpMessage message)
 {
     message.Uri = new SdpFieldUri(GetFieldValue(reader));
 }
 public void Execute(StringTokenizer reader, SdpMessage message)
 {
     message.SessionInformation = new SdpFieldSessionInformation(GetFieldValue(reader));
 }
 public void Execute(StringTokenizer reader, SdpMessage message)
 {
     message.Attributes.Add(new SdpFieldAttribute(GetFieldValue(reader)));
 }
 public void Execute(StringTokenizer reader, SdpMessage message)
 {
     message.Phone = new SdpFieldPhoneNumber(GetFieldValue(reader));
 }
 public void Execute(StringTokenizer reader, SdpMessage message)
 {
     message.Origin = new SdpFieldOrigin(GetFieldValue(reader));
 }
 public void Execute(StringTokenizer reader, SdpMessage message)
 {
     message.Email = new SdpFieldEmailAddress(GetFieldValue(reader));
 }
 public void Execute(StringTokenizer reader, SdpMessage message)
 {
     message.EncryptionKey = new SdpFieldEncryptionKey(GetFieldValue(reader));
 }