[SR-Users] start_recording and stop_recording inside event_route[xhttp:request]

Daniel-Constantin Mierla miconda at gmail.com
Wed May 5 18:30:44 CEST 2021


Hello,

ok, good that it works now. You should still be able to take them from
headers with $ci and $ft, but they have to be provided in the parameter
of start_recording()/stop_recording() if used with a non-SIP message.

Cheers,
Daniel

On 05.05.21 18:20, Володимир Іванець wrote:
> Hello,
>
> I did not. I misunderstood your previous message. Now I called
> start_recording() and stop_recording() with /call-id/ and
> /from-tag/ flags and everything worked fine.
>
> Thank you very much!
>
> ср, 5 трав. 2021 о 16:46 Daniel-Constantin Mierla <miconda at gmail.com
> <mailto:miconda at gmail.com>> пише:
>
>     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 at 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 at 127.0.0.1:5080.0
>>         <mailto:249ae6300da4b1393be203e21068f6a2 at 127.0.0.1:5080.0>"
>>         -H "To: sip:456 at 127.0.0.1:5060
>>         <http://sip:456@127.0.0.1:5060>" -H "From:
>>         <sip:123 at 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 at 127.0.0.1:5080.0>
>>         <mailto:/CALL_RECORD_START/249ae6300da4b1393be203e21068f6a2 at 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 at 127.0.0.1:5080.0/
>>         /May  5 14:40:43 test /usr/sbin/kamailio[19603]: DEBUG:
>>         <script>:
>>         call-id=249ae6300da4b1393be203e21068f6a2 at 127.0.0.1:5080.0
>>         <mailto:call-id=249ae6300da4b1393be203e21068f6a2 at 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
>>     <miconda at gmail.com <mailto:miconda at 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 at 127.0.0.1:5080.1
>>>>             <mailto:38687ab466a031d20d852706710d2b4f at 127.0.0.1:5080.1>"
>>>>             -H "To: sip:200-test at 127.0.0.1:5060
>>>>             <http://sip:200-test@127.0.0.1:5060>" -H "From:
>>>>             <sip:2564286000 at 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 at 127.0.0.1:5060 <http://sip:456@127.0.0.1:5060>"
>>>>             -H "From: <sip:123 at 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 at 127.0.0.1:5080.0>
>>>>             <mailto:/CALL_RECORD_START/7a444c165953cf0a196e10e50d0b611e at 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 at 127.0.0.1:5080.0>
>>>>             <mailto:/CALL_RECORD_START/7a444c165953cf0a196e10e50d0b611e at 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 at 127.0.0.1:5080.0/
>>>>             /Apr 29 16:01:47 test /usr/sbin/kamailio[24116]: DEBUG:
>>>>             <script>:
>>>>             call-id=7a444c165953cf0a196e10e50d0b611e at 127.0.0.1:5080.0
>>>>             <mailto:call-id=7a444c165953cf0a196e10e50d0b611e at 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
>>>>         <miconda at gmail.com <mailto:miconda at 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 at 127.0.0.1:5080.0
>>>>>                 <mailto:call-id=3de74068278ede4417086eb82bdf5a06 at 127.0.0.1:5080.0>/
>>>>>
>>>>>
>>>>>             Thank you!
>>>>>
>>>>>             чт, 29 квіт. 2021 о 09:58 Daniel-Constantin Mierla
>>>>>             <miconda at gmail.com <mailto:miconda at 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
>>>>>>                 <rfuchs at sipwise.com <mailto:rfuchs at 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 at lists.kamailio.org
>>>>>>                     <mailto:sr-users at 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 at lists.kamailio.org <mailto:sr-users at 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 <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/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20210505/6a1a293e/attachment.htm>


More information about the sr-users mailing list