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 - feredi

Pages: [1] 2
1
Yate bugs / Re: Module not unloading correctly
« on: January 03, 2017, 03:26:09 AM »
Hi guys,

Any hint on this?

2
Yate bugs / Module not unloading correctly
« on: December 16, 2016, 08:11:43 PM »
Hello,

I have created a complex module which has several sub-modules. Whenever I try to use some specific libraries like mysqlconnector++, restbed, pistache or maybe some more libraries I haven't tried yet I face a serious problem which causes the module not being unloaded correclty. I guess these libraries remain in memory for some unknown reason. In log I get following notice on module unload command being issued from rmanager:
<GOON> Unloading 'my_module' removed 0 out of 1 plugins
and it is obvious that my_module class which inherits Plugin class hasn't been unloaded because its destructor never gets called.

I currently could have integrate my module with some other libraries (occi, nlohmann::json) without any problem. I had similar problem while managing namespaces across my sub-modules but I came to a working structure. For example attaching a SS7ISUP class which is declared in a namespace other than anonymous namespace causes the same error.

Any idea what's happening and how can I fix this?

Regards

3
Other Yate server issues / Yate + wanpipe + SS7
« on: September 17, 2016, 05:56:56 PM »
Hi,

I am trying to configure yate + SS7 link on a Sangoma E1 card on CentOs 6.6. I have tried latest wanpipe kernel drivers 7.0.20 and older one 7.0.9 that are highest and lowest versions that compile successfully on linux kernel 2.6.32.
I have used sample configs on Yate documentation but yate complains with following errors:

Reinitializing...
Initializing plugin 'sig'
Initializing module Signalling Channel
20160918000330.419129 <MILD> Factory could not create 'SignallingCircuitSpan' named 'isup_Trunk1/L1/Data/wanpipe1'
20160918000330.419205 <sig:NOTE> Trunk('isup_Trunk1'). Create failure: Failed to build voice span 'wanpipe1' [0x7f3a280097e0]
20160918000330.419242 <sig:WARN> Failed to initialize trunk 'isup_Trunk1' of type 'ss7-isup'
20160918000330.419275 <linkset1:ALL> Point code types are 'ITU' [0x7f3a28009b90]
Destinations of 'linkset1': [0x7f3a28009b90]
ITU     0-0-1 > 0-0-2 0 (unknown)
20160918000330.419487 <CiscoSM:CONF> Ambiguous request! Requested to create a layer2 with external config, but no module param is present!
20160918000330.419525 <link1:NOTE> Link inhibition changed 0x01 -> 0x03 [0x7f3a28009ee0]
20160918000330.419538 <linkset1:ALL> Attached link (0x7f3a28009ee0,'link1') with SLS=0 [0x7f3a28009b90]
20160918000330.419549 <link1:ALL> Attached L2 user (0x7f3a28009ce0,'linkset1') [0x7f3a28009ee0]
20160918000330.419568 <MILD> Factory could not create 'SignallingInterface' named 'wanpipe1'
20160918000330.419581 <linkset1:ALL> Detached link (0x7f3a28009ee0,'link1') with SLS=0 [0x7f3a28009b90]
20160918000330.419607 <link1:ALL> Detached L2 user (0x7f3a28009ce0,'linkset1') [0x7f3a28009ee0]
20160918000330.419692 <linkset1:ALL> Attached L3 user (0x262ea20,'ss7router') [0x7f3a28009b90]
20160918000330.419706 <ss7router:ALL> Attached network (0x7f3a28009b90,'linkset1') [0x262ea20]
20160918000330.419723 <sig:WARN> Failed to initialize 'linkset1' of type 'ss7-mtp3'
20160918000330.419738 <ss7router:ALL> Detached network (0x7f3a28009b90,'linkset1') [0x262ea20]
20160918000330.419748 <linkset1:ALL> Detached L3 user (0x262ea20,'ss7router') [0x7f3a28009b90]
No routes in 'ss7router' [0x262ea28]

wanpipe1.conf

[devices]
wanpipe1 = WAN_AFT_TE1, Comment

[interfaces]
w1g1 = wanpipe1, , API, Comment
w1g2 = wanpipe1, , API, Comment

[wanpipe1]
CARD_TYPE    = AFT
S514CPU    = A
CommPort    = PRI
AUTO_PCISLOT    = NO
PCISLOT    = 4
PCIBUS     = 12
FE_MEDIA   = E1
FE_LCODE   = HDB3
FE_FRAME   = NCRC4
FE_LINE      = 1
TE_CLOCK    = NORMAL
TE_REF_CLOCK    = 0
TE_HIGHIMPEDANCE   = NO
TE_RX_SLEVEL   = 300
LBO       = 120OH
TE_SIG_MODE   = CCS
FE_TXTRISTATE   = NO
MTU       = 1500
UDPPORT    = 9000
TTL      = 255
IGNORE_FRONT_END = NO
TDMV_HW_DTMF   = NO
ACTIVE_CH       = ALL
DATA_MUX_MAP    = 0x01234567

[w1g1]
HDLC_STREAMING  = YES
ACTIVE_CH       = 1
TDMV_HWEC       = NO

[w1g2]
HDLC_STREAMING  = NO
ACTIVE_CH       = 2-31
IDLE_FLAG       = 0x7E
MTU             = 1200
MRU             = 1200
DATA_MUX        = YES
TDMV_HWEC       = YES

wpcard.conf:
[general]
;bitswap=enable
idlevalue=255
buflen=160
hwrepeatcapable=true
dumpevents=yes
                                                                                                                                                                                                                                                                     
[wanpipe1]
type=E1
readonly=no
siggroup=w1g1
voicegroup=w1g2
voicechans=2-31
;offset=0
increment=32
samples=40
errormask=255
echocancel=yes
dtmfdetect=yes
bitswap=false

ysigchan.conf

