Giter Site home page Giter Site logo

drachtio-siprec-recording-server's People

Contributors

ajsyp avatar davehorton avatar fabian-borot avatar mickaelh51 avatar mtherieau-twilio avatar orgads avatar xquanluu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

drachtio-siprec-recording-server's Issues

redis entries are not deleted

Hi,
I use this application with Freeswitch. Entries created in the redis server are not deleted and stay forever even after the SIPREC call is terminated with BYE gracefully. It seems it's happening all the time. Will appreciate any help for this.
Thanks in advance.

expected multipart SIPREC body with Broadwaorks dual stream mode

Hello,
We encounter following error with Broadwoks in dual stream mode.

siprec | {"level":30,"time":1630397275169,"msg":"received SIPREC invite: sip:172.16.33.210:9024;transport=udp","pid":1,"hostname":"73106019324d","callid":"[email protected]","v":1}
siprec | {"level":50,"time":1630397275186,"msg":"Error connecting call: Error: expected multipart SIPREC body","pid":1,"hostname":"73106019324d","callid":"[email protected]","v":1}

Media section can be find bellow :

--UniqueBroadWorksBoundary
Content-Type:application/sdp
Content-Length:451

v=0
o=BroadWorks 6941 1 IN IP4 172.18.0.11
s=-
c=IN IP4 172.18.0.13
t=0 0
m=audio 11108 RTP/AVP 8 101 9 0
a=rtpmap:9 G722/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
a=sendonly
a=label:1
m=audio 11110 RTP/AVP 8 101 9 0
a=rtpmap:9 G722/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
a=sendonly
a=label:2

--UniqueBroadWorksBoundary--

Regards,
David.

can not use local freeswitch

I set up the drachtio-siprec app, the drachtio sip server and the freeswitch (FS) on the same machine. FS uses UDP 5080 and the drachtio server uses UDP 5060. When receiving a call the app complains: "can not send request to myself"

{"level":30,"time":1662675450965,"msg":"received SIPREC invite: sip:10.134.4.199:5060","pid":308169,"hostname":"ip-10-134-4-199","callid":"[email protected]","v":1} {"level":50,"time":1662675450983,"msg":"can not send request to myself Error connecting incoming SIPREC call to freeswitch","pid":308169,"hostname":"ip-10-134-4-199","callid":"[email protected]","v":1} (node:308169) UnhandledPromiseRejectionWarning: can not send request to myself
can they be on the same server ? what is the recommended set up?
Txs!

SIPREC Parsing gets an error of "Error connecting call: TypeError: Cannot read property '0' of undefined" due to inactive instead of sendonly

Hello,

We've recently experienced a use-case in which we've sent in our SIP-REC Invite the variable "inactive" instead of "sendonly", which crashed the SIPREC parsePayload function.

I'm currently using this commit(95a6e71 - link).

Maybe I didn't found by mistake, but are there any changes that allow for receiving inactive and still function regarding receiving the SIP-REC and process it?

Sincerely yours,
Ido Magor

Support for SRTP with rtpengine

I am using drachtio-server, this repo with RTPEngine. Siprec is working fine for me and the recording files are getting generated. I need to support SRTP with the existing setup. I know the configuration of certs at drachtio-server but not sure what configuration I need to do at rtpengine. Need help to make SRTP working.

Cannot read property 'user'

I have a system with openSIPS and rtpproxy infront of asterisk. Ive now setup drachtio, drachtio-siprec and rtpengine to record calls but drachtio-siprec is throwing the following type error.
{"level":50,"time":1544045350298,"msg":"Error connecting call: TypeError: Cannot read property 'user' of undefined","pid":8,"hostname":"siprec","callid":"B2B.312.2851794.1544045349","v":1}
Is this an issue with the siprec server or the data being passed during the sip invite by the opensips siprec module?

client sent invalid message -- JSON message length not specified properly

Hi,

We tried to use Drachtio with a Broadworks platform using SIPREC.
Here is the SIPREC content sent by Broadworks:

INVITE sip:172.16.33.210:9023;transport=tcp SIP/2.0
Via:SIP/2.0/TCP 172.19.0.11;branch=z9hG4bKBroadWorks.-112vbje-172.16.33.210V9023-0-82196506-923010692-1623662030899-
From:"CallingLineIdFirstName CallingLineIdLastName"sip:[email protected];tag=923010692-1623662030899-
To:sip:172.16.33.210:9023
Call-ID:[email protected]
CSeq:82196506 INVITE
Contact:sip:172.19.0.11:5060;transport=tcp;src
Privacy:none
Recv-Info:
X-BroadWorks-Correlation-Info:2f420dae-06ac-4ac0-8ee6-f23d959a9d7e
Accept:application/media_control+xml,application/sdp,application/x-broadworks-call-center+xml
Allow:ACK,BYE,CANCEL,INFO,INVITE,OPTIONS,PRACK,REFER,NOTIFY
Supported:
Max-Forwards:60
Content-Type:multipart/mixed;boundary=UniqueBroadWorksBoundary
Content-Length:2475
MIME-Version:1.0

--UniqueBroadWorksBoundary
Content-Type:application/rs-metadata+xml
Content-Disposition:recording-session
Content-Length:1964

completeSRCselectivesip:[email protected]:13:50+02:00sip:[email protected]:uuid:50decb38-89a5-468e-8e0d-9e78301618c2sip:[email protected];user=phoneurn:uuid:50decb38-89a5-468e-8e0d-9e78301618c21mixed2f420dae-06ac-4ac0-8ee6-f23d959a9d7e2255512345@99.abccallhalf-316217:0sip:[email protected]:[email protected];user=phonesip:[email protected]

--UniqueBroadWorksBoundary
Content-Type:application/sdp
Content-Length:263

v=0
o=BroadWorks 68 1 IN IP4 172.19.0.11
s=-
c=IN IP4 172.19.0.14
t=0 0
m=audio 10906 RTP/AVP 8 9 0 101
a=rtpmap:9 G722/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
a=sendonly
a=label:1

--UniqueBroadWorksBoundary--

Drachtio answers this:

drachtio | 2021-06-14 09:13:50.906253 ClientController::accept_handler_tcp - got connection
drachtio | 2021-06-14 09:13:50.906449 Client::start - Received connection from client at 172.32.0.1:38490
drachtio | 2021-06-14 09:13:50.906545 ClientController::join - Added client, count of connected clients is now: 1
drachtio | 2021-06-14 09:13:50.906649 ClientController::start_accept_tcp
drachtio | 2021-06-14 09:13:50.907251 Client::read_handler client sent invalid message -- JSON message length not specified properly
drachtio | 2021-06-14 09:13:50.907334 ClientController::leave - Removed client, count of connected clients is now: 0
drachtio | 2021-06-14 09:13:50.907474 BaseClient::~BaseClient

We didn't find any reason or documentation explaining why this "JSON message length not specified properly" error occurs.

Replaces drachtio/drachtio-server#159 that was created under wrong repo.

Can you help us to why this error happens and how to fix it please ?

Regards,
David

Possible to add TTL on keys into Redis

Hi,
I use your dev with freeswitch mode.
I want to add TTL to delete redis keys or delete it when I receive BYE.
But add TTL is simplest than delete key with BYE no ?

I'm not sure, but I think the redis data is used before the SIPREC 200OK generation. After that, I can delete key into redis....

thanks in advance

Some questions about this project

