Fixed bug in initial sequence numbers.

git-svn-id: http://voip.null.ro/svn/yate@873 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
paulc 2006-06-18 18:07:35 +00:00
parent 93c4fedab6
commit f5c6363250
2 changed files with 9 additions and 5 deletions

View File

@ -591,7 +591,7 @@ IAXFullFrame::IAXFullFrame(Type type, u_int32_t subClass, u_int16_t sCallNo, u_i
: IAXFrame(type,sCallNo,tStamp,retrans,buf,len),
m_dCallNo(dCallNo), m_oSeqNo(oSeqNo), m_iSeqNo(iSeqNo)
{
XDebug(DebugAll,"IAXFullFrame::IAXFullFrame(%u,%u) [%p]",
DDebug(DebugAll,"IAXFullFrame::IAXFullFrame(%u,%u) [%p]",
type,subClass,this);
m_subclass = subClass;
}
@ -603,7 +603,7 @@ IAXFullFrame::IAXFullFrame(Type type, u_int32_t subClass, u_int16_t sCallNo, u_i
: IAXFrame(type,sCallNo,tStamp,false,0,0),
m_dCallNo(dCallNo), m_oSeqNo(oSeqNo), m_iSeqNo(iSeqNo)
{
XDebug(DebugAll,"IAXFullFrame::IAXFullFrame(%u,%u) [%p]",
DDebug(DebugAll,"IAXFullFrame::IAXFullFrame(%u,%u) [%p]",
type,subClass,this);
unsigned char header[12];
@ -638,6 +638,8 @@ IAXFullFrame::IAXFullFrame(Type type, u_int32_t subClass, u_int16_t sCallNo, u_i
IAXFullFrame::~IAXFullFrame()
{
DDebug(DebugAll,"IAXFullFrame::~IAXFullFrame(%u,%u) [%p]",
m_type,m_subclass,this);
}
const IAXFullFrame* IAXFullFrame::fullFrame() const

View File

@ -44,7 +44,7 @@ IAXTransaction::IAXTransaction(IAXEngine* engine, IAXFullFrame* frame,
m_lCallNo(lcallno),
m_rCallNo(frame->sourceCallNo()),
m_oSeqNo(0),
m_iSeqNo(1),
m_iSeqNo(0),
m_engine(engine),
m_private(data),
m_lastMiniFrameOut(0xFFFF),
@ -89,7 +89,7 @@ IAXTransaction::IAXTransaction(IAXEngine* engine, Type type, u_int16_t lcallno,
m_lCallNo(lcallno),
m_rCallNo(0),
m_oSeqNo(0),
m_iSeqNo(1),
m_iSeqNo(0),
m_engine(engine),
m_private(data),
m_lastMiniFrameOut(0xFFFF),
@ -531,11 +531,13 @@ bool IAXTransaction::isFrameAcceptable(const IAXFullFrame* frame)
return true;
if (delta > 0) {
// We missed some frames before this one: Send VNAK
Debug(m_engine,DebugAll,"IAXTransaction(%u,%u) - received frame out of order!!! Send VNAK",
Debug(m_engine,DebugInfo,"IAXTransaction(%u,%u) - received frame out of order!!! Send VNAK",
localCallNo(),remoteCallNo());
postFrame(IAXFrame::IAX,IAXControl::VNAK,0,0,0,true);
m_inOutOfOrderFrames++;
}
DDebug(m_engine,DebugInfo,"IAXTransaction(%u,%u) - received late frame with oseq=%u expecting %u [%p]",
localCallNo(),remoteCallNo(),frame->oSeqNo(),m_iSeqNo,this);
return false;
}