📄 grammar
字号:
/* SIP grammar from RFC3261 * * alphanum = ALPHA / DIGIT * * reserved = ";" / "/" / "?" / ":" / "@" / "&" / "=" / "+" * / "$" / "," * unreserved = alphanum / mark * mark = "-" / "_" / "." / "!" / "~" / "*" / "'" * / "(" / ")" * escaped = "%" HEXDIG HEXDIG * * LWS = [*WSP CRLF] 1*WSP ; linear whitespace * SWS = [LWS] ; sep whitespace * * HCOLON = *( SP / HTAB ) ":" SWS * * TEXT-UTF8-TRIM = 1*TEXT-UTF8char *(*LWS TEXT-UTF8char) * TEXT-UTF8char = %x21-7E / UTF8-NONASCII * UTF8-NONASCII = %xC0-DF 1UTF8-CONT * / %xE0-EF 2UTF8-CONT * / %xF0-F7 3UTF8-CONT * / %xF8-Fb 4UTF8-CONT * / %xFC-FD 5UTF8-CONT * UTF8-CONT = %x80-BF * * LHEX = DIGIT / %x61-66 ;lowercase a-f * * token = 1*(alphanum / "-" / "." / "!" / "%" / "*" * / "_" / "+" / "`" / "'" / "~" ) * separators = "(" / ")" / "<" / ">" / "@" / * "," / ";" / ":" / "\" / DQUOTE / * "/" / "[" / "]" / "?" / "=" / * "{" / "}" / SP / HTAB * word = 1*(alphanum / "-" / "." / "!" / "%" / "*" / * "_" / "+" / "`" / "'" / "~" / * "(" / ")" / "<" / ">" / * ":" / "\" / DQUOTE / * "/" / "[" / "]" / "?" / * "{" / "}" ) * * STAR = SWS "*" SWS ; asterisk * SLASH = SWS "/" SWS ; slash * EQUAL = SWS "=" SWS ; equal * LPAREN = SWS "(" SWS ; left parenthesis * RPAREN = SWS ")" SWS ; right parenthesis * RAQUOT = ">" SWS ; right angle quote * LAQUOT = SWS "<"; left angle quote * COMMA = SWS "," SWS ; comma * SEMI = SWS ";" SWS ; semicolon * COLON = SWS ":" SWS ; colon * LDQUOT = SWS DQUOTE; open double quotation mark * RDQUOT = DQUOTE SWS ; close double quotation mark * * comment = LPAREN *(ctext / quoted-pair / comment) RPAREN * ctext = %x21-27 / %x2A-5B / %x5D-7E / UTF8-NONASCII * / LWS * * quoted-string = SWS DQUOTE *(qdtext / quoted-pair ) DQUOTE * qdtext = LWS / %x21 / %x23-5B / %x5D-7E * / UTF8-NONASCII * * quoted-pair = "\" (%x00-09 / %x0B-0C * / %x0E-7F) * * SIP-URI = "sip:" [ userinfo ] hostport * uri-parameters [ headers ] * SIPS-URI = "sips:" [ userinfo ] hostport * uri-parameters [ headers ] * userinfo = ( user / telephone-subscriber ) [ ":" password ] "@" * user = 1*( unreserved / escaped / user-unreserved ) * user-unreserved = "&" / "=" / "+" / "$" / "," / ";" / "?" / "/" * password = *( unreserved / escaped / * "&" / "=" / "+" / "$" / "," ) * hostport = host [ ":" port ] * host = hostname / IPv4address / IPv6reference * hostname = *( domainlabel "." ) toplabel [ "." ] * domainlabel = alphanum * / alphanum *( alphanum / "-" ) alphanum * toplabel = ALPHA / ALPHA *( alphanum / "-" ) alphanum * IPv4address = 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT * IPv6reference = "[" IPv6address "]" * IPv6address = hexpart [ ":" IPv4address ] * hexpart = hexseq / hexseq "::" [ hexseq ] / "::" [ hexseq ] * hexseq = hex4 *( ":" hex4) * hex4 = 1*4HEXDIG * port = 1*DIGIT * * uri-parameters = *( ";" uri-parameter) * uri-parameter = transport-param / user-param / method-param * / ttl-param / maddr-param / lr-param / other-param * transport-param = "transport=" * ( "udp" / "tcp" / "sctp" / "tls" * / other-transport) * other-transport = token * user-param = "user=" ( "phone" / "ip" / other-user) * other-user = token * method-param = "method=" Method * ttl-param = "ttl=" ttl * maddr-param = "maddr=" host * lr-param = "lr" * other-param = pname [ "=" pvalue ] * pname = 1*paramchar * pvalue = 1*paramchar * paramchar = param-unreserved / unreserved / escaped * param-unreserved = "[" / "]" / "/" / ":" / "&" / "+" / "$" * * headers = "?" header *( "&" header ) * header = hname "=" hvalue * hname = 1*( hnv-unreserved / unreserved / escaped ) * hvalue = *( hnv-unreserved / unreserved / escaped ) * hnv-unreserved = "[" / "]" / "/" / "?" / ":" / "+" / "$" * * SIP-message = Request / Response * Request = Request-Line * *( message-header ) * CRLF * [ message-body ] * Request-Line = Method SP Request-URI SP SIP-Version CRLF * Request-URI = SIP-URI / SIPS-URI / absoluteURI * absoluteURI = scheme ":" ( hier-part / opaque-part ) * hier-part = ( net-path / abs-path ) [ "?" query ] * net-path = "//" authority [ abs-path ] * abs-path = "/" path-segments * opaque-part = uric-no-slash *uric * uric = reserved / unreserved / escaped * uric-no-slash = unreserved / escaped / ";" / "?" / ":" / "@" * / "&" / "=" / "+" / "$" / "," * path-segments = segment *( "/" segment ) * segment = *pchar *( ";" param ) * param = *pchar * pchar = unreserved / escaped / * ":" / "@" / "&" / "=" / "+" / "$" / "," * scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ) * authority = srvr / reg-name * srvr = [ [ userinfo "@" ] hostport ] * reg-name = 1*( unreserved / escaped / "$" / "," * / ";" / ":" / "@" / "&" / "=" / "+" ) * query = *uric * SIP-Version = "SIP" "/" 1*DIGIT "." 1*DIGIT * * message-header = (Accept * / Accept-Encoding * / Accept-Language * / Alert-Info * / Allow * / Authentication-Info * / Authorization * / Call-ID * / Call-Info * / Contact * / Content-Disposition * / Content-Encoding * / Content-Language * / Content-Length * / Content-Type * / CSeq * / Date * / Error-Info * / Expires * / From * / In-Reply-To * / Max-Forwards * / MIME-Version * / Min-Expires * / Organization * / Priority * / Proxy-Authenticate * / Proxy-Authorization * / Proxy-Require * / Record-Route * / Reply-To * / Require * / Retry-After * / Route * / Server * / Subject * / Supported * / Timestamp * / To * / Unsupported * / User-Agent * / Via * / Warning * / WWW-Authenticate * / extension-header) CRLF * * INVITEm = %x49.4E.56.49.54.45 ; INVITE in caps * ACKm = %x41.43.4B ; ACK in caps * OPTIONSm = %x4F.50.54.49.4F.4E.53 ; OPTIONS in caps * BYEm = %x42.59.45 ; BYE in caps * CANCELm = %x43.41.4E.43.45.4C ; CANCEL in caps * REGISTERm = %x52.45.47.49.53.54.45.52 ; REGISTER in caps * Method = INVITEm / ACKm / OPTIONSm / BYEm * / CANCELm / REGISTERm * / extension-method * extension-method = token * Response = Status-Line * *( message-header ) * CRLF * [ message-body ] * * Status-Line = SIP-Version SP Status-Code SP Reason-Phrase CRLF * Status-Code = Informational * / Redirection * / Success * / Client-Error * / Server-Error * / Global-Failure * / extension-code * extension-code = 3DIGIT * Reason-Phrase = *(reserved / unreserved / escaped * / UTF8-NONASCII / UTF8-CONT / SP / HTAB) * * Informational = "100" ; Trying * / "180" ; Ringing * / "181" ; Call Is Being Forwarded * / "182" ; Queued * / "183" ; Session Progress * * Success = "200" ; OK * * Redirection = "300" ; Multiple Choices * / "301" ; Moved Permanently * / "302" ; Moved Temporarily * / "305" ; Use Proxy * / "380" ; Alternative Service * * Client-Error = "400" ; Bad Request * / "401" ; Unauthorized * / "402" ; Payment Required * / "403" ; Forbidden * / "404" ; Not Found * / "405" ; Method Not Allowed * / "406" ; Not Acceptable * / "407" ; Proxy Authentication Required * / "408" ; Request Timeout * / "410" ; Gone * / "413" ; Request Entity Too Large * / "414" ; Request-URI Too Large * / "415" ; Unsupported Media Type * / "416" ; Unsupported URI Scheme * / "420" ; Bad Extension * / "421" ; Extension Required * / "423" ; Interval Too Brief * / "480" ; Temporarily not available * / "481" ; Call Leg/Transaction Does Not Exist * / "482" ; Loop Detected * / "483" ; Too Many Hops * / "484" ; Address Incomplete * / "485" ; Ambiguous * / "486" ; Busy Here * / "487" ; Request Terminated * / "488" ; Not Acceptable Here * / "491" ; Request Pending * / "493" ; Undecipherable * * Server-Error = "500" ; Internal Server Error * / "501" ; Not Implemented * / "502" ; Bad Gateway * / "503" ; Service Unavailable * / "504" ; Server Time-out * / "505" ; SIP Version not supported * / "513" ; Message Too Large * * Global-Failure = "600" ; Busy Everywhere * / "603" ; Decline * / "604" ; Does not exist anywhere * / "606" ; Not Acceptable *
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -