⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 一个SIP协议栈
💻
📖 第 1 页 / 共 2 页
字号:
          "c=IN IP4 kton.bell-tel.com\r\n"          "m=audio 3456 RTP/AVP 0 3 4 5\r\n",  0);    //Here we have a single content.    p.contentType(1) << "application/GR-317"    p.setContent("64 08 01 48 75 09 98", 1);    //Here we have a multiple content.       4. BuildingBuilding messages is made with call the method encode() of the MsgParserclass:       std::mstring encode(bool checkSyntaxFlag=true);This method returns a string with the message ready to send. Beforebuilding, one should prepare all necessary headers and the start line. Ifthe start line is empty or parser have not any headers, encode() returns anempty string.  encode() can generate the exception MpSyntaxError if thereis incorrect information in headers and checkSyntaxFlag=true. Otherwise itwill make the message "as is".  This exception does not require sending a"Bad request" message, because it means that some high-level algorithms isworking incorrectly and as a result some field has an incorrect value. Forexample ttl=300 while only 0...255 values are allowed.  The general syntaxis checked by parser, but more detailed checking of syntax and semanticscan be done by next logical levels of SIP-stack.5. Items and HeadersThe following text describes the access methods to the headers and items.    /**Host and Port Item "host:port" Does Not Contain any Nested Items     * hostPort.val(mpnHost)     * hostPort.val(mpnPort)     */   class MpHostPort : public Mp0ParsItem    /**User info Item "name:passd;isub=;postd=" Does Not Contain any Nested Items     * userIinfo.val(mpnUser)     * userIinfo.val(mpnPasswd)     * userIinfo.val(mpnISub)     * userIinfo.val(mpnPostD)     */    class MpUserInfo : public Mp0ParsItem    /**Parameters Container Abstract class      * parm.val(...)     */    class MpParm : public Mp0ParsItem    /**URL Parameters class ";ttl=;transport=;etc=..."      * urlParm.val(...)     */    class MpUrlParm : public MpParm    /**URL Headers class "?parm1=val1&parm2=val2..."     * urlHhdr.val(...)     */    class MpUrlHdr : public MpParm    /**URL Item, Contains MpUserInfo, MpHostPort, MpParm, MpHdr items     * url[mpiHostPort].val(mpnHost)     * url[mpiHostPort].val(mpnPort)     * url[mpiUserInfo].val(mpnUser)     * url[mpiUserInfo].val(mpnPasswd)     * url[mpiUserInfo].val(mpnISub)     * url[mpiUserInfo].val(mpnPostD)     * url[mpiUrlParm].val(...)     * url[mpiUrlHdr].val(...)     */    class MpUrl : public Mp0ParsItem    /**Message Start Line. "METHOD MpUrl SIP/2.0" or "SIP/2.0 NNN Message"     * startLine.val(mpnProto)     * startLine.val(mpnVersion)     * startLine.val(mpnMsgType)     * startLine.val(mpnMsgReasonPhrase)     * startLine[mpiUrl][mpiHostPort].val(mpnHost)     * startLine[mpiUrl][mpiHostPort].val(mpnPort)     * startLine[mpiUrl][mpiUserInfo].val(mpnUser)     * startLine[mpiUrl][mpiUserInfo].val(mpnPasswd)     * startLine[mpiUrl][mpiUserInfo].val(mpnISub)     * startLine[mpiUrl][mpiUserInfo].val(mpnPostD)     * startLine[mpiUrl][mpiUserInfo].val(mpnISub)     * startLine[mpiUrl][mpiUrlParm].val(...)     * startLine[mpiUrl][mpiUrlHdr].val(...)     */    class MpStartLine : public MpHeader    /**Value and parameters common abstract item     * valParm.val(mpnValue)     * valParm.val(mpnSubVal)     * valParm[mpiParm].val(...)     */    class MpValParm : public MpHeader    /**Accept Header     * accept.val(mpnValue)     * accept.val(mpnSubVal)     * accept[mpiParm].val(...)     */    class MpAccept : public MpValParm    /**Content-Type Header     * contType.val(mpnValue)     * contType.val(mpnSubVal)     * contType[mpiParm].val(...)     */    class MpContentType : public MpValParm    /**Accept-Language Header     * acptLang.val(mpnValue)     * acptLang[mpiParm].val(...)     */    class MpAcceptLanguage : public MpValParm    /**Values only common abstract item (without any parameters)     * value.val(mpnValue)     * value.val(...)     */    class MpValue : public MpHeader    /**Accept-Encoding Header     * acptEnc.val(mpnValue)     */    class MpAcceptEncoding : public MpValue    /**Allow Header     * allow.val(mpnValue)     */    class MpAllow : public MpValue    /**Authorization Header !!!May be refined in future     * auth.val(mpnValue)     * auth[mpiParm].val(...)     */    class MpAuthorization : public MpValParm    /**Call-ID Header.      * callid.val(mpnValue)     */    class MpCallID : public MpHeader    /**Name, address, params and comment abstract item     * mnAddr.val(mpnDispName)     * mnAddr.val(mpnComment)     * mnAddr[mpiUrl][...]     * mnAddr[mpiParm].val(...)     */    class MpNameAddrParm : public MpHeader    /**Contact Header     * contact.val(mpnDispName)     * contact.val(mpnComment)     * contact[mpiUrl][...]     * contact[mpiParm].val(...)     */    class MpContact : public MpNameAddrParm     /**Content-Encoding Header     * contEnc.val(mpnValue)     */    class MpContentEncoding : public MpValue    /**Content-Length Header     * contLen.val(mpnValue)     */    class MpContentLength : public MpValue    /**CSeq Header     * cseq.val(mpnCSeq)     * cseq.val(mpnMethod)     */    class MpCSeq : public MpValue    /**Date Header !!!May be refined in future     * date.val(mpnValue)     */    class MpDate : public MpValue    /**Encryption Header !!!May be refined in future     * enc.val(mpnValue)     */    class MpEncryption : public MpValue    /**Expires Header !!!May be refined in future     * exp.val(mpnValue)     */    class MpExpires : public MpValue    /**From Header     * from.val(mpnDispName)     * from.val(mpnComment)     * from[mpiUrl][...]     * from[mpiParm].val(...)     */    class MpFrom : public MpNameAddrParm     /**To Header     * to.val(mpnDispName)     * to.val(mpnComment)     * to[mpiUrl][...]     * to[mpiParm].val(...)     */    class MpTo : public MpNameAddrParm     /**Hide Header     * hide.val(mpnValue)     */    class MpHide : public MpValue    /**Max-Forwards Header     * maxForw.val(mpnValue)     */    class MpMaxForwards : public MpValue    /**Organization Header     * org.val(mpnValue)     */    class MpOrganization : public MpValue    /**Subject Header     * subj.val(mpnValue)     */    class MpSubject : public MpValue    /**Priority Header     * prior.val(mpnValue)     */    class MpPriority : public MpValue    /**Proxy-Authenticate Header !!!May be refined in future     * proxyAuthen.val(mpnValue)     */    class MpProxyAuthenticate : public MpValue    /**Proxy-Authorization Header !!!May be refined in future     * proxyAuthor.val(mpnValue)     */    class MpProxyAuthorization : public MpValue    /**Proxy-Require Header !!!May be refined in future     * proxyRequire.val(mpnValue)     */    class MpProxyRequire : public MpValue    /**Route Header.      * route[mpiHostPort].val(mpnHost)     * route[mpiHostPort].val(mpnPort)     * route[mpiUserInfo].val(mpnUser)     * route[mpiUserInfo].val(mpnPasswd)     */    class MpRoute : public MpHeader    /**Record-Route Header.      * recRoute[mpiHostPort].val(mpnHost)     * recRoute[mpiHostPort].val(mpnPort)     * recRoute[mpiUserInfo].val(mpnUser)     * recRoute[mpiUserInfo].val(mpnPasswd)     */    class MpRecordRoute : public MpRoute    /**Require Header !!!May be refined in future     * require.val(mpnValue)     */    class MpRequire : public MpValue    /**Unsupported Header !!!May be refined in future     * unsup.val(mpnValue)     */    class MpUnsupported : public MpValue    /**WWW-Authenticate Header !!!May be refined in future     * unsup.val(mpnValue)     */    class MpWWWAuthenticate : public MpValue    /**Response-Key Header !!!May be refined in future     * respKey.val(mpnValue)     */    class MpResponseKey : public MpValue    /**Retry-After Header.      * retry-after.val(mpnDate)     * retry-after.val(mpnSeconds)     * retry-after.val(mpnDuration)     * retry-after.val(mpnComment)     */    class MpRetryAfter : public MpHeader    /**Server Header !!!May be refined in future     * server.val(mpnValue)     */    class MpServer : public MpValue    /**User-Agent Header !!!May be refined in future     * userAgent.val(mpnValue)     */    class MpUserAgent : public MpValue    /**Timestamp Header     * tmstamp.val(mpnValue)     * tmstamp.val(mpnDelay)     */    class MpTimestamp : public MpValue    /**Via Header     * via.val(mpnProto)     * via.val(mpnVersion)     * via.val(mpnTransport)     * via.val(mpnComment)     * via[mpiSentBy].val(mpnHost)     * via[mpiSentBy].val(mpnPort)     * via[mpiUrlParm].val(...)     */    class MpVia : public MpValue    /**Warning Header     * warn.val(mpnCode)     * warn.val(mpnAgent)     * warn.val(mpnText)     */    class MpWarning : public MpValue

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -