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

📄 test_nta.c

📁 sip协议栈
💻 C
📖 第 1 页 / 共 5 页
字号:
			       SIPTAG_VIA(via),			       TAG_END()));    nta_test_run(ag);    TEST(ag->ag_status, 200);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, ag->ag_server_leg);    nta_agent_set_params(ag->ag_agent, 			 NTATAG_USER_VIA(0),			 TAG_END());  }  /* Test 0.7   * Send a message from Bob to Alice using SCTP    */  if (sctp) {    url_t url[1];    sip_payload_t *pl;    unsigned size = 16 * 1024;    *url = *ag->ag_aliases->m_url;    url->url_user = "alice";#if 0    if (url->url_params)      url->url_params = su_sprintf(NULL, "%s;transport=sctp", url->url_params);    else#endif      url->url_params = "transport=sctp";    TEST_1(pl = test_payload(ag->ag_home, size));    ag->ag_expect_leg = ag->ag_server_leg;    TEST_1(ag->ag_orq =           nta_outgoing_tcreate(ag->ag_default_leg, outgoing_callback, ag,			       ag->ag_obp,			       SIP_METHOD_MESSAGE,			       (url_string_t *)url,			       SIPTAG_SUBJECT_STR("Test 0.7"),			       SIPTAG_FROM(ag->ag_bob),			       SIPTAG_TO(ag->ag_alice),			       SIPTAG_CONTACT(ag->ag_m_bob),			       SIPTAG_PAYLOAD(pl),			       TAG_END()));    su_free(ag->ag_home, pl);    nta_test_run(ag);    TEST(ag->ag_status, 200);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, ag->ag_server_leg);  }  /* Test 0.8: Send a too large message */  if (tcp) {    url_t url[1];    sip_payload_t *pl;    unsigned size = 128 * 1024;    nta_agent_set_params(ag->ag_agent, 			 NTATAG_MAXSIZE(65536),			 TAG_END());    *url = *ag->ag_aliases->m_url;    url->url_user = "alice";    TEST_1(pl = test_payload(ag->ag_home, size));    ag->ag_expect_leg = ag->ag_server_leg;    ag->ag_latest_leg = NULL;    TEST_1(ag->ag_orq =           nta_outgoing_tcreate(ag->ag_default_leg, outgoing_callback, ag,			       ag->ag_obp,			       SIP_METHOD_MESSAGE,			       (url_string_t *)url,			       SIPTAG_SUBJECT_STR("Test 0.8"),			       SIPTAG_FROM(ag->ag_bob),			       SIPTAG_TO(ag->ag_alice),			       SIPTAG_CONTACT(ag->ag_m_bob),			       SIPTAG_PAYLOAD(pl),			       TAG_END()));    su_free(ag->ag_home, pl);    nta_test_run(ag);    TEST(ag->ag_status, 413);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, NULL);    nta_agent_set_params(ag->ag_agent, 			 NTATAG_MAXSIZE(2 * 1024 * 1024),			 TAG_END());  }  /* Test 0.9: Timeout */  {    url_t url[1];    printf("%s: starting MESSAGE timeout test, completing in 4 seconds\n",	   name);    nta_agent_set_params(ag->ag_agent, 			 NTATAG_TIMEOUT_408(1),			 NTATAG_SIP_T1(25), 			 NTATAG_SIP_T1X64(64 * 25), 			 NTATAG_SIP_T2(8 * 25),			 NTATAG_SIP_T4(10 * 25),			 TAG_END());    *url = *ag->ag_aliases->m_url;    url->url_user = "timeout";    url->url_port = ag->ag_sink_port;    ag->ag_expect_leg = ag->ag_server_leg;    ag->ag_latest_leg = NULL;    TEST_1(ag->ag_orq =           nta_outgoing_tcreate(ag->ag_default_leg, outgoing_callback, ag,			       ag->ag_obp,			       SIP_METHOD_MESSAGE,			       (url_string_t *)url,			       SIPTAG_SUBJECT_STR("Test 0.9"),			       SIPTAG_FROM(ag->ag_bob),			       SIPTAG_TO(ag->ag_alice),			       SIPTAG_CONTACT(ag->ag_m_bob),			       TAG_END()));    nta_test_run(ag);    TEST(ag->ag_status, 408);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, NULL);    nta_agent_set_params(ag->ag_agent,			 NTATAG_SIP_T1(500),			 NTATAG_SIP_T1X64(64 * 500),			 NTATAG_SIP_T2(NTA_SIP_T2),			 NTATAG_SIP_T4(NTA_SIP_T4),			 TAG_END());  }    END();}int test_resolv(agent_t *ag, char const *resolv_conf){  int udp = 0, tcp = 0, sctp = 0, tls = 0;  sip_via_t const *v;  url_t *url;  if (!resolv_conf)    return 0;  BEGIN();  nta_agent_set_params(ag->ag_agent, 		       NTATAG_SIP_T1(8 * 25), 		       NTATAG_SIP_T1X64(64 * 25), 		       NTATAG_SIP_T4(10 * 25),		       TAG_END());  TEST_1(v = nta_agent_via(ag->ag_agent));  for (; v; v = v->v_next) {    if (strcasecmp(v->v_protocol, sip_transport_udp) == 0)      udp = 1;    else if (strcasecmp(v->v_protocol, sip_transport_tcp) == 0)      tcp = 1;    else if (strcasecmp(v->v_protocol, sip_transport_sctp) == 0)      sctp = 1;    else if (strcasecmp(v->v_protocol, sip_transport_tls) == 0)      tls = 1;  }  url = url_hdup(ag->ag_home, (void *)"sip:example.org"); TEST_1(url);  {    /* Test 1.1     * Send a message to sip:example.org     */    ag->ag_expect_leg = ag->ag_default_leg;    TEST_1(ag->ag_orq = 	  nta_outgoing_tcreate(ag->ag_default_leg, outgoing_callback, ag,			       ag->ag_obp,			       SIP_METHOD_MESSAGE,			       (url_string_t *)url,			       SIPTAG_SUBJECT_STR("Test 1.1"),			       SIPTAG_FROM(ag->ag_alice),			       SIPTAG_TO(ag->ag_bob),			       SIPTAG_CONTACT(ag->ag_m_alice),			       TAG_END()));    nta_test_run(ag);    TEST(ag->ag_status, 200);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, ag->ag_default_leg);  }  {    /* Test 1.2     * Send a message to sip:srv.example.org     */    url->url_host = "srv.example.org";    ag->ag_expect_leg = ag->ag_default_leg;    TEST_1(ag->ag_orq = 	  nta_outgoing_tcreate(ag->ag_default_leg, outgoing_callback, ag,			       ag->ag_obp,			       SIP_METHOD_MESSAGE,			       (url_string_t *)url,			       SIPTAG_SUBJECT_STR("Test 1.2"),			       SIPTAG_FROM(ag->ag_alice),			       SIPTAG_TO(ag->ag_bob),			       SIPTAG_CONTACT(ag->ag_m_alice),			       TAG_END()));    nta_test_run(ag);    TEST(ag->ag_status, 200);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, ag->ag_default_leg);  }  {    /* Test 1.3     * Send a message to sip:ipv.example.org     */    url->url_host = "ipv.example.org";    ag->ag_expect_leg = ag->ag_default_leg;    TEST_1(ag->ag_orq = 	  nta_outgoing_tcreate(ag->ag_default_leg, outgoing_callback, ag,			       ag->ag_obp,			       SIP_METHOD_MESSAGE,			       (url_string_t *)url,			       SIPTAG_SUBJECT_STR("Test 1.3"),			       SIPTAG_FROM(ag->ag_alice),			       SIPTAG_TO(ag->ag_bob),			       SIPTAG_CONTACT(ag->ag_m_alice),			       TAG_END()));    nta_test_run(ag);    TEST(ag->ag_status, 200);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, ag->ag_default_leg);  }  {    /* Test 1.4.1     * Send a message to sip:down.example.org     */    url->url_host = "down.example.org";    ag->ag_expect_leg = ag->ag_default_leg;    TEST_1(ag->ag_orq = 	  nta_outgoing_tcreate(ag->ag_default_leg, outgoing_callback, ag,			       ag->ag_obp,			       SIP_METHOD_MESSAGE,			       (url_string_t *)url,			       SIPTAG_SUBJECT_STR("Test 1.4.1"),			       SIPTAG_FROM(ag->ag_alice),			       SIPTAG_TO(ag->ag_bob),			       SIPTAG_CONTACT(ag->ag_m_alice),			       TAG_END()));    nta_test_run(ag);    TEST(ag->ag_status, 200);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, ag->ag_default_leg);  }  {    /* Test 1.4.2     * Send a message to sip:na503.example.org     */    url->url_host = "na503.example.org";    ag->ag_expect_leg = ag->ag_default_leg;    TEST_1(ag->ag_orq = 	  nta_outgoing_tcreate(ag->ag_default_leg, outgoing_callback, ag,			       ag->ag_obp,			       SIP_METHOD_MESSAGE,			       (url_string_t *)url,			       SIPTAG_SUBJECT_STR("Test 1.4.2"),			       SIPTAG_FROM(ag->ag_alice),			       SIPTAG_TO(ag->ag_bob),			       SIPTAG_CONTACT(ag->ag_m_alice),			       TAG_END()));    nta_test_run(ag);    TEST(ag->ag_status, 503);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, ag->ag_default_leg);  }  {    /* Test 1.4.3     * Send a message to sip:nona.example.org     */    url->url_host = "nona.example.org";    ag->ag_expect_leg = ag->ag_default_leg;    TEST_1(ag->ag_orq = 	  nta_outgoing_tcreate(ag->ag_default_leg, outgoing_callback, ag,			       ag->ag_obp,			       SIP_METHOD_MESSAGE,			       (url_string_t *)url,			       SIPTAG_SUBJECT_STR("Test 1.4.3"),			       SIPTAG_FROM(ag->ag_alice),			       SIPTAG_TO(ag->ag_bob),			       SIPTAG_CONTACT(ag->ag_m_alice),			       TAG_END()));    nta_test_run(ag);    TEST(ag->ag_status, 200);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, ag->ag_default_leg);  }  {    /* Test 1.4.4     * Send a message to sip:nosrv.example.org     * After failing to find _sip._udp.nosrv.example.org,     * second SRV with _sip._udp.srv.example.org succeeds     */    url->url_host = "nosrv.example.org";    ag->ag_expect_leg = ag->ag_default_leg;    TEST_1(ag->ag_orq = 	  nta_outgoing_tcreate(ag->ag_default_leg, outgoing_callback, ag,			       ag->ag_obp,			       SIP_METHOD_MESSAGE,			       (url_string_t *)url,			       SIPTAG_SUBJECT_STR("Test 1.4.4"),			       SIPTAG_FROM(ag->ag_alice),			       SIPTAG_TO(ag->ag_bob),			       SIPTAG_CONTACT(ag->ag_m_alice),			       TAG_END()));    nta_test_run(ag);    TEST(ag->ag_status, 200);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, ag->ag_default_leg);  }  {    /* Test 1.5.1      * Send a message to sip:srv.example.org;transport=tcp     * Test outgoing_make_srv_query()     */    url->url_host = "srv.example.org";    url->url_params = "transport=tcp";    ag->ag_expect_leg = ag->ag_default_leg;    TEST_1(ag->ag_orq = 	  nta_outgoing_tcreate(ag->ag_default_leg, outgoing_callback, ag,			       ag->ag_obp,			       SIP_METHOD_MESSAGE,			       (url_string_t *)url,			       SIPTAG_SUBJECT_STR("Test 1.5.1: outgoing_make_srv_query()"),			       SIPTAG_FROM(ag->ag_alice),			       SIPTAG_TO(ag->ag_bob),			       SIPTAG_CONTACT(ag->ag_m_alice),			       TAG_END()));    nta_test_run(ag);    TEST(ag->ag_status, 200);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, ag->ag_default_leg);    url->url_params = NULL;  }  {    /* Test 1.5.2     * Send a message to sip:srv.example.org;transport=udp     * Test outgoing_make_srv_query()     */    url->url_host = "srv.example.org";    url->url_params = "transport=udp";    ag->ag_expect_leg = ag->ag_default_leg;    TEST_1(ag->ag_orq = 	  nta_outgoing_tcreate(ag->ag_default_leg, outgoing_callback, ag,			       ag->ag_obp,			       SIP_METHOD_MESSAGE,			       (url_string_t *)url,			       SIPTAG_SUBJECT_STR("Test 1.5.2: outgoing_make_srv_query()"),			       SIPTAG_FROM(ag->ag_alice),			       SIPTAG_TO(ag->ag_bob),			       SIPTAG_CONTACT(ag->ag_m_alice),			       TAG_END()));    nta_test_run(ag);    TEST(ag->ag_status, 200);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, ag->ag_default_leg);    url->url_params = NULL;  }  {    /* Test 1.5.3     * Send a message to sip:srv2.example.org;transport=udp     * Test outgoing_query_srv_a()     */    url->url_host = "srv2.example.org";    url->url_params = "transport=udp";    ag->ag_expect_leg = ag->ag_default_leg;    TEST_1(ag->ag_orq = 	  nta_outgoing_tcreate(ag->ag_default_leg, outgoing_callback, ag,			       ag->ag_obp,			       SIP_METHOD_MESSAGE,			       (url_string_t *)url,			       SIPTAG_SUBJECT_STR("Test 1.5: outgoing_query_srv_a()"),			       SIPTAG_FROM(ag->ag_alice),			       SIPTAG_TO(ag->ag_bob),			       SIPTAG_CONTACT(ag->ag_m_alice),			       TAG_END()));    nta_test_run(ag);    TEST(ag->ag_status, 200);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, ag->ag_default_leg);    url->url_params = NULL;  }  {    /* Test 1.6.1     * Send a message to sip:srv.example.org:$port     * Test outgoing_make_a_aaaa_query()     */    url->url_host = "srv.example.org";    url->url_port = ag->ag_contact->m_url->url_port;    ag->ag_expect_leg = ag->ag_default_leg;    TEST_1(ag->ag_orq = 	  nta_outgoing_tcreate(ag->ag_default_leg, outgoing_callback, ag,			       ag->ag_obp,			       SIP_METHOD_MESSAGE,			       (url_string_t *)url,			       SIPTAG_SUBJECT_STR("Test 1.6.1: outgoing_make_a_aaaa_query()"),			       SIPTAG_FROM(ag->ag_alice),			       SIPTAG_TO(ag->ag_bob),			       SIPTAG_CONTACT(ag->ag_m_alice),			       TAG_END()));    nta_test_run(ag);    TEST(ag->ag_status, 503);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, ag->ag_default_leg);  }  {    /* Test 1.6.2     * Send a message to sip:a.example.org:$port     * Test outgoing_make_a_aaaa_query()     */    url->url_host = "a.example.org";    url->url_port = ag->ag_contact->m_url->url_port;    ag->ag_expect_leg = ag->ag_default_leg;    TEST_1(ag->ag_orq = 	  nta_outgoing_tcreate(ag->ag_default_leg, outgoing_callback, ag,			       ag->ag_obp,			       SIP_METHOD_MESSAGE,			       (url_string_t *)url,			       SIPTAG_SUBJECT_STR("Test 1.6.2: outgoing_make_a_aaaa_query()"),			       SIPTAG_FROM(ag->ag_alice),			       SIPTAG_TO(ag->ag_bob),			       SIPTAG_CONTACT(ag->ag_m_alice),			       TAG_END()));    nta_test_run(ag);    TEST(ag->ag_status, 200);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, ag->ag_default_leg);    url->url_port = NULL;  }#if 0				/* This must be run on host *without* proxy */  {    /* Test 1.6c     * Send a message to sip:na.example.org     * Test outgoing_query_all() with NAPTR "A" flag     */    url->url_host = "na.example.org";    ag->ag_expect_leg = ag->ag_default_leg;    TEST_1(ag->ag_orq = 	  nta_outgoing_tcreate(ag->ag_default_leg, outgoing_callback, ag,			       ag->ag_obp,			       SIP_METHOD_MESSAGE,			       (url_string_t *)url,			       SIPTAG_SUBJECT_STR("Test 1.6c"),			       SIPTAG_FROM(ag->ag_alice),			       SIPTAG_TO(ag->ag_bob),			       SIPTAG_CONTACT(ag->ag_m_alice),			       TAG_END()));    nta_test_run(ag);    TEST(ag->ag_status, 503);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, ag->ag_default_leg);  }#endif  {    /* Test 1.7     * Send a message to sip:down2.example.org:$port     * Test A record failover.     */    url->url_host = "down2.example.org";    url->url_port = ag->ag_contact->m_url->url_port;    ag->ag_expect_leg = ag->ag_default_leg;    TEST_1(ag->ag_orq = 	  nta_outgoing_tcreate(ag->ag_default_leg, outgoing_callback, ag,			       ag->ag_obp,			       SIP_METHOD_MESSAGE,			       (url_string_t *)url,			       SIPTAG_SUBJECT_STR("Test 1.7: outgoing_make_a_aaaa_query()"),			       SIPTAG_FROM(ag->ag_alice),			       SIPTAG_TO(ag->ag_bob),			       SIPTAG_CONTACT(ag->ag_m_alice),			       TAG_END()));    nta_test_run(ag);    TEST(ag->ag_status, 200);    TEST(ag->ag_orq, NULL);    TEST(ag->ag_latest_leg, ag->ag_default_leg);

⌨️ 快捷键说明

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