[Spce-user] ngcp-sems sendto error

Daniel Grotti dgrotti at sipwise.com
Thu Jul 9 10:19:40 EDT 2015


Julian,
you have to create the customtt.tt2 file for reg_agent, set your values
there and remove # from all the lines (proxy and contact included).
Then apply the changes.

--
Daniel Grotti
VoIP Engineer


Sipwise GmbH
Europaring F15 | 2345 Brunn am Gebirge, Austria | www.sipwise.com

On 07/09/2015 04:15 PM, Julian Seifert wrote:
> Okay I just removed the "#" from the proxy and contact line in 
> /etc/ngcp-sems/etc/reg_agent.conf 
> It worked! but why is the reg_agent.conf generated like that?
> Would I need to add those options to the template file as well?
> 
> kind regards, 
> 
>   Julian Seifert
> 
> ________________________________________
> Von: Spce-user [spce-user-bounces at lists.sipwise.com]" im Auftrag von "Julian Seifert [js at dacor.de]
> Gesendet: Donnerstag, 9. Juli 2015 16:13
> An: Daniel Grotti; spce-user at lists.sipwise.com
> Betreff: Re: [Spce-user] ngcp-sems sendto error
> 
> Hi Daniel,
> 
> Thank you for taking the time to answer, I'll try to gather all the information you asked for.
> 
> root at spce:~# cat  /etc/ngcp-config/network.yml
> ---
> hosts:
>   self:
>     dbnode: 1
>     eth0:
>       ip: 185.53.218.15
>       netmask: 255.255.255.0
>       type:
>         - web_ext
>         - web_int
>         - sip_ext
>         - rtp_ext
>         - ssh_ext
>     interfaces:
>       - lo
>       - eth0
>     lo:
>       cluster_sets:
>         - default
>       ip: 127.0.0.1
>       netmask: 255.255.255.0
>       shared_ip: []
>       shared_v6ip: []
>       type:
>         - sip_int
>         - ha_int
>         - aux_ext
>       v6ip: '::1'
>     role:
>       - proxy
>       - lb
>       - mgmt
>       - rtp
>       - db
> 
> 
> 
> 
> root at spce:~# cat /etc/ngcp-config/templates/etc/ngcp-sems/etc/reg_agent.conf.tt2
> 
> [% argv.role='lb'; argv.type='sip_ext'; PROCESS '/usr/lib/ngcp-ngcpcfg/get_all_shared_ips'; sip_ext_ips = out -%]
> [% IF !sip_ext_ips.size -%]
> [% argv.role='lb'; argv.type='sip_ext'; PROCESS '/usr/lib/ngcp-ngcpcfg/get_all_ips'; sip_ext_ips = out -%]
> [% END -%]
> [% argv.role='lb'; argv.type='sip_int'; PROCESS '/usr/lib/ngcp-ngcpcfg/get_all_shared_ips'; sip_lb_ips = out -%]
> [% IF !sip_lb_ips.size -%]
> [% argv.role='lb'; argv.type='sip_int'; PROCESS '/usr/lib/ngcp-ngcpcfg/get_all_ips'; sip_lb_ips = out -%]
> [% END -%]
> [% argv.role='lb'; argv.type='sip_ext'; PROCESS '/usr/lib/ngcp-ngcpcfg/get_all_adv_ips'; sip_adv_ips = out -%]
> # IMPORTANT:
> # Only set "domain", "user" and "pwd", and leave "proxy" and "contact" EXACTLY
> # as is to make outbound registrations to work.
> #
> # Note that the "contact" parameter is specific to the Sipwise SPCE and does
> # not yet exist in the official sems.
> 
> #domain=<your peer realm>
> #user=<your peer user>
> #pwd=<your peer password>
> domain=sip.easybell.de
> user=oursecretusername
> pwd=oursecretpassword
> 
> #proxy=sip:[% sip_lb_ips.0 %]:[% kamailio.lb.port %]
> [% IF sip_adv_ips.size -%]
> #contact=sip:[% sip_adv_ips.0 %]:[% kamailio.lb.port %]
> [% ELSE -%]
> #contact=sip:[% sip_ext_ips.0 %]:[% kamailio.lb.port %]
> [% END -%]
> 
> #domain1=<your peer realm>
> #user1=<your peer user>
> #pwd1=<your peer password>
> #proxy1=sip:[% sip_lb_ips.0 %]:[% kamailio.lb.port %]
> [% IF sip_adv_ips.size -%]
> #contact1=sip:[% sip_adv_ips.0 %]:[% kamailio.lb.port %]
> [% ELSE -%]
> #contact1=sip:[% sip_ext_ips.0 %]:[% kamailio.lb.port %]
> [% END %]
> 
> #domain2=<your peer realm>
> #user2=<your peer user>
> #pwd2=<your peer password>
> #proxy2=sip:[% sip_lb_ips.0 %]:[% kamailio.lb.port %]
> [% IF sip_adv_ips.size -%]
> #contact2=sip:[% sip_adv_ips.0 %]:[% kamailio.lb.port %]
> [% ELSE -%]
> #contact2=sip:[% sip_ext_ips.0 %]:[% kamailio.lb.port %]
> [% END %]
> 
> # Up to 50 registrations are possible.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> the template is correctly translated to the actual configuration file:
> root at spce:~# cat /etc/ngcp-sems/etc/reg_agent.conf
> 
> # IMPORTANT:
> # Only set "domain", "user" and "pwd", and leave "proxy" and "contact" EXACTLY
> # as is to make outbound registrations to work.
> #
> # Note that the "contact" parameter is specific to the Sipwise SPCE and does
> # not yet exist in the official sems.
> 
> #domain=<your peer realm>
> #user=<your peer user>
> #pwd=<your peer password>
> domain=sip.easybell.de
> user=oursecretusername
> pwd=oursecretpassword
> 
> #proxy=sip:127.0.0.1:5060
> #contact=sip:185.53.218.15:5060
> 
> #domain1=<your peer realm>
> #user1=<your peer user>
> #pwd1=<your peer password>
> #proxy1=sip:127.0.0.1:5060
> #contact1=sip:185.53.218.15:5060
> 
> 
> #domain2=<your peer realm>
> #user2=<your peer user>
> #pwd2=<your peer password>
> #proxy2=sip:127.0.0.1:5060
> #contact2=sip:185.53.218.15:5060
> 
> 
> also:
> root at spce:~# grep -ie outbound.*register /var/log/ngcp/kamailio-lb.log
> root at spce:~#
> 
> while looking at the actual configfile that's being generated I wonder if the proxy and contact should really
> be preceeded by a "#". And why is it generated like that?
> 
> kind regards,
> 
> 
>   Julian Seifert
> 
> ________________________________________
> Von: Spce-user [spce-user-bounces at lists.sipwise.com]" im Auftrag von "Daniel Grotti [dgrotti at sipwise.com]
> Gesendet: Donnerstag, 9. Juli 2015 14:39
> An: spce-user at lists.sipwise.com
> Betreff: Re: [Spce-user] ngcp-sems sendto error
> 
> Hi Julian,
> how your /etc/ngcp-config/network.yml looks like ?
> 
> 
> 
> 
> --
> Daniel Grotti
> VoIP Engineer
> 
> 
> Sipwise GmbH
> Europaring F15 | 2345 Brunn am Gebirge, Austria | www.sipwise.com
> 
> On 07/09/2015 12:32 AM, Julian Seifert wrote:
>> 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
>>
>>
>>
>>
>> _______________________________________________
>> Spce-user mailing list
>> Spce-user at lists.sipwise.com
>> https://lists.sipwise.com/listinfo/spce-user
>>
> _______________________________________________
> Spce-user mailing list
> Spce-user at lists.sipwise.com
> https://lists.sipwise.com/listinfo/spce-user
> _______________________________________________
> Spce-user mailing list
> Spce-user at lists.sipwise.com
> https://lists.sipwise.com/listinfo/spce-user
> 



More information about the Spce-user mailing list