Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - abma

Pages: [1] 2
Other Yate server issues / Re: no audio with srtp/rtp_forward=no
« on: June 16, 2016, 08:12:26 AM »
(very likely) a bug in yate:

ok, i migrated to FreeSwitch there it works fine: i'm pretty sure this is a yate bug.

snom doesn't see an error in the trace, so why is yate discarrding the packets?

oh, sorry, the snom bug tracker requires an account.

without login:

When using SRTP with a Snom 715, SRTP packets are dropped by yate with:

Code: [Select]
SRTP HMAC recv: e4dfae70 calc: 0a1071eb seq: 66331 [0x7f47c801d5a0]
more details at

when rtp is forwarded / the phones directly communicate, it works fine.

sorry, i'm still not sure if this is a yate or a snom bug. :-|

I've created a bug report at snom, too, see the packet dump of such a call.

Other Yate server issues / Re: no audio with srtp/rtp_forward=no
« on: May 04, 2016, 08:01:58 AM »
and more details :)

in "TelEngine::RTPReceiver::rtpData(const void*, int)" rtpCheckIntegrity() fails.

Code: [Select]
2016-05-04_16:00:34.969001 <WARN> SRTP HMAC recv: e4dfae70 calc: 0a1071eb seq: 66331 [0x7f47c801d5a0]

an idea what could cause this / how to solve this?

Other Yate server issues / Re: no audio with srtp/rtp_forward=no
« on: May 03, 2016, 06:41:42 AM »
more details:

its a snom715: when i disable SRTP it works, with SRTP enabled nothing gets recorded.

Other Yate server issues / Re: no audio with srtp/rtp_forward=no
« on: May 02, 2016, 11:55:55 AM »
i've tried to simplify the testcase:

in regexroute with this:
Code: [Select]

the file gets created, but its empty when i hang up the call. an idea what could be wrong / why yate doesn't receive (or understand?) the rtp from the phone?

Code: [Select]
20160502175741.345343 <INFO> Could not classify call from '<caller>', wasted 12 usec
20160502175741.346042 <INFO> Routing call to '99' in context 'default' via 'wave/record//tmp/echoback-<caller>.slin' in 300 usec
20160502175741.346534 <wave:INFO> Record to wave file '/tmp/echoback-<caller>.slin'
20160502175741.347064 <wave/47:ALL> WaveChan::WaveChan(record) [0x7f7ef00511e0]
20160502175741.347355 <wave:ALL> WaveConsumer::WaveConsumer("/tmp/echoback-<caller>.slin",0x7f7ef00511e0,0,"(null)",false,0x7f7ef0035eb0) [0x7f7ef00077c0]
20160502175741.348078 <yrtp:ALL> RTP/SAVP message received
20160502175741.348227 <yrtp:INFO> Guessed local IP '<pbx ip>' for remote '<phone ip>'
20160502175741.348277 <yrtp:ALL> YRTPWrapper::YRTPWrapper('<pbx ip>',0x7f7f0c0764f0,'audio',bidir,0x7f7ef0055c20,false) [0x7f7ef0018510]
20160502175741.348298 <yrtp:ALL> YRTPWrapper::setupRTP("<pbx ip>",true,true) [0x7f7ef0018510]
20160502175741.348364 <yrtp:INFO> Session 'yrtp/1841441955' 0x7f7ef00516b0 bound to <pbx ip>:28468 +RTCP [0x7f7ef0018510]
20160502175741.348409 <yrtp:ALL> YRTPSource::YRTPSource(0x7f7ef0018510) [0x7f7ef0050c70]
20160502175741.348429 <INFO> DataTranslator::attachChain [0x7f7ef0050c70] '(null)' -> [0x7f7ef00077c0] 'slin' not possible
20160502175741.348446 <yrtp:ALL> YRTPConsumer::YRTPConsumer(0x7f7ef0018510) [0x7f7ef0024b30]
20160502175741.348468 <yrtp:ALL> YRTPWrapper::startRTP("<phone ip>",52072) [0x7f7ef0018510]
20160502175741.348491 <yrtp:INFO> RTP starting format 'alaw' payload 8 [0x7f7ef0018510]
20160502175741.348513 >>> DataTranslator::detachChain(0x7f7ef0050c70,0x7f7ef00077c0)
20160502175741.348535 <<< DataTranslator::detachChain
20160502175741.348553 <ALL> Created DataTranslator 0x7f7ef00148e0 for 'alaw' -> 'slin' by factory 0x7f7f3985b980 (len=1)
20160502175741.348864 <ALL> DataTranslator::attachChain [0x7f7ef0050c70] 'alaw' -> [0x7f7ef00077c0] 'slin' succeeded
20160502175741.349322 <yrtp:ALL> YRTPWrapper::startSRTP('AES_CM_128_HMAC_SHA1_32','inline:XaoDgX8KDCLdwMJ3zS2fT+/EDUeQ42G0VXSnZt7D',(nil)) [0x7f7ef0018510]
20160502175741.349947 <INFO> RTPSecure::setup('AES_CM_128_HMAC_SHA1_32','inline:XaoDgX8KDCLdwMJ3zS2fT+/EDUeQ42G0VXSnZt7D',(nil)) [0x7f7ef0054900]
20160502175741.351158 <INFO> RTPSecure::init() encrypt=true authlen=4 [0x7f7ef0054900]
20160502175741.351428 <yrtp:NOTE> Started SRTP suite 'AES_CM_128_HMAC_SHA1_32' [0x7f7ef0018510]
20160502175741.351609 <yrtp:ALL> YRTPWrapper::setupSRTP(true) [0x7f7ef0018510]
20160502175741.351684 <INFO> RTPSecure::init() encrypt=true authlen=4 [0x7f7ef0024920]
20160502175741.351757 <NOTE> Choosing started 'audio' format 'alaw' [0x7f7f0c02ac00]
20160502175741.416401 <yrtp:ALL> RTP/SAVP message received
20160502175741.416563 <yrtp:ALL> Wrapper 0x7f7ef0018510 found by CallEndpoint 0x7f7f0c0764f0
20160502175741.416588 <yrtp:ALL> YRTPWrapper::startRTP("<phone ip>",52072) [0x7f7ef0018510]

