Fixed message compatibility information interpretation.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3558 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
parent
cc9bdc0d9d
commit
1ca7a976bd
|
@ -2025,8 +2025,22 @@ static void getMsgCompat(SS7MsgISUP* msg, bool& release, bool& cnf)
|
||||||
String* msgCompat = msg->params().getParam("MessageCompatInformation");
|
String* msgCompat = msg->params().getParam("MessageCompatInformation");
|
||||||
if (msgCompat) {
|
if (msgCompat) {
|
||||||
ObjList* l = msgCompat->split(',',false);
|
ObjList* l = msgCompat->split(',',false);
|
||||||
release = l->find("release") || l->find("nopass-release");
|
// Use a while() to make sure the list is destroyed
|
||||||
cnf = !release && l->find("cnf");
|
// Assume we are not a transit network
|
||||||
|
while (l->find("end-node")) {
|
||||||
|
release = (0 != l->find("release"));
|
||||||
|
if (release)
|
||||||
|
break;
|
||||||
|
// Discard the message (no pass on). Check if CNF should be sent
|
||||||
|
if (l->find("discard")) {
|
||||||
|
cnf = (0 != l->find("cnf"));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// Pass on set: we didn't passed on the message. Check REL/CNF
|
||||||
|
release = (0 != l->find("nopass-release"));
|
||||||
|
cnf = !release && l->find("cnf");
|
||||||
|
break;
|
||||||
|
}
|
||||||
TelEngine::destruct(l);
|
TelEngine::destruct(l);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue