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.


Topics - feredi

Pages: [1]
1
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

2
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

3
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

4
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

5
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

6
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]


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

8
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

9
I was thinking if someone could implement Supplementary services protocols (ITU-T Q950) based on ROSE (ITU-T X.219) to work with Yate's ss7 signaling module. It's already implemented in libpri (used in asterisk) but I am not sure if we can somehow integrate its source code to fit in Yate's design. List of operations can be found in Table 1/Q.950. Personally I think implementing a few of those operations such as ECT, Diversion and AdviceOfCharge would suffice for now.

Thanks

10
Yate based projects / CDRs in STP mode
« on: February 01, 2015, 02:45:54 AM »
Hello everybody,

Can you guys please let me know how can I have the CDRs in STP mode? Or, how can I have all the transferred signaling forwarded to a TCP connection so another client can connect to and collect CDRs?

Thanks in advance

Pages: [1]