Hi Everyone!
Some tricks now made my day today, e.g. remove a=mid:* from SDP to get both
directions with rtpengine.
Finally I do:
if (is_method("INVITE") && $ru=~"sip:.*@.*;maddr=.*" &&
$(ru{uri.param,maddr}{s.len})) {
# inbound call
create_dialog();
$siprec(group) = "webrtc-loop-in";
$rtp_relay_ctx(callid) = "srs-i-"+$ci;
xlog("L_INFO", ">> created originating dialog and set
ctx(callid)=$rtp_relay_ctx(callid)");
route(setup_rec);
$du = "sip:"+$(ru{uri.param,maddr})+":"+$rp;
route(relay);
}
route[setup_rec] {
# https://www.opensips.org/Documentation/Tutorials-SIPREC-2-4
# remove mid:0 - offer/answer w/ same mid:0 mixes up labels and returns
single m= line -> will be fixed in rtpengine ...
$rtp_relay_ctx(flags) = "sdp-attr-remove-audio-mid
sdp-attr-remove-video-mid sdp-attr-remove-audio-msid
sdp-attr-remove-video-msid";
rtp_relay_engage("rtpengine");
$avp(x-system) = $(ru{uri.param,x-system}); # without a x-system we do
have a problem here. It MUST be present
t_on_reply("setup_rec");
}
onreply_route[setup_rec] {
if ($rs=="200") {
xlog("L_INFO", "Start recording on 200 OK"); # otherwise the
recording would start right after the first 18x with SDP
#
https://opensips.org/docs/modules/3.6.x/siprec.html#func_siprec_start_recording
$siprec(headers) = "X-Call-ID: "+$ci+"\r\n";
$siprec(from_uri) = $fu;
$siprec(to_uri) = $tu;
# not only IP address but also RTPEngine flags can be set for
the SRS leg here
# sdp-media-remove=video sends "sdp-media-remove": "video"
instead of "sdp-media-remove": [ "video" ] -> video is not removed - no
solution yet
$siprec(media) = "allow-transcoding asymmetric
sdp-media-remove=video";
siprec_start_recording("sip:[email protected]:5060;x-system=$avp(x-system)");
}
}
All singing all dancing except WebRTC Video Calls. The Video should be passed
by rptengine, but not sent to the SRS.
In the SIPREC XML body only the last two video sessions are referenced and
audio is missing:
audio forward is label:0, audio backward is label:1, video forward is label:2,
video backward is label:3 then - and SIPREC XML body refers to labels 2 and 3
only!
<stream stream_id="U/CQBPCgTPqtv2nreh7IJQ=="
session_id="ri+uAfKsTtWqLYTgSuRFlg==">
<label>2</label>
</stream>
<stream stream_id="9vbDRoEwT2esPjE9xcfK0Q=="
session_id="ri+uAfKsTtWqLYTgSuRFlg==">
<label>3</label>
</stream>
RTPENGINE expects "sdp-media-remove": [ "video“ ]. A LIST, not a STRING. I
tried several variants to have a LIST in the NG protocol, but failed.
Is there any way to take „audio“ only into account for SRS?
Opensips version 3.6.3.
br
Walter
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users