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;
}
In this case, Kamailio will log errors and will not send the Rtpengine command to start call recording. Apr 27 18:25:00 test /usr/sbin/kamailio[5347]: DEBUG: <script>: call-id=3de74068278ede4417086eb82bdf5a06@127.0.0.1:5080.0
Apr 27 18:25:00
test /usr/sbin/kamailio[5347]: DEBUG: <core> [core/parser/msg_parser.c:89]: get_hdr_field(): found end of header
Apr 27 18:25:00
test /usr/sbin/kamailio[5347]: ERROR: rtpengine [rtpengine_funcs.c:294]: get_callid(): call-id not found
Apr 27 18:25:00
test /usr/sbin/kamailio[5347]: ERROR: rtpengine [rtpengine.c:2383]: rtpp_function_call(): can't get Call-Id field
Have anyone tried to call functions start_recording and stop_recording inside event_route[xhttp:request]?
Thanks a lot!