Hi, I'm looking for open source solutions of SIPREC and I test drachtio with dractio-siprec-recording-server along with RTPEngine. But I am confusing about how drachtio records the RTP stream. It seems that drachtio sends ng-protocol to tell RTPEngine to record locally. Is my understanding correct? But my understanding is that drachtio should do the recording of RTP stream, not RTPEngine

How to achieve real time streaming/processing of RTP Packets

Hello, I am very new to audio processing. I followed the project guide, and now I have Drachtio + RTPengine running on Docker and the node app running in my system. SBCs are configured to send traffic through and I am able to see call recording as PCAP inside the Docker container.
My question is after RTPengine allocates the Endpoints, I can parse the SDP to get the media ports for both caller and callee. I tried to pass that to ffmpeg to generate .wav files, but got Invalid Input error.
What can be done to have Real Time processing of the RTP streams?

ORACLE SBC + Drachtio + rtpengine - No connected clients found to handle incoming invite request

Hi Dave and thanks for this unique repo.

I am having this error above in title where my call is not being recorded and hope you can help.

this is complete log:

INVITE sip:10.116.28.171:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.50.140:5060;branch=z9hG4bKc835p1201oejvmt2e4i0
Max-Forwards: 70
Call-ID: [email protected]
To: sip:10.116.28.171:5060;transport=udp
Contact: sip:[email protected]:5060;transport=udp;+sip.src
From: sip:[email protected]:5060;tag=817c6996f978f421a0ca64181959e0c5
CSeq: 100021 INVITE
Require: siprec
Content-Type: multipart/mixed; boundary=unique-boundary-1
Content-Length: 1873
MIME-Version: 1.0

--unique-boundary-1
Content-Type: application/sdp

v=0
o=- 1300 112633 IN IP4 192.168.50.140
s=-
c=IN IP4 192.168.50.140
t=0 0
m=audio 20026 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=label:16777219
a=sendonly
m=audio 20030 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=maxptime:150
a=label:16777220
a=sendonly

--unique-boundary-1
Content-Type: application/rs-metadata+xml
Content-Disposition: recording-session

complete 2019-03-09T11:37:23 9000 KgEqFsw3SW1H4oLaSgPqKA== 2019-03-09T11:37:23 true 1002 O8ImD6Y6SEVHzyLEDisAlw== 2019-03-09T11:37:23 false 16777219 separate 2019-03-09T11:37:23 16777220 separate 2019-03-09T11:37:34 --unique-boundary-1-- 2019-03-09 12:42:11.659057 nta.c:2968 agent_recv_request() nta: received INVITE sip:10.116.28.171:5060 SIP/2.0 (CSeq 100021) 2019-03-09 12:42:11.659106 nta.c:3183 agent_recv_request() nta: INVITE (100021) to message callback 2019-03-09 12:42:11.659127 processMessageStatelessly - incoming message with call-id [email protected] does not match an existing call leg, processed in thread 140133265098880 2019-03-09 12:42:11.659326 send 325 bytes to udp/[192.168.50.140]:5060 at 12:42:11.659262: SIP/2.0 100 Trying Via: SIP/2.0/UDP 192.168.50.140:5060;branch=z9hG4bKc835p1201oejvmt2e4i0;rport=5060 From: ;tag=817c6996f978f421a0ca64181959e0c5 To: Call-ID: [email protected] CSeq: 100021 INVITE Content-Length: 0

2019-03-09 12:42:11.659390 No connected clients found to handle incoming invite request
2019-03-09 12:42:11.659419 processNewRequest - No providers available for INVITE
2019-03-09 12:42:11.659552 send 356 bytes to udp/[192.168.50.140]:5060 at 12:42:11.659516:
SIP/2.0 503 Service Unavailable
Via: SIP/2.0/UDP 192.168.50.140:5060;branch=z9hG4bKc835p1201oejvmt2e4i0;rport=5060
From: sip:[email protected]:5060;tag=817c6996f978f421a0ca64181959e0c5
To: sip:10.116.28.171:5060;transport=udp;tag=ZSXH7a2t1jNNc
Call-ID: [email protected]
CSeq: 100021 INVITE
Content-Length: 0

2019-03-09 12:42:11.660644 recv 361 bytes from udp/[192.168.50.140]:5060 at 12:42:11.660602:
ACK sip:10.116.28.171:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.50.140:5060;branch=z9hG4bKc835p1201oejvmt2e4i0
CSeq: 100021 ACK
Max-Forwards: 70
Call-ID: [email protected]
To: sip:10.116.28.171:5060;transport=udp;tag=ZSXH7a2t1jNNc
From: sip:[email protected]:5060;tag=817c6996f978f421a0ca64181959e0c5
Content-Length: 0

2019-03-09 12:42:11.660687 nta.c:2968 agent_recv_request() nta: received ACK sip:10.116.28.171:5060 SIP/2.0 (CSeq 100021)
2019-03-09 12:42:11.660714 nta.c:3183 agent_recv_request() nta: ACK (100021) to message callback
2019-03-09 12:42:11.660734 processMessageStatelessly - incoming message with call-id [email protected] does not match an existing call leg, processed in thread 140133265098880


Thanks and regards,
I

Error: expected multipart SIPREC body

I run test with command : npm test
and i receiver error: expected multipart SIPREC body
i was debuged and i saw error in file test/parser.js line 35
////
const segments = data.split(\n${delimiter});
const regex = /.Content-Type:\s+(.)\n.\n([\s\S.])$/;
const req = { payload: [] };

  for (let i = 1; i < segments.length; i++) {
    const arr = regex.exec(segments[i]);
    if (!arr) {
      continue;
    }
    req.payload.push({ type: arr[1], content: arr[2] });
  }

///
arr alway null
so payload null and show error.
please help me. thank a alot.

SIPREC and return audio as response

As I see I can use this to receive audio and process it.
Can I also use this to return a audio Stream?

For better understanding I have the following problem:
I want to have a "bot" that receives calls, processes the audio and return a new audio back using RTP streams.
This new audio generated is based on the audio received(Question / Answer Style)

Avaya SBCE + FreeSwitch Empty recordings

hi guys,
I have a deployment with Avaya SBCE (172.31.13.176), drachtio + redis (192.168.2.112) and freeswitch (192.168.2.111). It seems SIP signaling between all is going ok (second call leg, etc) but for every call 2 wav files are generated (caller and calle?) and, even files has size not zero, only silence is recorded. i have checked via tcpdump RTP is arriving to freeswitch host. Attached all the logs. any idea?

thanks in advance!
drach.log
FS.log
app.log

Trigger re-invite from Drachtio to the SBC

Hi Dave,

I am wondering after a SIPREC session is established is there a way to initiate a re-invite from Dtachtio to the SBC (more like hold and resume with 'sendonly' attribute in the media). We are using Freeswitch with the Drachtio siprec recording server and would like to trigger this from the Freeswitch on demand.

Thanks.

"msg":"Error connecting call: Error: expected multipart SIPREC body"

Hi Dave,

I'm using drachtio-server + rtpengine + serverdrachtio-siprec-recording-server running in docker

Here are log messages which I'm getting:

