Commit 2d96291a authored by baire's avatar baire
Browse files

support for CSeq

parent 0d3ec103
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -625,6 +625,7 @@ private:
		SIP_HEADER_ADD (Via,	v,	via,		VIA_E);
		SIP_HEADER_ADD (Accept,	 ,	accept,		ACCEPT_E);
		SIP_HEADER_ADD (Call-ID,i,	callId,		CALL_ID_E);
		SIP_HEADER_ADD (CSeq,	 ,	cSeq,		CSEQ_E);
		{
			mEntries.push_back(Entry("", "", MessageHeader::id_undefinedHeader_List, ""));
			Entry& e = *mEntries.rbegin();
@@ -916,4 +917,20 @@ void CallId::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
	}
}

void CSeq::PreDecodeField (int id, Buffer& buffer) throw (DecodeError)
{
	static Regex reg_method ("^" SIPREG_LWS "(" SIPREG_TOKEN ")");

	switch (id) {
	case id_seqNumber: 
		Get_seqNumber().SetFormat(Integer::AsciiDecimal);
		break;
	case id_method:
		reg_method.AssertMatch (buffer, this);
		reg_method.MoveAt (buffer, 1);
		SetHypFieldLength (id, reg_method.GetMatchedLength(1));
		break;
	}
}

}} // namespaces