четверг, 17 апреля 2014 г.

Подключение asterisk к атс "panasonic" моделей TDA и TDE

Требуется:
Установить asterisk с платой E1 и подключить его к существующим атс panasonic моделей TDA и TDE чтоб при звонке высвечивалось имя кто звонит как с panasonic на asterisk так и обратную сторону.
Решение:Установил CentOS 6.5 x86_64. скачав дистрибутив с официального сайта.
Дальше обновил систему отключил SELINUX и установил компоненты требуемые для работы asterisk


yum update -y
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
reboot
yum install -y make wget openssl-devel ncurses-devel newt-devel libxml2-devel kernel-devel gcc gcc-c++ sqlite-devel libuuid-devel
Переходим в папку
cd /usr/src/ 
Скачиваем исходники DAHDI
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-2.9.1.1+2.9.1.tar.gz
Скачиваем исходники libpri 1.4.12 под него есть патч требуемый нам.
wget http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.4.12.tar.gz
Скачиваем патч для libpri который позволит передавать имена пользователей(CallerID Name) на атски моделей panasonic.
wget http://zamal.ru/download/asterisk/libpri/42987_jira_pri_132_hack.patch
Скачиваем исходники asterisk
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-12-current.tar.gz
Распаковываем исходники DAHDI
tar zxvf dahdi-linux-complete*
Распаковываем исходники libpri
tar zxvf libpri*
Копируем патч в папку
cp 42987_jira_pri_132_hack.patch libpri-1.4.12/42987_jira_pri_132_hack.patch
Скачиваем исходники PJSIP
 wget http://www.pjsip.org/release/2.3/pjproject-2.3.tar.bz2 
 Распаковывавем исходники PJSIP 
  tar -jxvf pjproject-2.3.tar.bz2
 Распаковываем исходники asterisk
tar zxvf asterisk*
Переходим в папку с исходниками DAHDI и собираем
cd /usr/src/dahdi-linux-complete* && make && make install && make config
Добавляем dahdi в автозагрузку
chkconfig --add dahdi
Переходим в папку с исходниками libpri и устанавливаем патч и и собираемcd 
cd /usr/src/libpri* && patch < 42987_jira_pri_132_hack.patch && make && make install
Переходим в папку PJSIP

cd pjproject-2.3
Собираем
./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr
Устанавливаем
make dep && make && make install && ldconfig
 Переходим в папку с исходниками Asterisk
cd /usr/src/asterisk*
Собираем Asterisk
./configure --libdir=/usr/lib64 && make menuselect && make && make install
Для 32 разрядной системы команда будет отличаться
./configure && make menuselect && make && make install
Нажимаем «Save & Exit» и ждем
Устанавливаем примеры конфигурационных файлов Asterisk
make samples
Устанавливаем документацию Asterisk
yum install doxygen -y && make progdocs
Добавляем скрипт для старта Asterisk в папку /etc/init.d/
make config
 Редактируем /etc/dahdi/system.conf в моем случае
# Span 1: WCTE2/0/1 "WCTE23X (PCI) Card 0 Span 1" CCS/HDB3/CRC4 ClockSource.
span=1,0,0,ccs,hdb3,crc4
# termtype: te
bchan=1-15,17-31
dchan=16
echocanceller=mg2,1-15,17-31
# Span 2: WCTE2/0/2 "WCTE23X (PCI) Card 0 Span 2" (MASTER) CCS/HDB3/CRC4.
span=2,1,0,ccs,hdb3,crc4
# termtype: te
bchan=32-46,48-62
dchan=47
echocanceller=mg2,32-46,48-62
# Global data
loadzone<------>= ru
defaultzone<--->= ru

