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

📄 sdp.docs

📁 Sofia SIP is an open-source SIP User-Agent library, compliant with the IETF RFC3261 specification.
💻 DOCS
字号:
/* -*- c -*- *//**@MODULEPAGE "sdp" - SDP Module@section sdp_meta Module Meta InformationThe @b sdp module provides a simple "C" parser interface for SDP [@RFC2327],<em>Session Description Protocol</em>. The parser also implements supportfor IPv6 addresses as per @RFC3266. The @RFC4566 should be supported, but wehave not checked since draft-eitf-mmusic-sdp-new-17 or so.@CONTACT Pekka Pessi <Pekka.Pessi@nokia.com>@STATUS @SofiaSIP Core library@LICENSE LGPLContributor(s):- Pekka Pessi <Pekka.Pessi@nokia.com>- Jari Selin <Jari.Selin@nokia.com>@section sdp_parser SDP ParserSDP parser parses an SDP message and converts it to internally used SDPstructure #sdp_session_t.Typically, the SDP parser is used as follows:@code sdp_parser_t *parser = sdp_parse(home, message, len, 0); if (!sdp_session(parser)) {   show(sdp_parsing_error(parser)); } else {   sdp_session_t *sdp = sdp_session(parser);@endcode  Act upon session description, then free the parser:@code } sdp_parser_free(parser);@endcodeThere are various flags indicating what kind of SDP variants the sdp_parse()accepts. The sanity check run after parsing can be disabled by includingflag #sdp_f_insane. The parser can be used to parse syntactically vagueconfiguration files when using flag #sdp_f_config. The parser will thenaccept * for media, protocol and port, for instance.@section sdp_printer SDP PrinterSDP printer converts internally used SDP structure #sdp_session_t to thestandard SDP format.Typically, the SDP printer is used as follows:@code char buffer[512]; sdp_printer_t *printer = sdp_print(home, session, buffer, sizeof(buffer), 0); if (sdp_message(printer)) {   char const *msg = sdp_message(printer);   size_t msgsize = sdp_message_size(printer);@endcodeAt this point, application can use the SDP message contents, e.g., it cansend them to network, and then free the message:@code } else {   show_critical_error(sdp_printing_error(printer)); } sdp_printer_free(printer);@endcode @section sdp_example ExampleExamples on using SDP parser can be found from test_sdp.c and soa.c. Here isan simple example, which decodes an SDP text in @a original, increments theversion number in the origin line, and encodes the SDP description again to@a buf.@codesize_t increment_sdp_version(char buf[], size_t bsize,                              char const *original, size_t osize){  su_home_t home[1] = { SU_HOME_INIT(home) };  sdp_parser_t *parser = sdp_parse(home, original, osize, 0);  sdp_printer_t *printer;  size_t retval = 0;  if (sdp_session(parser)) {    sdp_session_t *sdp = sdp_session(parser);        sdp->sdp_origin->o_version++;    printer = sdp_print(home, sdp, buf, bsize, 0);    if (sdp_message(printer)) {      retval = sdp_message_size(printer);    }    else {      fprintf(stderr, "increment_sdp_version: %s\n",               sdp_printing_error(printer));    }    sdp_printer_free(printer);  }  else {    fprintf(stderr, "increment_sdp_version: %s\n",             sdp_parsing_error(p));  }  sdp_parser_free(parser);        su_home_deinit(home);  return retval;}@endcode*/

⌨️ 快捷键说明

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