[OpenSIPS-Users] Strange behavior on ipv4 / ipv6 dual stack server with/without mhomed

Daniel Lakeland dlakelan at street-artists.org
Sat Oct 21 00:49:00 EDT 2017


I have a situation where my "internal" phones can call each other, even 
when one is registered via ipv4 and one via ipv6 (thanks to some 
rewriting of the SDP and Asterisk as a media server)

However, when I do the following, I get lines like the following in the 
syslogs:

Oct 20 20:52:50 orbit2 /usr/sbin/opensips[14070]: 
ERROR:core:proto_udp_send: 
sendto(sock,0x7fc96010bb90,455,0,0x7fc9600cb570,16): Network is 
unreachable(101) [xxx.xxx.xxx.xxx:5070]
Oct 20 20:52:50 orbit2 /usr/sbin/opensips[14070]: ERROR:tm:msg_send: 
send() to xxx.xxx.xxx.xxx:5070 for proto udp/1 failed
Oct 20 20:52:50 orbit2 /usr/sbin/opensips[14070]: ERROR:tm:t_uac: 
attempt to send to 'sip:1xxxxxxxxxx at xxx.xxx.xxx.xxx:5070' failed
Oct 20 20:52:51 orbit2 /usr/sbin/opensips[14070]: 
ERROR:core:proto_udp_send: 
sendto(sock,0x7fc96010bb90,455,0,0x7fc9600cb570,16): Network is 
unreachable(101) [104
.237.158.242:5070]
Oct 20 20:52:51 orbit2 /usr/sbin/opensips[14070]: ERROR:tm:msg_send: 
send() to xxx.xxx.xxx.xxx:5070 for proto udp/1 failed
Oct 20 20:52:52 orbit2 /usr/sbin/opensips[14070]: 
ERROR:core:proto_udp_send: 
sendto(sock,0x7fc96010bb90,455,0,0x7fc9600cb570,16): Network is 
unreachable(101) [104
.237.158.242:5070]
Oct 20 20:52:52 orbit2 /usr/sbin/opensips[14070]: ERROR:tm:msg_send: 
send() to xxx.xxx.xxx.xxx:5070 for proto udp/1 failed
Oct 20 20:52:54 orbit2 /usr/sbin/opensips[14070]: 
ERROR:core:proto_udp_send: 
sendto(sock,0x7fc96010bb90,455,0,0x7fc9600cb570,16): Network is 
unreachable(101) [104
.237.158.242:5070]
Oct 20 20:52:54 orbit2 /usr/sbin/opensips[14070]: ERROR:tm:msg_send: 
send() to xxx.xxx.xxx.xxx:5070 for proto udp/1 failed
Oct 20 20:52:58 orbit2 /usr/sbin/opensips[14070]: 
INFO:dialog:reply_from_caller: terminating dialog ( due to timeout ) 
with callid = [23bddf6f5c321df91760ff3614340d7d at mydomain.org]

heres how the call flows:

Phone 1 ----ipv4 TLS -----> Proxy <---ipv4 UDP----> Asterisk on port 
5070 same server as proxy <---ipv6 UDP ---> Proxy <-- ipv4 UDP---> provider


I get a call with audio for about 30 seconds and then OpenSips sends 
errors and the call aborts. The provider's sip trace just shows a "Bye" 
from asterisk, so I guess the call is aborting on the "phone" leg

I just discovered the "mhomed" variable, but when I tried this, it still 
aborts.
I've tried manually forcing the socket... but I think maybe I'm not 
doing it in all the appropriate places. It may also be that this is a 
Red Herring, as it seems like the messages *do* get delivered?


What I see in a sip_trace is that the only things being sent to the 
xxx.xxx.xxx.xxx:5070 port are messages from the proxy to asterisk on the 
Phone1 side of the call. Though since the sending blocks and aborts in 
the logs, I'm not sure if the stuck messages hit the sip trace.

I'm running the "firehol" firewall and it's a VPS server, I can't seem 
to figure out how to remove the nf_conntrack_nat module as this vps has 
no knowledge of the kernel modules. (?? I am not that familiar with the 
VPS kernel environment) the proxy should be able to talk to Asterisk, 
and in fact, it seems like doing an asterisk sip trace that asterisk is 
getting the messages...


On the Phone 1 leg I see:

INVITE
Session Progress from asterisk
OK from asterisk
Ack from phone1

etc both are hitting the proxy and the asterisk server I believe

Please note that *when I call direct to another local sip phone I have 
no problems*

I'm tearing my hair out a bit here

Can anyone think why opensips would have trouble sending like this? Is 
this something specific to VPS virtual networking stuff?

THanks !





More information about the Users mailing list