Loading...
 
[Zobrazit/Skrýt nabídky vlevo]
[Zobrazit/Skrýt nabídky vpravo]

isdngw-palace.uvtnet.cz

Popis systemu

1U server supermicro coby prevodnik SIP na E1/ISDN a zpet. Funguje pro potreby hotelu Metropol (zakaznik UVTNETU). Server je klasicka SL6.5 instalace s asteriskem, specialni 1x pci-e kartou E1 (2x E1 port). Je tam firewall povoleny z linux site a Zdimeric.

E1 karta: 02:08.0 Communication controller: Digium, Inc. Wildcard TE220 dual-span T1/E1/J1 card 3.3V (PCI-Express) (rev 02)

Karta je pci-e 1x, full profile s daughter card, ktera dela hw echo canceller. Karta vypada zhruba takto:
Image

Ke zprovozneni karty jsou potreba ovladace, ktere jsou dodavane vyrobcem karty, tj. firmou Digium (mmj. vyrobce asterisku). Ovladace a jejich framework se nazyvaji DAHDI a ke stazeni jsou zde: http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/

Ovladace se kompiluji pro kazdou verzi jadra zvlast, protoze nepredpokladam jakoukoliv zmenu systemu, zkompiloval sem je na stroji a nainstaloval pres make install. Aktualne system bezi na jadre: 2.6.32-431.17.1.el6.x86_64

Potrebny modul je wct4xxp (plus asi nejake dalsi pomocne moduly).

Pristupy

178.17.7.254 root 1:UEBSTDUyQGVlBg== ssh port 10002
mysql root 1:RmR6JFhkZ2B+JhY=

Zaloha na backup4.zab.cldn.eu

Provozni stavy

Zjisteni stavu E1 linky
Vypis obou spanu karty. Pokud je Alarms OK, linka je. Pokud je Alarms RED, link neni. Nas zajima span1, to je pripojeni do ustredny. Na spanu 2 je zapojen loopback, proto je tez link up

[root@isdngw-palace ~]# asterisk -r

isdngw-palace*CLI> dahdi show status 
Description                              Alarms  IRQ    bpviol CRC    Fra Codi Options  LBO
T2XXP (PCI) Card 0 Span 1                OK      0      0      0      CCS HDB3 CRC4     0 db (CSU)/0-133 feet (DSX-1)
T2XXP (PCI) Card 0 Span 2                OK      0      0      0      CCS HDB3 CRC4     0 db (CSU)/0-133 feet (DSX-1)


zjisteni stavu ISDN signalizace
ISDN30 se nazyva tez PRI, z toho plynou nasledujici prikazy:

isdngw-palace*CLI> pri show spans 
PRI span 1/0: Up, Active

Span1 (port1) je UP. Detailnejsi info o isdn na tomto portu:

isdngw-palace*CLI> pri show span 1
Primary D-channel: 16
Status: Up, Active
Switchtype: EuroISDN
Type: Network
Remote type: CPE
Overlap Dial: 1
Logical Channel Mapping: 0
Timer and counter settings:
  N200: 3
  N202: 3
  K: 7
  T200: 1000
  T201: 1000
  T202: 10000
  T203: 10000
  T303: 4000
  T305: 30000
  T308: 4000
  T309: 6000
  T312: 6000
  T313: 4000
  T316: -1
  N316: 2
  T-HOLD: 4000
  T-RETRIEVE: 4000
  T-RESPONSE: 4000
  T-STATUS: 4000
  T-ACTIVATE: 10000
  T-DEACTIVATE: 4000
  T-INTERROGATE: 4000
  T-RETENTION: 30000
  T-CCBS1: 4000
  T-CCBS2: 2700000
  T-CCBS3: 20000
  T-CCBS4: 5000
  T-CCBS5: 3600000
  T-CCBS6: 3600000
  T-CCNR2: 10800000
  T-CCNR5: 11700000
  T-CCNR6: 11700000
Q931 RX: 913
Q931 TX: 693
Q921 RX: 6762
Q921 TX: 7150
Q921 Outstanding: 0 (TEI=0)
Total active-calls:1 global:0
CC records:
Overlap Recv: Yes