Other Yate server issues / no audio with srtp/rtp_forward=no
« on: April 26, 2016, 07:28:38 AM »
when i disable rtp_forward then i have no audio. it seems yate receives the rtp stream but doesn't forward it to the other leg.

i.e. phone a sends rtp to yate, yate receives the rtp packet but doesn't forward it to phone b

an idea what could cause this?

with rtp_forward=yes it works.

Code: [Select]
<INFO> Could not classify call from '303', wasted 9 usec
<INFO> Could not route call to '304' in context 'default', wasted 950 usec
<cdrbuild:INFO> Got message 'call.route' for untracked id 'sip/89'
<yrtp:ALL> RTP/SAVP message received
<yrtp:ALL> YRTPWrapper::YRTPWrapper('<yate server ip>',0x7f98fc02e760,'audio',bidir,0x7f98fc02acc0,false) [0x7f98fc0419a0]
<yrtp:ALL> YRTPWrapper::setupRTP("<yate server ip>",true,true) [0x7f98fc0419a0]
<yrtp:INFO> Session 'yrtp/305743342' 0x7f98fc030a60 bound to <yate server ip>:39018 +RTCP [0x7f98fc0419a0]
<yrtp:ALL> YRTPSource::YRTPSource(0x7f98fc0419a0) [0x7f98fc005940]
<yrtp:ALL> YRTPConsumer::YRTPConsumer(0x7f98fc0419a0) [0x7f98fc007e80]
<yrtp:ALL> YRTPWrapper::setupSRTP(true) [0x7f98fc0419a0]
<yrtp:ALL> RTP/SAVP message received
<yrtp:ALL> Wrapper 0x7f98fc0419a0 found by CallEndpoint 0x7f98fc02e760
<yrtp:ALL> YRTPWrapper::startRTP("<phone ip 2>",53388) [0x7f98fc0419a0]
<yrtp:INFO> RTP starting format 'alaw' payload 8 [0x7f98fc0419a0]
<INFO> RTPSecure::init() encrypt=true authlen=4 [0x7f98fc005d60]
<yrtp:ALL> YRTPWrapper::startSRTP('AES_CM_128_HMAC_SHA1_32','inline:fXFTe5zhvpd9j85nnjDTXVRwCtyi/eHI82gB/NVp',(nil)) [0x7f98fc0419a0]
<INFO> RTPSecure::setup('AES_CM_128_HMAC_SHA1_32','inline:fXFTe5zhvpd9j85nnjDTXVRwCtyi/eHI82gB/NVp',(nil)) [0x7f98e805fb50]
<INFO> RTPSecure::init() encrypt=true authlen=4 [0x7f98e805fb50]
<yrtp:NOTE> Started SRTP suite 'AES_CM_128_HMAC_SHA1_32' [0x7f98fc0419a0]
<yrtp:ALL> YRTPWrapper::setupSRTP(true) [0x7f98fc0419a0]
<NOTE> Choosing started 'audio' format 'alaw' [0x7f98fc030080]
<yrtp:ALL> RTP/SAVP message received
<yrtp:ALL> YRTPWrapper::YRTPWrapper('<yate server ip>',0x7f98e8060140,'audio',bidir,0x7f98fc002400,false) [0x7f98fc02f900]
<yrtp:ALL> YRTPWrapper::setupRTP("<yate server ip>",true,true) [0x7f98fc02f900]
<yrtp:INFO> Session 'yrtp/1232061648' 0x7f98fc04bd60 bound to <yate server ip>:39708 +RTCP [0x7f98fc02f900]
<yrtp:ALL> YRTPSource::YRTPSource(0x7f98fc02f900) [0x7f98fc006f50]
<INFO> DataTranslator::attachChain [0x7f98fc006f50] '(null)' -> [0x7f98fc007e80] 'alaw' not possible
<yrtp:ALL> YRTPConsumer::YRTPConsumer(0x7f98fc02f900) [0x7f98fc0070e0]
<INFO> DataTranslator::attachChain [0x7f98fc005940] 'alaw' -> [0x7f98fc0070e0] '(null)' not possible
<yrtp:ALL> YRTPWrapper::startRTP("<phone ip 1>",50726) [0x7f98fc02f900]
<yrtp:INFO> RTP starting format 'alaw' payload 8 [0x7f98fc02f900]
>>> DataTranslator::detachChain(0x7f98fc006f50,0x7f98fc007e80)
<<< DataTranslator::detachChain
<ALL> DataTranslator::attachChain [0x7f98fc006f50] 'alaw' -> [0x7f98fc007e80] 'alaw' succeeded
>>> DataTranslator::detachChain(0x7f98fc005940,0x7f98fc0070e0)
<<< DataTranslator::detachChain
<ALL> DataTranslator::attachChain [0x7f98fc005940] 'alaw' -> [0x7f98fc0070e0] 'alaw' succeeded
<yrtp:ALL> YRTPWrapper::startSRTP('AES_CM_128_HMAC_SHA1_32','inline:69Lro0DKDtf+bZyA3z8St0wYyCc7yzdNWKDDwSJC',(nil)) [0x7f98fc02f900]
<INFO> RTPSecure::setup('AES_CM_128_HMAC_SHA1_32','inline:69Lro0DKDtf+bZyA3z8St0wYyCc7yzdNWKDDwSJC',(nil)) [0x7f98fc005550]
<INFO> RTPSecure::init() encrypt=true authlen=4 [0x7f98fc005550]
<yrtp:NOTE> Started SRTP suite 'AES_CM_128_HMAC_SHA1_32' [0x7f98fc02f900]
<yrtp:ALL> YRTPWrapper::setupSRTP(true) [0x7f98fc02f900]
<INFO> RTPSecure::init() encrypt=true authlen=4 [0x7f98fc03c850]
<NOTE> Choosing started 'audio' format 'alaw' [0x7f98e805ef10]
<yrtp:ALL> RTP/SAVP message received
<yrtp:ALL> Wrapper 0x7f98fc02f900 found by CallEndpoint 0x7f98e8060140
<yrtp:ALL> YRTPWrapper::startRTP("<phone ip 1>",50726) [0x7f98fc02f900]

