On 28/04/2021 10.53, [ EXT ] Володимир Іванець wrote:
Hello!

I'm testing call recording with Rtpengine. It works fine when the "record-call=on" flag is added to the rtpengine_offer or start_recording is used in the request_route.

But I was wondering if the call recording can be managed by a separate application. So I add the following lines to the event_route[xhttp:request] and triggered it with an HTTP request after the call was established. The call-id value was taken from the Rtpengine log and sent with the request.
  if ($hu =~ "^/CALL_RECORD_START/") {
    $var(call_id) = "call-id=" + $(hu{s.select,2,/});
    xlog("L_DBG", "$var(call_id)");
    start_recording($var(call_id));
    exit;
  }

If you have to reason to go through Kamailio for this, you can simply trigger the command from any other external application. There's a sample script included in the repo that can be used for this purpose directly (making use of the Perl module that is also included): https://github.com/sipwise/rtpengine/blob/master/utils/rtpengine-ng-client

There's also a nodejs client that I'm aware of: https://github.com/davehorton/rtpengine-client

Or you can hand-roll the request and talk to rtpengine via HTTP or Websocket for example.

Cheers