[general]
debuglevel=9,9,9,9,9
debuglevel_engine=9,9,9,9,9
enable=yes
dtmfinband=no

[isup_Trunk1]
enable=yes
type=ss7-isup
pointcodetype=ITU
service=5
pointcode=1
defaultpointcode=1
remotepointcode=2
priority=regular

network=linkset1

lockgroup=no
earlyacm=no
sig=wanpipe1
sls=cic
offset=0
voice=wanpipe1
strategy=random
channelsync=1000
ringback=yes
presentation=allowed
screening=user-provided
format=alaw
print-messages=yes
checklinks=false
checkfails=false

[linkset1]
type=ss7-mtp3
netindicator=national
netind2pctype=ITU
local=ITU,1
adjacent=ITU,2
;route=ITU,1
autostart=yes
link=link1
link1.sig=wanpipe1
router=ss7router

[link1]
type=ss7-mtp2
autostart=yes
emergency=no
filllink=no
rxunderrun=0
link1.sig=wanpipe1
sig=wanpipe1


[ss7router]
type=ss7-router
transfer=yes
local=ITU,1
autostart=yes
starttime=5000
print-messages=no
extended-debug=no


Does any of above seem problematic to you? Could anyone configure Yate with Sangoma cards recently?

Thanks in advance

4
Yate bugs / Re: How to find out which child is unresponsive?
« on: August 09, 2015, 07:37:47 AM »
Sorry for opening this thread again.

The same script which is now working on my server is showing same symptoms as indicated in above logs on different server. Any idea what could be wrong here?
UPDATE:
Supervisor: killing unresponsive child 29157 is showing up in logs and child 29157 is PID of yate process itself. I used top to get pid. my global script can also be found in top output but it has a different pid. That's why I guess the problem isn't related to external script.

Thanks

5
Link is broken

6
Hi,

Let's say I have 4 PRI links already setup with my Yate running box. I have a random number of incoming calls that each of them is going to make an outgoing call respectively. When trying to make a call it is possible that any of links is out of free channels so how can I tell Yate to route the call through any link that has free channels? I want to do this in extmodule in php using call.execute. Any ideas guys?

Thanks

7
Other Yate server issues / Re: Plugin vs Module
« on: June 03, 2015, 04:45:46 AM »
When a new library is loaded the Engine will call Plugin::initialize() for all loaded plugins.
Hi,

So I understand now why all other plugins are reloaded when I want to load my plugin. At first place I thought my code is causing some interference with other plugins causing them to get reloaded. However, what's the point in calling initialize for all loaded plugins every time a new plugin is loaded?

Thanks

8
Other Yate server issues / Plugin vs Module
« on: June 02, 2015, 02:54:43 PM »
Hi all,

I have two questions and I will be grateful if somebody could help me know the answer to them.

1) What are specific differences between Module and Plugin classes? When I want to add some more functionality, which one should I go with?
2) I have derived my module class from Plugin. When I load it with module load command in rmanager, I see other plugins I have created the same way get re-initialized along with some modules like MySql, etc. why is that so? Is it by design or is it that I might have some bug? How can two completely different plugins interfere with each other while they're doing different things.

Regards

9
Yate bugs / Re: How to find out which child is unresponsive?
« on: June 02, 2015, 02:31:53 PM »
I had a global array in my PHP code. I changed it to be a class member and solved a few memory leaks in my code and the problem never occurred again so far. Thank you Monica for directing me to the right direction and pointing out the possibility of having a bug in external script.

10
Yate bugs / Re: How to find out which child is unresponsive?
« on: May 21, 2015, 09:06:43 AM »
And it happened again! Log file is attached.

11
Yate bugs / Re: How to find out which child is unresponsive?
« on: May 21, 2015, 08:41:33 AM »
Hi Monica,

Thanks for your reply.

A more complete log is included below. Some unfamiliar logs you see are those added to source code by me and I forgot to remove them later ;-) those like (Connecting peersssssssssssss or Here is ToneDetectHandler coming in action  :D). If you need more log just let me know and I'll attach a more complete log file.
I only have a php script running which is acting as an IVR. It's written based on ivr-sample.php available on internet. (https://github.com/shimaore/yate/blob/master/share/scripts/ivrsample.php). Of course I have made a few changes on it to customize it for my needs. So you think this php script is causing the problem? Do you have any idea how can I find out which piece of its code is doing something wrong? As you can see its debugging is turned on. The last thing this php script had done before the crash occurred was ivr1::SetState('sig/15998', currencyPlay') which is simply assigning currencyPlay to a global variable and the next thing done after an unresponsive child being detected by Yate was ivr1: Found table operation 'play' which is when a file is going to be played to caller.

