📄 using.txt
字号:
RFC name: TEXT-UTF8-TRIM Description: Unstructured human readable text. Example: Organization: Boxes by Bob Parts: RFC Name accessor reSIP type settable ---------------------------------------------------------- value() Data yes RFC Headers: Content-Transfer-Encoding Organization Server Subject User-Agent Timestamp extension-header (*)Token ===== RFC name: token Description: A word. Example: Accept-Encoding: gzip Parts: RFC Name accessor reSIP type settable ---------------------------------------------------------- value() Data yes RFC Headers: Accept-Encoding (*) Accept-Language (*) Allow (*) Allow-Events (*) Content-Disposition Content-Encoding Content-Language (*) Event Mime-Version Priority Proxy-Require (*) Require (*) Security-Client (*) Security-Server (*) Security-Verify (*) Subscription-State (*) Supported (*) Unsupported (*)Via ============ RFC name: via-parm Description: Via entry. Example: Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds Parts: RFC Name accessor reSIP type settable ------------------------------------------------------------ protocol-name protocolName() Data yes protocol-version protocolVersion() Data yes transport transport() Data yes host sentHost() Data yes port sentPort() int yes RFC RFC Headers: Via (*)WarningCategory ============ RFC name: warning-value Description: Example: Parts: RFC Name accessor reSIP type settable -------------------------------------------------------- warn-code code() int yes warn-agent hostname() Data yes warn-text text() Data yes RFC Headers: Warning (*)According to the grammar, each header has a set of acceptable parameters. Someheaders accept no parameters. reSIP makes a simplifying assumption; all headerscan have all parameters. While it is the goal of reSIP that every legal SIPmessage be parseable, reSIP does not strictly enforce production of legalSIP. In practice, correct usage will result in legal SIP, but it is not verydifficult to use reSIP to produce a problematic message. Take home lesson -- thereSIP programmer must take responsibilty when adding parameters to a header.A corollary to this simplifying assumption is that the form of a parameter isindependent of the header it appears in. A ttl parameter must always be followedby an integer even when used in a header that does not specify the syntax fora ttl parameter. (!dlb! potential compatibility issue)Parameters, like headers, corresponds to a small set of classes that manageparsing, accesing, and serializing to text.(!dlb!: QuotedDataParameter should be super of DataParameter -- currentlyallow setting quoted on QuotedDataParameter)Table of Parameters===================RFC name reSIP access token reSIP type ----------------------------------------------------------- access-type p_accessType DataParameter algorithm p_algorithm DataParameter boundary p_boundary DataParameter branch p_branch BranchParameter charset p_charset DataParameter cnonce p_cnonce QuotedDataParameter comp p_comp DataParameter d-alg p_dAlg DataParameter d-qop p_dQop DataParameter d-ver p_dVer QuotedDataParameter directory p_directory DataParameter domain p_domain QuotedDataParameter duration p_duration IntegerParameter expiration p_expiration IntegerParameter expires p_expires IntegerParameter filename p_filename DataParameter from-tag p_fromTag DataParameter handling p_handling DataParameter id p_id DataParameter lr p_lr ExistsParameter maddr p_maddr DataParameter method p_method DataParameter micalg p_micalg DataParameter mobility p_mobility DataParameter mode p_mode DataParameter name p_name DataParameter nc p_nc DataParameter nonce p_nonce QuotedDataParameter opaque p_opaque QuotedDataParameter permission p_permission DataParameter protocol p_protocol DataParameter // should be QuotedDataParameter? purpose p_purpose DataParameter q p_q FloatParameter realm p_realm QuotedDataParameter reason p_reason DataParameter received p_received DataParameter response p_response QuotedDataParameter retry-after p_retryAfter IntegerParameter rport p_rport RportParameter server p_server DataParameter site p_site DataParameter size p_size DataParameter smime-type p_smimeType DataParameter stale p_stale DataParameter tag p_tag DataParameter to-tag p_toTag DataParameter transport p_transport DataParameter ttl p_ttl IntegerParameter uri p_uri QuotedDataParameter user p_user DataParameter username p_username DataParameter // should be QuotedDataParameter?Table of reSIP Parameter Types==============================BranchParameter=============== RFC name: Description: May have RFC 3261 marker, may have reSIP specific data, may have client data. Example: Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds Parts: accessor reSIP type settable ---------------------------------------------------- hasMagicCookie() bool no getTransactionId() Data no incrementTransportSequence void no reset(const Data&) void yes clientData() Data yes RCF Parameters: branchDataParameter============= RFC name: token Description: Quoted or unquoted. Unquoted must be single word. Example: Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds Parts: accessor reSIP type settable ------------------------------------------------ value() Data yes isQuoted() bool no setQuoted(bool) void yes RFC parameters: ?access-type algorithm boundary charset ?comp d-alg d-qop directory filename from-tag handling ?id maddr ?method micalg ?mobility ?mode name nc ?permission purpose ?reason received ?server ?site ?size smime-type stale tag to-tag transport userExistsParameter=============== RFC name: Description: Has no value; is not followed by "=". Example: Record-Route: <sip:p1.example.com;lr> Parts: accessor reSIP type settable ------------------------------------------------ value() bool yes RFC parameters: lrFloatParameter============== RFC name: qvalue Description: 0-1 inclusive, up to three digits after decimal point. Example: Accept-Language: da, en-gb;q=0.8, en;q=0.7 Parts: accessor reSIP type settable ------------------------------------------------ value() float yes RFC parameters: qIntegerParameter================ RFC name: Description: Integer Example: sip:alice@atlanta.com;maddr=239.255.255.1;ttl=15 Parts: accessor reSIP type settable ------------------------------------------------ value() int yes RFC parameters: duration expiration expires retry-after ttlQuotedDataParameter=================== RFC name: quoted-string Description: Quoted text. Example: Authorization: Digest username="bob", realm="biloxi.com", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", uri="sip:bob@biloxi.com", qop=auth, nc=00000001, cnonce="0a4f113b", response="6629fae49393a05397450978507c4ef1", opaque="5ccc069c403ebaf9f0171e9517f40e41" Parts: accessor reSIP type settable ------------------------------------------------ value() Data yes RFC Parameters: cnonce d-ver domain nonce opaque realm response uriRportParameter============== RFC name: quoted-string Description: May have a value or not. Example: Via: SIP/2.0/UDP whistler.gloo.net:6064;rport=6064;received=192.168.2.220;branch=z9hG4bK-kcD23-4-1 Parts: accessor reSIP type settable -------------------------------------------- port() int yes hasValue() bool no RFC Parameters: rportMethodTypes==========ACKBYECANCELINFOINVITEMESSAGENOTIFYOPTIONSPRACKPUBLISHREFERREGISTERSUBSCRIBEUPDATE ?? not in build?Uri=== RFC name: addr-spec Description: URI Example: sip:alice:secretword@atlanta.com;transport=tcp Parts: RFC Name accessor reSIP type settable ------------------------------------------------------------ header embedded() SipMessage yes userinfo+hostport getAor() Data no userinfo+host getAorNoPort() Data no hasEmbedded() bool no host host() Data yes host opaque() Data yes password password() Data yes port port() int yes userinfo user() Data yes // note: does not include user parameters userParameters() Data yes scheme() Data yes Contents======== RFC name: message-body Description: Base class for all content types. Each derived content type defines its own parse, accessors and stream rendering. Example: --boundary42 Content-Type: message/sip INVITE sip:bob@biloxi.com SIP/2.0 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 To: Bob <bob@biloxi.com> From: Alice <alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Max-Forwards: 70 Date: Thu, 21 Feb 2002 13:02:03 GMT Contact: <sip:alice@pc33.atlanta.com> Content-Type: application/sdp Content-Length: 147 v=0 o=UserA 2890844526 2890844526 IN IP4 here.com s=Session SDP c=IN IP4 pc33.atlanta.com t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 --boundary42 Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=smime.p7s; handling=required ghyHhHUujhJhjH77n8HHGTrfvbnj756tbB9HG4VQpfyF467GhIGfHfYT6 4VQpfyF467GhIGfHfYT6jH77n8HHGghyHhHUujhJh756tbB9HGTrfvbnj n8HHGTrfvhJhjH776tbB9HG4VQbnj7567GhIGfHfYT6ghyHhHUujpfyF4 7GhIGfHfYT64VQbnj756 --boundary42- Parts: accessor reSIP type settable notes ---------------------------------------------------------- exists bool no remove void no header <various> yes // shared header types H_ContentType::Type& header(const H_ContentType& headerType) const; H_ContentDisposition::Type& header(const H_ContentDisposition& headerType) const; H_ContentTransferEncoding::Type& header(const H_ContentTransferEncoding& headerType) const; H_ContentLanguages::Type& header(const H_ContentLanguages& headerType) const; // MIME specific header types H_ContentID::Type& header(const H_ContentID& headerType) const; H_ContentDescription::Type& header(const H_ContentDescription& headerType) const; int& verion() {return mVersion;} int& minorVersion() {return mMinorVersion;} MultipartRelatedContentsMultipartMixedContentsMultipartSignedSdpContentsPkcs7ContentsOctetContentsSipMessage non-header parts examples--Adding a new content type at application compile time.--Extension headers.SIP is an open specification. Elements may add headers that are not generally known. Multiple. Must appear on separate lines. May have parameters. However, not allstacks will consider semi-colons in extension headers significant, so couldcause interop problems.--Extension parameters. May or may not have a value. Are permitted in any header.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -