This post is at: ForumFeatures Wanted
16 posts / 0 new
Last post
ywali
ywali's picture
Joined: 2007/12/24
Points: 0

Hi,
I hope Thirdlane can add a hardware (Digium cared) detection in the GUI like Elastix http://www.elastix.org.
That will help users like me to save time going through the zaptel and zapta files.

--
Yousif Wali

eeman
eeman's picture
Joined: 2007/11/06
Points: 290

if you are using analog zaptel cards, there is already a utility in the zaptel source

kernel/xpp/utils/genzaptelconf.

If you first 'service zaptel start' it will attempt to load all the zaptel modules, then running genzaptelconf will build the zaptel.conf file for you.

with T1 cards there are so many different options to consider, using a menu to do them doesn't save you any time over just using an editor.

if its not the zaptel.conf you are needing assistance with, but rather identifying the hardware in your machine, once the modules are loaded a 'cat /proc/zap/#' will indicate the information in that span, as will 'dmesg' immediately after loading the modules.

Erik Smith
dCAP
Thirdlane/Asterisk Support available
esmith.bgnv@gmail.com

ywali
ywali's picture
Joined: 2007/12/24
Points: 0

Thank Erik for your reply,

Actually I'm trying to configure a TE110P as an E1 card.

In Elastix the card was detected easily and all channels were ready to be used. this what was in

aptel.conf

--------------------------------------------------------------------------------------

# Span 1: WCT1/0 "Digium Wildcard TE110P T1/E1 Card 0" (MASTER)

span=1,1,0,ccs,hdb3,crc4

# termtype: te

bchan=1-15,17-31

dchan=16

# Global data

loadzone = us

defaultzone = us

--------------------------------------------------------------------------------------

and in zapata.conf

----------------------------------------------------------------------------------------

[trunkgroups]

[channels]

context=from-pstn

signalling=fxs_ks

rxwink=300 ; Atlas seems to use long (250ms) winks

usecallerid=yes

hidecallerid=no

callwaiting=yes

usecallingpres=yes

callwaitingcallerid=yes

threewaycalling=yes

transfer=yes

canpark=yes

cancallforward=yes

callreturn=yes

echocancel=yes

echocancelwhenbridged=no

faxdetect=incoming

echotraining=800

rxgain=0.0

txgain=0.0

callgroup=1

pickupgroup=1

;Uncomment these lines if you have problems with the disconection of your analog lines

;busydetect=yes

;busycount=3

immediate=no

#include zapata_additional.conf

#include zapata-channels.conf

-----------------------------------------------------------------------------------------------------

Then I installed Thirdlane on the same PC and replaced zapta.conf of Elastix onto Thirdlane zapta.conf but im still not able to the card on zttool!!

I don't know if there is a step by step procedure so I can make this card work on Thirdlane and use Channel to DID Mapping and everything goes easy.

--

Yousif Wali

--
Yousif Wali

eeman
eeman's picture
Joined: 2007/11/06
Points: 290

ok well it looks like you know too much already to be duped into a config wizard, so your going to have to make these 2 files by hand :)

your zaptel.conf appears to be a drop-in read-to-go file so put that in your /etc/ directory and stop/start zaptel. You can 'ztcfg -vv' to verify that all the channels are loading the way you want. BTW is this for a channel bank? Otherwise, Why the FXS signalling instead of a more feature rich one?

your zapata.conf file is missing some information (elastix appears to have split it among 2 other files).

If these channels are comming from a telephone company (ie from the PSTN and not a bunch of analog handsets) your context for zapata.conf is 'from-outside'. You are also missing a channel declaration to specify those channels. Have a look at your /etc/asterisk/zaptel-channels.conf file that your elastix generated. Otherwise, if you dont have access to it, try this on for size to add to the bottom of your existing config

group=1

context=from-outside

signalling=fxs_ks

callerid=asreceived

usecallerid=yes

channel => 1-15

channel => 17-31

Erik Smith
dCAP
Thirdlane/Asterisk Support available
esmith.bgnv@gmail.com

eeman
eeman's picture
Joined: 2007/11/06
Points: 290

I just read your zaptel.conf and dont think it matches with your zapata.conf. Are you sure elastix actually got it to work?

For starters your tonezone is set to US but we dont use E1's in the US.

Additionally bchan and dchan declarations are psuedo's for PRI type signalling not FXS_KS. I could help you more if you tell me what type of circuit this really is and what its connected to.

Erik Smith
dCAP
Thirdlane/Asterisk Support available
esmith.bgnv@gmail.com

ywali
ywali's picture
Joined: 2007/12/24
Points: 0

Hi Erik,

Finally my TE110P card is detected!!! What I did is I reinstalled Zaptel with the newer version (zaptel-1.4.11) of what already came with Thirdlane (zaptel-1.4.9.2) ISO Image.

Then I run kernel/xpp/utils/genzaptelconf. and my card was detected and zaptel.conf now ready to go as below:

zaptel.conf

-------------------------------------------------------------------------

# Span 1: WCT1/0 "Digium Wildcard TE110P T1/E1 Card 0" (MASTER)

span=1,1,1,ccs,hdb3

# termtype: te

bchan=1-15,17-31

dchan=16

# Global data

loadzone = us

defaultzone = us

-------------------------------------------------------------------------

I have a RED alarm on the card when I do zttool. I don't know yet what's the problem because I didn't connect the E1 line yet. I have to take the PC to my office because the E1 is there.

Erik, what do I need to do in the zapata.conf or it will be configured as I do on thirdlane GUI Channel to DID Mapping?? and what do you think is necessary for me to ask my service provider about the E1 parameters??

I'll be posting step by step installation and configuration ones I'm done just for the forum records.

regard,

--

Yousif Wali

--
Yousif Wali

eeman
eeman's picture
Joined: 2007/11/06
Points: 290

red alarm on a T1 means loss of signal. If you arent connected you'll get a red alarm. What sort of T1 connection is your provider giving you? PRI ISDN?

Erik Smith
dCAP
Thirdlane/Asterisk Support available
esmith.bgnv@gmail.com

ywali
ywali's picture
Joined: 2007/12/24
Points: 0

Yeah they provide PRI ISDN E1.

--

Yousif Wali

--
Yousif Wali

eeman
eeman's picture
Joined: 2007/11/06
Points: 290

ok if you are doing PRI you dont use channel to did mapping. Your d-channel will signal what DNIS the call is destined for. Ask your provider how many digits they are outpulsing for DNIS? 4? 10? 12? This will tell you how to write your inbound patterns. Now is this the TE110P or the TE111P/TE112P if its the latter is the hardware echo cancellation module attached?

what country are you in because I really doubt your zones should be =us :)

I am thinking your zapata.conf is going to look something like:

[channels]

language=en

context=from-outside

switchtype=euroisdn

prilocaldialplan=unknown

signalling=pri_cpe

usecallerid=yes

callerid=asreceived

hidecallerid=no

callwaiting=no

usecallingpres=yes

callwaitingcallerid=yes

echocancel=512

echocancelwhenbridged=no

echotraining=no

rxgain=0.0

txgain=0.0

group = 1

channel => 1-15

channel => 17-31

if issues arrise there are other tweaks that can be switched on/off like jitter buffer, relax dtmf, echo training, gain, etc.

Erik Smith
dCAP
Thirdlane/Asterisk Support available
esmith.bgnv@gmail.com

ywali
ywali's picture
Joined: 2007/12/24
Points: 0

OK, my location is in Bahrain http://maps.google.com/maps?q=bahrain&sourceid=navclient-ff&ie=UTF-8&rlz...

An I think we have exactly UK standard E1 lines.

I receive 8 digits on my ISDN line like 17 511 999.

My TE110P doesn't have echo cancellation module attached but I'm going for some advanced quad Digium card soon after I complete this test with TE110P.

--

Yousif Wali

--
Yousif Wali

ywali
ywali's picture
Joined: 2007/12/24
Points: 0

Finally I can receive calls from ZAP on the E1 line after I configure

zaptel.conf

---------------------------------------------------------------------

# Span 1: WCT1/0 "Digium Wildcard TE110P T1/E1 Card 0" (MASTER)

span=1,1,1,ccs,hdb3

# termtype: te

bchan=1-15,17-31

dchan=16

# Global data

loadzone = uk

defaultzone = uk

----------------------------------------------------------------------

zapatel.conf

---------------------------------------------------------------------

[channels]

language=en

context=from-outside

switchtype=euroisdn

prilocaldialplan=unknown

signalling=pri_cpe

usecallerid=yes

callerid=asreceived

hidecallerid=no

callwaiting=no

usecallingpres=yes

callwaitingcallerid=yes

echocancel=no

echocancelwhenbridged=no

echotraining=no

rxgain=0.0

txgain=0.0

group = 1

channel => 1-15

channel => 17-31

------------------------------------------------------------------------

I created a Channel to DID Mapping using Thirdlane GUI. Zap channel # 1 to DID 17511999 the main number of the E1. BTW its 10 channels E1 with 50 phone numbers.

Then in the extension 101 I added the DID 17511999.

and now I can receive calls but the two error messages below is continuously showing:

[Sep 17 00:28:56] NOTICE[5548]: chan_zap.c:8486 pri_dchannel: PRI got event: HDLC Abort (6) on Primary D-channel of span 1

[Sep 17 00:29:00] NOTICE[5548]: chan_zap.c:8486 pri_dchannel: PRI got event: HDLC Bad FCS (8) on Primary D-channel of span 1

Then I created a ZAP trunk and created an outgoing route _XXXXXXXX using the ZAP trunk to call out.

I know there is something missing in this ZAP trunk and the outgoing route.

when I call out 39991961 my mobile with the above configuration I get the long process below:

-----------------------------------------------------------------------------------------

-- Executing [39991961@from-inside:1] Macro("SIP/101-09451a80", "tl-set-variables2|from-inside-redir") in new stack

-- Executing [s@macro-tl-set-variables2:1] Set("SIP/101-09451a80", "__tenant=") in new stack

-- Executing [s@macro-tl-set-variables2:2] Set("SIP/101-09451a80", "CDR(userfield)=") in new stack

-- Executing [s@macro-tl-set-variables2:3] Set("SIP/101-09451a80", "__MOH=default") in new stack

-- Executing [s@macro-tl-set-variables2:4] GotoIf("SIP/101-09451a80", "1 ?setmoh") in new stack

-- Goto (macro-tl-set-variables2,s,6)

-- Executing [s@macro-tl-set-variables2:6] SetMusicOnHold("SIP/101-09451a80", "default") in new stack

-- Executing [s@macro-tl-set-variables2:7] Goto("SIP/101-09451a80", "from-inside-redir|39991961|1") in new stack

-- Goto (from-inside-redir,39991961,1)

== Channel 'SIP/101-09451a80' jumping out of macro 'tl-set-variables2'

-- Executing [39991961@from-inside-redir:1] Macro("SIP/101-09451a80", "tl-dialout-1-trunk|20|ZAP/out|||") in new stack

-- Executing [s@macro-tl-dialout-1-trunk:1] GotoIf("SIP/101-09451a80", "0?dial") in new stack

-- Executing [s@macro-tl-dialout-1-trunk:2] Set("SIP/101-09451a80", "__DIALED_NUMBER=39991961") in new stack

-- Executing [s@macro-tl-dialout-1-trunk:3] Macro("SIP/101-09451a80", "tl-dialout-base|20|ZAP/out|||") in new stack

-- Executing [s@macro-tl-dialout-base:1] Set("SIP/101-09451a80", "status=") in new stack

-- Executing [s@macro-tl-dialout-base:2] GotoIf("SIP/101-09451a80", "1?enabled") in new stack

-- Goto (macro-tl-dialout-base,s,5)

-- Executing [s@macro-tl-dialout-base:5] Set("SIP/101-09451a80", "i=2") in new stack

-- Executing [s@macro-tl-dialout-base:6] Macro("SIP/101-09451a80", "tl-set-myvariables") in new stack

-- Executing [s@macro-tl-set-myvariables:1] Set("SIP/101-09451a80", "MY_CHAN=101-09451a80") in new stack

-- Executing [s@macro-tl-set-myvariables:2] NoOp("SIP/101-09451a80", "XXXXCHANNEL=SIP/101-09451a80") in new stack

-- Executing [s@macro-tl-set-myvariables:3] Set("SIP/101-09451a80", "zap=0") in new stack

-- Executing [s@macro-tl-set-myvariables:4] GotoIf("SIP/101-09451a80", "1?usechannel") in new stack

-- Goto (macro-tl-set-myvariables,s,9)

-- Executing [s@macro-tl-set-myvariables:9] Set("SIP/101-09451a80", "local=0") in new stack

-- Executing [s@macro-tl-set-myvariables:10] GotoIf("SIP/101-09451a80", "1?useit") in new stack

-- Goto (macro-tl-set-myvariables,s,12)

-- Executing [s@macro-tl-set-myvariables:12] Set("SIP/101-09451a80", "__MYEXTENSION=101") in new stack

-- Executing [s@macro-tl-set-myvariables:13] Set("SIP/101-09451a80", "__MYID=101") in new stack

-- Executing [s@macro-tl-dialout-base:7] SetAMAFlags("SIP/101-09451a80", "billing") in new stack

-- Executing [s@macro-tl-dialout-base:8] Set("SIP/101-09451a80", "RECORD=") in new stack

-- Executing [s@macro-tl-dialout-base:9] GotoIf("SIP/101-09451a80", "1?done_checkrecord") in new stack

-- Goto (macro-tl-dialout-base,s,18)

-- Executing [s@macro-tl-dialout-base:18] NoOp("SIP/101-09451a80", "RECORD=") in new stack

-- Executing [s@macro-tl-dialout-base:19] NoOp("SIP/101-09451a80", "TOUCH_MONITOR=") in new stack

-- Executing [s@macro-tl-dialout-base:20] NoOp("SIP/101-09451a80", "RECORD_OPTIONS=") in new stack

-- Executing [s@macro-tl-dialout-base:21] NoOp("SIP/101-09451a80", "RECORDING_FORMAT=wav") in new stack

-- Executing [s@macro-tl-dialout-base:22] Set("SIP/101-09451a80", "CALLERID(name)=") in new stack

-- Executing [s@macro-tl-dialout-base:23] GotoIf("SIP/101-09451a80", "1?calleridallowed") in new stack

-- Goto (macro-tl-dialout-base,s,31)

-- Executing [s@macro-tl-dialout-base:31] NoOp("SIP/101-09451a80", "CLIMYID=") in new stack

-- Executing [s@macro-tl-dialout-base:32] NoOp("SIP/101-09451a80", "IMYID=") in new stack

-- Executing [s@macro-tl-dialout-base:33] Set("SIP/101-09451a80", "CLI=") in new stack

-- Executing [s@macro-tl-dialout-base:34] GotoIf("SIP/101-09451a80", "0?chkcallfwd") in new stack

-- Executing [s@macro-tl-dialout-base:35] Set("SIP/101-09451a80", "CLI=17511999") in new stack

-- Executing [s@macro-tl-dialout-base:36] GotoIf("SIP/101-09451a80", "1?chkcallfwd") in new stack

-- Goto (macro-tl-dialout-base,s,39)

-- Executing [s@macro-tl-dialout-base:39] NoOp("SIP/101-09451a80", "MYID=101") in new stack

-- Executing [s@macro-tl-dialout-base:40] NoOp("SIP/101-09451a80", "INCOMINGCLI=") in new stack

-- Executing [s@macro-tl-dialout-base:41] NoOp("SIP/101-09451a80", "CALLFWD=") in new stack

-- Executing [s@macro-tl-dialout-base:42] GotoIf("SIP/101-09451a80", "1?setcalleridasabove") in new stack

-- Goto (macro-tl-dialout-base,s,48)

-- Executing [s@macro-tl-dialout-base:48] GotoIf("SIP/101-09451a80", "0?nocallerid") in new stack

-- Executing [s@macro-tl-dialout-base:49] Set("SIP/101-09451a80", "CALLERID(num)=17511999") in new stack

-- Executing [s@macro-tl-dialout-base:50] Set("SIP/101-09451a80", "temp=") in new stack