Code: [Select]
ivr1: Got 5 in state pin
20150520053735.845277 <link4/Q931:ALL> Call(0,1036) direction=incoming TEI=0 [0x9a46290]
20150520053735.848725 <link4/Q931:ALL> Call(0,1036). State 'Null' --> 'CallPresent' [0x9a46290]
20150520053735.849069 <link4/B:ALL> ZapCircuit(19). IOCTL(SetLinear) failed on channel 112 (param=0). 22: Invalid argument [0x9a37d58]
20150520053735.849132 <link4/B:NOTE> ZapCircuit(19). IOCTL(SetToneDetect) failed on channel 112 (param=3). 38: Function not implemented [0x9a37d58]
20150520053735.849506 <sig/16010:CALL> Incoming call from=6893413514 to=684340 trunk=link4 sigcall=0x9a46290 [0xb46c8900]
20150520053735.858808 <INFO> Could not classify call from '6893413514', wasted 95 usec
20150520053735.859084 <cdrbuild:INFO> Got message 'call.route' for untracked id 'sig/16010'
20150520053735.859467 <INFO> Routing call to '684340' in context 'default' via 'dumb/' in 201 usec
ivr1: Got 5 in state pin
ivr1: Got 9 in state validuser
ivr1: array shifted arg: wave/play/ dumbid=dumb/10613 callid=sig/16001
ivr1::OnEOF('sig/16001')
ivr1: Got 6 in state pin
20150520053736.406776 <wave:ALL> WaveSource::WaveSource("-",0xb4193500) [0xb41943d0]
20150520053736.407073 >>> DataTranslator::detachChain(0xb3f18510,0xb46b61b8)
20150520053736.407123 <<< DataTranslator::detachChain
20150520053736.407145 >>> DataTranslator::detachChain(0xb3f18510,0xb419a238)
20150520053736.407169   >>> DataTranslator::detachChain(0xb3f18510,0xb3f16300)
20150520053736.407199     >>> DataTranslator::detachChain(0xb3f18510,0xb3f17a50)
20150520053736.407219     <<< DataTranslator::detachChain
20150520053736.407255   <<< DataTranslator::detachChain
20150520053736.407307 <<< DataTranslator::detachChain
20150520053736.407363 <ALL> Created DataTranslator 0xb4194498 for 'slin' -> 'alaw' by factory 0x620a94 (len=1)
20150520053736.407399 <ALL> DataTranslator::attachChain [0xb41943d0] 'slin' -> [0xb46b61b8] 'alaw' succeeded
20150520053736.407429 <ALL> Created DataTranslator 0xb4166e48 for 'slin' -> '2*slin' by factory 0x620ae0 (len=1)
20150520053736.407459 <ALL> DataTranslator::attachChain [0xb41943d0] 'slin' -> [0xb419a238] '2*slin' succeeded
20150520053736.407496 <wave:ALL> WaveSource::~WaveSource() [0xb3f18510] total=20160 stamp=20000
20150520053736.407527 <wave:INFO> WaveSource rate=2401 b/s
ivr1: Got 3 in state pin
ivr1: Got 9 in state pin
20150520053736.763099 <prepaidcard:TEST> Call duration is 303375 micro-seconds cic(941). Price=3166.666667, PinID=103730, CallType=Mobile, Rate=625.000000
ivr1: Got 6 in state pin
ivr1: array shifted arg: wave/play/ dumbid=dumb/10614 callid=sig/16002
ivr1::OnEOF('sig/16002')
ivr1::OnDispatch('chan.attach')
ivr1: Call found!!!!!!
ivr1::SetState('sig/16005', pin')
ivr1: Found table operation 'play'
ivr1: array shifted arg: wave/play//pin.alaw dumbid=dumb/10616 callid=sig/16005
20150520053737.469703 <ToneDetectHandler:MILD> Here is ToneDetectHandler coming in action...
20150520053737.469748 <ToneDetectHandler:ALL> Name: id Value: sig/16005
20150520053737.469781 <ToneDetectHandler:ALL> Name: module Value: sig
20150520053737.469803 <ToneDetectHandler:ALL> Name: status Value: incoming
20150520053737.469822 <ToneDetectHandler:ALL> Name: address Value: link4/12
20150520053737.469841 <ToneDetectHandler:ALL> Name: billid Value: 1431994764-10589
20150520053737.469862 <ToneDetectHandler:ALL> Name: peerid Value: dumb/10616
20150520053737.469883 <ToneDetectHandler:ALL> Name: answered Value: false
20150520053737.469906 <ToneDetectHandler:ALL> Name: direction Value: incoming
20150520053737.469925 <ToneDetectHandler:ALL> Name: handlers Value: ToneDetectHandler:90
20150520053737.470321 <ToneDetectHandler:MILD> Here is ToneDetectHandler coming in action...
20150520053737.470358 <ToneDetectHandler:ALL> Name: id Value: dumb/10616
20150520053737.470380 <ToneDetectHandler:ALL> Name: module Value: dumb
20150520053737.470422 <ToneDetectHandler:ALL> Name: status Value: outgoing
20150520053737.470442 <ToneDetectHandler:ALL> Name: billid Value: 1431994764-10589
20150520053737.470464 <ToneDetectHandler:ALL> Name: peerid Value: sig/16005
20150520053737.470485 <ToneDetectHandler:ALL> Name: answered Value: false
20150520053737.470506 <ToneDetectHandler:ALL> Name: direction Value: outgoing
20150520053737.470526 <ToneDetectHandler:ALL> Name: handlers Value: ToneDetectHandler:90
20150520053737.572047 <WARN> Connecting peersssssssssssss. reason: (null)
20150520053737.572357 <tonedetect:ALL> ToneConsumer::ToneConsumer(dumb/10621,'tone/mixed/dtmf') [0xb419b678]
20150520053737.572545 <link4/Q931:ALL> Call(0,1036). State 'CallPresent' --> 'IncomingProceeding' [0x9a46290]
20150520053737.572841 <tonedetect:ALL> ToneConsumer::ToneConsumer(sig/16010,'tone/mixed/dtmf') [0xb419bc20]
20150520053737.572953 <sig/16010:CALL> Call ringing [0xb46c8900]
20150520053737.573021 <link4/B:NOTE> ZapCircuit(19). Unable to send unknown event 2 [0x9a3cdb8]
20150520053737.573079 <link4/Q931:ALL> Call(0,1036). State 'IncomingProceeding' --> 'CallReceived' [0x9a46290]
20150520053737.573145 <link4/Q931:TEST> sendEvent::sendAlerting
ivr1: Got 2 in state pin
ivr1: Got 9 in state pin
20150520053737.810754 <link4/Q931:ALL> Call(0,1021). State 'CallReceived' --> 'DisconnectIndication' [0x9a5bc68]
20150520053737.810928 <sig/16005:CALL> Call hangup. Reason: 'normal' [0xb46c4560]
20150520053737.811027 <link4/Q931:ALL> Call(0,1021). State 'DisconnectIndication' --> 'ReleaseReq' [0x9a5bc68]
20150520053737.811214 <ALL> DumbChannel::disconnected() 'normal'
20150520053737.811335 <sig/16005:CALL> Call destroyed. Reason: 'normal'. No signalling call  [0xb46c4560]
20150520053737.811376 <tonedetect:ALL> ToneConsumer::~ToneConsumer [0xb419a720]
20150520053737.832106 <link4/Q931:ALL> Call(0,1021). State 'ReleaseReq' --> 'Null' [0x9a5bc68]
20150520053737.833822 <link4/Q931:ALL> Call(0,1021) destroyed with reason '(null)' [0x9a5bc68]
ivr1: Got 5 in state pin
ivr1::OnDispatch('chan.attach')
ivr1: Got 1 in state validuser
ivr1: Got 0 in state pin
ivr1: Call found!!!!!!
ivr1::SetState('sig/16006', pin')
ivr1: Found table operation 'play'
ivr1: array shifted arg: wave/play//pin.alaw dumbid=dumb/10617 callid=sig/16006
20150520053738.630568 <ToneDetectHandler:MILD> Here is ToneDetectHandler coming in action...
20150520053738.630612 <ToneDetectHandler:ALL> Name: id Value: dumb/10617
20150520053738.630645 <ToneDetectHandler:ALL> Name: module Value: dumb
20150520053738.630666 <ToneDetectHandler:ALL> Name: status Value: outgoing
20150520053738.630686 <ToneDetectHandler:ALL> Name: billid Value: 1431994764-10590
20150520053738.630705 <ToneDetectHandler:ALL> Name: peerid Value: sig/16006
20150520053738.630719 <ToneDetectHandler:ALL> Name: answered Value: false
20150520053738.630732 <ToneDetectHandler:ALL> Name: direction Value: outgoing
20150520053738.630752 <ToneDetectHandler:ALL> Name: handlers Value: ToneDetectHandler:90
20150520053738.636591 <ToneDetectHandler:MILD> Here is ToneDetectHandler coming in action...
20150520053738.636646 <ToneDetectHandler:ALL> Name: id Value: sig/16006
20150520053738.636668 <ToneDetectHandler:ALL> Name: module Value: sig
20150520053738.636690 <ToneDetectHandler:ALL> Name: status Value: incoming
20150520053738.636710 <ToneDetectHandler:ALL> Name: address Value: link4/14
20150520053738.636731 <ToneDetectHandler:ALL> Name: billid Value: 1431994764-10590
20150520053738.636752 <ToneDetectHandler:ALL> Name: peerid Value: dumb/10617
20150520053738.636772 <ToneDetectHandler:ALL> Name: answered Value: false
20150520053738.636795 <ToneDetectHandler:ALL> Name: direction Value: incoming
20150520053738.636815 <ToneDetectHandler:ALL> Name: handlers Value: ToneDetectHandler:90
ivr1: Call found!!!!!!
ivr1::SetState('sig/16007', pin')
ivr1: Found table operation 'play'
ivr1: array shifted arg: wave/play//pin.alaw dumbid=dumb/10618 callid=sig/16007
20150520053739.054177 <ToneDetectHandler:MILD> Here is ToneDetectHandler coming in action...
20150520053739.054263 <ToneDetectHandler:ALL> Name: id Value: sig/16007
20150520053739.054289 <ToneDetectHandler:ALL> Name: module Value: sig
20150520053739.054312 <ToneDetectHandler:ALL> Name: status Value: incoming
20150520053739.054333 <ToneDetectHandler:ALL> Name: address Value: link4/15
20150520053739.054354 <ToneDetectHandler:ALL> Name: billid Value: 1431994764-10591
20150520053739.054367 <ToneDetectHandler:ALL> Name: peerid Value: dumb/10618
20150520053739.054410 <ToneDetectHandler:ALL> Name: answered Value: false
20150520053739.054431 <ToneDetectHandler:ALL> Name: direction Value: incoming
20150520053739.054452 <ToneDetectHandler:ALL> Name: handlers Value: ToneDetectHandler:90
20150520053739.054625 <sig/16007:CALL> Call destroyed. Reason: 'normal'. No signalling call  [0xb46c7f08]
20150520053739.054694 <tonedetect:ALL> ToneConsumer::~ToneConsumer [0xb4198e78]
20150520053739.055072 <wave:ALL> WaveSource::WaveSource("/pin.alaw",0xb4179da0) [0xb4198f90]
20150520053739.055325 <ALL> DataTranslator::attachChain [0xb4198f90] 'alaw' -> [0xb46c0fc8] 'alaw' succeeded
20150520053739.055426 <ALL> Created DataTranslator 0xb4199170 for 'alaw' -> '2*slin' by factory 0x98de128 (len=2)
20150520053739.055465 <ALL> DataTranslator::attachChain [0xb4198f90] 'alaw' -> [0xb4185658] '2*slin' succeeded
20150520053739.056338 <ToneDetectHandler:MILD> Here is ToneDetectHandler coming in action...
20150520053739.056416 <ToneDetectHandler:ALL> Name: id Value: dumb/10618
20150520053739.056443 <ToneDetectHandler:ALL> Name: module Value: dumb
20150520053739.056464 <ToneDetectHandler:ALL> Name: status Value: outgoing
20150520053739.056485 <ToneDetectHandler:ALL> Name: billid Value: 1431994764-10591
20150520053739.056507 <ToneDetectHandler:ALL> Name: peerid Value: sig/16007
20150520053739.056528 <ToneDetectHandler:ALL> Name: answered Value: false
20150520053739.056548 <ToneDetectHandler:ALL> Name: direction Value: outgoing
20150520053739.056570 <ToneDetectHandler:ALL> Name: handlers Value: ToneDetectHandler:90
ivr1: Got 2 in state pin
ivr1: Got 0 in state pin
20150520053739.263983 <wave:ALL> WaveSource::WaveSource("/sounds/Numbering/7.alaw",0xb4180cd0) [0xb419c558]
20150520053739.264282 >>> DataTranslator::detachChain(0xb4193040,0xb46c6b08)
20150520053739.264342 <<< DataTranslator::detachChain
20150520053739.264365 >>> DataTranslator::detachChain(0xb4193040,0xb4165f68)
20150520053739.264388   >>> DataTranslator::detachChain(0xb4193040,0xb418bab0)
20150520053739.264412     >>> DataTranslator::detachChain(0xb4193040,0xb416e3d8)
20150520053739.264434     <<< DataTranslator::detachChain
20150520053739.264467   <<< DataTranslator::detachChain
20150520053739.264494 <<< DataTranslator::detachChain
20150520053739.264522 <ALL> DataTranslator::attachChain [0xb419c558] 'alaw' -> [0xb46c6b08] 'alaw' succeeded
20150520053739.264581 <ALL> Created DataTranslator 0xb418bab0 for 'alaw' -> '2*slin' by factory 0x98de128 (len=2)
20150520053739.264619 <ALL> DataTranslator::attachChain [0xb419c558] 'alaw' -> [0xb4165f68] '2*slin' succeeded
20150520053739.264644 <wave:ALL> WaveSource::~WaveSource() [0xb4193040] total=6400 stamp=6240
20150520053739.264670 <wave:INFO> WaveSource rate=748 b/s
ivr1: Got 0 in state pin
20150520053739.366509 <wave:ALL> WaveSource::WaveSource("-",0xb41768c0) [0xb419c620]
20150520053739.366749 >>> DataTranslator::detachChain(0xb417ec20,0xb46abf00)
20150520053739.367013 <<< DataTranslator::detachChain
20150520053739.367039 >>> DataTranslator::detachChain(0xb417ec20,0xb416bf88)
20150520053739.367065   >>> DataTranslator::detachChain(0xb417ec20,0xb4174400)
20150520053739.367089     >>> DataTranslator::detachChain(0xb417ec20,0xb418a6d8)
20150520053739.367110     <<< DataTranslator::detachChain
20150520053739.367164   <<< DataTranslator::detachChain
20150520053739.367197 <<< DataTranslator::detachChain
20150520053739.367252 <ALL> Created DataTranslator 0xb418a6d8 for 'slin' -> 'alaw' by factory 0x620a94 (len=1)
20150520053739.367292 <ALL> DataTranslator::attachChain [0xb419c620] 'slin' -> [0xb46abf00] 'alaw' succeeded
20150520053739.367326 <ALL> Created DataTranslator 0xb4174400 for 'slin' -> '2*slin' by factory 0x620ae0 (len=1)
20150520053739.367360 <ALL> DataTranslator::attachChain [0xb419c620] 'slin' -> [0xb416bf88] '2*slin' succeeded
20150520053739.367386 <wave:ALL> WaveSource::~WaveSource() [0xb417ec20] total=20160 stamp=20000
20150520053739.367412 <wave:INFO> WaveSource rate=1746 b/s
ivr1: Got 0 in state pin
20150520053739.554476 <sig/16003:CALL> Call answered [0xb46c4368]
20150520053739.554630 <ALL> Created DataTranslator 0xb4199ea0 for 'alaw' -> '2*slin' by factory 0x98de128 (len=2)
20150520053739.554674 <ALL> DataTranslator::attachChain [0xb46c0dc0] 'alaw' -> [0xb4191dc8] '2*slin' succeeded
20150520053739.554708 <link4/B:NOTE> ZapCircuit(10). Unable to send unknown event 23 [0x9a3ace8]
20150520053739.554886 <link4/Q931:ALL> Call(0,1018). State 'CallReceived' --> 'CallPresent' [0x9a5d960]
20150520053739.554933 <link4/Q931:ALL> Call(0,1018). State 'CallPresent' --> 'ConnectReq' [0x9a5d960]
20150520053739.613288 <link4/Q931:ALL> Call(0,1018). State 'ConnectReq' --> 'Active' [0x9a5d960]
ivr1: Got 0 in state pin
20150520053739.678138 <link4/Q931:ALL> Call(0,1045) direction=incoming TEI=0 [0x9a5bc68]
20150520053739.680716 <link4/Q931:ALL> Call(0,1045). State 'Null' --> 'CallPresent' [0x9a5bc68]
20150520053739.681204 <link4/B:ALL> ZapCircuit(21). IOCTL(SetLinear) failed on channel 114 (param=0). 22: Invalid argument [0x9a37d58]
20150520053739.681260 <link4/B:NOTE> ZapCircuit(21). IOCTL(SetToneDetect) failed on channel 114 (param=3). 38: Function not implemented [0x9a37d58]
20150520053739.681593 <sig/16011:CALL> Incoming call from=6893413550 to=684340 trunk=link4 sigcall=0x9a5bc68 [0xb46c4560]
20150520053739.687852 <INFO> Could not classify call from '6893413550', wasted 87 usec
20150520053739.688086 <cdrbuild:INFO> Got message 'call.route' for untracked id 'sig/16011'
20150520053739.688484 <INFO> Routing call to '684340' in context 'default' via 'dumb/' in 236 usec
20150520053739.772978 <wave:ALL> WaveSource 'sig/15979' end of data (4160 played) chan=0xb4180cd0 [0xb419c558]
20150520053739.773221 <wave:ALL> WaveSource cleanup, total=4160, chan=(nil) [0xb419c558]
ivr1: Got 6 in state validuser
ivr1: Got 5 in state pin
ivr1::OnDispatch('chan.attach')
20150520053739.938773 <wave:ALL> WaveSource::WaveSource("/dialtone.alaw",0xb4184b68) [0xb419cc20]
20150520053739.939073 >>> DataTranslator::detachChain(0xb41908b0,0xb46c2270)
20150520053739.939121   >>> DataTranslator::detachChain(0xb41908b0,0xb4172868)
20150520053739.939146   <<< DataTranslator::detachChain
20150520053739.939180 <<< DataTranslator::detachChain
20150520053739.939203 >>> DataTranslator::detachChain(0xb41908b0,0xb4173060)
20150520053739.939228   >>> DataTranslator::detachChain(0xb41908b0,0xb417d950)
20150520053739.939250   <<< DataTranslator::detachChain
20150520053739.939272 <<< DataTranslator::detachChain
20150520053739.939298 <ALL> DataTranslator::attachChain [0xb419cc20] 'alaw' -> [0xb46c2270] 'alaw' succeeded
20150520053739.939358 <ALL> Created DataTranslator 0xb417d950 for 'alaw' -> '2*slin' by factory 0x98de128 (len=2)
20150520053739.939417 <ALL> DataTranslator::attachChain [0xb419cc20] 'alaw' -> [0xb4173060] '2*slin' succeeded
20150520053739.953888 <wave:ALL> WaveSource cleanup, total=34080, chan=(nil) [0xb41908b0]
20150520053739.953977 <wave:ALL> WaveSource::~WaveSource() [0xb41908b0] total=34080 stamp=33920
20150520053739.954009 <wave:INFO> WaveSource rate=7999 b/s
20150520053739.988953 <ss7snm:INFO> Received 3 bytes message (0xb4694fc8) on linkset1:0
-----
RST [label=4-25-5:1-56-7:0]
  pointcodetype='ITU'
  destination='1-57-1'
-----
20150520053739.989086 <ss7snm:INFO> RST (label=4-25-5:1-56-7:0): Traffic test-prohibited to dest=1-57-1 [0x9a28880]
ivr1: Got 0 in state pin
20150520053740.067325 <wave:ALL> WaveSource::WaveSource("-",0xb4181ce0) [0xb41908b0]
20150520053740.067529 >>> DataTranslator::detachChain(0xb41701c8,0xb46ae7c0)
20150520053740.067574 <<< DataTranslator::detachChain
20150520053740.067598 >>> DataTranslator::detachChain(0xb41701c8,0xb41998d8)
20150520053740.067624   >>> DataTranslator::detachChain(0xb41701c8,0xb417a900)
20150520053740.067648     >>> DataTranslator::detachChain(0xb41701c8,0xb41539e8)
20150520053740.067671     <<< DataTranslator::detachChain
20150520053740.067706   <<< DataTranslator::detachChain
20150520053740.067734 <<< DataTranslator::detachChain
20150520053740.068008 <ALL> Created DataTranslator 0xb41539e8 for 'slin' -> 'alaw' by factory 0x620a94 (len=1)
20150520053740.068056 <ALL> DataTranslator::attachChain [0xb41908b0] 'slin' -> [0xb46ae7c0] 'alaw' succeeded
20150520053740.068088 <ALL> Created DataTranslator 0xb416e5e0 for 'slin' -> '2*slin' by factory 0x620ae0 (len=1)
20150520053740.068123 <ALL> DataTranslator::attachChain [0xb41908b0] 'slin' -> [0xb41998d8] '2*slin' succeeded
20150520053740.068193 <wave:ALL> WaveSource::~WaveSource() [0xb41701c8] total=20160 stamp=20000
20150520053740.068221 <wave:INFO> WaveSource rate=2040 b/s
ivr1: Got 8 in state pin
ivr1: NULL
ivr1: Engine worked
ivr1: User validated
ivr1::SetState('sig/15998', currencyPlay')
Supervisor: killing unresponsive child 13463
ivr1: Found table operation 'play'
Yate (2518) is starting Wed May 20 10:07:41 2015
20150520053742.144443 <ALL> Plugin::Plugin("openssl",true) [0x3337a0]
Loaded module OpenSSL - based on OpenSSL 1.0.1e-fips 11 Feb 2013
20150520053742.218544 <ALL> Plugin::Plugin("wave",false) [0x377740]
Loaded module WaveFile
20150520053742.265070 <ALL> Plugin::Plugin("cdrfile",true) [0x92f3a0]
Loaded module CdrFile
20150520053742.326627 <ALL> Plugin::Plugin("zlibcompress",true) [0xfc7a20]
Loaded module ZLib - using zlib library version 1.2.3
20150520053742.624306 <ALL> Plugin::Plugin("javascript",true) [0x3cf320]
Loaded module Javascript
20150520053742.685439 <ALL> Plugin::Plugin("fileinfo",false) [0xcd2620]
Loaded module FileInfo

12
Yate bugs / How to find out which child is unresponsive?
« on: May 20, 2015, 03:44:31 AM »
I get Supervisor: killing unresponsive child 13463 in yate's log and then suddenly yate is restarted afterwards.
How can I find out which component is causing this bug? No further information is included in Yate's log. A partial log of when the error occurred is found below:

Note: Debug level is already set to maximum value of 10

Code: [Select]
.
.
.
20150520053739.989086 <ss7snm:INFO> RST (label=4-25-5:1-56-7:0): Traffic test-prohibited to dest=1-57-1 [0x9a28880]
ivr1: Got 0 in state pin
20150520053740.067325 <wave:ALL> WaveSource::WaveSource("-",0xb4181ce0) [0xb41908b0]
20150520053740.067529 >>> DataTranslator::detachChain(0xb41701c8,0xb46ae7c0)
20150520053740.067574 <<< DataTranslator::detachChain
20150520053740.067598 >>> DataTranslator::detachChain(0xb41701c8,0xb41998d8)
20150520053740.067624   >>> DataTranslator::detachChain(0xb41701c8,0xb417a900)
20150520053740.067648     >>> DataTranslator::detachChain(0xb41701c8,0xb41539e8)
20150520053740.067671     <<< DataTranslator::detachChain
20150520053740.067706   <<< DataTranslator::detachChain
20150520053740.067734 <<< DataTranslator::detachChain
20150520053740.068008 <ALL> Created DataTranslator 0xb41539e8 for 'slin' -> 'alaw' by factory 0x620a94 (len=1)
20150520053740.068056 <ALL> DataTranslator::attachChain [0xb41908b0] 'slin' -> [0xb46ae7c0] 'alaw' succeeded
20150520053740.068088 <ALL> Created DataTranslator 0xb416e5e0 for 'slin' -> '2*slin' by factory 0x620ae0 (len=1)
20150520053740.068123 <ALL> DataTranslator::attachChain [0xb41908b0] 'slin' -> [0xb41998d8] '2*slin' succeeded
20150520053740.068193 <wave:ALL> WaveSource::~WaveSource() [0xb41701c8] total=20160 stamp=20000
20150520053740.068221 <wave:INFO> WaveSource rate=2040 b/s
ivr1: Got 8 in state pin
ivr1: NULL
ivr1: Engine worked
ivr1: User validated
ivr1::SetState('sig/15998', currencyPlay')
Supervisor: killing unresponsive child 13463
ivr1: Found table operation 'play'
Yate (2518) is starting Wed May 20 10:07:41 2015
20150520053742.144443 <ALL> Plugin::Plugin("openssl",true) [0x3337a0]
Loaded module OpenSSL - based on OpenSSL 1.0.1e-fips 11 Feb 2013
20150520053742.218544 <ALL> Plugin::Plugin("wave",false) [0x377740]
Loaded module WaveFile
.
.
.

Any help is highly appreciated

13
Yate bugs / [HELP]: ivrsample.php fails when using PRI link
« on: March 31, 2015, 06:49:28 AM »
Hello everybody,

I am trying to make an IVR with yate. All I want to do is just to run ivrsample.php to see how it's working but I've had no luck so far! If I simply work with regexroute to answer the call and dial another extension everything works great but when I want to use extmodule to build an IVR it fails with a wrong-state-message. Below you can see debug trace of the issue. Note that I'm using DAHDI and link4 is a PRI trunk.

regexroute.conf:
Code: [Select]
^9999.=external/nodata/ivr.php

Debug info:
Code: [Select]
20150331123515.670215 <sig/4:CALL> Incoming call from=88880000 to=99990000 tr
unk=link4 sigcall=0xb750a5d0 [0xb690e218]
20150331123515.676150 <INFO> Could not classify call from '88880000', wasted 7
 usec
20150331123515.676956 <INFO> Routing call to '99990000' in context 'default' vi
a 'external/nodata/ivr.php' in 111 usec
20150331123515.677621 <ALL> ExtModChan::ExtModChan(1) [0xb6910950]
20150331123515.677854 <ALL> ExtModReceiver::ExtModReceiver("ivr.php","(null)")
 [0xb6910a90]
20150331123515.694169 <INFO> Launched External Script '/usr/local/share/yate/scr
ipts/ivr.php' ''
IVR::InitIVR()
ivr1::OnEnter('')
ivr1: Found table operation 'output'
ivr1: Entered 1st IVR
ivr2::OnEnter('')
IVR: Requested unknown IVR 'nosuch'
ivr2::OnEvent(incoming 'call.execute')
ivr2::OnMessage('call.execute')
ivr2::OnExecute()
ivr1::OnUnhandled(incoming 'call.execute')
ivr1::OnMessage('call.execute')
ivr1::OnExecute()
ivr1: Found table operation 'answered'
20150331123516.400997 <ExtModReceiver:ALL> Install 'chan.dtmf', prio 100 filter:
 'targetid'='ivr/1097285034551a9484615867.27115734' ok
20150331123516.401067 <ExtModReceiver:ALL> Install 'chan.notify', prio 100 filte
r: 'targetid'='ivr/1097285034551a9484615867.27115734' ok
20150331123516.401332 <cdrbuild:INFO> Got message 'call.answered' for untracked
id 'ivr/1097285034551a9484615867.27115734'
20150331123516.401467 <sig/4:CALL> Call answered [0xb690e218]
20150331123516.401558 <link4/B:NOTE> ZapCircuit(5). Unable to send unknown event
 23 [0x8e1d490]
20150331123516.401594 <link4/Q931:ALL> Call(0,908). State 'CallPresent' --> 'Con
nectReq' [0xb750a5d0]
ivr2::OnEvent(setlocal 'id')
ivr2::OnSetting('id','ivr/1097285034551a9484615867.27115734',true)
ivr1::OnUnhandled(setlocal 'id')
ivr2::OnEvent(installed 'chan.dtmf')
ivr1::OnUnhandled(installed 'chan.dtmf')
ivr2::OnEvent(installed 'chan.notify')
ivr1::OnUnhandled(installed 'chan.notify')
20150331123516.411664 <link4/Q931:ALL> Call(0,908). State 'ConnectReq' --> 'Call
Present' [0xb750a5d0]
[b]20150331123516.411690 <link4/Q931:ALL> Call(0,908). State 'CallPresent' --> 'Inc
omingProceeding' [0xb750a5d0]
20150331123516.438394 <link4/Q931:ALL> Call(0,908). State 'IncomingProceeding' -
-> 'Null' [0xb750a5d0]
20150331123516.438850 <sig/4:CALL> Call hangup. Reason: 'wrong-state-message' [0
xb690e218][/b]
20150331123516.438919 <ALL> ExtModChan::disconnected() 'wrong-state-message' [0x
b6910950]
20150331123516.438940 >>> ExtModChan::~ExtModChan() [0xb6910950]
20150331123516.438956   <ALL> ExtModReceiver::die() pid=7329 dead=no [0xb6910a90
]
20150331123516.438974   <ALL> ExtModReceiver::die() waiting for pid=7329 to die
[0xb6910a90]
20150331123516.447434   <INFO> ExtModReceiver::die() pid=7329 did not exit? [0xb
6910a90]
20150331123516.452002   <ExtModule:WARN> Read error 9 on 0x8e081d8 [0xb6910a90]
20150331123516.452284   <WARN> Process 7329 has not exited on closing stdin - we
'll kill it
20150331123516.453685 <<< ExtModChan::~ExtModChan()
20150331123516.453777 <sig/4:CALL> Call destroyed. Reason: 'wrong-state-message'
. No signalling call  [0xb690e218]
20150331123516.453811 <link4/Q931:ALL> Call(0,908) destroyed with reason 'wrong-
state-message' [0xb750a5d0]
20150331123516.454481 <ALL> ExtModReceiver::~ExtModReceiver() pid=0 [0xb6910a90]
20150331123516.454614 <ALL> ExtModReceiver::die() pid=0 dead=yes [0xb6910a90]


14
Hello everyone!

I am trying to connect two different boxes with a crossover cable both having Digium TE410P cards installed. Box-A is running asterisk and Box-B is running Yate. Configuration files are as below:
Box-A:
system.conf:
span=4,4,0,ccs,hdb3,crc4
mtp2=94
bchan=95-124

chan_dahdi.conf:
linkset=2
signalling=ss7
usecallerid=yes
ss7type=itu
ss7_called_nai=dynamic
ss7_calling_nai=dynamic
ss7_internationalprefix=00
ss7_nationalprefix=0
ss7_explictacm=yes
context=from-yate
switchtype=euroisdn
pointcode=2505
adjpointcode=2526
defaultdpc=2526
networkindicator=national
group=1
cicbeginswith=2
channel=95-124
sigchan=94

Box-B:
system.conf:
span=3,0,0,ccs,hdb3,crc4
dchan=63
bchan=64-93

zapcard.conf:
[span3]
type=E1
offset=62
sigchan=1
start=0
dtmfdetect=disable
voicechans=2-31
readonly=no

ysigchan.conf:
[isup_Trunk3]
enable=yes
type=ss7-isup
pointcodetype=ITU
service=5
pointcode=2526
defaultpointcode=2526
remotepointcode=2505
priority=regular
network=linkset3
lockgroup=no
earlyacm=no
sls=cic
offset=1
voice=span3
strategy=random
channelsync=1000
ringback=yes
presentation=allowed
screening=user-provided
format=alaw
print-messages=yes
slsshift = false
checklinks=true
checkfails=true

[linkset3]
enable=yes
type=ss7-mtp3
netindicator=national
netind2pctype=ITU
route=ITU,2505,0
local=ITU,2526
autostart=yes
link=link3
link3.sig=span3

[link3]
type=ss7-mtp2
autostart=yes
emergency=yes
filllink=no
rxunderrun=0
link3.sig=span3
sig=span3

Here is the output of ss7 show linkset 2 from asterisk CLI:
localhost*CLI> ss7 show linkset 2
SS7 flags: 0x0
SS7 linkset 2 status: Down
SS7 calling nai: -1
SS7 called nai: -1
SS7 nationalprefix: 0
SS7 internationalprefix: 00
SS7 unknownprefix:
SS7 networkroutedprefix:
SS7 subscriberprefix:
Switch type: ITU

SLS shift: 0
numlinks: 1
numsps: 1
  ---------------------------------
  Adjacent SP PC: 2526 STATE: DOWN
  TRA:  SENT    T19: not running T21: not running
  Routes:
    DPC       State        T6       T10
  Link ADJ_PC:SLC: 2526:0 NetMngSLS: 0
    State:      INSERVICE,  UP
    STD Test:  passed
    Got, sent :
    Inhibit:
    Changeover: NO
    Tx buffer:  0
    Tx queue:   0
    Retrans pos 0
    CO buffer:  0
    CB buffer:  0
    Last FSN:   1
    MTP3timers:

as you can see mtp2 is up but mtp3 is not and I get a lot of Got ISUP message on link while MTP3 state is not UP! in Box-A. This is really odd because running status sig linkset3 in rmanager of Yate returns:
%%+status:sig linkset3
module=sig,component=linkset3,type=ss7-mtp3;status=operational
%%-status
which means mtp3 is operational!!!

BTW, If I just replace Yate with asterisk on Box-B then ISUP will be operational and I can call each box from another!. Any idea what's causing this behavior?

UPDATE 1:
Something is looking wrong to me... I am seeing NET_MNG messages being sent from yate to asterisk having SLC=0xF and asterisk is dropping them with following message: Received message for slc 0xf, but we are 0x0. Dropping

[2] Len = 9 [ 84 ab 06 80 c9 c9 71 f2 17 ]
[2] FSN: 43 FIB 1
[2] BSN: 4 BIB 1
[2] <[2503:0] MSU
[2] [ 84 ab 06 ]
[2]     Network Indicator: 2 Priority: 0 User Part: NET_MNG (0)
[2]     [ 80 ]
[2]     OPC 2503 DPC 2505 SLS 15
[2]     [ c9 c9 71 f2 ]
[2]     H0: 7 H1: 1
[2]     Message type: TRA
[2]     [ 17 ]

15
Hi all,

Could anybody let me know what's the best practice of using a key-value pair of objects in Yate's source code? I am already aware of TokenDict but it's not looking optimized when performance matters because I need to iterate through all objects in order to find the value of a pair when I have the key. I am specifically looking for an equivalent to Dictionary class in C# so that it must be following Yate's coding style as well. Does yatelib have any equivalent or should I consider using STL's unordered_map or similar? I'm waiting to hear your suggestions but please consider performance and memory usage which are highly important in my scenario.

Regards

Pages: [1] 2