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

Function rtpengine_api_offer

modules/rtpengine/rtpengine.c:5056–5097  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5054}
5055
5056static int rtpengine_api_offer(struct rtp_relay_session *sess,
5057 struct rtp_relay_server *server, str *body,
5058 str *ip, str *type, str *in_iface, str *out_iface,
5059 str *global_flags, str *flags, str *extra_flags)
5060{
5061 struct rtpe_set* rset;
5062 str *newflags, *node;
5063 pv_value_t val;
5064 int ret;
5065
5066 RTPE_START_READ();
5067 if (!server->node.s) {
5068 node = NULL;
5069 rset = rtpengine_get_set(server->set);
5070 if (!rset) {
5071 LM_ERR("no rtpengine set availble!\n");
5072 RTPE_STOP_READ();
5073 return -1;
5074 }
5075 server->set = rset->id_set;
5076 } else {
5077 rset = select_rtpe_set(server->set);
5078 node = &server->node;
5079 }
5080 RTPE_STOP_READ();
5081
5082 newflags = rtpengine_get_call_flags(sess, type, in_iface, out_iface,
5083 global_flags, flags, extra_flags);
5084 if (!newflags)
5085 return -1;
5086 ret = rtpengine_offer_answer_body(sess->msg, newflags, node,
5087 &media_pvar, sess->body, body, rset, OP_OFFER);
5088 pkg_free(newflags->s);
5089 if (ret >= 0) {
5090 if (pv_get_spec_value(sess->msg, &media_pvar, &val) >= 0)
5091 fill_rtpengine_node(server, &val.rs);
5092 else
5093 LM_ERR("could not retrieve the value of the used rtpengine!\n");
5094 pv_set_value(sess->msg, &media_pvar, EQ_T, NULL);
5095 }
5096 return ret;
5097}
5098
5099static int rtpengine_api_answer(struct rtp_relay_session *sess,
5100 struct rtp_relay_server *server, str *body,

Callers

nothing calls this directly

Calls 7

rtpengine_get_setFunction · 0.85
select_rtpe_setFunction · 0.85
rtpengine_get_call_flagsFunction · 0.85
pv_get_spec_valueFunction · 0.85
fill_rtpengine_nodeFunction · 0.85
pv_set_valueFunction · 0.85

Tested by

no test coverage detected