Hi, Walter!
The answer is actually a mixed of both - initially, the module started
recording only on 200 OK - later on, there was a request to allow it on
183 as well, because it contains media too - this change has been made,
but apparently docs were not updated (most likely my bad here, apologies).
I've updated the documentation[1] with the correct statement, thanks for
pointing it out.
In order to start the recording only on 200 OK, you should only call
siprec_start_recording() in the onreply route processing the 200 OK.
Best regards,
Răzvan Crainea
OpenSIPS Core Developer / SIPhub CTO
http://www.opensips-solutions.com / https://www.siphub.com
On 6/5/25 3:22 PM, Walter Schober wrote:
Hi!
Acc to the docs
https://opensips.org/docs/modules/3.5.x/siprec.html#func_siprec_start_recording
the INVITE to the SRS should start on connect 200 OK.
But it starts as soon as a SDP body is replied in the recorded call. E.g. in
the 183/SDP or 180/SDP.
Is this intensionally and the documentation is wrong?
Can this be tweaked somehow to start on 200 OK?
Unfortunately our SRS cannot handle the call that early since it hasn’t got all
information to record the call at that moment.
Gladly the SIPREC Modul does another INVITE on 200 OK if the first one got
rejected - but I’m afraid that leads to some race conditions in some scenarios.
I’m using 3.5.5. Script is straight forward:
create_dialog();
$siprec(group) = "webrtc-loop-out";
$rtp_relay_ctx(callid) = "srs-o-"+$ci;
route(do_rec);
route[do_rec] {
# https://www.opensips.org/Documentation/Tutorials-SIPREC-2-4
# is not sent to „subscribe answer" anyway
# $rtp_relay(flags) = "callid="+$ci+" allow-transcoding asymmetric";
# $rtp_relay_peer(flags) = "callid="+$ci+" allow-transcoding asymmetric";
# is not sent to „subscribe answer" anyway
# $rtp_relay_ctx(flags) = "allow-transcoding asymmetric";
# $rtp_relay_ctx(flags) = "template=siprec"; # flags "siprec" only in
subscribe request, not in subscribe answer
rtp_relay_engage("rtpengine");
#
https://opensips.org/docs/modules/3.6.x/siprec.html#func_siprec_start_recording
$siprec(headers) = "X-Call-ID: "+$ci+"\r\n";
$xml(caller_xml) = "<nameID></nameID>";
$xml(caller_xml/nameID.attr/aor) = $fU+"@"+$fd"; # Communi5 does not
want any sip:, nor ports
if ($(fn{s.len})) $xml(caller_xml/nameID) = "<name>"+$fn+"</name>";
$siprec(caller) = $xml(caller_xml/nameID);
$xml(callee_xml) = "<nameID></nameID>";
$xml(callee_xml/nameID.attr/aor) = $tU+"@"+$td"; # Communi5 does not
want any sip:, nor ports
#$xml(callee_xml/nameID) = "<name></name>";
$siprec(callee) = $xml(callee_xml/nameID);
$siprec(from_uri) = $fu;
$siprec(to_uri) = $tu;
siprec_start_recording("sip:opensips-srs@192.168.48.161:5060;x-system=$(ru{uri.param,x-system}),
sip:opensips-srs@192.168.48.162:5060;x-system=$(ru{uri.param,x-system})");
}
br
Walter
P.S:: tried 3.6.0-beta, too. But 3.6.0 crashes on BYE and other situations, yet.
P.P.S.: 3.6.0 got events. Can I do something in those event_routes? This is not
clearly documented.
_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users