вторник, 5 марта 2013 г.



Настройка Asterisk и DAHDI для работы с устройством 
Cronyx E1-L/M-DAHDI


Имеется сервер Asterisk с установленным драйвером DAHDI. Для подключения к Asterisk устройства Cronyx E1-L/M-DAHDI необходимо сделать следующее:

1. Создаем резервную копию файла конфигурации DAHDI
#mv /etc/dahdi/system.conf /etc/dahdi/system.conf.sample

2. Создаем пустой файл конфигурации

#touch /etc/dahdi/system.conf

3. Открываем файл конфигурации DAHDI

#nano /etc/dahdi/system.conf
и вписываем туда:
dynamic=eth,eth0/00:09:94:00:76:57,31,1
# В качестве MAC адреса указываем MAC устройства 

# Cronyx E1-L/M-DAHDI
# Единичка в конце - тип синхронизации "от потока E1"
bchan=1-15
dchan=16
bchan=17-31
alaw=1-15,17-31
loadzone = us
defaultzone = us


4. Создаем резервную копию файла конфигурации DAHDI каналов Asterisk

#mv /etc/asterisk/chan_dahdi.conf /etc/asterisk/chan_dahdi.conf.sample

5. Создаем пустой файл конфигурации DAHDI каналов Asterisk

#touch /etc/asterisk/chan_dahdi.conf

6. Открываем файл конфигурации DAHDI каналов Asterisk

#nano /etc/asterisk/chan_dahdi.conf
и вписываем туда:
[channels]
group=1
context=from-trunk
switchtype = euroisdn
signalling = pri_cpe
callerid=asreceived
usecallerid=yes
hidecallerid=no
callwaiting=yes
overlapdial=yes
pridialplan=unknown
usecallingpres=yes
callwaitingcallerid=yes
rxgain=0.0
txgain=0.0
threewaycalling=yes
echocancel=yes
echocancelwhenbridged=yes
faxdetect=both
faxbuffers=>8,full
channel => 1-15,17-31


7. Перечитываем конфигурацию DAHDI

# dahdi_cfg -vv
DAHDI Tools Version - 2.6.1
DAHDI Version: 2.6.1


Echo Canceller(s): HWEC
Configuration
======================

Dynamic span 1: driver eth, addr eth0/00:09:94:00:76:57, channels 31, timing 1

Channel map:Channel 01: Clear channel (A-law) (Echo Canceler: none) (Slaves: 01)
Channel 02: Clear channel (A-law) (Echo Canceler: none) (Slaves: 02)
Channel 03: Clear channel (A-law) (Echo Canceler: none) (Slaves: 03)
Channel 04: Clear channel (A-law) (Echo Canceler: none) (Slaves: 04)
Channel 05: Clear channel (A-law) (Echo Canceler: none) (Slaves: 05)
Channel 06: Clear channel (A-law) (Echo Canceler: none) (Slaves: 06)
Channel 07: Clear channel (A-law) (Echo Canceler: none) (Slaves: 07)
Channel 08: Clear channel (A-law) (Echo Canceler: none) (Slaves: 08)
Channel 09: Clear channel (A-law) (Echo Canceler: none) (Slaves: 09)
Channel 10: Clear channel (A-law) (Echo Canceler: none) (Slaves: 10)
Channel 11: Clear channel (A-law) (Echo Canceler: none) (Slaves: 11)Channel 12: Clear channel (A-law) (Echo Canceler: none) (Slaves: 12)
Channel 13: Clear channel (A-law) (Echo Canceler: none) (Slaves: 13)
Channel 14: Clear channel (A-law) (Echo Canceler: none) (Slaves: 14)
Channel 15: Clear channel (A-law) (Echo Canceler: none) (Slaves: 15)
Channel 16: D-channel (Default) (Echo Canceler: none) (Slaves: 16)
Channel 17: Clear channel (A-law) (Echo Canceler: none) (Slaves: 17)
Channel 18: Clear channel (A-law) (Echo Canceler: none) (Slaves: 18)
Channel 19: Clear channel (A-law) (Echo Canceler: none) (Slaves: 19)
Channel 20: Clear channel (A-law) (Echo Canceler: none) (Slaves: 20)
Channel 21: Clear channel (A-law) (Echo Canceler: none) (Slaves: 21)
Channel 22: Clear channel (A-law) (Echo Canceler: none) (Slaves: 22)
Channel 23: Clear channel (A-law) (Echo Canceler: none) (Slaves: 23)
Channel 24: Clear channel (A-law) (Echo Canceler: none) (Slaves: 24)
Channel 25: Clear channel (A-law) (Echo Canceler: none) (Slaves: 25)
Channel 26: Clear channel (A-law) (Echo Canceler: none) (Slaves: 26)
Channel 27: Clear channel (A-law) (Echo Canceler: none) (Slaves: 27)
Channel 28: Clear channel (A-law) (Echo Canceler: none) (Slaves: 28)
Channel 29: Clear channel (A-law) (Echo Canceler: none) (Slaves: 29)Channel 30: Clear channel (A-law) (Echo Canceler: none) (Slaves: 30)
Channel 31: Clear channel (A-law) (Echo Canceler: none) (Slaves: 31)