drachtio_1 | c=IN IP4 X.X.X.X
drachtio_1 | t=0 0
drachtio_1 | m=audio 22294 RTP/AVP 8 101 0 9 18
drachtio_1 | a=rtpmap:0 PCMU/8000
drachtio_1 | a=rtpmap:9 G722/8000
drachtio_1 | a=rtpmap:8 PCMA/8000
drachtio_1 | a=rtpmap:18 G729/8000
drachtio_1 | a=rtpmap:101 telephone-event/8000
siprec-server_1 | {"level":30,"time":1547408915428,"msg":"received SIPREC invite: sip:DOCKER_HOST:5060","pid":1,"hostname":"236871e294bc","callid":"BW144835361130119-1788699024@SBC_IP","v":1}
drachtio_1 | a=fmtp:101 0-15
drachtio_1 | a=ptime:20
drachtio_1 | a=sendonly
siprec-server_1 | {"level":50,"time":1547408915438,"msg":"Error connecting call: Error: expected multipart SIPREC body","pid":1,"hostname":"236871e294bc","callid":"BW144835361130119-1788699024@SBC_IP","v":1}
drachtio_1 | a=label:1
drachtio_1 |
drachtio_1 | --UniqueBroadWorksBoundary--
drachtio_1 | 2019-01-13 19:48:35.375710 tport.c:3051 tport_deliver() tport_deliver(0x25c6980): msg 0x25cc9c0 (3395 bytes) from udp/X.X.X.X:5060 next=(nil)
drachtio_1 | 2019-01-13 19:48:35.375803 nta.c:2968 agent_recv_request() nta: received INVITE sip:DOCKER_HOST:5060 SIP/2.0 (CSeq 610344401)
drachtio_1 | 2019-01-13 19:48:35.375882 nta.c:3183 agent_recv_request() nta: INVITE (610344401) to message callback
drachtio_1 | 2019-01-13 19:48:35.375928 processMessageStatelessly - incoming message with call-id BW144835361130119-1788699024@SBC_IP does not match an existing call leg, processed in thread 140623077115776
drachtio_1 | 2019-01-13 19:48:35.376039 tport.c:3285 tport_tsend() tport_tsend(0x25c6980) tpn = UDP/X.X.X.X:7281
drachtio_1 | 2019-01-13 19:48:35.376098 tport.c:4085 tport_resolve() tport_resolve addrinfo = X.X.X.X:7281
drachtio_1 | 2019-01-13 19:48:35.376260 tport.c:3531 tport_send_msg() tport_vsend returned 331
drachtio_1 | 2019-01-13 19:48:35.376472 send 331 bytes to udp/[X.X.X.X]:7281 at 19:48:35.376160:
drachtio_1 | SIP/2.0 100 Trying
drachtio_1 | Via: SIP/2.0/UDP X.X.X.X:7281;branch=z9hG4bKolqlue004gkdc9gi63j0.1;rport=7281
drachtio_1 | From: "Caller_Name" sip:[email protected]:7281;user=phone;tag=1803327208-1547408915361-
drachtio_1 | To: sip:DOCKER_HOST:5060
drachtio_1 | Call-ID: BW144835361130119-1788699024@SBC_IP
drachtio_1 | CSeq: 610344401 INVITE
drachtio_1 | Content-Length: 0
drachtio_1 |
drachtio_1 | 2019-01-13 19:48:35.376558 ClientController::selectClientForRequestOutsideDialog - there are 1 possible clients, we are starting with offset 0
drachtio_1 | 2019-01-13 19:48:35.376620 ClientController::route_request_outside_dialog - Selected client at offset 0
drachtio_1 | 2019-01-13 19:48:35.376732 PendingRequestController::add - tport: 0x25c6980, Call-ID: BW144835361130119-1788699024@SBC_IP, transactionId 1cd3071e-238b-42d7-9b4c-b4c4f50dbfb2
drachtio_1 | 2019-01-13 19:48:35.376789 pending-request: Adding entry to go off in 64000ms
drachtio_1 | 2019-01-13 19:48:35.376833 pending-request: Adding entry to the head (queue was empty), length: 1
drachtio_1 | 2019-01-13 19:48:35.376935 ClientController::addNetTransaction: transactionId 1cd3071e-238b-42d7-9b4c-b4c4f50dbfb2; size: 1
drachtio_1 | 2019-01-13 19:48:35.400018 Client::write_handler - wrote 3543 bytes: system:0
drachtio_1 | 2019-01-13 19:48:35.403833 No connected clients found to handle incoming cdr:attempt request
drachtio_1 | 2019-01-13 19:48:38.371276 tport.c:2777 tport_wakeup_pri() tport_wakeup_pri(0x25c6980): events IN
drachtio_1 | 2019-01-13 19:48:38.371444 tport.c:2892 tport_recv_event() tport_recv_event(0x25c6980)
drachtio_1 | 2019-01-13 19:48:38.371508 tport.c:3233 tport_recv_iovec() tport_recv_iovec(0x25c6980) msg 0x25cdad0 from (udp/172.32.0.2:5060) has 354 bytes, veclen = 1
drachtio_1 | 2019-01-13 19:48:38.371833 recv 354 bytes from udp/[X.X.X.X]:7281 at 19:48:38.371569:
drachtio_1 | CANCEL sip:DOCKER_HOST:5060 SIP/2.0
drachtio_1 | Via: SIP/2.0/UDP X.X.X.X:7281;branch=z9hG4bKolqlue004gkdc9gi63j0.1
drachtio_1 | CSeq: 610344401 CANCEL
drachtio_1 | From: "Caller_Name"sip:[email protected]:7281;user=phone;tag=1803327208-1547408915361-
drachtio_1 | To: sip:DOCKER_HOST:5060
drachtio_1 | Call-ID: BW144835361130119-1788699024@SBC_IP
drachtio_1 | Max-Forwards: 69
drachtio_1 | Content-Length: 0
drachtio_1 |
drachtio_1 | 2019-01-13 19:48:38.371895 tport.c:3051 tport_deliver() tport_deliver(0x25c6980): msg 0x25cdad0 (354 bytes) from udp/X.X.X.X:5060 next=(nil)
drachtio_1 | 2019-01-13 19:48:38.371947 nta.c:2968 agent_recv_request() nta: received CANCEL sip:DOCKER_HOST:5060 SIP/2.0 (CSeq 610344401)
drachtio_1 | 2019-01-13 19:48:38.372012 nta.c:3183 agent_recv_request() nta: CANCEL (610344401) to message callback
drachtio_1 | 2019-01-13 19:48:38.372054 processMessageStatelessly - incoming message with call-id BW144835361130119-1788699024@SBC_IP does not match an existing call leg, processed in thread 140623077115776
drachtio_1 | 2019-01-13 19:48:38.372126 received quick cancel for invite that is out to client for disposition: BW144835361130119-1788699024@SBC_IP
drachtio_1 | 2019-01-13 19:48:38.372493 Client::write_handler - wrote 500 bytes: system:0
drachtio_1 | 2019-01-13 19:48:38.372611 tport.c:3285 tport_tsend() tport_tsend(0x25c6980) tpn = UDP/X.X.X.X:7281
drachtio_1 | 2019-01-13 19:48:38.372674 tport.c:4085 tport_resolve() tport_resolve addrinfo = X.X.X.X:7281
drachtio_1 | 2019-01-13 19:48:38.372829 tport.c:3531 tport_send_msg() tport_vsend returned 345
drachtio_1 | 2019-01-13 19:48:38.373042 send 345 bytes to udp/[X.X.X.X]:7281 at 19:48:38.372732:
drachtio_1 | SIP/2.0 200 OK
drachtio_1 | Via: SIP/2.0/UDP X.X.X.X:7281;branch=z9hG4bKolqlue004gkdc9gi63j0.1;rport=7281
drachtio_1 | From: "Caller_Name" sip:[email protected]:7281;user=phone;tag=1803327208-1547408915361-
drachtio_1 | To: sip:DOCKER_HOST:5060;tag=4cNNcvS2c2BXp
drachtio_1 | Call-ID: BW144835361130119-1788699024@SBC_IP
drachtio_1 | CSeq: 610344401 CANCEL
drachtio_1 | Content-Length: 0
drachtio_1 |
drachtio_1 | 2019-01-13 19:48:38.373181 tport.c:3285 tport_tsend() tport_tsend(0x25c6980) tpn = UDP/X.X.X.X:7281
drachtio_1 | 2019-01-13 19:48:38.373234 tport.c:4085 tport_resolve() tport_resolve addrinfo = X.X.X.X:7281
drachtio_1 | 2019-01-13 19:48:38.373334 tport.c:3531 tport_send_msg() tport_vsend returned 361
drachtio_1 | 2019-01-13 19:48:38.373541 send 361 bytes to udp/[X.X.X.X]:7281 at 19:48:38.373283:
drachtio_1 | SIP/2.0 487 Request Terminated
drachtio_1 | Via: SIP/2.0/UDP X.X.X.X:7281;branch=z9hG4bKolqlue004gkdc9gi63j0.1;rport=7281
drachtio_1 | From: "Caller_Name" sip:[email protected]:7281;user=phone;tag=1803327208-1547408915361-
drachtio_1 | To: sip:DOCKER_HOST:5060;tag=5NeeeQa69a2Fj
drachtio_1 | Call-ID: BW144835361130119-1788699024@SBC_IP
drachtio_1 | CSeq: 610344401 INVITE
drachtio_1 | Content-Length: 0
drachtio_1 |
drachtio_1 | 2019-01-13 19:48:38.379436 tport.c:2777 tport_wakeup_pri() tport_wakeup_pri(0x25c6980): events IN
drachtio_1 | 2019-01-13 19:48:38.379592 tport.c:2892 tport_recv_event() tport_recv_event(0x25c6980)
drachtio_1 | 2019-01-13 19:48:38.379656 tport.c:3233 tport_recv_iovec() tport_recv_iovec(0x25c6980) msg 0x25ce310 from (udp/172.32.0.2:5060) has 366 bytes, veclen = 1
drachtio_1 | 2019-01-13 19:48:38.379979 recv 366 bytes from udp/[X.X.X.X]:7281 at 19:48:38.379714:
drachtio_1 | ACK sip:DOCKER_HOST:5060 SIP/2.0
drachtio_1 | Via: SIP/2.0/UDP X.X.X.X:7281;branch=z9hG4bKolqlue004gkdc9gi63j0.1
drachtio_1 | CSeq: 610344401 ACK
drachtio_1 | From: "Caller_Name"sip:[email protected]:7281;user=phone;tag=1803327208-1547408915361-
drachtio_1 | To: sip:DOCKER_HOST:5060;tag=5NeeeQa69a2Fj
drachtio_1 | Call-ID: BW144835361130119-1788699024@SBC_IP
drachtio_1 | Max-Forwards: 69
drachtio_1 | Content-Length: 0