Other Yate server issues / Re: high cpu usage of an idle yate pbx
« on: April 20, 2016, 03:58:32 AM »
more verbose ouput with perf top --call-graph dwarf

Code: [Select]
-   52,38%     2,09%  ysipchan.yate              [.] _init
   - _init                                                                         
      - 45,23% _init                                                       
           44,47% _ZN9TelEngine13ThreadPrivate3runEv
           0,75% _init                                                                   
      - 25,28% _ZN9TelEngine13ThreadPrivate3runEv   

if someone runs into this issue, too, the openssl command to test is:

Code: [Select]
openssl s_client -connect <sip trunk ip>:5061 -CAfile server.pem -cert server.pem -key server.key
-CAfile is imporant, else the openssl client doesn't send the certificate / certificate chain.

when it works, the connection stays open.

thanks, this worked!

i totally missed the config setting in ysipchan.conf. for some reason i thought all ssl/tls related config settings are in openssl.conf.

Other Yate server issues / high cpu usage of an idle yate pbx
« on: April 18, 2016, 08:18:14 AM »
i've setup a yate server with ~100 SIP clients connecting via TLS/SSIP.

yate spans a lot "YSIP Worker" threads where every thread consumes ~ 1% CPU.

so in total Yate uses 50% of one CPU Core when idling.

Basicly its ubuntu default config of yate 5.4.

Is this cpu load normal?
How can the idle cpu load of yate reduced?

output of perf top:

Code: [Select]
  18,38%  [kernel]                    [k] finish_task_switch
  13,89%          [.] 0x00000...
   7,58%  [kernel]                    [k] _raw_spin_unlock_irqrestore
   2,42%  ysipchan.yate               [.] _init
   1,80%  [kernel]                    [k] tcp_recvmsg

tcpdump reports basicly no traffic (1 packet / 10 seconds or so...)

i'm trying to configure an encrypted connection to a sip trunk in yate. the isp followed the standard "Sip Connect 1.1" and requires the sip client (=yate) to connect via a signed client certificate. Its also required that the client sends the certificate chain when connecting.

this connection works:

openssl s_client  -connect <ip>:5061 -CAfile server.pem -cert server.pem -key server.key -debug

does yate support this at all? i couldn't find openssl config parameters for  client connections to a sip trunk.

i'm still getting the same errors as in (but now i have a valid certificate which works with openssl s_client...)

got response from the provider: the sip trunk is expecting a signed certificate and because our certificate isn't signed (yet) it disallows the connection.

Pages: [1] 2