如何解码H323数据包?

时间:2015-01-20 11:37:44

标签: linux protocols h.323 opal

我正在寻找能够解码H323数据包的第三方库。我想我应该可以使用OpenH323。但由于它是一个大型库,我不知道应该使用哪个类和函数来解码数据包。任何意见,将不胜感激!

1 个答案:

答案 0 :(得分:2)

OpenH323多年以来一直没有得到维护。您应该使用后继H323Plus代替。

逻辑是你将接收到的缓冲区解码到一个H323Plus类中。

H225_RasMessage ras;
ras.Decode(buffer);

从那里开始,你必须检查消息中的标签,并使用对子类的引用来访问特定的字段。

if (ras.GetTag() == H225_RasMessage::e_gatekeeperConfirm) {
    H225_GatekeeperConfirm & gcf = ras;
    ...
} else ...

对于Q.931信令消息,您必须先剥离TPKT包装。

如果您想避免手动完成所有这些操作,请使用包含的框架,只需将H323EndPoint子类化,就像H323Plus示例应用程序一样。