error connecting to rtpengine

Hi Dave,

I have a feature request. I've noticed that sometimes when RTPEngine is busy and unable to respond to the connection request - the application crashes with an error "error connecting to rtpengine"

Is it possible to add a code that will try to connect to a different RTPEngine server from config or will try to connect to the same RTPEngine server a few more times?

Thanks,

Alex

not able to up recorder

while executing node app facing following error

/root/shah/siprec/drachtio-siprec-recording-server/app.js:7
let callHandler;
^^^

SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:442:10)
at startup (node.js:136:18)
at node.js:966:3

Truncated UDP message

Hello,

We are facing an issue trying to integrate SIPREC recording server with BroadWorks SBC with truncated UDP message(SIP INVITE with large message body).

This is how it looks in Wireshark:
Selection_042

Drachtio log(IP addresses hidden):

2021-09-07 07:36:14.784517 tport.c:2777 tport_wakeup_pri() tport_wakeup_pri(0x55ead080f0f0): events IN
2021-09-07 07:36:14.784625 tport.c:2892 tport_recv_event() tport_recv_event(0x55ead080f0f0)
2021-09-07 07:36:14.784665 tport.c:3233 tport_recv_iovec() tport_recv_iovec(0x55ead080f0f0) msg 0x55ead081a8e0 from (udp/DRACHTIO:15060) has 3714 bytes, veclen = 1
2021-09-07 07:36:14.784843 recv 1003 bytes from udp/[BW_SBC]:5060 at 07:36:14.784706:
INVITE sip:DRACHTIO:15060 SIP/2.0
Via: SIP/2.0/UDP BW_SBC:5060;branch=z9hG4bKn2plec301op06ks5q6g1.1
From: <sip:[email protected];user=phone>;tag=ygeCIg
To: <sip:sip.vvn.telekom.sk:15060;transport=udp;user=phone>
Call-ID: swYuBcswZ68SL6TWz8RJPQ
CSeq: 404439 INVITE
Max-Forwards: 68
Contact: <sip:+42191215@BW_SBC:5060;transport=udp>;src
Recv-Info: 
Accept: application/media_control+xml, application/sdp
MIME-Version: 1.0
Content-Type: multipart/mixed;boundary=UniqueBroadWorksBoundary
Content-Length: 449


--UniqueBroadWorksBoundary
Content-Type:application/rs-metadata+xml
Content-Disposition:recording-session
Content-Length:2493

<?xml version="1.0" encoding="UTF-8"?>
<recording_metadata xmlns="urn:ietf:params:xml:ns:siprec">
<dataMode>complete</dataMode>
<recording id="urn:uuid:e9755e57-aaf0-40fe-b3e3-9b54cfbfacc3">
<requestor>SRC</requestor>
<type>selective</type>
</recording>
<group id="urn:uuid:eb76d96b 
2021-09-07 07:36:14.784896 tport.c:3051 tport_deliver() tport_deliver(0x55ead080f0f0): msg 0x55ead081a8e0 (1003 bytes) from udp/BW_SBC:15060 next=(nil)
2021-09-07 07:36:14.784917 nta.c:3039 agent_recv_request() nta: received INVITE sip:SIPREC-Jtendo:15060 SIP/2.0 (CSeq 404439)
2021-09-07 07:36:14.784949 nta.c:3254 agent_recv_request() nta: INVITE (404439) to message callback
2021-09-07 07:36:14.784966 processMessageStatelessly - incoming message with call-id swYuBcswZ68SL6TWz8RJPQ does not match an existing call leg, processed in thread 140125602142016
2021-09-07 07:36:14.785014 tport.c:3285 tport_tsend() tport_tsend(0x55ead080f0f0) tpn = UDP/195.146.137.250:5060
2021-09-07 07:36:14.785051 tport.c:4085 tport_resolve() tport_resolve addrinfo = BW_SBC:5060
2021-09-07 07:36:14.785129 tport.c:3531 tport_send_msg() tport_vsend returned 307
2021-09-07 07:36:14.785178 send 307 bytes to udp/[BW_SBC]:5060 at 07:36:14.785081:
SIP/2.0 100 Trying