Zasadni konfiguracni vec je u teto ustredny nastaveni Overlap Recv: YES. Pokud pripojena ustredna po ISDN posila vytacene cislo po jednotlivych znacich, pak bez teto volby nebude volba cisla fungovat. Pokud ustredna posila called num jako jednu Q931 zpravu, pak to potreba neni.

zapnuti/vypnuti debuggingu ISDN

isdngw-palace*CLI> pri set debug on span 1
Enabled debugging on span 1

isdngw-palace*CLI> pri set debug off span 1
Disabled debugging on span 1


Cteni ISDN debugu
Pri zapnutem debuggingu jsou videt jednotlive ISDN zpravy. Zpravy uvozene znakem ">" posilame do ISDN my, zpravy uvozene "<" dostavame. Nize je videt ze na ustrednu posilame hovor z cisla 00442030361232 a to na cislo 224093217:

PRI Span: 1 > Calling Party Number (len=18) [ Ext: 0  TON: National Number (2)  NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1)
PRI Span: 1 >                                 Presentation: Presentation allowed, User-provided, not screened (0)  '00442030361232' ]
PRI Span: 1 > [70 0a 80 32 32 34 30 39 33 32 31 37]
PRI Span: 1 > Called Party Number (len=12) [ Ext: 1  TON: Unknown Number Type (0)  NPI: Unknown Number Plan (0)  '224093217' ]
PRI Span: 1 q931.c:6291 q931_setup: Call 32918 enters state 1 (Call Initiated).  Hold state: Idle


Chyby ISDN
Nize uvedene chyby maji byt udajne chybne CRC soucty paketu, nicmene dle diskuzi, pokud jich neni mnoho, je to OK:

The HDLC Abort(6) message is actually not an error (or even a warning). It is a notice message generated by Asterisk, indicating that a frame on the span failed a consistency check and is being discarded or ignored.

[Jul  1 20:27:48] NOTICE[1179] chan_dahdi.c: PRI got event: HDLC Bad FCS (8) on D-channel of span 1
[Jul  2 07:26:17] NOTICE[1179] chan_dahdi.c: PRI got event: HDLC Bad FCS (8) on D-channel of span 1
[Jul  2 12:13:59] NOTICE[1179] chan_dahdi.c: PRI got event: HDLC Abort (6) on D-channel of span 1
[Jul  2 12:13:59] NOTICE[1179] chan_dahdi.c: PRI got event: HDLC Abort (6) on D-channel of span 1

Konfigurace

Po zkompilovani modulu a instalaci asterisku a dahdi (dahdi-tools asterisk-dahdi z epelu) se vygeneruje pomoci dahdi_tools konfigurace. Ja zde budu uvadet aktualni pouzivanou konfiguraci:

/etc/modprobe.d/dahdi.conf

options wct4xxp default_linemode=e1


/etc/dahdi/modules
Odkomentujeme wct4xxp a zakomentujeme zbytek

/etc/dahdi/system.conf
Protoze pouzivame pouze prvni port E1 (tzn. span), zajima nas pouze span 1

# Span 1: TE2/0/1 "T2XXP (PCI) Card 0 Span 1" (MASTER).
span=1,2,0,ccs,hdb3,crc4
# termtype: te
bchan=1-15,17-31
dchan=16
echocanceller=mg2,1-15,17-31

# Span 2: TE2/0/2 "T2XXP (PCI) Card 0 Span 2".
span=2,2,0,ccs,hdb3,crc4
# termtype: te
bchan=32-46,48-62
dchan=47
echocanceller=mg2,32-46,48-62

# Global data

loadzone<------>= cz
defaultzone<--->= cz


/etc/asterisk/dahdi-channels.conf
Uvadim pouze nastavene hodnoty bez komentaru:

[trunkgroups]

[channels]
pridialplan=unknown
overlapdial=yes
usecallerid=yes
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
group=1
callgroup=1
pickupgroup=1
immediate=no
#include /etc/asterisk/dahdi-channels.conf


