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

📄 testsdp.cxx

📁 这是国外的resip协议栈
💻 CXX
📖 第 1 页 / 共 2 页
字号:
#include "rutil/Logger.hxx"#include "rutil/DataStream.hxx"#include "resip/stack/SdpContents.hxx"#include "resip/stack/HeaderFieldValue.hxx"#include "rutil/ParseBuffer.hxx"#include <iostream>#include "TestSupport.hxx"#include "tassert.h"using namespace resip;using namespace std;#define RESIPROCATE_SUBSYSTEM Subsystem::TESTintmain(int argc, char* argv[]){    Log::Level l = Log::Debug;        if (argc > 1)    {        switch(*argv[1])        {            case 'd': l = Log::Debug;                break;            case 'i': l = Log::Info;                break;            case 's': l = Log::Stack;                break;            case 'c': l = Log::Crit;                break;        }            }        Log::initialize(Log::Cout, l, argv[0]);    CritLog(<<"Test Driver Starting");    {       Data txt("v=0\r\n"  		"o=- 333525334858460 333525334858460 IN IP4 192.168.0.156\r\n"		"s=test123\r\n"		"c=IN IP4 192.168.0.156\r\n"		"t=4058038202 0\r\n"		"m=audio 41466 RTP/AVP 0 101\r\n"		"a=ptime:20\r\n"		"a=rtpmap:0 PCMU/8000\r\n"		"a=rtpmap:101 telephone-event/8000\r\n"		"a=fmtp:101 0-11\r\n");       HeaderFieldValue hfv(txt.data(), txt.size());       Mime type("application", "sdp");       SdpContents sdp(&hfv, type);             assert(sdp.session().media().size() == 1);       resip::SdpContents::Session::Codec testCodec("PCMU", 8000, "", "1");       for (std::list<resip::SdpContents::Session::Medium>::const_iterator i = sdp.session().media().begin(); i != sdp.session().media().end(); i++)       {          const std::list<resip::SdpContents::Session::Codec> &codecs = i->codecs();          assert(testCodec == codecs.front());       }       //assert(sdp.session.getAttributes().count == 2);       CritLog(<< "ftmp test: " << sdp);    }    exit(0);    {       Data txt("v=0\r\n"  		"o=- 333525334858460 333525334858460 IN IP4 192.168.0.156\r\n"		"s=test123\r\n"		"e=unknown@invalid.net\r\n"		"p=+972 683 1000\r\n"		"t=4058038202 0\r\n"		"m=audio 41466 RTP/AVP 0 101\r\n"		"c=IN IP4 192.168.0.156\r\n"		"a=fmtp:101 0-11\r\n"		"a=ptime:20\r\n"		"a=rtpmap:101 telephone-event/8000\r\n");       HeaderFieldValue hfv(txt.data(), txt.size());       Mime type("application", "sdp");       SdpContents sdp(&hfv, type);       assert(sdp.session().getPhones().size() == 1);       assert(sdp.session().getEmails().size() == 1);       assert(Data::from(sdp) == txt);              CritLog(<< "Email + Phone Test Ok");    }    {       Data txt("v=0\r\n"                "o=ViPr 1 1 IN IP4 72.29.231.47\r\n"                "s=eyeBeam\r\n"                "i=\"q2\"<sip:q2@host1.marc.sipit.net>\r\n"                "e=NoEmail@NoEmail.com\r\n"                "t=0 0\r\n"                "a=X-app:ViPr 11 ViPrTerminal\r\n"                "a=X-GUID:4a8f41cc8a50_72.29.231.47_\r\n"                "a=X-CollabStatus: CollabState_Idle\r\n"                "m=audio 50958 RTP/AVP 0\r\n"                "i=\"q2\"<sip:q2@host1.marc.sipit.net>\r\n"                "c=IN IP4 72.29.231.47\r\n"                "a=rtpmap:0 PCMU/8000/1\r\n"                "a=sendrecv\r\n"                "a=X-app:ViPr 11 ViPrTerminal\r\n"                "m=video 0 RTP/AVP 32\r\n"                "c=IN IP4 72.29.231.47\r\n");              HeaderFieldValue hfv(txt.data(), txt.size());       Mime type("application", "sdp");       SdpContents sdp(&hfv, type);       CritLog ( << sdp.session().media().size());              assert(sdp.session().media().size() == 2);              CritLog(<< "Marconi Test Ok");    }    {       Data txt("v=0\r\n"                "o=ff_AT_tye.idv.tw 170748954 170754822 IN IP4 202.5.224.96\r\n"                "s=X-Lite\r\n"                "c=IN IP4 202.5.224.96\r\n"                "t=0 0\r\n"                "m=audio 12000 RTP/AVP 98 101\r\n"                "a=fmtp:101 0-15\r\n"                "a=rtpmap:98 iLBC/8000\r\n"                "a=rtpmap:101 telephone-event/8000\r\n");       HeaderFieldValue hfv(txt.data(), txt.size());       Mime type("application", "sdp");       SdpContents sdp(&hfv, type);       assert(sdp.session().connection().getAddress() == "202.5.224.96");       assert(sdp.session().media().front().port() == 12000);       assert(sdp.session().media().front().getValues("fmtp").front() == "101 0-15");       assert(sdp.session().media().front().getValues("rtpmap").front() == "98 iLBC/8000");       assert(*++sdp.session().media().front().getValues("rtpmap").begin() == "101 telephone-event/8000");       assert(sdp.session().media().front().codecs().front().getName() == "iLBC");       CritLog(<< "Ok");    }    //exit(0);        {       Data txt("v=0\r\n"                "o=CiscoSystemsSIP-GW-UserAgent 2087 3916 IN IP4 64.124.66.33\r\n"                "s=SIP Call\r\n"                "c=IN IP4 64.124.66.33\r\n"                "t=0 0\r\n"                "m=audio 12004 RTP/AVP 0 19\r\n"                "c=IN IP4 64.124.66.33\r\n"                "a=rtpmap:0 PCMU/8000\r\n"                "a=rtpmap:19 CN/8000\r\n");              HeaderFieldValue hfv(txt.data(), txt.size());       Mime type("application", "sdp");       SdpContents sdp(&hfv, type);       assert(sdp.session().connection().getAddress() == "64.124.66.33");       assert(sdp.session().media().front().port() == 12004);    }        {       Data txt("v=0\r\n"                "o=1900 369696545 369696545 IN IP4 192.168.2.15\r\n"                "s=X-Lite\r\n"                "c=IN IP4 192.168.2.15\r\n"                "t=0 0\r\n"                "m=audio 8000 RTP/AVP 8 3 98 97 101\r\n"                "a=rtpmap:8 pcma/8000\r\n"                "a=rtpmap:3 gsm/8000\r\n"                "a=rtpmap:98 iLBC\r\n"                "a=rtpmap:97 speex/8000\r\n"                "a=rtpmap:101 telephone-event/8000\r\n"                "a=fmtp:101 0-15\r\n");      HeaderFieldValue hfv(txt.data(), txt.size());      Mime type("application", "sdp");      SdpContents sdp(&hfv, type);      assert(sdp.session().media().front().codecs().size() == 4);    }    {      Data txt("v=0\r\n"               "o=alice 53655765 2353687637 IN IP4 pc33.atlanta.com\r\n"               "s=-\r\n"               "c=IN IP4 pc33.atlanta.com\r\n"               "t=0 0\r\n"               "m=audio 3456 RTP/AVP 0 1 3 99\r\n"               "a=rtpmap:0 PCMU/8000\r\n");      HeaderFieldValue hfv(txt.data(), txt.size());      Mime type("application", "sdp");      SdpContents sdp(&hfv, type);      HeaderFieldValue hfv2(txt.data(), txt.size());      SdpContents sdp2(&hfv2, type);      sdp.session();      sdp2.session();      Data sdpO = Data::from(sdp);      sdp = sdp2;      Data sdpO2 = Data::from(sdp);      cerr << "!! " << sdp << endl;      assert(sdpO == sdpO2);    }        tassert_init(4);    {      Data txt("v=0\r\n"               "o=alice 53655765 2353687637 IN IP4 pc33.atlanta.com\r\n"               "s=-\r\n"               "c=IN IP4 pc33.atlanta.com\r\n"               "t=0 0\r\n"               "m=audio 3456 RTP/AVP 0 1 3 99\r\n"               "a=rtpmap:0 PCMU/8000\r\n");      HeaderFieldValue hfv(txt.data(), txt.size());      Mime type("application", "sdp");      SdpContents sdp(&hfv, type);      tassert_reset();            tassert(sdp.session().version() == 0);      tassert(sdp.session().origin().user() == "alice");      tassert(!sdp.session().media().empty());            //this fails, but should probably not parse(t before c not in sdp)      tassert(sdp.session().media().front().getValues("rtpmap").front() == "0 PCMU/8000");      tassert_verify(1);         }   {      const char* txt =          ("v=0\r\n"          "o=UserA 2890844526 2890844527 IN IP4 here.com\r\n"          "s=Session SDP\r\n"          "c=IN IP4 pc33.atlanta.com\r\n"          "t=5 17\r\n"          "m=audio 49172 RTP/AVP 0\r\n"          "a=rtpmap:0 PCMU/8000\r\n"          "\r\n");      HeaderFieldValue hfv(txt, strlen(txt));      Mime type("application", "sdp");      SdpContents sdp(&hfv, type);      tassert_reset();      tassert(sdp.session().version() == 0);      tassert(sdp.session().origin().user() == "UserA");      tassert(sdp.session().origin().getSessionId() == 2890844526UL);      tassert(sdp.session().origin().getVersion() == 2890844527UL);      tassert(sdp.session().origin().getAddressType() == SdpContents::IP4);      tassert(sdp.session().origin().getAddress() == "here.com");      tassert(sdp.session().name() == "Session SDP");      tassert(sdp.session().connection().getAddressType() == SdpContents::IP4);      tassert(sdp.session().connection().getAddress() == "pc33.atlanta.com");      tassert(sdp.session().connection().ttl() == 0);

⌨️ 快捷键说明

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