31 channels to configure.

Changing signalling on channel 1 from Unused to Clear channelChanging law on channel 1 from Mu-law to A-law
Setting echocan for channel 1 to none
Changing signalling on channel 2 from Unused to Clear channel
Changing law on channel 2 from Mu-law to A-law
Setting echocan for channel 2 to none
Changing signalling on channel 3 from Unused to Clear channel
Changing law on channel 3 from Mu-law to A-law
Setting echocan for channel 3 to none
Changing signalling on channel 4 from Unused to Clear channel
Changing law on channel 4 from Mu-law to A-law
Setting echocan for channel 4 to none
Changing signalling on channel 5 from Unused to Clear channel
Changing law on channel 5 from Mu-law to A-law
Setting echocan for channel 5 to none
Changing signalling on channel 6 from Unused to Clear channel
Changing law on channel 6 from Mu-law to A-law
Setting echocan for channel 6 to none
Changing signalling on channel 7 from Unused to Clear channel
Changing law on channel 7 from Mu-law to A-law
Setting echocan for channel 7 to none
Changing signalling on channel 8 from Unused to Clear channel
Changing law on channel 8 from Mu-law to A-law
Setting echocan for channel 8 to none
Changing signalling on channel 9 from Unused to Clear channel
Changing law on channel 9 from Mu-law to A-law
Setting echocan for channel 9 to none
Changing signalling on channel 10 from Unused to Clear channel
Changing law on channel 10 from Mu-law to A-law
Setting echocan for channel 10 to none
Changing signalling on channel 11 from Unused to Clear channel
Changing law on channel 11 from Mu-law to A-law
Setting echocan for channel 11 to none
Changing signalling on channel 12 from Unused to Clear channel
Changing law on channel 12 from Mu-law to A-law
Setting echocan for channel 12 to none
Changing signalling on channel 13 from Unused to Clear channel
Changing law on channel 13 from Mu-law to A-law
Setting echocan for channel 13 to none
Changing signalling on channel 14 from Unused to Clear channel
Changing law on channel 14 from Mu-law to A-lawSetting echocan for channel 14 to none
Changing signalling on channel 15 from Unused to Clear channel
Changing law on channel 15 from Mu-law to A-law
Setting echocan for channel 15 to none
Changing signalling on channel 16 from Unused to HDLC with FCS check
Setting echocan for channel 16 to none
Changing signalling on channel 17 from Unused to Clear channel
Changing law on channel 17 from Mu-law to A-law
Setting echocan for channel 17 to none
Changing signalling on channel 18 from Unused to Clear channel
Changing law on channel 18 from Mu-law to A-lawSetting echocan for channel 18 to none
Changing signalling on channel 19 from Unused to Clear channel
Changing law on channel 19 from Mu-law to A-law
Setting echocan for channel 19 to none
Changing signalling on channel 20 from Unused to Clear channel
Changing law on channel 20 from Mu-law to A-law
Setting echocan for channel 20 to none
Changing signalling on channel 21 from Unused to Clear channel
Changing law on channel 21 from Mu-law to A-law
Setting echocan for channel 21 to none
Changing signalling on channel 22 from Unused to Clear channel
Changing law on channel 22 from Mu-law to A-law
Setting echocan for channel 22 to none
Changing signalling on channel 23 from Unused to Clear channel
Changing law on channel 23 from Mu-law to A-law
Setting echocan for channel 23 to none
Changing signalling on channel 24 from Unused to Clear channel
Changing law on channel 24 from Mu-law to A-lawSetting echocan for channel 24 to none
Changing signalling on channel 25 from Unused to Clear channel
Changing law on channel 25 from Mu-law to A-law
Setting echocan for channel 25 to none
Changing signalling on channel 26 from Unused to Clear channel
Changing law on channel 26 from Mu-law to A-lawSetting echocan for channel 26 to none
Changing signalling on channel 27 from Unused to Clear channel
Changing law on channel 27 from Mu-law to A-law
Setting echocan for channel 27 to none
Changing signalling on channel 28 from Unused to Clear channel
Changing law on channel 28 from Mu-law to A-law
Setting echocan for channel 28 to none
Changing signalling on channel 29 from Unused to Clear channel
Changing law on channel 29 from Mu-law to A-law
Setting echocan for channel 29 to noneChanging signalling on channel 30 from Unused to Clear channel
Changing law on channel 30 from Mu-law to A-law
Setting echocan for channel 30 to none
Changing signalling on channel 31 from Unused to Clear channel
Changing law on channel 31 from Mu-law to A-law
Setting echocan for channel 31 to none