Стартуем сервис DAHDI
service dahdi start
Редактируем  /etc/asterisk/dahdi-channels.conf у меня он выглядит так:
; Span 1: WCTE2/0/1 "WCTE23X (PCI) Card 0 Span 1" CCS/HDB3/CRC4 ClockSource.
group=0,11
signalling = pri_cpe
context=pbx
switchtype = qsig
channel => 1-15,17-31
group = 63
; Span 2: WCTE2/0/2 "WCTE23X (PCI) Card 0 Span 2" (MASTER) CCS/HDB3/CRC4.
group=0,12
context=pbx
switchtype = qsig
signalling = pri_net
channel => 32-46,48-62
group = 63
Далее редактируем /etc/asterisk/chan_dahdi.conf у меня он такой:
[trunkgroups]
[channels]
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.
pridialplan=private.
pulsedial=yes.
overlapdial=yes.
facilityenable=yes
#include dahdi-channels.conf.
facilityenable=yes - данный параметр и нужен для передачи имени на panasonic без него будет просто номер без имени

Далее редактируем diaplan /etc/asterisk/extensions.conf
[internal]
exten => _28XX,1,Set(CALLERID(name)=${ICONV(WINDOWS-1251,UTF-8,${CALLERID(name)})})
exten => _28XX,n,Noop(${CALLERID(name)})
exten => _28XX,n,Set(CALLERID(all)=${CALLERID(name)} <${CALLERID(num)}>)
exten => _28XX,n,Dial(SIP/${EXTEN},20,tT)
exten => _27.,1,Set(CALLERID(name)=${ICONV(UTF-8,WINDOWS-1251,${CALLERID(name)})})
exten => _27.,n,Set(CALLERID(all)=${CALLERID(name)} <${CALLERID(num)}>)
exten => _27.,n,Noop(${CALLERID(all)})
exten => _27.,n,Dial(dahdi/i2/${EXTEN},20,tT)
exten => _2.,1,Set(CALLERID(name)=${ICONV(UTF-8,WINDOWS-1251,${CALLERID(name)})})
exten => _2.,n,Set(CALLERID(all)=${CALLERID(name)} <${CALLERID(num)}>)
exten => _2.,n,Noop(${CALLERID(all)})
exten => _2.,n,Dial(dahdi/i1/${EXTEN},20,tT)
exten => _1.,1,Set(CALLERID(name)=${ICONV(WINDOWS-1251,UTF-8,${CALLERID(name)})})
exten => _1.,1,Noop(${CALLERID(name)})
exten => _1.,n,Dial(dahdi/i1/${EXTEN},20,tT)
exten => _9.,1,Noop(${CALLERID(name)})
exten => _9.,n,Dial(dahdi/i1/808${EXTEN},20,tT)
exten => _8089.,1,Noop(${CALLERID(name)})
exten => _8089.,n,Dial(dahdi/i1/${EXTEN},20,tT)
[pbxinternal]
exten => _[1-2].,1,Noop(${CALLERID(all)})
exten => _[1-2].,n,Dial(dahdi/i1/${EXTEN},20,tT)
exten => _28XX,1,Set(CALLERID(name)=${ICONV(WINDOWS-1251,UTF-8,${CALLERID(name)})})
exten => _28XX,n,Noop(${CALLERID(name)})
exten => _28XX,n,Set(CALLERID(all)=${CALLERID(name)} <${CALLERID(num)}>)
exten => _28XX,n,Dial(SIP/${EXTEN},20,tT)
exten => _27.,1,Noop(${CALLERID(all)})
exten => _27.,n,Dial(dahdi/i2/${EXTEN},20,tT)
exten => _9.,1,Noop(${CALLERID(name)})
exten => _9.,n,Dial(dahdi/i1/808${EXTEN},20,tT)
exten => _8089.,1,Noop(${CALLERID(name)})
exten => _8089.,n,Dial(dahdi/i1/${EXTEN},20,tT)
[sipphone]
include => internal
[pbx]
include => pbxinternal
Мне пришлось разделить звонки от asterisk на panasonic и с panasonic на asterisk 
вот и все

Ошибки:

configure: error: *** JSON support not found (this typically means the libjansson development package is missing)


cd /usr/src/ && wget http://www.digip.org/jansson/releases/jansson-2.5.tar.gz
tar -zxf jansson-2.5.tar.gz
cd jansson*
./configure --prefix=/usr/ && make clean && make && make install && ldconfig

Комментариев нет:

Отправить комментарий