[OpenSIPS-Users] SIPREC start on 18x/SDP too early
Răzvan Crainea
razvan at opensips.org
Tue Jun 10 07:52:40 UTC 2025
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 at 192.168.48.161:5060;x-system=$(ru{uri.param,x-system}), sip:opensips-srs at 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 at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
More information about the Users
mailing list