Здравствуй, All!
Пытаюсь распарсить MEGACO с помощью OpenH323. Например, такое сообщение:
!/1 <company1.com>:2944
T=1{C=-{SC=ROOT{SV{MT=RS,RE="901 Cold Boot",V=1,PF=ResGW/1,20070130T07185669}}}}
Пробовал так:
H248_Message msg;
data = "!/1 <company1.com>:2944\nT=1{C=-{SC=ROOT{SV{MT=RS,RE=\"901 Cold Boot\",V=1,PF=ResGW/1,20070130T07185669}}}}";
len = strlen(data);
PPER_Stream bytes(data, len);
BOOL b = msg.Decode(bytes);
if (b)
{
msg.PrintOn(std::cout);
}
Но, похоже, что H248_Message думает, что это бинарный протокол и считает первый символ (data[0]) — восклицательный знак — версией протокола. По-этому "version = 33" (см. ниже)
"version = 33
mId = domainName {
name = " <company1.com>:2944\nT=1{C=-{SC=ROOT{SV{MT=RS,RE="
portNumber = 8761
}
messageBody = messageError {
errorCode = 12576
}"
Как распарсить сообщения MEGACO такого вида?
Спасибо.
Здравствуйте, kas.ru, Вы писали:
KR>Пытаюсь распарсить MEGACO с помощью OpenH323. Например, такое сообщение:
KR>Пробовал так:
KR>KR>H248_Message msg;
...
KR>PPER_Stream bytes(data, len);
KR>BOOL b = msg.Decode(bytes);
...
KR>
Скорей всего проблема в использовании PPER_Stream, PER это бинарный стандарт кодирования ASN.1.
Попробуйте найти PAVN_Stream