Lines Matching refs:tdata

196                                 pjsip_tx_data *tdata,   in init_request_throw()  argument
212 msg = tdata->msg = pjsip_msg_create(tdata->pool, PJSIP_REQUEST_MSG); in init_request_throw()
222 pjsip_hdr_shallow_clone(tdata->pool, endpt_hdr); in init_request_throw()
223 pjsip_msg_add_hdr( tdata->msg, hdr ); in init_request_throw()
229 pj_create_unique_string(tdata->pool, &param_from->tag); in init_request_throw()
247 via = pjsip_via_hdr_create(tdata->pool); in init_request_throw()
262 hdr = pjsip_generic_string_hdr_create(tdata->pool, in init_request_throw()
272 body = PJ_POOL_ZALLOC_T(tdata->pool, pjsip_msg_body); in init_request_throw()
275 body->data = pj_pool_alloc(tdata->pool, param_text->slen ); in init_request_throw()
283 pjsip_tx_data_get_info(tdata))); in init_request_throw()
302 pjsip_tx_data *tdata; in pjsip_endpt_create_request() local
313 status = pjsip_endpt_create_tdata(endpt, &tdata); in pjsip_endpt_create_request()
318 pjsip_tx_data_add_ref(tdata); in pjsip_endpt_create_request()
322 pj_strdup_with_null(tdata->pool, &tmp, param_target); in pjsip_endpt_create_request()
323 target = pjsip_parse_uri( tdata->pool, tmp.ptr, tmp.slen, 0); in pjsip_endpt_create_request()
330 from = pjsip_from_hdr_create(tdata->pool); in pjsip_endpt_create_request()
331 pj_strdup_with_null(tdata->pool, &tmp, param_from); in pjsip_endpt_create_request()
332 from->uri = pjsip_parse_uri( tdata->pool, tmp.ptr, tmp.slen, in pjsip_endpt_create_request()
338 pj_create_unique_string(tdata->pool, &from->tag); in pjsip_endpt_create_request()
341 to = pjsip_to_hdr_create(tdata->pool); in pjsip_endpt_create_request()
342 pj_strdup_with_null(tdata->pool, &tmp, param_to); in pjsip_endpt_create_request()
343 to->uri = pjsip_parse_uri( tdata->pool, tmp.ptr, tmp.slen, in pjsip_endpt_create_request()
352 pj_strdup_with_null(tdata->pool, &tmp, param_contact); in pjsip_endpt_create_request()
354 pjsip_parse_hdr(tdata->pool, &STR_CONTACT, tmp.ptr, in pjsip_endpt_create_request()
365 call_id = pjsip_cid_hdr_create(tdata->pool); in pjsip_endpt_create_request()
367 pj_strdup(tdata->pool, &call_id->id, param_call_id); in pjsip_endpt_create_request()
369 pj_create_unique_string(tdata->pool, &call_id->id); in pjsip_endpt_create_request()
372 cseq = pjsip_cseq_hdr_create(tdata->pool); in pjsip_endpt_create_request()
379 pjsip_method_copy(tdata->pool, &cseq->method, method); in pjsip_endpt_create_request()
382 init_request_throw( endpt, tdata, &cseq->method, target, from, to, in pjsip_endpt_create_request()
391 *p_tdata = tdata; in pjsip_endpt_create_request()
395 pjsip_tx_data_dec_ref(tdata); in pjsip_endpt_create_request()
411 pjsip_tx_data *tdata; in pjsip_endpt_create_request_from_hdr() local
425 status = pjsip_endpt_create_tdata(endpt, &tdata); in pjsip_endpt_create_request_from_hdr()
430 pjsip_tx_data_add_ref(tdata); in pjsip_endpt_create_request_from_hdr()
434 target = (pjsip_uri*) pjsip_uri_clone(tdata->pool, param_target); in pjsip_endpt_create_request_from_hdr()
435 from = (pjsip_from_hdr*) pjsip_hdr_clone(tdata->pool, param_from); in pjsip_endpt_create_request_from_hdr()
437 to = (pjsip_to_hdr*) pjsip_hdr_clone(tdata->pool, param_to); in pjsip_endpt_create_request_from_hdr()
441 pjsip_hdr_clone(tdata->pool, param_contact); in pjsip_endpt_create_request_from_hdr()
445 call_id = pjsip_cid_hdr_create(tdata->pool); in pjsip_endpt_create_request_from_hdr()
447 pj_strdup(tdata->pool, &call_id->id, &param_call_id->id); in pjsip_endpt_create_request_from_hdr()
449 pj_create_unique_string(tdata->pool, &call_id->id); in pjsip_endpt_create_request_from_hdr()
451 cseq = pjsip_cseq_hdr_create(tdata->pool); in pjsip_endpt_create_request_from_hdr()
456 pjsip_method_copy(tdata->pool, &cseq->method, method); in pjsip_endpt_create_request_from_hdr()
459 init_request_throw(endpt, tdata, &cseq->method, target, from, to, in pjsip_endpt_create_request_from_hdr()
468 *p_tdata = tdata; in pjsip_endpt_create_request_from_hdr()
472 pjsip_tx_data_dec_ref(tdata); in pjsip_endpt_create_request_from_hdr()
485 pjsip_tx_data *tdata; in pjsip_endpt_create_response() local
508 status = pjsip_endpt_create_tdata( endpt, &tdata); in pjsip_endpt_create_response()
513 pjsip_tx_data_add_ref(tdata); in pjsip_endpt_create_response()
516 tdata->msg = msg = pjsip_msg_create(tdata->pool, PJSIP_RESPONSE_MSG); in pjsip_endpt_create_response()
521 pj_strdup(tdata->pool, &msg->line.status.reason, st_text); in pjsip_endpt_create_response()
526 tdata->rx_timestamp = rdata->pkt_info.timestamp; in pjsip_endpt_create_response()
533 new_via = (pjsip_via_hdr*)pjsip_hdr_clone(tdata->pool, via); in pjsip_endpt_create_response()
550 pjsip_msg_add_hdr(msg, (pjsip_hdr*) pjsip_hdr_clone(tdata->pool, rr)); in pjsip_endpt_create_response()
561 pjsip_msg_add_hdr(msg, (pjsip_hdr*) pjsip_hdr_clone(tdata->pool, hdr)); in pjsip_endpt_create_response()
564 hdr = (pjsip_hdr*) pjsip_hdr_clone(tdata->pool, rdata->msg_info.from); in pjsip_endpt_create_response()
568 to_hdr = (pjsip_to_hdr*) pjsip_hdr_clone(tdata->pool, rdata->msg_info.to); in pjsip_endpt_create_response()
582 hdr = (pjsip_hdr*) pjsip_hdr_clone(tdata->pool, rdata->msg_info.cseq); in pjsip_endpt_create_response()
586 *p_tdata = tdata; in pjsip_endpt_create_response()
588 PJ_LOG(5,(THIS_FILE, "%s created", pjsip_tx_data_get_info(tdata))); in pjsip_endpt_create_response()
599 const pjsip_tx_data *tdata, in pjsip_endpt_create_ack() argument
622 invite_msg = tdata->msg; in pjsip_endpt_create_ack()
644 tdata->msg->line.req.uri, in pjsip_endpt_create_ack()
890 PJ_DEF(pj_status_t) pjsip_get_request_dest(const pjsip_tx_data *tdata, in pjsip_get_request_dest() argument
896 PJ_ASSERT_RETURN(tdata->msg->type == PJSIP_REQUEST_MSG, in pjsip_get_request_dest()
903 pjsip_msg_find_hdr(tdata->msg, PJSIP_H_ROUTE, NULL); in pjsip_get_request_dest()
907 target_uri = tdata->msg->line.req.uri; in pjsip_get_request_dest()
910 return pjsip_get_dest_info(target_uri, tdata->msg->line.req.uri, in pjsip_get_request_dest()
911 (pj_pool_t*)tdata->pool, dest_info); in pjsip_get_request_dest()
922 PJ_DEF(pj_status_t) pjsip_process_route_set(pjsip_tx_data *tdata, in pjsip_process_route_set() argument
930 PJ_ASSERT_RETURN(tdata->msg->type == PJSIP_REQUEST_MSG, in pjsip_process_route_set()
942 if (tdata->saved_strict_route != NULL) { in pjsip_process_route_set()
943 pjsip_restore_strict_route_set(tdata); in pjsip_process_route_set()
945 PJ_ASSERT_RETURN(tdata->saved_strict_route==NULL, PJ_EBUG); in pjsip_process_route_set()
949 pjsip_msg_find_hdr(tdata->msg, PJSIP_H_ROUTE, NULL); in pjsip_process_route_set()
952 while (last_route_hdr->next != (void*)&tdata->msg->hdr) { in pjsip_process_route_set()
955 pjsip_msg_find_hdr(tdata->msg, PJSIP_H_ROUTE, in pjsip_process_route_set()
988 new_request_uri = tdata->msg->line.req.uri; in pjsip_process_route_set()
1002 tdata->saved_strict_route = first_route_hdr; in pjsip_process_route_set()
1010 target_uri = new_request_uri = tdata->msg->line.req.uri; in pjsip_process_route_set()
1014 status = pjsip_get_dest_info(target_uri, new_request_uri, tdata->pool, in pjsip_process_route_set()
1020 if (tdata->tp_sel.type != PJSIP_TPSELECTOR_NONE && tdata->tp_sel.u.ptr) { in pjsip_process_route_set()
1021 if (tdata->tp_sel.type == PJSIP_TPSELECTOR_TRANSPORT) in pjsip_process_route_set()
1022 dest_info->type = tdata->tp_sel.u.transport->key.type; in pjsip_process_route_set()
1023 else if (tdata->tp_sel.type == PJSIP_TPSELECTOR_LISTENER) in pjsip_process_route_set()
1024 dest_info->type = tdata->tp_sel.u.listener->type; in pjsip_process_route_set()
1030 if (new_request_uri && new_request_uri!=tdata->msg->line.req.uri) { in pjsip_process_route_set()
1031 pjsip_route_hdr *route = pjsip_route_hdr_create(tdata->pool); in pjsip_process_route_set()
1033 pjsip_uri_get_uri(tdata->msg->line.req.uri); in pjsip_process_route_set()
1037 pjsip_msg_add_hdr(tdata->msg, (pjsip_hdr*)route); in pjsip_process_route_set()
1038 tdata->msg->line.req.uri = (pjsip_uri*)new_request_uri; in pjsip_process_route_set()
1051 PJ_DEF(void) pjsip_restore_strict_route_set(pjsip_tx_data *tdata) in pjsip_restore_strict_route_set() argument
1056 if (tdata->saved_strict_route == NULL) { in pjsip_restore_strict_route_set()
1063 pjsip_msg_find_hdr(tdata->msg, PJSIP_H_ROUTE, NULL); in pjsip_restore_strict_route_set()
1068 tdata->saved_strict_route = NULL; in pjsip_restore_strict_route_set()
1074 while (last_route_hdr->next != (void*)&tdata->msg->hdr) { in pjsip_restore_strict_route_set()
1077 pjsip_msg_find_hdr(tdata->msg, PJSIP_H_ROUTE, in pjsip_restore_strict_route_set()
1087 tdata->msg->line.req.uri = last_route_hdr->name_addr.uri; in pjsip_restore_strict_route_set()
1088 pj_list_insert_before(first_route_hdr, tdata->saved_strict_route); in pjsip_restore_strict_route_set()
1092 tdata->saved_strict_route = NULL; in pjsip_restore_strict_route_set()
1101 pjsip_tx_data *tdata, in stateless_send_transport_cb() argument
1107 PJ_UNUSED_ARG(tdata); in stateless_send_transport_cb()
1108 pj_assert(tdata == stateless_data->tdata); in stateless_send_transport_cb()
1133 (tdata->dest_info.cur_addr<tdata->dest_info.addr.count-1); in stateless_send_transport_cb()
1152 pjsip_tx_data_dec_ref(tdata); in stateless_send_transport_cb()
1160 tdata->dest_info.cur_addr++; in stateless_send_transport_cb()
1164 if (tdata->dest_info.cur_addr >= tdata->dest_info.addr.count) { in stateless_send_transport_cb()
1171 pjsip_tx_data_dec_ref(tdata); in stateless_send_transport_cb()
1176 cur_addr = &tdata->dest_info.addr.entry[tdata->dest_info.cur_addr].addr; in stateless_send_transport_cb()
1177 cur_addr_type = tdata->dest_info.addr.entry[tdata->dest_info.cur_addr].type; in stateless_send_transport_cb()
1178 cur_addr_len = tdata->dest_info.addr.entry[tdata->dest_info.cur_addr].addr_len; in stateless_send_transport_cb()
1185 &tdata->tp_sel, in stateless_send_transport_cb()
1186 tdata, in stateless_send_transport_cb()
1194 via = (pjsip_via_hdr*) pjsip_msg_find_hdr( tdata->msg, in stateless_send_transport_cb()
1201 via = pjsip_via_hdr_create(tdata->pool); in stateless_send_transport_cb()
1202 pjsip_msg_insert_first_hdr(tdata->msg, (pjsip_hdr*)via); in stateless_send_transport_cb()
1205 if (tdata->msg->line.req.method.id == PJSIP_CANCEL_METHOD) { in stateless_send_transport_cb()
1216 via->branch_param.ptr = (char*)pj_pool_alloc(tdata->pool, in stateless_send_transport_cb()
1229 if (tdata->via_addr.host.slen > 0 && in stateless_send_transport_cb()
1230 (!tdata->via_tp || in stateless_send_transport_cb()
1231 tdata->via_tp == (void *)stateless_data->cur_transport)) in stateless_send_transport_cb()
1233 via->sent_by = tdata->via_addr; in stateless_send_transport_cb()
1238 tdata->via_tp = stateless_data->cur_transport; in stateless_send_transport_cb()
1245 tdata->via_tp = stateless_data->cur_transport; in stateless_send_transport_cb()
1246 tdata->via_addr = via->sent_by; in stateless_send_transport_cb()
1255 tdata->msg->type == PJSIP_REQUEST_MSG) in stateless_send_transport_cb()
1265 alias_param = PJ_POOL_ZALLOC_T(tdata->pool, pjsip_param); in stateless_send_transport_cb()
1274 pjsip_tx_data_invalidate_msg(tdata); in stateless_send_transport_cb()
1278 tdata, in stateless_send_transport_cb()
1285 sent = tdata->buf.cur - tdata->buf.start; in stateless_send_transport_cb()
1286 stateless_send_transport_cb( stateless_data, tdata, sent ); in stateless_send_transport_cb()
1294 stateless_send_transport_cb( stateless_data, tdata, sent ); in stateless_send_transport_cb()
1308 pjsip_tx_data *tdata = stateless_data->tdata; in stateless_send_resolver_callback() local
1316 pjsip_tx_data_dec_ref(tdata); in stateless_send_resolver_callback()
1321 if (addr && addr != &tdata->dest_info.addr) { in stateless_send_resolver_callback()
1322 pj_memcpy( &tdata->dest_info.addr, addr, in stateless_send_resolver_callback()
1325 pj_assert(tdata->dest_info.addr.count != 0); in stateless_send_resolver_callback()
1334 tdata->msg->type == PJSIP_REQUEST_MSG && in stateless_send_resolver_callback()
1335 tdata->dest_info.addr.count > 0 && in stateless_send_resolver_callback()
1336 tdata->dest_info.addr.entry[0].type == PJSIP_TRANSPORT_UDP) in stateless_send_resolver_callback()
1341 status = pjsip_tx_data_encode(tdata); in stateless_send_resolver_callback()
1347 pjsip_tx_data_dec_ref(tdata); in stateless_send_resolver_callback()
1352 len = (int)(tdata->buf.cur - tdata->buf.start); in stateless_send_resolver_callback()
1355 int count = tdata->dest_info.addr.count; in stateless_send_resolver_callback()
1359 pjsip_tx_data_get_info(tdata), in stateless_send_resolver_callback()
1368 pj_memcpy(&tdata->dest_info.addr.entry[i+count], in stateless_send_resolver_callback()
1369 &tdata->dest_info.addr.entry[i], in stateless_send_resolver_callback()
1370 sizeof(tdata->dest_info.addr.entry[0])); in stateless_send_resolver_callback()
1371 tdata->dest_info.addr.entry[i].type = PJSIP_TRANSPORT_TCP; in stateless_send_resolver_callback()
1373 tdata->dest_info.addr.count = count * 2; in stateless_send_resolver_callback()
1378 stateless_send_transport_cb( stateless_data, tdata, -PJ_EPENDING); in stateless_send_resolver_callback()
1390 pjsip_tx_data *tdata, in pjsip_endpt_send_request_stateless() argument
1398 PJ_ASSERT_RETURN(endpt && tdata, PJ_EINVAL); in pjsip_endpt_send_request_stateless()
1401 status = pjsip_process_route_set(tdata, &dest_info); in pjsip_endpt_send_request_stateless()
1406 stateless_data = PJ_POOL_ZALLOC_T(tdata->pool, pjsip_send_state); in pjsip_endpt_send_request_stateless()
1409 stateless_data->tdata = tdata; in pjsip_endpt_send_request_stateless()
1418 if (tdata->dest_info.addr.count == 0) { in pjsip_endpt_send_request_stateless()
1420 if (!tdata->dest_info.name.slen) { in pjsip_endpt_send_request_stateless()
1421 pj_strdup(tdata->pool, &tdata->dest_info.name, in pjsip_endpt_send_request_stateless()
1425 pjsip_endpt_resolve( endpt, tdata->pool, &dest_info, stateless_data, in pjsip_endpt_send_request_stateless()
1430 pjsip_tx_data_get_info(tdata))); in pjsip_endpt_send_request_stateless()
1432 &tdata->dest_info.addr); in pjsip_endpt_send_request_stateless()
1461 pjsip_tx_data *tdata; member
1477 (*sraw_data->app_cb)(sraw_data->app_token, sraw_data->tdata, in send_raw_resolver_callback()
1486 pjsip_tx_data_add_ref(sraw_data->tdata); in send_raw_resolver_callback()
1488 data_len = sraw_data->tdata->buf.cur - sraw_data->tdata->buf.start; in send_raw_resolver_callback()
1491 sraw_data->sel, sraw_data->tdata, in send_raw_resolver_callback()
1492 sraw_data->tdata->buf.start, data_len, in send_raw_resolver_callback()
1498 (*sraw_data->app_cb)(sraw_data->app_token, sraw_data->tdata, in send_raw_resolver_callback()
1501 (*sraw_data->app_cb)(sraw_data->app_token, sraw_data->tdata, in send_raw_resolver_callback()
1509 pjsip_tx_data_dec_ref(sraw_data->tdata); in send_raw_resolver_callback()
1524 pjsip_tx_data *tdata; in pjsip_endpt_send_raw_to_uri() local
1532 status = pjsip_endpt_create_tdata(endpt, &tdata); in pjsip_endpt_send_raw_to_uri()
1536 pjsip_tx_data_add_ref(tdata); in pjsip_endpt_send_raw_to_uri()
1539 pj_strdup_with_null(tdata->pool, &dst_uri, p_dst_uri); in pjsip_endpt_send_raw_to_uri()
1542 uri = pjsip_parse_uri(tdata->pool, dst_uri.ptr, dst_uri.slen, 0); in pjsip_endpt_send_raw_to_uri()
1544 pjsip_tx_data_dec_ref(tdata); in pjsip_endpt_send_raw_to_uri()
1549 status = pjsip_get_dest_info(uri, NULL, tdata->pool, &dest_info); in pjsip_endpt_send_raw_to_uri()
1551 pjsip_tx_data_dec_ref(tdata); in pjsip_endpt_send_raw_to_uri()
1556 tdata->buf.start = (char*) pj_pool_alloc(tdata->pool, data_len+1); in pjsip_endpt_send_raw_to_uri()
1557 tdata->buf.end = tdata->buf.start + data_len + 1; in pjsip_endpt_send_raw_to_uri()
1559 pj_memcpy(tdata->buf.start, raw_data, data_len); in pjsip_endpt_send_raw_to_uri()
1560 tdata->buf.cur = tdata->buf.start + data_len; in pjsip_endpt_send_raw_to_uri()
1563 sraw_data = PJ_POOL_ZALLOC_T(tdata->pool, struct send_raw_data); in pjsip_endpt_send_raw_to_uri()
1565 sraw_data->tdata = tdata; in pjsip_endpt_send_raw_to_uri()
1570 sraw_data->sel = PJ_POOL_ALLOC_T(tdata->pool, pjsip_tpselector); in pjsip_endpt_send_raw_to_uri()
1576 pj_strdup(tdata->pool, &tdata->dest_info.name, &dest_info.addr.host); in pjsip_endpt_send_raw_to_uri()
1581 pjsip_endpt_resolve( endpt, tdata->pool, &dest_info, sraw_data, in pjsip_endpt_send_raw_to_uri()
1697 static void send_response_transport_cb(void *token, pjsip_tx_data *tdata, in send_response_transport_cb() argument
1711 pjsip_tx_data_dec_ref(tdata); in send_response_transport_cb()
1727 pjsip_tx_data_dec_ref(send_state->tdata); in send_response_resolver_cb()
1738 &send_state->tdata->tp_sel, in send_response_resolver_cb()
1739 send_state->tdata, in send_response_resolver_cb()
1746 pjsip_tx_data_dec_ref(send_state->tdata); in send_response_resolver_cb()
1751 pj_memcpy(&send_state->tdata->dest_info.addr, addr, sizeof(*addr)); in send_response_resolver_cb()
1755 send_state->tdata, in send_response_resolver_cb()
1761 pj_ssize_t sent = send_state->tdata->buf.cur - in send_response_resolver_cb()
1762 send_state->tdata->buf.start; in send_response_resolver_cb()
1763 send_response_transport_cb(send_state, send_state->tdata, sent); in send_response_resolver_cb()
1768 send_response_transport_cb(send_state, send_state->tdata, -status); in send_response_resolver_cb()
1777 pjsip_tx_data *tdata, in pjsip_endpt_send_response() argument
1788 send_state = PJ_POOL_ZALLOC_T(tdata->pool, pjsip_send_state); in pjsip_endpt_send_response()
1790 send_state->tdata = tdata; in pjsip_endpt_send_response()
1798 status = pjsip_transport_send( send_state->cur_transport, tdata, in pjsip_endpt_send_response()
1804 pj_ssize_t sent = tdata->buf.cur - tdata->buf.start; in pjsip_endpt_send_response()
1805 send_response_transport_cb(send_state, tdata, sent); in pjsip_endpt_send_response()
1816 if (!tdata->dest_info.name.slen) { in pjsip_endpt_send_response()
1817 pj_strdup(tdata->pool, &tdata->dest_info.name, in pjsip_endpt_send_response()
1821 pjsip_endpt_resolve(endpt, tdata->pool, &res_addr->dst_host, in pjsip_endpt_send_response()
1832 pjsip_tx_data *tdata, in pjsip_endpt_send_response2() argument
1839 status = pjsip_get_response_addr(tdata->pool, rdata, &res_addr); in pjsip_endpt_send_response2()
1841 pjsip_tx_data_dec_ref(tdata); in pjsip_endpt_send_response2()
1845 status = pjsip_endpt_send_response(endpt, &res_addr, tdata, token, cb); in pjsip_endpt_send_response2()
1862 pjsip_tx_data *tdata; in pjsip_endpt_respond_stateless() local
1877 &tdata); in pjsip_endpt_respond_stateless()
1885 pjsip_msg_add_hdr(tdata->msg, in pjsip_endpt_respond_stateless()
1886 (pjsip_hdr*) pjsip_hdr_clone(tdata->pool, hdr) ); in pjsip_endpt_respond_stateless()
1893 tdata->msg->body = pjsip_msg_body_clone( tdata->pool, body ); in pjsip_endpt_respond_stateless()
1894 if (tdata->msg->body == NULL) { in pjsip_endpt_respond_stateless()
1895 pjsip_tx_data_dec_ref(tdata); in pjsip_endpt_respond_stateless()
1901 status = pjsip_get_response_addr( tdata->pool, rdata, &res_addr ); in pjsip_endpt_respond_stateless()
1903 pjsip_tx_data_dec_ref(tdata); in pjsip_endpt_respond_stateless()
1908 status = pjsip_endpt_send_response( endpt, &res_addr, tdata, NULL, NULL ); in pjsip_endpt_respond_stateless()
1910 pjsip_tx_data_dec_ref(tdata); in pjsip_endpt_respond_stateless()