-- Executing [s@macro-tl-dialout-base:51] GotoIf("SIP/101-09451a80", "1?onetrunk|1") in new stack

-- Goto (macro-tl-dialout-base,onetrunk,1)

-- Executing [onetrunk@macro-tl-dialout-base:1] Set("SIP/101-09451a80", "FULLNAME=ZAP/out") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:2] Set("SIP/101-09451a80", "TRUNK=out") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:3] GotoIf("SIP/101-09451a80", "0?failed|1") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:4] Set("SIP/101-09451a80", "TRUNK_STATUS=1") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:5] GotoIf("SIP/101-09451a80", "0?next|1") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:6] Set("SIP/101-09451a80", "ROUTE_PREPEND=") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:7] Set("SIP/101-09451a80", "ROUTE_STRIP=") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:8] Set("SIP/101-09451a80", "ROUTE_OPTIONS=") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:9] Set("SIP/101-09451a80", "NUMBER_TO_DIAL=39991961") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:10] Set("SIP/101-09451a80", "TRUNK_DIALSTRING=") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:11] Set("SIP/101-09451a80", "TRUNK_NAME=out") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:12] Set("SIP/101-09451a80", "TRUNK_PROTOCOL=ZAP") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:13] Set("SIP/101-09451a80", "TRUNK_STRIP=0") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:14] Set("SIP/101-09451a80", "TRUNK_PREPEND=") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:15] Set("SIP/101-09451a80", "CALLERID(num)=17511999") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:16] GotoIf("SIP/101-09451a80", "0?dial-CUSTOM|1") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:17] Goto("SIP/101-09451a80", "dial-ZAP|1") in new stack

-- Goto (macro-tl-dialout-base,dial-ZAP,1)

-- Executing [dial-ZAP@macro-tl-dialout-base:1] GotoIf("SIP/101-09451a80", "1?NoOpt") in new stack

-- Goto (macro-tl-dialout-base,dial-ZAP,4)

-- Executing [dial-ZAP@macro-tl-dialout-base:4] GotoIf("SIP/101-09451a80", "0?noarg") in new stack

-- Executing [dial-ZAP@macro-tl-dialout-base:5] Dial("SIP/101-09451a80", "ZAP/out/39991961|20") in new stack

[Aug 10 16:54:59] WARNING[6120]: chan_zap.c:7841 zt_request: Unable to determine channel for data out/39991961

[Aug 10 16:54:59] WARNING[6120]: app_dial.c:1196 dial_exec_full: Unable to create channel of type 'ZAP' (cause 0 - Unknown)

== Everyone is busy/congested at this time (1:0/0/1)

-- Executing [dial-ZAP@macro-tl-dialout-base:6] Goto("SIP/101-09451a80", "dial-CHANUNAVAIL|1") in new stack

-- Goto (macro-tl-dialout-base,dial-CHANUNAVAIL,1)

-- Executing [dial-CHANUNAVAIL@macro-tl-dialout-base:1] Goto("SIP/101-09451a80", "next|1") in new stack

-- Goto (macro-tl-dialout-base,next,1)

-- Executing [next@macro-tl-dialout-base:1] Set("SIP/101-09451a80", "i=6") in new stack

-- Executing [next@macro-tl-dialout-base:2] Goto("SIP/101-09451a80", "onetrunk|1") in new stack

-- Goto (macro-tl-dialout-base,onetrunk,1)

-- Executing [onetrunk@macro-tl-dialout-base:1] Set("SIP/101-09451a80", "FULLNAME=") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:2] Set("SIP/101-09451a80", "TRUNK=") in new stack

-- Executing [onetrunk@macro-tl-dialout-base:3] GotoIf("SIP/101-09451a80", "1?failed|1") in new stack

-- Goto (macro-tl-dialout-base,failed,1)

-- Executing [failed@macro-tl-dialout-base:1] PlayTones("SIP/101-09451a80", "congestion") in new stack

-- Executing [failed@macro-tl-dialout-base:2] Congestion("SIP/101-09451a80", "10") in new stack

== Spawn extension (macro-tl-dialout-base, failed, 2) exited non-zero on 'SIP/101-09451a80' in macro 'tl-dialout-base'

