SIP(Session Initiation Protocol)是由IETF定义

源代码在线查看: notes.txt

软件大小: 10015 K
上传用户: liuchuyuan
关键词: Initiation Protocol Session IETF
下载地址: 免注册下载 普通下载 VIP

相关代码

				$Id: NOTES.txt,v 1.4.2.1 2003/03/28 05:25:57 bko Exp $								Technical information and notes on the SIP stack.												Known issues								1.  Quoted strings are not translated to users that is, users are				expected to pass quoted values to the system, e.g.									 SipFrom from;									 // note -- the next line is enough quotation to form the					 // literal string \"SecondQuote\"					 					 from.setDisplayName("\\\"SecondQuote\\\"");												will produce the text								     From: \"SecondQuote\"								on encoding as the display-name.  this is in opposition to an				"idealized" system where the need to quote would be caught				automatically, and this would work:									 // note -- the next line is enough quotation to form the					 // literal string "SecondQuote" -- note there is no '\'					 // character explicitly added to the text here.					 					 from.setDisplayName("\"SecondQuote\"");								producing the text								    From: \"SecondQuote\"								as the display name, but, when the user gets the display name for				printing, or something, they get								         "SecondQuote"								without having to match the \'s.								this isn't entirely needed, but it sure might be nice.								It is, however, needed for translating quoted URLs, e.g.								    sip:4000@abc.com								being equal to								    sip:4000@%41%42%43.com																How To Add A New Header								In order to add a new header, you will have to take a few steps:								1.  You must create a new class, which derives publicly from SipHeader				(see SipHeader.hxx).								2.  You need to add a new SipHeaderType for the message.  See				SipHeader.hxx for where this should be done.  Add this in alphabetical				order, or you will have a lot of trouble later.  Make sure that				SIP_UNKNOWN_HDR is last -- sipHeaderNameCount, which sizes these				arrays, is equal to SIP_UNKNOWN_HDR + 1.								3.  You need to add an entry to the sipHeaderTable in SipHeader.cxx .				This is also in alphabetical order.  The entry you add needs to be in				the exact same place as the entry in SipHeaderType.  The				sipHeaderTable is used to populate the sipHeaderNames table, which is				used to determine which type a given sipHeader is.								4.  Fill out decodeHeader so that a new sipHeader can get constructed				based on a SipHeaderType.  If you have a new header named NewHeader,				with SipHeaderType SIP_NEW_HEADER_HDR, and class SipNewHeader, for the				text								    NewHeader: content of the new header								the function decodeHeader will be passed								    decodeHeader( SIP_NEW_HEADER_HDR, Data("content of the new header") );								and will expect back a new SipNewHeader object allocated on the heap.								5.  *IMPORTANT* You also need to fill out the sipHeaderOutputOrder				struct in SipRawHeaderContainer.cxx.  If you do not fill this out,				your header will never be printed.  This header specifies the order in				which the headers will be output when encode() is called.  The headers				which appear first in the sipHeaderOutputOrder will appear first,				while later ones will appear later.  note that sipHeaderOutputOrder				must contain all of the headers to be output -- if the header does not				appear in this struct, it will not be encoded.																======================================================================								Copyright 2000-2003, Cisco Systems, Inc.				THE INFORMATION HEREIN IS PROVIDED ON AN "AS IS" BASIS, WITHOUT ANY				WARRANTIES OR REPRESENTATIONS, EXPRESS, IMPLIED OR STATUTORY, INCLUDING				WITHOUT LIMITATION, WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY OR				FITNESS FOR A PARTICULAR PURPOSE.								$Id: NOTES.txt,v 1.4.2.1 2003/03/28 05:25:57 bko Exp $							

相关资源