[Spce-user] ngcp-sems sendto error

Julian Seifert js at dacor.de
Wed Jul 8 18:32:20 EDT 2015


Hi everybody,

We are fairly new to sipwise so please excuse if we are doing some obvious mistake here.
We were already playing with earlier versions of sipwise-ce in our lab environment
for quite some time now and today we just tried to give 3.8.2 a chance. 

We are using the vmware image and its quite vanilla. We simply configured static
network settings changed some passwords (all following the documentation)

We added contacts,contracts etc. and our SIP-Peer we use in our lab environment
for outgoing/incoming call handoff.

For that we entered the necessary (including authentication) data via the webinterface
and, still following the handbook here and applied the settings(user,domain,pwd) manually to the 
template file. (/etc/ngcp-config/templates/etc/ngcp-sems/etc/reg_agent.conf.tt2)

We finalized the setup by running ngcpcfg apply. 
Peering relationship did not establish. 


We confirmed if ngcp-sems was running and binding to sockets etc.:

root at spce:~# ps auxw |grep -ie ngcp-sems 
sems      4390  1.0  0.1 220936 14880 ?        Sl   Jul07  18:33 /usr/sbin/ngcp-sems -P /var/run/ngcp-sems/ngcp-sems.pid -u sems -g sems -f /etc/ngcp-sems/sems.conf
root     12470  0.0  0.0   9848  1920 pts/0    S+   23:32   0:00 grep -ie ngcp-sems
root at spce:~# netstat -anp | grep -ie sems
tcp        0      0 127.0.0.1:5080          0.0.0.0:*               LISTEN      4390/ngcp-sems  
tcp        0      0 127.0.0.1:8090          0.0.0.0:*               LISTEN      4390/ngcp-sems  
udp        0      0 127.0.0.1:5040          0.0.0.0:*                           4390/ngcp-sems  
udp        0      0 127.0.0.1:5080          0.0.0.0:*                           4390/ngcp-sems  
unix  3      [ ]         STREAM     VERBUNDEN     14690    4390/ngcp-sems    
(couple of more unix streams)


As we investigated we found the following message in /var/log/ngcp/sems.log

root at spce:~# tail -n 10 /var/log/ngcp/sems.log 

Jul  8 23:31:39 spce ngcp-sems[4390]: [#7f714da50700] [sendto, udp_trsp.cpp:179] ERROR:  sendto(11;212.X.X.X:5060): Invalid argument
Jul  8 23:31:39 spce ngcp-sems[4390]: [#7f714da50700] [send_request, trans_layer.cpp:1308] ERROR:  Error from transport layer
Jul  8 23:31:49 spce ngcp-sems[4390]: [#7f714da50700] [sendto, udp_trsp.cpp:179] ERROR:  sendto(11;212.X.X.X:5060): Invalid argument
Jul  8 23:31:49 spce ngcp-sems[4390]: [#7f714da50700] [send_request, trans_layer.cpp:1308] ERROR:  Error from transport layer
Jul  8 23:31:59 spce ngcp-sems[4390]: [#7f714da50700] [sendto, udp_trsp.cpp:179] ERROR:  sendto(11;212.X.X.X:5060): Invalid argument
Jul  8 23:31:59 spce ngcp-sems[4390]: [#7f714da50700] [send_request, trans_layer.cpp:1308] ERROR:  Error from transport layer
Jul  8 23:32:09 spce ngcp-sems[4390]: [#7f714da50700] [sendto, udp_trsp.cpp:179] ERROR:  sendto(11;212.X.X.X:5060): Invalid argument
Jul  8 23:32:09 spce ngcp-sems[4390]: [#7f714da50700] [send_request, trans_layer.cpp:1308] ERROR:  Error from transport layer
Jul  8 23:32:19 spce ngcp-sems[4390]: [#7f714da50700] [sendto, udp_trsp.cpp:179] ERROR:  sendto(11;212.X.X.X:5060): Invalid argument
Jul  8 23:32:19 spce ngcp-sems[4390]: [#7f714da50700] [send_request, trans_layer.cpp:1308] ERROR:  Error from transport layer

we then proceeded to analyze the situation via strace to look why the sendto call fails.

root at spce:~# killall -9 ngcp-sems
root at spce:~# !ps
ps auxw |grep -ie ngcp-sems 
root     12596  0.0  0.0   9844  1968 pts/0    S+   23:32   0:00 grep -ie ngcp-sems
root at spce:~# strace -o /tmp/ngcp-sems.trace -ff /usr/sbin/ngcp-sems -P /var/run/ngcp-sems/ngcp-sems.pid -u sems -g sems -f /etc/ngcp-sems/sems.conf
Configuration:
       log level:           INFO (2)
       log to stderr:       no
       configuration file:  /etc/ngcp-sems/sems.conf
       plug-in path:        /usr/lib/ngcp-sems/plug-in/
       daemon mode:         yes
       daemon UID:          sems
       daemon GID:          sems
       application:         $(apphdr)


Looking through the traces we found the following information:
root at spce:/tmp# grep -ie "send.*= -1" *trace*
ngcp-sems.trace.12864:sendto(11, "REGISTER sip:sip.easybell.de SIP"..., 429, 0, {sa_family=AF_INET, sin_port=htons(5060), sin_addr=inet_addr("212.X.X.X")}, 16) = -1 EINVAL (Invalid argument)
ngcp-sems.trace.12864:sendto(11, "REGISTER sip:sip.easybell.de SIP"..., 429, 0, {sa_family=AF_INET, sin_port=htons(5060), sin_addr=inet_addr("212.X.X.X")}, 16) = -1 EINVAL (Invalid argument)
root at spce:/tmp# grep -ie "socket.*= 11" *trace*
ngcp-sems.trace.12856:socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 11
root at spce:/tmp# grep -ie "bind.11.*" *trace*
ngcp-sems.trace.12856:bind(11, {sa_family=AF_INET, sin_port=htons(5080), sin_addr=inet_addr("127.0.0.1")}, 16) = 0

It actually looks as if ngcp-sems was binding the socket it uses for outgoing communication to source address 127.0.0.1

root at spce:/tmp# cat /etc/ngcp-sems/sems.conf | grep -ie 127
sip_ip=127.0.0.1

seems to confirm this. 
So SHOULD this actually be 127.0.0.1 or should we simply add our external address?
Should ngcp-sems connect to kamailio(using it as proxy?) instead of our SIP-Peer directly? (which is what it apparently tries?)

maybe you guys can give us a hint what we are doing wrong/how we can fix it.

kind regards,

  Julian







More information about the Spce-user mailing list