Fixed parsing of trunks status messages, made it tolerable to changes in engine.status.

git-svn-id: http://voip.null.ro/svn/yate@4186 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
oana 2011-03-16 10:38:57 +00:00
parent ecd6fed754
commit 25264aa54d
1 changed files with 20 additions and 12 deletions

View File

@ -1236,6 +1236,7 @@ TokenDict TrunkInfo::s_trunkStatus[] = {
{"type", TrunkInfo::TYPE},
{"circuits", TrunkInfo::CIRCUITS},
{"calls", TrunkInfo::CALLS},
{"status", TrunkInfo::STATUS},
{0,0}
};
@ -1921,12 +1922,15 @@ NamedList* LinksetInfo::parseLinksetInfo(String& info,const String& link, NamedL
String nameParam = param->substr(0,pos);
String valParam = param->substr(pos + 1);
int type = lookup(nameParam,s_linksetStatus,0);
if (type == 0) {
TelEngine::destruct(params);
TelEngine::destruct(nl);
return 0;
}
nl->setParam(lookup(type,s_linksetInfo,""),valParam);
if (type > 0)
nl->setParam(lookup(type,s_linksetInfo,""),valParam);
}
String idQuery = lookup(ID,s_linksetInfo);
String linksetId = nl->getValue(idQuery,"");
if (linksetId.null()) {
TelEngine::destruct(params);
TelEngine::destruct(nl);
return 0;
}
TelEngine::destruct(params);
if (!nl->getParam(lookup(ALARMS_COUNT,s_linksetInfo,"")))
@ -2006,12 +2010,16 @@ NamedList* TrunkInfo::parseTrunkInfo(String& info, const String& trunk, NamedLis
String valParam = param->substr(pos + 1);
int type = lookup(nameParam,s_trunkStatus,0);
if (type == 0) {
TelEngine::destruct(params);
TelEngine::destruct(nl);
return 0;
}
nl->setParam(lookup(type,s_trunkInfo,""),valParam);
if (type > 0)
nl->setParam(lookup(type,s_trunkInfo,""),valParam);
}
// check that it's indeed a trunk
String idQuery = lookup(ID,s_trunkInfo);
String trunkId = nl->getValue(idQuery,"");
if (trunkId.null()) {
TelEngine::destruct(params);
TelEngine::destruct(nl);
return 0;
}
TelEngine::destruct(params);
if (!nl->getParam(lookup(ALARMS_COUNT,s_trunkInfo,"")))