Important thing to highlight are these two lines:
2021-09-07 07:36:14.784665 tport.c:3233 tport_recv_iovec() tport_recv_iovec(0x55ead080f0f0) msg 0x55ead081a8e0 from (udp/DRACHTIO:15060) has 3714 bytes, veclen = 1
2021-09-07 07:36:14.784843 recv 1003 bytes from udp/[BW_SBC]:5060 at 07:36:14.784706:

I analysed previous issues with similar problem and the byte values in both lines like above are the same - this is not the case here. Have you faced such an issue before? Do you have any idea what might be causing it? More details below.

  1. udp-mtu is set to 4096(higher than message size which is 3714 bytes(we tried with even 10x higher values - no change, anyway going by configuration description isn't it used only for outgoing messages?)
2021-09-07 07:33:27.424308 SipTransport::logTransports - udp/[::1]:15060 (sip:*:15060, external-ip: , loca
l-net: ), mtu size: 4096
  1. We tried temporarily switching to TCP protocol(it is not feasibly as a final solution anyway as something between our server and BW_SBC does not support it, just for the testing purpose) but the issue is still the same
  2. We noticed that the value in recv log(second line from the two) is always few bytes more than 1000 bytes - not sure if that indicates anything.
  3. MTU for network interface responsible for receiving the message is set to default 1500(as seen in trace image when message gets fragmented)
  4. Below is complete INVITE, taken by Follow UDP Stream option
INVITE sip:DRACHTIO:15060 SIP/2.0
Via: SIP/2.0/UDP BW_SBC:5060;branch=z9hG4bKn2plec301op06ks5q6g1.1
From: <sip:[email protected];user=phone>;tag=ygeCIg
To: <sip:sip.vvn.telekom.sk:15060;transport=udp;user=phone>
Call-ID: swYuBcswZ68SL6TWz8RJPQ
CSeq: 404439 INVITE
Max-Forwards: 68
Contact: <sip:+42191215@BW_SBC:5060;transport=udp>;src
Recv-Info: 
Accept: application/media_control+xml, application/sdp
MIME-Version: 1.0
Content-Type: multipart/mixed;boundary=UniqueBroadWorksBoundary
Content-Length: 449


--UniqueBroadWorksBoundary
Content-Type:application/rs-metadata+xml
Content-Disposition:recording-session
Content-Length:2493

<?xml version="1.0" encoding="UTF-8"?>
<recording_metadata xmlns="urn:ietf:params:xml:ns:siprec">
    <dataMode>complete</dataMode>
    <recording id="urn:uuid:e9755e57-aaf0-40fe-b3e3-9b54cfbfacc3">
        <requestor>SRC</requestor>
        <type>selective</type>
    </recording>
    <group id="urn:uuid:eb76d96b-3c33-48d2-b552-f2c2175e09e3" recording="urn:uuid:e9755e57-aaf0-40fe-b3e3-9b54cfbfacc3">
        <initiator>sip:+42191215@A_IP;user=phone</initiator>
    </group>
    <session id="urn:uuid:3e22dcc3-b01e-4c09-8fc8-8f49c0d43cac" group="urn:uuid:eb76d96b-3c33-48d2-b552-f2c2175e09e3">
        <start-time>2021-09-07T09:36:14+02:00</start-time>
    </session>
    <participant id="urn:uuid:3e954e94-e1e4-4699-b85b-cdad3f810ce6" session="urn:uuid:3e22dcc3-b01e-4c09-8fc8-8f49c0d43cac">
        <aor>sip:+42191215@A_IP;user=phone</aor>
        <send>
            <id>urn:uuid:c48fc5cd-d40e-4bac-a76c-661d53a59250</id>
        </send>
    </participant>
    <participant id="urn:uuid:a13113cb-9eb3-48d8-bf74-1df3bf7837bc" session="urn:uuid:3e22dcc3-b01e-4c09-8fc8-8f49c0d43cac">
        <aor>sip:+48511325595@B_IP;user=phone</aor>
        <send>
            <id>urn:uuid:f12c1e7c-cf4a-4ebb-8a96-caf32951c5ea</id>
        </send>
    </participant>
    <stream id="urn:uuid:c48fc5cd-d40e-4bac-a76c-661d53a59250" session="urn:uuid:3e22dcc3-b01e-4c09-8fc8-8f49c0d43cac">
        <label>1</label>
        <mode>separate</mode>
    </stream>
    <stream id="urn:uuid:f12c1e7c-cf4a-4ebb-8a96-caf32951c5ea" session="urn:uuid:3e22dcc3-b01e-4c09-8fc8-8f49c0d43cac">
        <label>2</label>
        <mode>separate</mode>
    </stream>
    <extensiondata id="urn:uuid:a469d484-56b8-43ec-b49e-d6339fc122a4" parent="urn:uuid:3e22dcc3-b01e-4c09-8fc8-8f49c0d43cac">
        <broadWorksRecordingMetadata version="1.0" xmlns="http://schema.broadsoft.com/broadworksCallRecording">
    <extTrackingID>8e71e709-9795-49cd-adf4-2e3f5696f485</extTrackingID>
    <serviceProviderID>JTENDOXXE1</serviceProviderID>
    <groupID>JTENDOE1G1_grp</groupID>
    <userID>42191215</userID>
    <callID>zaxLnjq6iRWVp3gWirrN_g</callID>
    <callType>
        <origCall>
            <callingPartyNumber>sip:+42191215@A_IP;user=phone</callingPartyNumber>
            <calledPartyNumber>sip:+48511325595@B_IP;user=phone</calledPartyNumber>
        </origCall>
    </callType>
    <recordingType>on</recordingType>
</broadWorksRecordingMetadata>
    </extensiondata>
</recording_metadata>

--UniqueBroadWorksBoundary
Content-Type: application/sdp
Content-Length: 417

v=0
o=- 426088 426088 IN IP4 BW_SBC
s=media server session
b=AS:80
t=0 0
m=audio 23696 RTP/AVP 8
c=IN IP4 BW_SBC
b=AS:80
b=RR:6000
b=RS:2000
a=rtpmap:8 PCMA/8000
a=rtcp-xr
a=ptime:20
a=maxptime:80
a=sendonly
a=label:1
m=audio 21080 RTP/AVP 8
c=IN IP4 BW_SBC
b=AS:80
b=RR:6000
b=RS:2000
a=rtpmap:8 PCMA/8000
a=rtcp-xr
a=ptime:20
a=maxptime:80
a=sendonly
a=label:2

--UniqueBroadWorksBoundary--

Version used:
OS: Debian GNU/Linux 9 (stretch)
Drachtio: v0.8.8

get access to audio stream

Hello,
I have request to implement siprec server which will stream Audio to external endpoint (MS, Google) for STT (Speech to text) .
Can you please point me where in server code I can get access to media stream ?
Thanks

Help me! I cannot receiver sip calls when i run app

I run app with comman: node app
but when i make call, siprec recording server cannot receiver Sip messages
I use tcpdump to catch Sip package in port 5060 then i see it exist.
but Siprec server cannot process it.
It alway just show:
{"level":30,"time":1642566832259,"msg":"attempting inbound connection","pid":12819,"hostname":"siprec.server","host":"127.0.0.1","port":9023,"secret":"cymru","v":1}
{"level":30,"time":1642566832263,"msg":"using freeswitch as the recorder","pid":12819,"hostname":"siprec.server","0":"172.32.0.4","v":1}
{"level":30,"time":1642566832586,"msg":"successfully connected to redis at 127.0.0.1:9379","pid":12819,"hostname":"siprec.server","v":1}
{"level":30,"time":1642566832591,"msg":"inbound connection to drachtio listening on udp/127.0.0.1:5060,udp/172.32.0.2:5060","pid":12819,"hostname":"siprec.server","v":1}

I config SBC wrong?
Please help me!
thank a lot, sorry because my english is bad.

Avaya SBC + Drachtio + rtpengine - "msg":"Error connecting call: TypeError: Cannot read property '0' of undefined"

Hi .
I am having this error and hope you can help.
sdp1:
drachtio:siprec-recording-server 'v=0\r\no=- 830037 1 IN IP4 212.111.68.111\r\ns=SipCall\r\nc=IN IP4 10.201.1.168\r\nt=0 0\r\nm=audio 35468 RTP/AVP 8 103\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:103 telephone-event/8000\r\na=label:10\r\na=sendonly\r\na=ptime:20\r\n',
drachtio:siprec-recording-server sdp2:
drachtio:siprec-recording-server 'v=0\r\no=- 830037 1 IN IP4 212.111.68.111\r\ns=SipCall\r\nc=IN IP4 10.201.1.168\r\nt=0 0\r\nm=audio 35064 RTP/AVP 8 103\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:103 telephone-event/8000\r\na=label:20\r\na=sendonly\r\na=ptime:20\r\n' } payload parser results +29s
{"level":50,"time":1573550781197,"msg":"Error connecting call: TypeError: Cannot read property '0' of undefined","pid":5891,"hostname":"SIPREC","callid":"6b2bfd3fd9110b29173fad6093579f76","v":1}

Question: it is possible that calls will be recorded

I am recording calls using drachtio server, drachtio recording and rtpengine, and everything work fine, but I would like to define which calls are recorded and which are not. It is possible to define this in drachtio server. I hope you can answer me.

Greetings,
Miguel Alvarado

on SDP media inactive recording server sending recvonly

On inactive media in rtp recording is sending recvonly and media is getting recorded, the recording server needs to send inactive too

INVITE sip:44.217.32.184:5060 SIP/2.0
Via: SIP/2.0/UDP 35.153.90.242:5070;branch=z9hG4bKac1356091624;rport=5070
Max-Forwards: 70
From: sip:172.31.146.45;user=phone;tag=1c1442095253
To: sip:44.217.32.184;user=phone;tag=v0UD8He9FmjKg
Call-ID: [email protected]
CSeq: 2 INVITE
Contact: sip:35.153.90.242:5070;src
Supported: sdp-anat
Require: siprec
User-Agent: Mediant VE SBC/v.7.40A.500.357
Content-Type: multipart/mixed;boundary=boundary_ac18ff
Content-Length: 2343

--boundary_ac18ff
Content-Type: application/sdp

v=0
o=AudiocodesGW 51603343 1530397018 IN IP4 35.153.90.242
s=SBC-Call
c=IN IP4 35.153.90.242
t=0 0
m=audio 11096 RTP/AVP 0 8 111 126
c=IN IP4 35.153.90.242
a=ptime:20
a=inactive
a=label:1
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:111 OPUS/48000/2
a=fmtp:111 minptime=20; maxplaybackrate=8000; maxaveragebitrate=50000; useinbandfec=1
a=rtpmap:126 telephone-event/8000
a=fmtp:126 0-15,16
m=audio 11100 RTP/AVP 0 8 111 126
c=IN IP4 35.153.90.242
a=ptime:20
a=inactive
a=label:2
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:111 OPUS/48000/2
a=fmtp:111 minptime=20; maxplaybackrate=8000; maxaveragebitrate=50000; useinbandfec=1
a=rtpmap:126 telephone-event/8000
a=fmtp:126 0-15,16

--boundary_ac18ff
Content-Type: application/rs-metadata
Content-Disposition: recording-session

complete 2023-12-22T10:59:27 00000000-0000-00d7-2bb4-1f000005f7b1 2023-12-22T10:59:27 +18448735673 2023-12-22T10:59:27 00000001-a577-00d7-2bb4-1f000005f7b1 00000000-4264-00d7-2bb4-1f000005f7b1 2023-12-22T10:59:27 00000000-4264-00d7-2bb4-1f000005f7b1 00000001-a577-00d7-2bb4-1f000005f7b1 1 2 --boundary_ac18ff--

SIP/2.0 200 OK
Call-ID: [email protected]
cseq: 2 INVITE
from: sip:172.31.146.45;user=phone;tag=1c1442095253
to: sip:44.217.32.184;user=phone;tag=v0UD8He9FmjKg
Content-Length: 747
contact: sip:44.217.32.184:5060
content-type: application/sdp

v=0
o=AudiocodesGW 51603343 1530397017 IN IP4 44.217.32.184
s=SBC-Call
c=IN IP4 44.217.32.184
t=0 0
m=audio 40044 RTP/AVP 0 8 111 126
c=IN IP4 44.217.32.184
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:111 OPUS/48000/2
a=rtpmap:126 telephone-event/8000
a=fmtp:111 useinbandfec=1; maxplaybackrate=8000; maxaveragebitrate=50000; minptime=20
a=fmtp:126 0-15,16
a=rtcp:40045
a=ptime:20
a=recvonly
a=label:1
m=audio 40318 RTP/AVP 0 8 111 126
c=IN IP4 44.217.32.184
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:111 OPUS/48000/2
a=rtpmap:126 telephone-event/8000
a=fmtp:111 useinbandfec=1; maxplaybackrate=8000; maxaveragebitrate=50000; minptime=20
a=fmtp:126 0-15,16
a=rtcp:40319
a=ptime:20
a=recvonly
a=label:2

OpenSIPS returns bye to drachtio prior to call ending with freeswitch backend

Im using freeswitch as the recording server Ive been able to get everything mostyl working, freeswitch will start to create a recording file but once opensips receives the 200 OK SDP from drachtio it returns BYE. Im not sure if this issue is an opensips configuration issue or drachtio but I was hoping you might know.

Ive included a wireshark screenshot of the transaction.
Green: base call between client/opensips/rtpproxy/asterisk
pink&tan: drachtio/freeswitch
orange: drachtio/opensips

image

Failure in negotiation with RTP Engine

My recording server fails to negotiate with RTP engine:

NGREP from RTP engine:

interface: eth0 (157.245.128.0/255.255.240.0)
filter: ( port 2223 ) and ((ip || ip6) || (vlan && (ip || ip6)))

U 167.99.248.68:57002 -> 157.245.136.128:2223
9c6c291f-bd1c-49fd-941d-2cf485de8a4a d3:ICE6:remove7:call-id25:B2B.64.8009998.15693997447:command5:offer8:from-tag37:61a826a6ff880a19c31acdfc1fc2d111-ce2111:record call3:yes7:replacel6:origin18:session-connectione3:sdp174:v=0.
o=- 1569399744 0 IN IP4 0.0.0.0.
s=-.
c=IN IP4 127.0.0.1.
t=0 0.
m=audio 35012 RTP/AVP 0 101.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-15.
a=label:1.
a=sendonly.
e

U 157.245.136.128:2223 -> 167.99.248.68:57002
9c6c291f-bd1c-49fd-941d-2cf485de8a4a d10:recordingsle6:result5:error12:error-reason19:Error rewriting SDPe

On the drechtio server I get a timeout for SIP REC

T 172.17.0.2:9022 -> 172.17.0.1:40722 [AP]
517#a68f8408-8e2c-4b40-8239-ae6ca7001fa4|sip|network|375|udp|167.99.248.68|5060|08:29:32.403739|05e9f1ed-f75b-4895-a3e5-fd84b795e704|.
CANCEL sip:172.17.0.2:5060 SIP/2.0.
Via: SIP/2.0/UDP 167.99.248.68:5060;branch=z9hG4bK94f6.825bc433.0;rport=5060.
From: sip:172.17.0.2:5060;tag=61a826a6ff880a19c31acdfc1fc2d111-ce21.
Call-ID: B2B.64.6780361.1569400142.
To: sip:172.17.0.2:5060.
CSeq: 2 CANCEL.
Max-Forwards: 70.
Reason: SIP;cause=480;text="NO_ANSWER".
User-Agent: OpenSIPS (3.0.0 (x86_64/linux)).
Content-Length: 0.
.

Output from the recording server:

{"level":30,"time":1569399924140,"msg":"attempting inbound connection","pid":20377,"hostname":"opensips","host":"172.17.0.2","port":9022,"secret":"cymru","v":1}
{"level":30,"time":1569399924149,"msg":"using rtpengine as the recorder","pid":20377,"hostname":"opensips","remote":{"host":"157.245.136.128","port":2223},"v":1}
{"level":30,"time":1569399924234,"msg":"inbound connection to drachtio listening on tcp/172.17.0.2:5060,udp/172.17.0.2:5060","pid":20377,"hostname":"opensips","v":1}
{"level":30,"time":1569400142303,"msg":"received SIPREC invite: sip:172.17.0.2:5060","pid":20377,"hostname":"opensips","callid":"B2B.64.6780361.1569400142","v":1}
{"level":50,"time":1569400142489,"msg":"Error connecting call: Error: error connecting to rtpengine","pid":20377,"hostname":"opensips","callid":"B2B.64.6780361.1569400142","v":1}

Attaching: pcap, recording server config, opensips config

log.pcap.log

opensips.cfg.log

local.json.log

SRC send invite with "a=sendonly" attribute but drachtio does not send back any attribute

Hi,

Everything was running well between SRC, drachtio and rtpengine and can get recording file. But we have question from our observation, we found that drachtio does not send any attribute back when SRC send invite with "sendonly" attribute.

Screen Shot 2022-11-24 at 13 50 48

Screen Shot 2022-11-24 at 13 50 59

If we manipulated SDP on SRC to send with "sendrecv" attribute, drachtio will send back with same attribute ("sendrecv").
Screen Shot 2022-11-24 at 14 07 49
Screen Shot 2022-11-24 at 14 08 00

We are still learning about drachtio behavior and as far as we know when SRC send invite with "sendonly" attribute it should get response with "recvonly" attribute?

I have also attached log file from drachtio server.
drachtio_siprec.log

Multiple rtpengine servers

Hello Dave,

Is it supported to have multiple rtpengine instances?

From the code I assume that currently it's not supported, but maybe you have this feature on your roadmap?

Thanks,

Alxe

Configuration property "drachtio" is not defined

$ node app
WARNING: No configurations found in configuration directory:/opt/drachtio-siprec-recording-server/config
WARNING: To disable this warning set SUPPRESS_NO_CONFIG_WARNING in the environment.
/opt/drachtio-siprec-recording-server/node_modules/config/lib/config.js:202
throw new Error('Configuration property "' + property + '" is not defined');
^

Error: Configuration property "drachtio" is not defined
at Config.get (/opt/drachtio-siprec-recording-server/node_modules/config/lib/config.js:202:11)
at Object. (/opt/drachtio-siprec-recording-server/app.js:17:22)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)