8. Рестартуем сервис DAHDI

# service dahdi restart
Unloading DAHDI hardware modules: done
Loading DAHDI hardware modules:
wct4xxp:                 [ OK ]
wcte12xp:                [ OK ]
wct1xxp:                 [ OK ]
wcte11xp:                [ OK ]
wctdm24xxp:              [ OK ]
wcfxo:                   [ OK ]
wctdm:                   [ OK ]
wcb4xxp:                 [ OK ]
wctc4xxp:                [ OK ]
xpp_usb:                 [ OK ]

Running dahdi_cfg:       [ OK ]


9. Рестартуем сервис Asterisk
# service asterisk restart
Stopping safe_asterisk: [ OK ]
Shutting down asterisk: [ OK ]
Запускается asterisk:


10. Проверяем статусы DAHDI каналов.

#dahdi_tool



Все статусы должны быть ОК, No alarms
Из консоли Asterisk:
localhost*CLI> dahdi show channels
Chan Extension Context Language MOH Interpret Blocked State
pseudo default default In Service
1 from-trunk default In Service
2 from-trunk default In Service
3 from-trunk default In Service
4 from-trunk default In Service
5 from-trunk default In Service
6 from-trunk default In Service
7 from-trunk default In Service
8 from-trunk default In Service
9 from-trunk default In Service
10 from-trunk default In Service
11 from-trunk default In Service
12 from-trunk default In Service
13 from-trunk default In Service
14 from-trunk default In Service
15 from-trunk default In Service
17 from-trunk default In Service
18 from-trunk default In Service
19 from-trunk default In Service
20 from-trunk default In Service
21 from-trunk default In Service
22 from-trunk default In Service
23 from-trunk default In Service
24 from-trunk default In Service
25 from-trunk default In Service
26 from-trunk default In Service
27 from-trunk default In Service
28 from-trunk default In Service
29 from-trunk default In Service
30 from-trunk default In Service
31 from-trunk default In Service

localhost*CLI> dahdi show status
Description Alarms IRQ bpviol CRC Fra Codi Options LBO
Dynamic 'eth' span at 'eth0/00:09:94:00 OK 0 0 0 CAS Unk 0 db (CSU)/0-133 feet (DSX-1)



Cronyx E1-L/M-DAHDI. Типовые настройки.


E1 Port:
1) Transmit clock: Internal
2) E1 mode: CCS3) Crc4: Generate
4) Receiver gain: High
5) Monitoring channel bit: Off
6) Action on LOS/LOF: Remote Alarm
7) Line code: HDB3
8) Remote control: Disabled

Ethernet:
*) MAC address: 00:09:94:00:76:57
1) Buffer size: 32 ms
2) Mode: Eth
3) DAHDI MAC address: 00:0c:29:38:75:e3
4) IP address/netmask: 10.200.16.233 / 245) Gateway IP address: 10.200.16.254
6) Negotiation: Automatic
Telnet:
1) Permitted address/netmask: 10.0.0.0 / 8
2) Inactivity timeout: 30 min
3) Change password...

Примечание:
DAHDI MAC address - это MAC адрес интерфейса сервера Asterisk, который смотрит на устройство Cronyx E1-L/M-DAHDI
Transmit clock - тип синхронизации. Когда устройство подключено к сети SDH ТТК выставить нужно From E1 port receiver
Crc4 - можно отключить генерацию кодов проверок на ошибки в потоке E1, если удаленная станция не поддерживает такой режим
Change password - установка пароля на Telnet.

При нормальном статусе в консоли Cronyx будет примерно следующее:
State: Normal
E1 Port: Sync=Int, High gain, HDB3, TS16=CCS, CRC4=Check, Mon=Off, Ok
Ethernet: 100Base-T, Full duplex, Ok


