#include "../../proxy.h"
#include "../../str.h"


Go to the source code of this file.
Typedefs | |
| typedef int(* | taddblind_f )() |
Functions | |
| int | add_blind_uac (void) |
| introduce a new uac, which is blind | |
| void | e2e_cancel (struct sip_msg *cancel_msg, struct cell *t_cancel, struct cell *t_invite) |
| int | e2e_cancel_branch (struct sip_msg *cancel_msg, struct cell *t_cancel, struct cell *t_invite, int branch) |
| unsigned int | get_on_branch (void) |
| int | t_forward_ack (struct sip_msg *p_msg) |
| int | t_forward_nonack (struct cell *t, struct sip_msg *p_msg, struct proxy_l *p) |
| void | t_on_branch (unsigned int go_to) |
| int | t_replicate (struct sip_msg *p_msg, str *dst, int flags) |
| Relay a replicated message. | |
Definition in file t_fwd.h.
| typedef int(* taddblind_f)() |
| int add_blind_uac | ( | void | ) |
introduce a new uac, which is blind
This UA only creates the data structures and starts FR timer, but that's it; it does not print messages and send anything anywhere; that is good for FIFO apps -- the transaction must look operationally and FR must be ticking, whereas the request is "forwarded" using a non-SIP way and will be replied the same way
Definition at line 278 of file t_fwd.c.
References cell::flags, get_t(), LM_ERR, MAX_BRANCHES, cell::nr_of_outgoings, REQ_FWDED, ua_client::request, set_kr(), start_retr(), T_BLIND_UAC, T_UNDEFINED, and cell::uac.
Referenced by load_tm(), t_write_req(), and t_write_unix().
| int e2e_cancel_branch | ( | struct sip_msg * | cancel_msg, | |
| struct cell * | t_cancel, | |||
| struct cell * | t_invite, | |||
| int | branch | |||
| ) |
Definition at line 462 of file t_fwd.c.
References ua_client::br_flags, retr_buf::buffer, retr_buf::dst, sip_msg::dst_uri, E_BUG, E_OUT_OF_MEM, sip_msg::first_line, sip_msg::flags, _str::len, len, LM_CRIT, LM_ERR, sip_msg::new_uri, sip_msg::parsed_uri_ok, ua_client::path_vec, sip_msg::path_vec, pkg_free, post_print_uac_request(), pre_print_uac_request(), print_uac_request(), dest_info::proto, msg_start::request, ua_client::request, _str::s, dest_info::send_sock, ser_error, msg_start::u, cell::uac, and ua_client::uri.
| unsigned int get_on_branch | ( | void | ) |
Definition at line 89 of file t_fwd.c.
References goto_on_branch.
Referenced by init_new_t(), and t_forward_nonack().
| int t_forward_ack | ( | struct sip_msg * | p_msg | ) |
Definition at line 571 of file t_fwd.c.
References add_uac(), retr_buf::buffer, cancel_invite(), check_blacklists(), clear_branches(), retr_buf::dst, sip_msg::dst_uri, E_BUG, E_IP_BLOCKED, E_NO_DESTINATION, E_SEND, cell::first_branch, sip_msg::flags, cell::flags, sip_msg::force_send_socket, get_branch(), get_next_su(), get_on_branch(), GET_RURI, getb0flags(), has_tran_tmcbs, ua_client::last_received, _str::len, LM_DBG, LM_ERR, METHOD_CANCEL, METHOD_INVITE, sip_msg::new_uri, no_new_branches, cell::nr_of_outgoings, cell::on_branch, sip_msg::parsed_uri_ok, sip_msg::path_vec, proxy_l::proto, dest_info::proto, ua_client::proxy, REQ_FWDED, ua_client::request, ua_server::request, run_trans_callbacks(), _str::s, SEND_BUFFER, ser_error, set_extra_tmcb_params(), set_kr(), setb0flags(), start_retr(), t_lookupOriginalT(), T_NULL_CELL, T_WAS_CANCELLED_FLAG, TMCB_REQUEST_BUILT, dest_info::to, cell::uac, cell::uas, update_uac_dst(), and was_cancelled.
Referenced by do_dns_failover(), t_relay_to(), and w_t_relay().
| void t_on_branch | ( | unsigned int | go_to | ) |
Definition at line 75 of file t_fwd.c.
References BRANCH_ROUTE, get_t(), goto_on_branch, cell::on_branch, route_type, and T_UNDEFINED.
Referenced by script_init(), and w_t_on_branch().
Relay a replicated message.
Relay a replicated message. We just take the message as is, including Route-s, Record-route-s, and Vias, forward it downstream and prevent replies received from relaying by setting the replication/local_trans bit.
| p_msg | replicated message | |
| dst | destination | |
| flags | message flags |
Definition at line 750 of file t_fwd.c.
References branch_uri2dset(), GET_RURI, LM_ERR, set_dst_uri(), t_relay_to(), and TM_T_REPLY_repl_FLAG.
Referenced by w_t_replicate().
1.5.6