Hello, do you pass "from-tag=xyz" to the start_recording() function?
Cheers, Daniel On 05.05.21 13:51, Володимир Іванець wrote: > Hello Daniel, > > Sorry, I was out of the office and could make a test only now. As you > told, the HTTP request is now processed differently. Unfortunately, I > can no longer start call recording. I tried the following options and > got the "rtpp_function_call(): can't get From tag" error message each > time. > > 1. /usr/bin/curl -H "Content-Type: text" > > "http://localhost:8088/CALL_RECORD_START/249ae6300da4b1393be203e21068f6a2@127.0.0.1:5080.0 > > <http://localhost:8088/CALL_RECORD_START/249ae6300da4b1393be203e21068f6a2@127.0.0.1:5080.0>" > 2. /usr/bin/curl -H "Content-Type: text" > > "http://localhost:8088/CALL_RECORD_START/249ae6300da4b1393be203e21068f6a2@127.0.0.1:5080.0 > > <http://localhost:8088/CALL_RECORD_START/249ae6300da4b1393be203e21068f6a2@127.0.0.1:5080.0>" > -H "From: <sip:123@127.0.0.1:5080 > <http://sip:123@127.0.0.1:5080>>;tag=1" > 3. /usr/bin/curl -H "Content-Type: text" > > "http://localhost:8088/CALL_RECORD_START/249ae6300da4b1393be203e21068f6a2@127.0.0.1:5080.0 > > <http://localhost:8088/CALL_RECORD_START/249ae6300da4b1393be203e21068f6a2@127.0.0.1:5080.0>" > -H "Call-Id: 249ae6300da4b1393be203e21068f6a2@127.0.0.1:5080.0" -H > "To: sip:456@127.0.0.1:5060 <http://sip:456@127.0.0.1:5060>" -H > "From: <sip:123@127.0.0.1:5080 <http://sip:123@127.0.0.1:5080>>;tag=1" > > > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/parser/parse_fline.c:250]: parse_first_line(): first line > type 1 (request) flags 2/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/parser/msg_parser.c:677]: parse_msg(): SIP Request:/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/parser/msg_parser.c:679]: parse_msg(): method: <GET>/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/parser/msg_parser.c:681]: parse_msg(): uri: > </CALL_RECORD_START/249ae6300da4b1393be203e21068f6a2@127.0.0.1:5080.0>/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/parser/msg_parser.c:683]: parse_msg(): version: <HTTP/1.1>/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/parser/parse_hname2.c:294]: parse_sip_header_name(): parsed > header name [Via] type 1/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/parser/parse_via.c:2639]: parse_via(): end of header > reached, state=5/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/parser/msg_parser.c:555]: parse_headers(): Via found, flags=2/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/parser/msg_parser.c:557]: parse_headers(): this is the first > via/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <script>: > == TRACE. xhttp:request/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <script>: > == TRACE. xhttp:request. HTTP Request Received/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <script>: > == TRACE. xhttp:request. hu is: > /CALL_RECORD_START/249ae6300da4b1393be203e21068f6a2@127.0.0.1:5080.0/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <script>: > call-id=249ae6300da4b1393be203e21068f6a2@127.0.0.1:5080.0 1111111111/ > /*May 5 14:40:43 test /usr/sbin/kamailio[19603]: ERROR: rtpengine > [rtpengine.c:2547]: rtpp_function_call(): can't get From tag*/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: xhttp > [xhttp_mod.c:420]: xhttp_send_reply(): sending out response: 200 OK/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/parser/parse_hname2.c:294]: parse_sip_header_name(): parsed > header name [Host] type 0/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/parser/parse_hname2.c:294]: parse_sip_header_name(): parsed > header name [User-Agent] type 28/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/parser/parse_hname2.c:294]: parse_sip_header_name(): parsed > header name [Accept] type 23/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/parser/parse_hname2.c:294]: parse_sip_header_name(): parsed > header name [Content-Type] type 11/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/parser/msg_parser.c:91]: get_hdr_field(): found end of header/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/msg_translator.c:162]: check_via_address(): (127.0.0.1, > 127.0.0.1, 0)/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/tcp_main.c:1590]: _tcpconn_find(): found connection by id: 5/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/tcp_main.c:2472]: tcpconn_send_put(): send from reader > (19603 (27)), reusing fd/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/tcp_main.c:2706]: tcpconn_do_send(): sending.../ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/tcp_main.c:2739]: tcpconn_do_send(): after real write: c= > 0x7f4ba719cd70 n=118 fd=10/ > /May 5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG: <core> > [core/tcp_main.c:2740]: tcpconn_do_send(): buf=/ > / > / > / > / > > Thank you! > > пт, 30 квіт. 2021 о 17:53 Daniel-Constantin Mierla <mico...@gmail.com > <mailto:mico...@gmail.com>> пише: > > I pushed a commit to master branch that should make it work to use > the function for non-SIP message processing, by giving call-id=... > and from-tag=... via flags parameter -- these two attributes > seemed to be used by expecting to be set, even if the rtpengine > application may ignore one of them. > > If you have a chance to test, let me know the result. > > Cheers, > Daniel > > On 29.04.21 16:38, Daniel-Constantin Mierla wrote: >> >> I looked in the code and indeed it first takes the values from >> headers for Call-Id, To (tag), From (tag), failing if the headers >> are not found, but then it updates the values from the flags >> parameter. So the call-id can be anything in the headers if you >> provide it as "call-id=xyz" parameter. >> >> Maybe the code should be reworked a bit to parse first the flags >> parameters and if values are not found for the sip attributes, >> then try to get them from headers. >> >> Cheers, >> Daniel >> >> On 29.04.21 15:39, Володимир Іванець wrote: >>> I run Kamailio with debug=3 and Rtpengine with LOG_LEVEL=6. >>> >>> Rtpengine logs offers, answers and deletes but there is nothing >>> when I trigger /start_recording/ with HTTP request. Below is the >>> full Kamailio log for the request. It looks to be failing right >>> on the /start_recording/ function and I don't see any other >>> issues except empty Call-Id here: "receive_msg(): --- received >>> sip message - request - call-id: [] - cseq: []". >>> >>> I tried to add Call-Id header to my HTTP request and found out >>> that now rtpengine module will complain about missing To header. >>> With tries and errors, I specified all required headers and >>> Rtpengine started call recording: >>> >>> //usr/bin/curl -H "Content-Type: text" >>> >>> "http://localhost:8088/CALL_RECORD_START/38687ab466a031d20d852706710d2b4f@127.0.0.1:5080.1 >>> >>> <http://localhost:8088/CALL_RECORD_START/38687ab466a031d20d852706710d2b4f@127.0.0.1:5080.1>" >>> -H "Call-Id: >>> 38687ab466a031d20d852706710d2b4f@127.0.0.1:5080.1 >>> <mailto:38687ab466a031d20d852706710d2b4f@127.0.0.1:5080.1>" >>> -H "To: sip:200-test@127.0.0.1:5060 >>> <http://sip:200-test@127.0.0.1:5060>" -H "From: >>> <sip:2564286000@127.0.0.1:5080 >>> <http://sip:2564286000@127.0.0.1:5080>>;tag=as7a92114c"/ >>> >>> >>> It also looks like rtpengine module does not care about actual >>> header values. Function /start_recording/ called with Call-Id >>> value is enough to start call recording even if all headers >>> contain random invalid values: >>> >>> / /usr/bin/curl -H "Content-Type: text" >>> >>> "http://localhost:8088/CALL_RECORD_START/6559572e21e08e0a41503ba5779c6604@127.0.0.1:5080.0 >>> >>> <http://localhost:8088/CALL_RECORD_START/6559572e21e08e0a41503ba5779c6604@127.0.0.1:5080.0>" >>> -H "Call-Id: does_mot_matter" -H "To: sip:456@127.0.0.1:5060 >>> <http://sip:456@127.0.0.1:5060>" -H "From: >>> <sip:123@127.0.0.1:5080 <http://sip:123@127.0.0.1:5080>>;tag=1"/ >>> >>> >>> *Thank you very much for your help!* >>> >>> >>> >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24120]: DEBUG: >>> <core> [core/ip_addr.c:229]: print_ip(): tcpconn_new: new >>> tcp connection: 127.0.0.1/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24120]: DEBUG: >>> <core> [core/tcp_main.c:1175]: tcpconn_new(): on port 42782, >>> type 2, socket 64/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24120]: DEBUG: >>> <core> [core/tcp_main.c:1498]: tcpconn_add(): hashes: >>> 1710:1616:2551, 1/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24120]: DEBUG: >>> <core> [core/io_wait.h:375]: io_watch_add(): DBG: >>> io_watch_add(0xae63a0, 64, 2, 0x7f943ba04ac0), fd_no=50/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24120]: DEBUG: >>> <core> [core/io_wait.h:600]: io_watch_del(): DBG: >>> io_watch_del (0xae63a0, 64, -1, 0x0) fd_no=51 called/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24120]: DEBUG: >>> <core> [core/tcp_main.c:4457]: handle_tcpconn_ev(): sending >>> to child, events 1/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24120]: DEBUG: >>> <core> [core/tcp_main.c:4130]: send2child(): selected tcp >>> worker idx:0 proc:35 pid:24116 for activity on >>> [tcp:127.0.0.1:8088 <http://127.0.0.1:8088>], 0x7f943ba04ac0/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/tcp_read.c:1749]: handle_io(): received n=8 >>> con=0x7f943ba04ac0, fd=13/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/parser/msg_parser.c:610]: parse_msg(): SIP >>> Request:/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/parser/msg_parser.c:612]: parse_msg(): method: >>> <GET>/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/parser/msg_parser.c:614]: parse_msg(): uri: >>> >>> >>> </CALL_RECORD_START/7a444c165953cf0a196e10e50d0b611e@127.0.0.1:5080.0> >>> >>> <mailto:/CALL_RECORD_START/7a444c165953cf0a196e10e50d0b611e@127.0.0.1:5080.0>/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/parser/msg_parser.c:616]: parse_msg(): >>> version: <HTTP/1.1>/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/parser/msg_parser.c:89]: get_hdr_field(): found >>> end of header/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/receive.c:324]: receive_msg(): --- received sip >>> message - request - call-id: [] - cseq: []/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> xhttp [xhttp_mod.c:382]: xhttp_handler(): new fake msg >>> created (286 bytes):/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/parser/msg_parser.c:610]: parse_msg(): SIP >>> Request:/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/parser/msg_parser.c:612]: parse_msg(): method: >>> <GET>/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/parser/msg_parser.c:614]: parse_msg(): uri: >>> >>> >>> </CALL_RECORD_START/7a444c165953cf0a196e10e50d0b611e@127.0.0.1:5080.0> >>> >>> <mailto:/CALL_RECORD_START/7a444c165953cf0a196e10e50d0b611e@127.0.0.1:5080.0>/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/parser/msg_parser.c:616]: parse_msg(): >>> version: <HTTP/1.1>/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/parser/parse_via.c:2639]: parse_via(): end of >>> header reached, state=5/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/parser/msg_parser.c:498]: parse_headers(): Via >>> found, flags=2/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/parser/msg_parser.c:500]: parse_headers(): this >>> is the first via/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <script>: == TRACE. xhttp:request/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <script>: == TRACE. xhttp:request. HTTP Request Received/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <script>: == TRACE. xhttp:request. hu is: >>> >>> /CALL_RECORD_START/7a444c165953cf0a196e10e50d0b611e@127.0.0.1:5080.0/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <script>: >>> call-id=7a444c165953cf0a196e10e50d0b611e@127.0.0.1:5080.0 >>> <mailto:call-id=7a444c165953cf0a196e10e50d0b611e@127.0.0.1:5080.0>/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/parser/msg_parser.c:89]: get_hdr_field(): found >>> end of header/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: ERROR: >>> rtpengine [rtpengine_funcs.c:294]: get_callid(): call-id not >>> found/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: ERROR: >>> rtpengine [rtpengine.c:2383]: rtpp_function_call(): can't >>> get Call-Id field/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> xhttp [xhttp_mod.c:441]: xhttp_send_reply(): sending out >>> response: 200 OK/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/msg_translator.c:161]: check_via_address(): >>> (127.0.0.1, 127.0.0.1, 0)/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/tcp_main.c:1590]: _tcpconn_find(): found >>> connection by id: 1/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/tcp_main.c:2472]: tcpconn_send_put(): send from >>> reader (24116 (35)), reusing fd/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/tcp_main.c:2706]: tcpconn_do_send(): sending.../ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/tcp_main.c:2739]: tcpconn_do_send(): after real >>> write: c= 0x7f943ba04ac0 n=113 fd=13/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/tcp_main.c:2740]: tcpconn_do_send(): buf=/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/usr_avp.c:636]: destroy_avp_list(): destroying >>> list (nil)/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/usr_avp.c:636]: destroy_avp_list(): destroying >>> list (nil)/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/usr_avp.c:636]: destroy_avp_list(): destroying >>> list (nil)/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/usr_avp.c:636]: destroy_avp_list(): destroying >>> list (nil)/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/usr_avp.c:636]: destroy_avp_list(): destroying >>> list (nil)/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/usr_avp.c:636]: destroy_avp_list(): destroying >>> list (nil)/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/xavp.c:539]: xavp_destroy_list(): destroying >>> xavp list (nil)/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/xavp.c:539]: xavp_destroy_list(): destroying >>> xavp list (nil)/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/xavp.c:539]: xavp_destroy_list(): destroying >>> xavp list (nil)/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/receive.c:528]: receive_msg(): cleaning up/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/io_wait.h:375]: io_watch_add(): DBG: >>> io_watch_add(0xb2a640, 13, 2, 0x7f943ba04ac0), fd_no=1/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24120]: DEBUG: >>> <core> [core/tcp_main.c:3793]: handle_ser_child(): read >>> response= 7f943ba04ac0, -1, fd -1 from 35 (24116)/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/io_wait.h:600]: io_watch_del(): DBG: >>> io_watch_del (0xb2a640, 13, -1, 0x10) fd_no=2 called/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/tcp_read.c:1890]: handle_io(): removing from >>> list 0x7f943ba04ac0 id 1 fd 13, state -1, flags 4028, main >>> fd -1, refcnt 1 ([127.0.0.1]:42782 -> [127.0.0.1]:8088)/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/tcp_read.c:1671]: release_tcpconn(): releasing >>> con 0x7f943ba04ac0, state -2, fd=13, id=1 ([127.0.0.1]:42782 >>> -> [127.0.0.1]:8088)/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG: >>> <core> [core/tcp_read.c:1672]: release_tcpconn(): extra_data >>> (nil)/ >>> /Apr 29 16:01:47 test /usr/sbin/kamailio[24120]: DEBUG: >>> <core> [core/tcp_main.c:3560]: handle_tcp_child(): reader >>> response= 7f943ba04ac0, -2 from 0/ >>> >>> >>> чт, 29 квіт. 2021 о 13:17 Daniel-Constantin Mierla >>> <mico...@gmail.com <mailto:mico...@gmail.com>> пише: >>> >>> Ohhh, blindly missed the assignment before. You should run >>> both kamailio and rtpengine with higher debug level and see >>> if you get any hints from the log messages. >>> >>> Cheers, >>> Daniel >>> >>> On 29.04.21 11:51, Володимир Іванець wrote: >>>> Hello Daniel, >>>> >>>> That is correct. My /$var(call_id)/ variable contains >>>> concatenation of the "call-id=" string and a Call-Id value. >>>> >>>> /Apr 27 18:25:00 test /usr/sbin/kamailio[5347]: DEBUG: >>>> <script>: >>>> call-id=3de74068278ede4417086eb82bdf5a06@127.0.0.1:5080.0 >>>> >>>> <mailto:call-id=3de74068278ede4417086eb82bdf5a06@127.0.0.1:5080.0>/ >>>> >>>> >>>> Thank you! >>>> >>>> чт, 29 квіт. 2021 о 09:58 Daniel-Constantin Mierla >>>> <mico...@gmail.com <mailto:mico...@gmail.com>> пише: >>>> >>>> Hello, >>>> >>>> related to the initial config snippet example, the >>>> call-id is expected to be provide as a named flag, like: >>>> >>>> start_recording("call-id=$var(call_id)"); >>>> >>>> See the readme of the rtpengine module for more details. >>>> >>>> Cheers, >>>> Daniel >>>> >>>> On 29.04.21 08:23, Володимир Іванець wrote: >>>>> Hello Richard, >>>>> >>>>> Thank you very much for the suggestion! I will give it >>>>> a try. >>>>> >>>>> ср, 28 квіт. 2021, 20:00 користувач Richard Fuchs >>>>> <rfu...@sipwise.com <mailto:rfu...@sipwise.com>> пише: >>>>> >>>>> 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 >>>>> >>>>> <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 >>>>> <https://github.com/davehorton/rtpengine-client> >>>>> >>>>> Or you can hand-roll the request and talk to >>>>> rtpengine via HTTP or Websocket for example. >>>>> >>>>> Cheers >>>>> >>>>> __________________________________________________________ >>>>> Kamailio - Users Mailing List - Non Commercial >>>>> Discussions >>>>> * sr-users@lists.kamailio.org >>>>> <mailto:sr-users@lists.kamailio.org> >>>>> Important: keep the mailing list in the >>>>> recipients, do not reply only to the sender! >>>>> Edit mailing list options or unsubscribe: >>>>> * >>>>> >>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users >>>>> >>>>> <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users> >>>>> >>>>> >>>>> __________________________________________________________ >>>>> Kamailio - Users Mailing List - Non Commercial Discussions >>>>> * sr-users@lists.kamailio.org >>>>> <mailto:sr-users@lists.kamailio.org> >>>>> Important: keep the mailing list in the recipients, do not >>>>> reply only to the sender! >>>>> Edit mailing list options or unsubscribe: >>>>> * >>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users >>>>> <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users> >>>> >>>> -- >>>> Daniel-Constantin Mierla -- www.asipto.com >>>> <http://www.asipto.com> >>>> www.twitter.com/miconda <http://www.twitter.com/miconda> -- >>>> www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda> >>>> Kamailio Advanced Training - Online >>>> May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America >>>> Timezone) >>>> * >>>> https://www.asipto.com/sw/kamailio-advanced-training-online/ >>>> <https://www.asipto.com/sw/kamailio-advanced-training-online/> >>>> >>> -- >>> Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com> >>> www.twitter.com/miconda <http://www.twitter.com/miconda> -- >>> www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda> >>> Kamailio Advanced Training - Online >>> May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America >>> Timezone) >>> * https://www.asipto.com/sw/kamailio-advanced-training-online/ >>> <https://www.asipto.com/sw/kamailio-advanced-training-online/> >>> >> -- >> Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com> >> www.twitter.com/miconda <http://www.twitter.com/miconda> -- >> www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda> >> Kamailio Advanced Training - Online >> May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone) >> * https://www.asipto.com/sw/kamailio-advanced-training-online/ >> <https://www.asipto.com/sw/kamailio-advanced-training-online/> > > -- > Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com> > www.twitter.com/miconda <http://www.twitter.com/miconda> -- > www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda> > Kamailio Advanced Training - Online > May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone) > * https://www.asipto.com/sw/kamailio-advanced-training-online/ > <https://www.asipto.com/sw/kamailio-advanced-training-online/> > -- Daniel-Constantin Mierla -- www.asipto.com www.twitter.com/miconda -- www.linkedin.com/in/miconda Kamailio Advanced Training - Online May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone) * https://www.asipto.com/sw/kamailio-advanced-training-online/
__________________________________________________________ Kamailio - Users Mailing List - Non Commercial Discussions * sr-users@lists.kamailio.org Important: keep the mailing list in the recipients, do not reply only to the sender! Edit mailing list options or unsubscribe: * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users