Пример использования каналов DAHDI в Asterisk


Файл /etc/asterisk/extensions.conf[general]
...
[globals]
OUTCRONYX=DAHDI/g1

[default]exten => _X.,1,Hangup

[macro-outtrunk];; Макрос для совершения звонков через Cronyx
exten => s,1,Dial(${OUTCRONYX}/${ARG1},120,rt)
exten => s,n,Busy()
exten => s,n,Congestion()
exten => s,n,Hangup()

[uss]exten => 01,1,Dial(${OUTCRONYX}/${EXTEN},120,r)
exten => 02,1,Dial(${OUTCRONYX}/${EXTEN},120,r)
exten => 03,1,Dial(${OUTCRONYX}/${EXTEN},120,r)
exten => 04,1,Dial(${OUTCRONYX}/${EXTEN},120,r)

[mestn]exten => _NXXXXXX,1,Macro(outtrunk,${EXTEN})

[uss-mestn]include => uss
include => mestn
[from-trunk]
exten => 9735998,1,Dial(SIP/9735998,120,r)



Возможные ошибки:

1. При рестарте DAHDI выдаются ошибки FAILED

[root@localhost ~]# service dahdi restart
Unloading DAHDI hardware modules: done
Loading DAHDI hardware modules: 
FATAL: Module dahdi not found.
wct4xxp: FATAL: Module wct4xxp not found.
                            [FAILED]
wcte12xp: FATAL: Module wcte12xp not found.
                            [FAILED]
wct1xxp: FATAL: Module wct1xxp not found.
                            [FAILED]
wcte11xp: FATAL: Module wcte11xp not found.
                            [FAILED]
wctdm24xxp: FATAL: Module wctdm24xxp not found.
                            [FAILED]
wcfxo: FATAL: Module wcfxo not found.
                            [FAILED]
wctdm: FATAL: Module wctdm not found.
                            [FAILED]
wcb4xxp: FATAL: Module wcb4xxp not found.
                            [FAILED]
wctc4xxp: FATAL: Module wctc4xxp not found.
                            [FAILED]
xpp_usb: FATAL: Module xpp_usb not found.
                            [FAILED]

Решается переустановкой DAHDIВыполнить из папки исходных кодов DAHDI
#make clean
#make all
#make install
#make config

После этого скорее всего файл /etc/dahdi/system.conf нужно будет создать и сконфигурировать заново.

2. Не до конца выполняется команда dahdi_cfg или service dahdi restart
В конце выдается сообщение: 
DAHDI dynamic span creation failed: File exists. 
Скорее всего файл конфигурации занят сервисом Asterisk.
В данном случае необходимо остановить сервис asterisk, выполнить команды по рестартингу dahdi и вновь запустить asterisk
#service asterisk stop
#dahdi_cfg -vv
#service dahdi restart
#service asterisk start


3. Команда dahdi_tool выдает красный код ошибки - RED

В консоли Asterisk аналогичная ситуация

asterisk1*CLI> dahdi show status
Description Alarms IRQ bpviol CRC Fra Codi Options LBO
Dynamic 'eth' span at 'eth0/00:09:94:00 RED 0 0 0 CAS Unk 0 db (CSU)/0-133 feet (DSX-1)

Это значит, что Asterisk по каким-то причинам "не видит" устройство Cronyx E1-L/M-DAHDI. Необходимо проверить firewall, наличие пинга до устройства Cronyx E1-L/M-DAHDI
(пинг должен быть обязательно), виден ли MAC адрес устройства Cronyx на интерфейсе сервера (команда arp) - устройство Cronyx E1-L/M-DAHDI обязательно должно находиться с сервером Asterisk в одной сети, в одном VLAN.

Полезные ссылки:

Описание переменных используемых DAHDI
http://www.asterisk-pbx.ru/wiki/doku.php/asterisk_channels_dahdi

понедельник, 4 марта 2013 г.



Установка Asterisk + DAHDI на сервер CentOS

1. Обновляем систему перед установкой
#yum update
Ждем пока не пройдет обновление

2. Отключаем SElinux, для этого открываем файл /etc/sysconfig/selinux
#nano /etc/sysconfig/selinux
Оставляем одну строку, остальное комментируем:
SELINUX=disabled

3. Перезагружаемся
#reboot

4. Переходим в папку откуда будем ставить пакеты
#cd /usr/local/src/