== Spawn extension (macro-tl-dialout-base, failed, 2) exited non-zero on 'SIP/101-09451a80' in macro 'tl-dialout-1-trunk'

== Spawn extension (macro-tl-dialout-base, failed, 2) exited non-zero on 'SIP/101-09451a80'

---------------------------------------------------------------------------------------------

Erick can you email me on y.wali@waliit.com so I can send you screen shots if required.

Thank you for your help.

--

Yousif Wali

--
Yousif Wali

eeman
eeman's picture
Joined: 2007/11/06
Points: 290

BTW its 10 channels E1 with 50 phone numbers.

if you aren't using the entire T1 then your config is wrong; its set up for the whole thing.

also if this is PRI service get rid of channel to did mapping, nothing is coming in without a DNIS.

find out exactly which channels are provisioned as a B channel right now and which channel is your D channel, its supposed to be 16 as an E1 but this is the first partial T1 ive seen for euroISDN.

it also looks like your zap trunk is wrong. You need to create a zap trunk called 'G1' and use it for your outbound route.

email is eeman at bluegrass.net

Erik Smith
dCAP
Thirdlane/Asterisk Support available
esmith.bgnv@gmail.com

ywali
ywali's picture
Joined: 2007/12/24
Points: 0

OK, B-channels are 1-10 and D-channel is 16, The channels from 11-15 are not defined by the provider as they told me and channel 0 is for signaling.

I removed the channel to DID mapping and I created an Inbound Route using the pattern coming in from the line and forwarding it to the extension.

I created the ZAP trunk 'G1' and i'll use it for the outbound route.

I changed the files as below:

Zaptel.conf

--------------------------------------------------------------------------

# Span 1: WCT1/0 "Digium Wildcard TE110P T1/E1 Card 0" (MASTER)

span=1,1,1,ccs,hdb3

# termtype: te

bchan=1-10

dchan=16

# Global data

loadzone = uk

defaultzone = uk

-----------------------------------------------------------------------------

Zapata.conf

-----------------------------------------------------------------------------

[channels]

language=en

context=from-outside

switchtype=euroisdn

prilocaldialplan=unknown

signalling=pri_cpe

usecallerid=yes

callerid=asreceived

hidecallerid=no

callwaiting=no

usecallingpres=yes

callwaitingcallerid=yes

echocancel=no

echocancelwhenbridged=no

echotraining=no

rxgain=0.0

txgain=0.0

group = 1

channel => 1-10

------------------------------------------------------------------------------------

I'll connect the ISDN line later and do the testing and see how it goes.

--

Yousif Wali

--
Yousif Wali

ywali
ywali's picture
Joined: 2007/12/24
Points: 0

It worked, I can call in and out but still getting these two errors:

[Sep 17 00:28:56] NOTICE[5548]: chan_zap.c:8486 pri_dchannel: PRI got event: HDLC Abort (6) on Primary D-channel of span 1

[Sep 17 00:29:00] NOTICE[5548]: chan_zap.c:8486 pri_dchannel: PRI got event: HDLC Bad FCS (8) on Primary D-channel of span 1

I think I have to change something in zaptel.conf span parameters.

--

Yousif Wali

--
Yousif Wali

eeman
eeman's picture
Joined: 2007/11/06
Points: 290

this could be anything from frame-slips to hardware to running a frame buffer on your asterisk box. The TE110P is a rather old card and subject to interrupt issues. A lot of this cleaned up when they released the TE120 and newer TE121/122's. However, your server hardware needs to support APIC and other interrupt featuring so that devices dont share interrupts.

cat /proc/interrupts

If I recall, APIC is only present in the SMP kernels.

the dual span and quad span cards support hardware hdlc which can ease this somewhat

Erik Smith
dCAP
Thirdlane/Asterisk Support available
esmith.bgnv@gmail.com

ywali
ywali's picture
Joined: 2007/12/24
Points: 0

Dear Erik,

I'm really sorry for the delay.

I just want to thank you for all your efforts and help.

I got so busy and ones I have some time I'll do a step by step configuration and posted online.

Thanks again,

--

Yousif Wali

--
Yousif Wali