/etc/asterisk/dahdi-channels.conf
Tento soubor je includovany v souboru vyse (# znamena include, ; je komentar). Nastaven mame pouze span 1 - pouzivame pouze prvni port. Pouzivame signalizaci euroisdn - v evrope bezna, signalling pri_net (opak je pri_cpe, pokud isdn pise hlasky ze druha strana je pri_net, pak prepneme na pri_cpe). Kanaly pro hovor jsou 1-15 a 17-31. Naopak D-channel (ridici kanal) je 16. Nektere protiustredny nemusi pouzivat vsechny hlasove kanaly, pak nastaveni upravime dle druhe strany. Tato konfiguraci znamena, ze hovor vyleze v dialplanu v contextu "from-isdn"

; Span 1: TE2/0/1 "T2XXP (PCI) Card 0 Span 1" (MASTER) 
;group=0,11
group=0
context=from-isdn
switchtype = euroisdn
signalling = pri_net
channel => 1-15,17-31
context = default
group = 63


/etc/asterisk/sip.conf
Nastaveni sip kanalu je vesmes obycejne:

[general]
dtmfmode=rfc2833
context=from-office
type=friend
directmedia=no
host=dynamic
disallow=all
allow=ilbc
allow=g729
allow=gsm
allow=g723
allow=ulaw
disallow=all
allow=ulaw

[uvtnet]
type=peer
host=109.205.72.44
accountcode=uvtnet
context=from-sip
disallow=all
allow=alaw
canreinvite=no
insecure=invite,port
dtmfmode=rfc2833


/etc/asterisk/extensions.conf
V dialplanu pouze prehazujeme volani ze SIP na ISDN a zpet. Pri volani na SIP pomocnym makrem kontrolujeme CLID a pokud je 3-mistne, pridame jejich predvolbu, aby venku bylo videt jako volajici cele cislo. Naopak pri volani dovnitr na ISDN jejich ustredna ocekava 3 mistne lokalni cislo misto celeho XXXXXXXXX. To zajistime ponechanim pouze poslednich 3 cisel z volaneho, viz default-out-isdn

17.12.2014 Jindra doplnil podminku pokud vola z ISDN klapka 300-999, tak se meni CALLERID na 224093111 (puvodne to delala ustredna phillips, ale kvuli billingu to ted delame my.)




{CODE()}
general
static=yes
writeprotect=yes

globals
CHAN_ISDN => DAHDI/G0
CHAN_SIP => SIP/uvtnet

default
include => from-sip

from-sip
include => default-out-isdn
exten => h,1,Hangup()
exten => t,1,Hangup()

from-isdn
include => default-out-sip
exten => h,1,Hangup()
exten => t,1,Hangup()

; kdyz volame do hotelu, ocekavaji 3-mistne cislo,
; takze z volaneho cisla ponechame posledni 3 cisla
default-out-isdn
exten => _.XX,1,Macro(call-isdn,${EXTEN:-3})


default-out-sip
exten => _.XX,1,Macro(call-sip,${EXTEN})


macro-call-isdn
exten => s,1,Set(CDR(userfield)=ISDN)
exten => s,n,Macro(stdcall,${CHAN_ISDN}/${ARG1})


macro-call-sip
exten => s,1,Set(CDR(userfield)=SIP)
exten => s,n,Macro(palace-clid)
exten => s,n,Macro(stdcall,${CHAN_SIP}/${ARG1})


macro-stdcall
exten => s,1,Set(TIMEOUT(absolute)=3600)
exten => s,n,Dial(${ARG1},,60)

; doplnujeme prefix k CLID (Jindra editoval)
macro-palace-clid
exten => s,1,Set(NUM=${CALLERID(num)})
exten => s,n,GotoIf($${LEN(${NUM})} = 3?addpfx) ; pokud je delka CALLERID = 3 pridavame prefix
exten => s,n,MacroExit?
exten => s,n(addpfx),GotoIf($${NUM}>=300?maskpfx) ; pokud je cislo pobocky >= 300 maskujeme na 111
exten => s,n,Set(CALLERID(num)=224093${NUM})
exten => s,n,MacroExit?
exten => s,n(maskpfx),Set(CALLERID(num)=224093111)
exten => s,n,MacroExit?
{CODE}


Created by darek. Last Modification: Středa 04 of listopad, 2015 15:34:14 CET by nikles.