[SR-Users] start_recording and stop_recording inside event_route[xhttp:request]
Daniel-Constantin Mierla
miconda at gmail.com
Wed May 5 15:46:17 CEST 2021
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" -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>/
> /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 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
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/af980dcd/attachment.htm>
More information about the sr-users
mailing list