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!