[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