MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / rtpproxy_offer_answer

Function rtpproxy_offer_answer

modules/rtpproxy/rtpproxy.c:3592–4476  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3590 } while (0)
3591
3592static int rtpproxy_offer_answer(struct sip_msg *msg, struct rtpp_args *args,
3593 pv_spec_t *var, pv_spec_t *ipvar, str *body, str *bind_local)
3594{
3595 str body1, oldport, oldip, newport, newip ,nextport;
3596 str tmp, payload_types;
3597 int create, port, len, asymmetric, flookup, argc, proxied, real;
3598 int orgip, commip, enable_notification, keep_body;
3599 int pf, pf1, force, err, locked = 0;
3600 struct options opts, rep_opts, pt_opts, m_opts, t_opts, mod_opts;
3601 char *cp, *cp1;
3602 char *cpend, *next;
3603 char **ap, *argv[10];
3604 struct lump* anchor;
3605 struct rtpproxy_vcmd vup;
3606 RTPP_VCMD_INIT(vup, 25,
3607 {NULL, 0}, /* command & common options */
3608 {NULL, 0}, /* per-media/per-node options 1 */
3609 {NULL, 0}, /* per-media/per-node options 2 */
3610 {NULL, 0}, /* per-media/per-node options 3 */
3611 {" ", 1}, /* separator */
3612 {NULL, 0}, /* callid */
3613 {" ", 1}, /* separator */
3614 {NULL, 7}, /* newip */
3615 {" ", 1}, /* separator */
3616 {NULL, 1}, /* oldport */
3617 {" ", 1}, /* separator */
3618 {NULL, 0}, /* from_tag */
3619 {";", 1}, /* separator */
3620 {NULL, 0}, /* medianum */
3621 {" ", 1}, /* separator */
3622 {NULL, 0}, /* to_tag */
3623 {";", 1}, /* separator */
3624 {NULL, 0}, /* medianum */
3625 {" ", 1}, /* separator */
3626 {NULL, 0}, /* notify socket name */
3627 {" ", 1}, /* separator */
3628 {NULL, 0}, /* notify tag */
3629 {NULL, 0}, /* (optional) module separator */
3630 {NULL, 0}, /* (optional) DTMF tag */
3631 {NULL, 0} /* (optional) module opts */
3632 );
3633 char *v1p, *v2p, *c1p, *c2p, *m1p, *m2p, *bodylimit, *o1p, *r2p, *newbody;
3634 char medianum_buf[20];
3635 char buf[32], dbuf[128];
3636 int medianum, media_multi;
3637 str medianum_str, tmpstr1;
3638 int c1p_altered;
3639 int enable_dtmf_catch = 0;
3640 int node_has_notification, node_has_dtmf_catch = 0;
3641 int vcnt;
3642 pv_value_t val;
3643 char *adv_address = NULL;
3644 struct dlg_cell * dlg;
3645 str dtmf_tag = {0, 0}, timeout_tag = {0, 0};
3646 str rn_name = rtpp_notify_cfg.name;
3647 int allocated_body = 0;
3648 str *did;
3649 int ret = -1;

Callers 3

force_rtp_proxy_bodyFunction · 0.85
rtpproxy_api_offerFunction · 0.85
rtpproxy_api_answerFunction · 0.85

Calls 15

append_optsFunction · 0.85
append_opts_strFunction · 0.85
init_strFunction · 0.85
l_memmemFunction · 0.85
trim_leadingFunction · 0.85
find_next_sdp_lineFunction · 0.85
find_sdp_lineFunction · 0.85
find_sdp_line_complexFunction · 0.85
extract_mediaipFunction · 0.85
extract_mediainfoFunction · 0.85
ip_addr2aFunction · 0.85
select_rtpp_nodeFunction · 0.85

Tested by

no test coverage detected