5. Качаем пакеты Asterisk, LibPRI, (Digium Asterisk Hardware Device Interface)
#wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8.20.1.tar.gz
#wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4.14.tar.gz
#wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-2.6.1+2.6.1.tar.gz

LibPRI — это библиотека, предназначенная для работы с потоковыми TDM-интерфейсами ISDN: PRI (Primary Rate Interface) и BRI (Basic Rate Interface)
DAHDI (Digium Asterisk Hardware Device Interface) – пакет позволяет использовать аппаратные средства (карты) для соединения Asterisk с традиционными аналоговыми или цифровыми телефонными сетями

6. Распаковываем скаченные архивы
#tar -xvzf asterisk-1.8.20.1.tar.gz
#tar -xvzf libpri-1.4.14.tar.gz
#tar -xvzf dahdi-linux-complete-2.6.1+2.6.1.tar.gz

7. Устанавливаем пакеты, необходимые для установки этих программ из исходников
#yum install kernel-devel gcc make gcc-c++ libxml2-devel
#yum install perl ncurses-devel
#yum -y install make gcc gcc-c++ kernel kernel-headers-`uname -r` kernel-devel-`uname -r` ncurses-devel newt-devel libtiff-devel libxml2-devel sqlite-devel glibc-headers

8. Устанавливаем DAHDI
#cd dahdi-linux-complete-2.6.1+2.6.1
#make all
#make install

Если установка прошла успешно, увидим надпись:
###################################################
###
### DAHDI tools installed successfully.
### If you have not done so before, install init scripts with:
###
### make config
###
################################################### 

Затем обязательно поставить конфиги DAHDI:
#make config
При этом DAHDI добавиться в автозагрузку

9. Делаем первый запуск драйвера DAHDI
#service dahdi start
Должны успешно стартовать все подключенные драйвера DAHDI


10. Устанавливаем пакет LibPRI
#cd ..
#cd libpri-1.4.14
#make
#make install


11. Наконец устанавливаем Asterisk
#cd ..
#cd asterisk-1.8.20.1
Если хотим, что бы Asterisk был с поддержкой SQL ставим сервер MySQL
#yum install mysql-server mysql mysql-devel mysql-connector-odbc unixODBC unixODBC-devel –y
Затем:
#./configure
Если в конце отработки скрипта появился символ Asterisk, то все хорошо:

               .$$$$$$$$$$$$$$$=..
            .$7$7..          .7$$7:.
          .$$:.                 ,$7.7
        .$7.     7$$$$           .$$77
     ..$$.       $$$$$            .$$$7
    ..7$   .?.   $$$$$   .?.       7$$$.
   $.$.   .$$$7. $$$$7 .7$$$.      .$$$.
 .777.   .$$$$$$77$$$77$$$$$7.      $$$,
 $$$~      .7$$$$$$$$$$$$$7.       .$$$.
.$$7          .7$$$$$$$7:          ?$$$.
$$$          ?7$$$$$$$$$$I        .$$$7
$$$       .7$$$$$$$$$$$$$$$$      :$$$.
$$$       $$$$$$7$$$$$$$$$$$$    .$$$.
$$$        $$$   7$$$7  .$$$    .$$$.
$$$$             $$$$7         .$$$.
7$$$7            7$$$$        7$$$
 $$$$$                        $$$
  $$$$7.                       $$  (TM)
   $$$$$$$.           .7$$$$$$  $$
     $$$$$$$$$$$$7$$$$$$$$$.$$$$$$
       $$$$$$$$$$$$$$$$.
configure: Package configured for:
configure: OS type : linux-gnu
configure: Host CPU : i686
configure: build-cpu:vendor:os: i686 : pc : linux-gnu :
configure: host-cpu:vendor:os: i686 : pc : linux-gnu :

Если необходимо, что бы установленный Asterisk поддерживал дополнительные опции (например работу с MySQL), то их нужно добавить с помощью утилиты menuselect:
#make menuselectВ появившемся окне выбираем нужные опции (я выбрал все опции относящиеся к MySQL):

Нажимаем "Save & Exit"
Далее выполняем:
#make
в конце появиться

+--------- Asterisk Build Complete ---------+
 + Asterisk has successfully been built, and +
 + can be installed by running:              +
 +                                           +
 +                make install               +
 +-------------------------------------------+
