Properly handle Link Forced Uninhibit but keep the timer running so the LIA response is matched.

git-svn-id: http://yate.null.ro/svn/yate/trunk@3586 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
paulc 2010-08-30 12:56:35 +00:00
parent 2b67172f93
commit d7cceb3366
1 changed files with 12 additions and 2 deletions

View File

@ -596,12 +596,22 @@ HandledMSU SS7Management::receivedMSU(const SS7MSU& msu, const SS7Label& label,
return transmitMSU(SS7MSU(msu.getSIO(),lbl,&lua,1),lbl,sls) >= 0;
}
}
else if (msg->type() == SS7MsgSNM::LFU) {
Debug(this,DebugAll,"%s (code len=%u) [%p]",msg->name(),len,this);
SS7Label lbl(label,label.sls(),0);
static unsigned char data = SS7MsgSNM::LUN;
int global = 0;
// if link is locally inhibited execute the complete procedure
if (router && router->inhibited(lbl,SS7Layer2::Local))
global = 2400;
return postpone(new SS7MSU(msu.getSIO(),lbl,&data,1),lbl,sls,1200,global);
}
else if (msg->type() == SS7MsgSNM::LRT) {
Debug(this,DebugAll,"%s (code len=%u) [%p]",msg->name(),len,this);
SS7Label lbl(label,label.sls(),0);
if (router && router->inhibited(lbl,SS7Layer2::Local))
return true;
unsigned char data = SS7MsgSNM::LUN;
static unsigned char data = SS7MsgSNM::LUN;
return postpone(new SS7MSU(msu.getSIO(),lbl,&data,1),lbl,sls,1200,2400);
}
else if (msg->type() == SS7MsgSNM::LLT) {
@ -609,7 +619,7 @@ HandledMSU SS7Management::receivedMSU(const SS7MSU& msu, const SS7Label& label,
SS7Label lbl(label,label.sls(),0);
if (router && router->inhibited(lbl,SS7Layer2::Remote))
return true;
unsigned char data = SS7MsgSNM::LFU;
static unsigned char data = SS7MsgSNM::LFU;
return postpone(new SS7MSU(msu.getSIO(),lbl,&data,1),lbl,sls,1200,2400);
}
else if (msg->type() == SS7MsgSNM::UPU) {