Does any one know what's error about the message

Dear man :

I find asterisk can’t bridge the call and error message as following :

Does any one know what’s the error cause about the len 609 ?

Connected to Asterisk 11.7.0 currently running on Cen5
== Using SIP RTP CoS mark 5
– Called SIP/savecom/0287806660
– SIP/savecom-00000001 answered SIP/sc4.100.mobile-00000000
[Nov 26 11:03:34] WARNING[24672]: chan_sip.c:3906 __sip_xmit: sip_xmit of 0x8cc6380 (len 609) to x.x.x.x:27490 returned -2: Interrupted system call
– Registered SIP ‘sc4.100.mobile’ at 218.211.224.83:27621

savecom*CLI> sip show channelstats
Peer Call ID Duration Recv: Pack Lost ( %) Jitter Send: Pack Lost ( %) Jitter
218.211.224.83 91122525037 00:00:02 0000000000 0000000000 ( 0.00%) 0.0000 0000000000 0000000000 ( 0.00%) 0.0000
61.65.8.167 75627285006 00:00:02 0000000000 0000000000 ( 0.00%) 0.0000 0000000000 0000000000 ( 0.00%) 0.0000
2 active SIP channels

Length 609 bytes.

Interrupted system call is normally recoverable, although it might suggest that your IP stack has stalled, or was otherwise out of buffer space, as it would only happen if the system call had blocked.

Thanks your reply ?

Do you mean for some reason the call is blocked ? Does what be blocked ? Does it be a system bug ?

Looking at the actual code, I’m guessing you failed to tell us that this was an encrypted session or a web sockets one. The interrupted system call may be a stale diagnostic. Normal system calls won’t return -2.

3881 if (p->socket.type == SIP_TRANSPORT_UDP) { 3882 res = ast_sendto(p->socket.fd, ast_str_buffer(data), ast_str_strlen(data), 0, dst); 3883 } else if (p->socket.tcptls_session) { 3884 res = sip_tcptls_write(p->socket.tcptls_session, ast_str_buffer(data), ast_str_strlen(data)); 3885 } else if (p->socket.ws_session) { 3886 if (!(res = ast_websocket_write(p->socket.ws_session, AST_WEBSOCKET_OPCODE_TEXT, ast_str_buffer(data), ast_str_strlen(data)))) { 3887 /* The WebSocket API just returns 0 on success and -1 on failure, while this code expects the payload length to be returned */ 3888 res = ast_str_strlen(data); 3889 } 3890 } else { 3891 ast_debug(2, "Socket type is TCP but no tcptls_session is present to write to\n"); 3892 return XMIT_ERROR; 3893 } 3894 3895 if (res == -1) { 3896 switch (errno) { 3897 case EBADF: /* Bad file descriptor - seems like this is generated when the host exist, but doesn't accept the UDP packet */ 3898 case EHOSTUNREACH: /* Host can't be reached */ 3899 case ENETDOWN: /* Interface down */ 3900 case ENETUNREACH: /* Network failure */ 3901 case ECONNREFUSED: /* ICMP port unreachable */ 3902 res = XMIT_ERROR; /* Don't bother with trying to transmit again */ 3903 } 3904 } 3905 if (res != ast_str_strlen(data)) { 3906 ast_log(LOG_WARNING, "sip_xmit of %p (len %zu) to %s returned %d: %s\n", data, ast_str_strlen(data), ast_sockaddr_stringify(dst), res, strerror(errno)); 3907 }

Bingo :

Yes , it’s a client login in via tls , then call out to a SBC , then asterisk can’t bride two call leg between SIP/savecom-00000001 & SIP/sc4.100.mobile-00000000 , it fail .

user sc4.100(tls login) call out to sip/savecom