Выполняем рекомендуемую команду:
#make install
В конце работы команды должно получиться:
+---- Asterisk Installation Complete -------+
 +                                           +
 +    YOU MUST READ THE SECURITY DOCUMENT    +
 +                                           +
 + Asterisk has successfully been installed. +
 + If you would like to install the sample   +
 + configuration files (overwriting any      +
 + existing config files), run:              +
 +                                           +
 +                make samples               +
 +                                           +
 +-----------------  or ---------------------+
 +                                           +
 + You can go ahead and install the asterisk +
 + program documentation now or later run:   +
 +                                           +
 +               make progdocs               +
 +                                           +
 + **Note** This requires that you have      +
 + doxygen installed on your local system    +
 +-------------------------------------------+
После этого устанавливаем примеры
#make samples 
Устанавливаем doxygen, он необходим для выполнения команды make progdocs, которая устанавливает документацию по Asterisk
#yum install doxygen
#make progdocs

Для CentOS, который использует папки /etc/rc.d/init.d/ или /etc/init.d/, также желательно выполнить команду make config. Это обеспечит установку сценариев запуска и конфигурацию системы (с помощью команды chkconfig) для автоматического выполнения Asterisk при запуске
#make config
Проверяем попал ли Asterisk в автозагрузку:
#chkconfig asterisk --list

12. Делаем первый запуск Asterisk#/etc/init.d/asterisk start
Проверяем, что Asterisk запустился:
# service asterisk status
asterisk (pid 23002) is running...


13. Делаем контрольную перезагрузку сервера и контролируем, что после перезагрузки все службы запустились:

#ps ax | grep asterisk
1449 ? S 0:00 /bin/sh /usr/sbin/safe_asterisk
1453 ? Sl 0:04 /usr/sbin/asterisk -f -vvvg -c
1608 pts/0 S+ 0:00 grep asterisk

заходим в консоль Asterisk
#asterisk -r
и проверяем "видит" ли Asterisk драйвер DAHDI
asterisk1*CLI> dahdi show version
DAHDI Version: 2.6.1 Echo Canceller: HWEC


14. Если Asterisk используется исключительно в защищенной локальной сети, то выключаем firewall. Делаем это с помощью специальной утилиты, если она установлена:

#system-config-firewall
Запустив службу в графическом окне снимаем метку Enabled, нажимаем "ОК" и подтверждаем свое решение.

Если утилита не установлена - не беда!
Открываем файл iptables
#nano /etc/sysconfig/iptables
И варварски удаляем все строчки оставляя только две значимые. Получается примерно так:
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i eth0 -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT


Рестартуем службу iptables
#service iptables restart

Полезные ссылки:

Ставим Asterisk на CentOS
http://xaxatyxa.ru/_centos/ustanavlivaem-asterisk-1-8-centos-6-3.html

Установка и настройка Asterisk и дополнительных модулей

http://www.voxlink.ru/knowledge-base/curriculum/3B3E52EB-6F29-39E4-96AC-004DBD4061BA/
http://www.voxlink.ru/knowledge-base/asterisk-installation/

Описание переменных используемых DAHDI

http://www.asterisk-pbx.ru/wiki/doku.php/asterisk_channels_dahdi





суббота, 2 марта 2013 г.

Фотографии конвертера Cronyx E1-L/M-DAHDI

Вот так оно выглядит после распаковки:




А вот устройство выглядит после снятия крышки:





пятница, 1 марта 2013 г.


Как определить объем оперативной памяти в Linux

# cat /proc/meminfo
или

# free

[root@localhost ~]# free
             total       used       free     shared    buffers     cached
Mem:       1020728     945232      75496          0     145908     560768
-/+ buffers/cache:     238556     782172
Swap:      2064376          0    2064376


[root@localhost ~]# cat /proc/meminfo
MemTotal:        1020728 kB
MemFree:           75504 kB
Buffers:          145916 kB
Cached:           560784 kB
SwapCached:            0 kB
Active:           316528 kB
Inactive:         468820 kB
Active(anon):      16360 kB
Inactive(anon):    63644 kB
Active(file):     300168 kB
Inactive(file):   405176 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       2064376 kB
SwapFree:        2064376 kB
Dirty:               252 kB
Writeback:             0 kB
AnonPages:         78668 kB
Mapped:            25640 kB
Shmem:              1352 kB
Slab:             123236 kB
SReclaimable:      96248 kB
SUnreclaim:        26988 kB
KernelStack:        1968 kB
PageTables:        12196 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2574740 kB
Committed_AS:     301748 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      270348 kB
VmallocChunk:   34359451320 kB
HardwareCorrupted:     0 kB
AnonHugePages:     20480 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        8192 kB
DirectMap2M:     1040384 kB