Install on Centos 7

Hi supporter,
I want to install in on Centos 7. Could you guide me install? Many thanks

RtpEngineError: malformed/unexpected error for type DTMF

67|drachtio-siprec-recording-server | {"level":30,"time":1689152309658,"msg":"call connected successfully, using rtpengine at {"host":"localhost","port":22222}","pid":1176370,"hostname":"ip-172-31-29-233","callid":"[email protected]","v":1}
67|drachtio-siprec-recording-server | RtpEngineError: malformed/unexpected message format {"callid":"[email protected]","source_tag":"5810fd55-e64d-46b2-bfcc-15e5ca553e8a","tags":["5810fd55-e64d-46b2-bfcc-15e5ca553e8a","1c601966398"],"type":"DTMF","timestamp":1689152321,"source_ip":"50.19.121.248","event":6,"duration":57,"volume":10}
67|drachtio-siprec-recording-server | at Client._onMessage (/home/admin/apps/drachtio-siprec-recording-server/node_modules/rtpengine-client/lib/client.js:85:26)
67|drachtio-siprec-recording-server | at Socket.emit (node:events:513:28)
67|drachtio-siprec-recording-server | at UDP.onMessage [as onmessage] (node:dgram:933:8)
PM2 | App [drachtio-siprec-recording-server:67] exited with code [1] via signal [SIGINT]
PM2 | App [drachtio-siprec-recording-server:67] starting in -fork mode-
PM2 | App [drachtio-siprec-recording-server:67] online
67|drachtio-siprec-recording-server | {"level":30,"time":1689152321731,"msg":"attempting inbound connection","pid":1176506,"hostname":"ip-172-31

Voice is over lapping

I Follow your instruction of this repository but
when I listen recorded files of each call then it's have an issue that call
When I say Hi after that get I response :-> Welcome, I am bot How can I help you Everything is fine with call
but when I play recorded file I listen bot voice first then I listen my voice some time it''s over lap sometime my voice come after bot response

We want to know How to fix that

what I use siprec client for test ?

The application receives the SIPREC INVITE from the SBC (or other SIPREC recording client),

Could you advice the SBC open source software ?

Error connecting call: Error: expected multipart SIPREC body"

I see there is an issue opened already which is giving the same error, but I don't think it's for the same reason as I see there is a space after Content-Type:

Node version is v11.9.0

{"level":30,"time":1549309126729,"msg":"received SIPREC invite: sip:[email protected]:5060;transport=udp","pid":5740,"hostname":"fax","callid":"[email protected]","v":1}
{"level":50,"time":1549309126734,"msg":"Error connecting call: Error: expected multipart SIPREC body","pid":5740,"hostname":"fax","callid":"[email protected]","v":1}

invite.txt

Drachtio send "inactive" attribute back in SIP OK while he receives "sendonly" in SIP Invite

Hey Dave,

We're using Cisco SBC as our SRC and recently we updated with the upstream of this git repository in order to resolve an issue of the inactive which makes the application crash.

We've also recently experienced an issue that in a call scenario in which the callee hasn't answered yet, the SBC sends as expected a sendonly attribute and sending of course RTP data to the SIP-REC server.

When we actually experience a scenario that the SBC sends inactive at the start, there's no RTP data of course. But once he does send a sendonly attribute, the drachtio project actually sends back inactive in the OK response of the invite(Which has sendonly attribute).

For meanwhile, the call is ringing for the callee while the caller is talking and all packets are being received in the meanwhile.

Afterward, when the callee answers another Invite with inactive arrives, which after another few moments there is two more Invite with sendonly from the SBC. For all three of those SIP Invites, the drachtio project responds back with inactive while he receives sendonly.

Because the SBC receives back inactive instead of sendonly, at some point after the last described packets, he (SBC) then again sends two SIP Invites with inactive when he gets back OK with inactive again as expected.
At the end of all of that scenario, a SIP Bye is being sent by the SBC because he keeps receiving inactive for the SIP-REC from drachtio.

Is it maybe a known issue?
If not, is there a possibility to request to check that out?
When possible of course.

Thanks

No SDP in 200 OK to Freeswitch

Hi Dave,

We see that Drachtio SIP server is sending 200 Ok response with no SDP to Freeswitch. It was working fine. Could you please check the logs and help us. I have also attached a file with logs from both Drachtio server and the siprec-recording-server application.

{"level":30,"time":1586545088962,"msg":"received SIPREC invite: sip:[email protected]:5060","pid":8,"hostname":"siprec-proxy-application-5dfbfd9686-d6v9m","callid":"[email protected]","v":1}
{"level":50,"time":1586545089241,"msg":"Error connecting incoming SIPREC call to freeswitch","pid":8,"hostname":"siprec-proxy-application-5dfbfd9686-d6v9m","callid":"[email protected]","type":"Error","stack":"SipError: Sip non-success response: 500\n at Request.req.on (/usr/src/app/node_modules/drachtio-srf/lib/srf.js:433:27)\n at Request.emit (events.js:198:13)\n at DrachtioAgent._onMsg (/usr/src/app/node_modules/drachtio-srf/lib/drachtio-agent.js:655:22)\n at WireProtocol.emit (events.js:198:13)\n at WireProtocol.processMessageBuffer (/usr/src/app/node_modules/drachtio-srf/lib/wire-protocol.js:226:12)\n at WireProtocol._onData (/usr/src/app/node_modules/drachtio-srf/lib/wire-protocol.js:260:14)\n at Socket.emit (events.js:198:13)\n at addChunk (_stream_readable.js:288:12)\n at readableAddChunk (_stream_readable.js:265:13)\n at Socket.Readable.push (_stream_readable.js:224:10)","name":"SipError","status":500,"reason":"Internal Server Error","res":{"msg":{"headers":{"via":"SIP/2.0/UDP 34.67.229.53;rport=5060;branch=z9hG4bKF9KF9DQe3X40H","max-forwards":"70","from":"sip:[email protected]:5060;tag=vF3ZF1FUcteep","to":"sip:[email protected];tag=e33aaa087H7eQ","call-id":"0f60a48c-f600-1238-4699-4201c0a80103","cseq":"18718752 INVITE","user-agent":"FreeSWITCH-mod_sofia/1.6.1464bit","accept":"application/sdp","allow":"INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY","supported":"timer, path, replaces","allow-events":"talk, hold, conference, refer","reason":"Q.850;cause=41;text="NORMAL_TEMPORARY_FAILURE"","content-length":"0","remote-party-id":""3661" sip:[email protected];party=calling;privacy=off;screen=no"},"body":"","payload":[{"content":""}],"version":"2.0","status":500,"reason":"Internal Server Error","raw":"SIP/2.0 500 Internal Server Error\r\nVia: SIP/2.0/UDP 34.67.229.53;rport=5060;branch=z9hG4bKF9KF9DQe3X40H\r\nMax-Forwards: 70\r\nFrom: sip:[email protected]:5060;tag=vF3ZF1FUcteep\r\nTo: sip:[email protected];tag=e33aaa087H7eQ\r\nCall-ID: 0f60a48c-f600-1238-4699-4201c0a80103\r\nCSeq: 18718752 INVITE\r\nUser-Agent: FreeSWITCH-mod_sofia/1.6.1464bit\r\nAccept: application/sdp\r\nAllow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY\r\nSupported: timer, path, replaces\r\nAllow-Events: talk, hold, conference, refer\r\nReason: Q.850;cause=41;text="NORMAL_TEMPORARY_FAILURE"\r\nContent-Length: 0\r\nRemote-Party-ID: "3661" sip:[email protected];party=calling;privacy=off;screen=no\r\n\r\n"},"source":"network","source_address":"104.154.187.248","source_port":5060,"protocol":"udp","stackTime":"18:58:09.239034","stackDialogId":"0f60a48c-f600-1238-4699-4201c0a80103;from-tag=vF3ZF1FUcteep","stackTxnId":"c6e8b431-e594-4abc-95ad-993b9e4be80c"},"v":1}
(node:8) UnhandledPromiseRejectionWarning: SipError: Sip non-success response: 500
at Request.req.on (/usr/src/app/node_modules/drachtio-srf/lib/srf.js:433:27)
at Request.emit (events.js:198:13)
at DrachtioAgent._onMsg (/usr/src/app/node_modules/drachtio-srf/lib/drachtio-agent.js:655:22)
at WireProtocol.emit (events.js:198:13)
at WireProtocol.processMessageBuffer (/usr/src/app/node_modules/drachtio-srf/lib/wire-protocol.js:226:12)
at WireProtocol._onData (/usr/src/app/node_modules/drachtio-srf/lib/wire-protocol.js:260:14)
at Socket.emit (events.js:198:13)
at addChunk (_stream_readable.js:288:12)
at readableAddChunk (_stream_readable.js:265:13)
at Socket.Readable.push (_stream_readable.js:224:10)
(node:8) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:8) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

drachtio_siprec_call_failure_200_no_sdp_test2.txt

Error: Response#send: status is required and must be a valid sip response code

Hi,

It had been working fine for a while without any issues. Suddenly all calls to Drachtio are failing. The error is from the Drachtio siprec server as given below. The log snippet below contains the log messages from startup up to a call.

{"level":30,"time":1571957280234,"msg":"attempting inbound connection","pid":8,"hostname":"siprec-proxy-application-584cf8699b-hhs68","host":"10.252.1.9","port":9022,"secret":"cymru","v":1}
{"level":30,"time":1571957280327,"msg":"using freeswitch as the recorder","pid":8,"hostname":"siprec-proxy-application-584cf8699b-hhs68","0":"","v":1}
{"level":30,"time":1571957280927,"msg":"successfully connected to redis at redis:6379","pid":8,"hostname":"siprec-proxy-application-584cf8699b-hhs68","v":1}
{"level":30,"time":1571957280934,"msg":"inbound connection to drachtio listening on tcp/34.82.88.194:5060,udp/34.82.88.194:5060","pid":8,"hostname":"siprec-proxy-application-584cf8699b-hhs68","v":1}

{"level":30,"time":1571961613618,"msg":"received SIPREC invite: sip:[email protected]:5060","pid":8,"hostname":"siprec-proxy-application-584cf8699b-hhs68","callid":"[email protected]","v":1}
(node:8) UnhandledPromiseRejectionWarning: Error: Response#send: status is required and must be a valid sip response code
at Response.send (/usr/src/app/node_modules/drachtio-srf/lib/response.js:80:13)
at createUAC.then.catch (/usr/src/app/node_modules/drachtio-srf/lib/srf.js:797:37)
at process._tickCallback (internal/process/next_tick.js:68:7)
(node:8) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:8) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

I appreciate any help to troubleshoot or fix the issue.

Thanks!

Deployment on Amazon EC2/S3

Hello all,

Unsure where to ask. Want to deploy this with Opensips on an Amazon EC2 server, however, can't seem to find any instructions. Was thinking of saving the audio files on an S3 bucket and drachtio to pull from S3 - does that work? Also - is there a Web UI that we can use to retrieve the files?

Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.