Quantcast
Channel: IP АТС Asterisk
Viewing all 1135 articles
Browse latest View live

Сборка chan_h323

$
0
0

Сборка chan_h323

 yum install make gcc-c++ kernel-devel openssl-devel expat-devel gnutls-devel flex libxml2-devel -y
 cd /usr/src
 wget http://www.voxgratia.org/releases/pwlib-v1_10_0-src-tar.gz
 wget http://www.voxgratia.org/releases/openh323-v1_18_0-src-tar.gz
 
 mv openh323-v1_18_0-src-tar.gz openh323-v1_18_0-src.tar.gz
 mv pwlib-v1_10_0-src-tar.gz pwlib-v1_10_0-src.tar.gz
 tar vfxz openh323-v1_18_0-src.tar.gz
 mv openh323_v1_18_0  openh323
 tar vfxz pwlib-v1_10_0-src.tar.gz
  mv pwlib_v1_10_0  pwlib
 cd  /usr/src/pwlib
 ./configure
 make clean opt

cd /usr/src/openh323

 ./configure
 make clean opt

если

 error: linux/compiler.h: No such file or directory
 cp /usr/src/kernels/KERNEL_VERSION/include/linux/compiler.h  /usr/include/linux

и снова

 make clean opt
 cp /usr/src/pwlib/lib/libpt_linux_x86_r.so.1.10.0 /lib
 cp /usr/src/openh323/lib/libh323_linux_x86_r.so.1.18.0 /lib
 cd /usr/src
 wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.10.1.tar.gz
 tar zxvf asterisk-1.8.10.1.tar.gz
 cd asterisk-1.8.10.1
 export OPENH323DIR=/usr/src/openh323/
 export PWLIBDIR=/usr/src/pwlib/
 export OPENH323_LIBDIR=/lib
 export PWLIB_LIBDIR=/lib
 ./configure
 make menuselect
 channels Driver> 
          [*] chan_h323
 make
 make install
localhost*CLI> module load chan_h323.so
Loaded chan_h323.so
  == Parsing '/etc/asterisk/h323.conf':   == Found
  == Parsing '/etc/asterisk/users.conf':   == Found
  == Registered channel type 'H323' (The NuFone Network's Open H.323 Channel Driver)
  == Registered RTP glue 'H323'
  == H.323 listener started
 Loaded chan_h323.so => (The NuFone Network's OpenH323 Channel Driver)
localhost*CLI> core show channeltypes
Type        Description                              Devicestate  Indications  Transfer    
----------  -----------                              -----------  -----------  --------    
Phone       Standard Linux Telephony API Driver      no           yes          no          
USTM        UNISTIM Channel Driver                   no           yes          no          
Bridge      Bridge Interaction Channel               no           no           no          
MulticastR  Multicast RTP Paging Channel Driver      no           no           no          
Agent       Call Agent Proxy Channel                 yes          yes          no          
DAHDI       DAHDI Telephony Driver w/PRI             yes          yes          no          
H323        The NuFone Network's Open H.323 Channel  no           yes          no          
SIP         Session Initiation Protocol (SIP)        yes          yes          yes         
IAX2        Inter Asterisk eXchange Driver (Ver 2)   yes          yes          yes         
Local       Local Proxy Channel Driver               yes          yes          no          
----------
10 channel drivers registered.

Asterisk: настройка и установка


PjSIP транк без регистрации

$
0
0

PjSIP транк без регистрации

[fs2]
type=aor
qualify_frequency=60
contact=sip:asterisk_pjsip@192.168.0.101:5060
[fs2]
type=auth
auth_type=userpass
password=
username=asterisk_pjsip
[fs2]
type=endpoint
transport=0.0.0.0-udp
context=from-pstn
disallow=all
allow=ulaw,alaw,gsm,g726
outbound_auth=fs2
aors=fs2

[fs2]
type=identify
endpoint=fs2
match=192.168.0.101

[fs2]
type=registration
transport=0.0.0.0-udp
outbound_auth=fs2
retry_interval=60
max_retries=10
expiration=3600
auth_rejection_permanent=yes
server_uri=sip:192.168.0.101:5060
client_uri=sip:asterisk_pjsip@192.168.0.101:5060

[0.0.0.0-udp]
type=transport
protocol=udp
bind=0.0.0.0:5088
external_media_address=192.168.0.248
external_signaling_address=192.168.0.248
local_net=192.168.0.0/16

 Endpoint:  fs2                                                  Not in use    0 of inf
    OutAuth:  fs2/asterisk_pjsip
        Aor:  fs2                                                0
      Contact:  fs2/sip:asterisk_pjsip@192.168.0.101:5060        Avail               1.280
  Transport:  0.0.0.0-udp               udp      0      0  0.0.0.0:5081
   Identify:  fs2/fs2
        Match: 192.168.0.101/32

SIP TLS SRTP Asterisk

$
0
0

SIP TLS SRTP Asterisk

  mkdir /etc/asterisk/keys
  cd  /usr/src/asterisk-13*/contrib/scripts/
  ./ast_tls_cert -C pbx.asterisk-pbx.ru -O "asterisk-pbx.ru" -d /etc/asterisk/keys
  • -C domain или IP адрес)
  • -O name
  • -d directory (/etc/asterisk/keys)
No config file specified, creating '/etc/asterisk/keys/tmp.cfg'
You can use this config file to create additional certs without
re-entering the information for the fields in the certificate
Creating CA key /etc/asterisk/keys/ca.key
Generating RSA private key, 4096 bit long modulus
..++
........................................................................................................................++
e is 65537 (0x10001)
Enter pass phrase for /etc/asterisk/keys/ca.key:
Verifying - Enter pass phrase for /etc/asterisk/keys/ca.key:
Creating CA certificate /etc/asterisk/keys/ca.crt
Enter pass phrase for /etc/asterisk/keys/ca.key:
Creating certificate /etc/asterisk/keys/asterisk.key
Generating RSA private key, 1024 bit long modulus
.++++++
.........++++++
e is 65537 (0x10001)
Creating signing request /etc/asterisk/keys/asterisk.csr
Creating certificate /etc/asterisk/keys/asterisk.crt
Signature ok
subject=/CN=192.168.251.253/O=bk
Getting CA Private Key
Enter pass phrase for /etc/asterisk/keys/ca.key:
Combining key and crt into /etc/asterisk/keys/asterisk.pem

Задать пароль и повторить три раза.

*CLI> module load res_srtp.so
Loaded res_srtp.so
 Loaded res_srtp.so => (Secure RTP (SRTP))
*CLI> module show like srtp
Module                         Description                              Use Count  Status      Support Level
res_srtp.so                    Secure RTP (SRTP)                        0          Running              core
1 modules loaded

modules.conf

 load = res_srtp.so
*CLI> sip reload
 Reloading SIP
  == Parsing '/etc/asterisk/sip.conf': Found
  == Using SIP TOS bits 96
  == Using SIP CoS mark 4
  == TLS/SSL ECDH initialized (automatic), faster PFS ciphers enabled
  == TLS/SSL certificate ok

sip.conf

[general]
tcpenable=yes
bindaddr=0.0.0.0
tlsenable=yes
tlsbindaddr=0.0.0.0:5061
tlscertfile=/etc/asterisk/keys/asterisk.pem
tlscafile=/etc/asterisk/keys/ca.crt
tlscipher=ALL
tlsclientmethod=tlsv1
tlsdontverifyserver=yes
  • encryption=yes
  • transport=tls
[general]
register => tls://SIPTRUNK:PASSWORD@123.123.123.123:5061

[SIPTRUNK]
type=friend
context=from-TLSTRUNK
host=123.123.123.123
port=5061
secret=PASSWORD
dtmfmode=rfc2833
disallow=all
allow=alaw
fromdomain=123.123.123.123
insecure=port,invite
qualify=yes
canreinvite=no
encryption=yes
transport=tls

Как настроить Zoiper на Android по протоколу TLS SRTP.

zoiper.htm_1024px_noscroll_noborder

DAHDI TDMox Parabel Elf2-AE

$
0
0

DAHDI TDMox Parabel Elf2-AE

Установим оригинальный DAHDI

 cd /usr/src
 wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
 tar zvxf dahdi-linux-complete-current.tar.gz
 
 cd dahdi-linux-complete-2.10.2+2.10.2
 yum install "kernel-devel-uname-r == $(uname -r)"
 make clean && make all && make install && make config

Установим TDMox Parabel

 cd /usr/src
 wget  http://parabel.ru/d/software/dahdi/dahdi_2.9.2%2B2.9.2-parabel_2.9.2.3.tar.bz2
 tar xf dahdi_2.9.2+2.9.2-parabel_2.9.2.1.tar.bz2
 cd dahdi_2.9.2+2.9.2-parabel_2.9.2.3/dahdi_tdmox
 make && make install

<spoiler|Применим патч (спорно, можно пропустить)>

 cd /usr/src/dahdi_2.9.2+2.9.2-parabel_2.9.2.3/dahdi_tdmox/patches/dahdi-2.10.0
 ./patch.sh /usr/local/share/perl5/Dahdi/Config/Gen/

</spoiler>

Конфигурация DAHDI dynamic spans

 cd /etc/dahdi/tdmox/samples
 cp elf2-ae.conf  /etc/dahdi/tdmox/span-1.conf
 cp elf2-ae.conf  /etc/dahdi/tdmox/span-2.conf
 nano /etc/dahdi/tdmox/span-1.conf
#!/usr/bin/env /usr/bin/tdmox_genconf

spanno=1
addr=eth0/00:55:55:55:55:00/0
device=elf2-ae
timing=0
 nano /etc/dahdi/tdmox/span-2.conf
#!/usr/bin/env /usr/bin/tdmox_genconf

spanno=2
addr=eth0/00:55:55:55:55:01/0
device=elf2-ae
timing=0
 /etc/init.d/dahdi start
 cd /etc/dahdi/tdmox
 ./span-1.conf
Generating configuration files for elf2-ae
dahdi_tdmox: Configuration generation finished
 ./span-2.conf
Generating configuration files for elf2-ae
dahdi_tdmox: Configuration generation finished

не запускайте dahdi_genconf

 dahdi_tdmox
 TDMoX: Configuring span 1
 TDMoX: Configuring span 2
 # /etc/init.d/dahdi restart
/etc/init.d/dahdi restart
Unloading DAHDI hardware modules: done
Loading DAHDI hardware modules:
  wct4xxp:                                                 [  OK  ]
  wcte43x:                                                 [  OK  ]
  wcte12xp:                                                [  OK  ]
  wcte13xp:                                                [  OK  ]
  wct1xxp:                                                 [  OK  ]
  wcte11xp:                                                [  OK  ]
  wctdm24xxp:                                              [  OK  ]
  wcaxx:                                                   [  OK  ]
  wcfxo:                                                   [  OK  ]
  wctdm:                                                   [  OK  ]
  wcb4xxp:                                                 [  OK  ]
  wctc4xxp:                                                [  OK  ]
  xpp_usb:                                                 [  OK  ]
  dahdi_tdmox:                                             [  OK  ]

Running dahdi_cfg:                                         [  OK  ]
 nano /etc/dahdi/system.conf
dynamic=eth,eth0/00:55:55:55:55:00,31,0
bchan=1-15,17-31
dchan=16
alaw=1-15,17-31
loadzone       = ru
defaultzone    = ru


dynamic=eth,eth0/00:55:55:55:55:01,31,0
bchan=32-46,48-62
dchan=47
alaw=32-46,48-62
loadzone       = ru
defaultzone    = ru
 /etc/init.d/dahdi restart

<spoiler>

Loading DAHDI hardware modules:
  wct4xxp:                                                 [  OK  ]
  wcte43x:                                                 [  OK  ]
  wcte12xp:                                                [  OK  ]
  wcte13xp:                                                [  OK  ]
  wct1xxp:                                                 [  OK  ]
  wcte11xp:                                                [  OK  ]
  wctdm24xxp:                                              [  OK  ]
  wcaxx:                                                   [  OK  ]
  wcfxo:                                                   [  OK  ]
  wctdm:                                                   [  OK  ]
  wcb4xxp:                                                 [  OK  ]
  wctc4xxp:                                                [  OK  ]
  xpp_usb:                                                 [  OK  ]
  dahdi_tdmox:                                             [  OK  ]

D: auto '/sys/bus/dahdi_devices/devices/dynamic:eth:0'
auto-assign /sys/bus/dahdi_devices/devices/dynamic:eth:0
D: auto '/sys/bus/dahdi_devices/devices/dynamic:eth:1'
auto-assign /sys/bus/dahdi_devices/devices/dynamic:eth:1
Running dahdi_cfg:                                         [  OK  ]

</spoiler>

Настройка Asterisk

 nano /etc/asterisk/chan_dahdi.conf
[channels]
language=en
group=1
context=from-p1
switchtype = euroisdn
signalling = pri_cpe
channel => 1-15,17-31

language=en
group=2
context=from-p2
switchtype = euroisdn
signalling = pri_cpe
channel => 32-46,48-62
 chown asterisk. /etc/asterisk/chan_dahdi.conf
 service asterisk restart
 asterisk -vvvr
 dahdi show status
Description                              Alarms  IRQ    bpviol CRC    Fra Codi Options  LBO
Dynamic 'eth' span at 'eth0/00:55:55:55  OK      0      0      0      CAS Unk           0 db (CSU)/0-133 feet (DSX-1)
Dynamic 'eth' span at 'eth0/00:55:55:55  OK      0      0      0      CAS Unk           0 db (CSU)/0-133 feet (DSX-1)
 pri show spans
PRI span 1/0: Up, Active
PRI span 2/0: Up, Active

Настройки Elf2-AE

port1

Configuration/E1(A):
3. Line code: HDB3
4. Clock source: Line
7. CRC4: On
0. Quit
Configuration/Common:
1. VCO: 0x0
2. MAC: 005555555500
3. DST MAC: 1078d2581000
4. EC: On
0. Quit

port2

Configuration/E1(A):
3. Line code: HDB3
4. Clock source: Line
7. CRC4: On
0. Quit
Configuration/Common:
1. VCO: 0x0
2. MAC: 005555555501
3. DST MAC: 1078d2581000
4. EC: On
0. Quit

<fs medium><fc #4682b4>смотрите также:</fc></fs>

DAHDI make uninstall

Parabel ELF2-AE

Asterisk SIP trustrpid

$
0
0

Asterisk SIP trustrpid

trustrpid - Определяется доверять или нет полученному Remote-Party-ID

Использование

P-Asserted-Identity

Asteriskне делает ничего, когда он получает заголовок P-Asserted-Identity. Это никак не зависит от значений "trustrpid" и "sendrpid"

Remote-Party-ID

Если установлено «sendrpid=yes» в настройках пира в sip.conf тогда Asteriskдобавит RPI header, как показано в примере:

 Remote-Party-ID: "Vasya Pupkin" <sip:1001@192.168.1.11>;privacy=off;screen=no 

Имя «Vasya Pupkin» и номер 1001, будет скопировано из заголовка FROM. IP адрес 192.168.1.11 это IP адрес сервера Asterisk, но может быть переопределено настройкой "fromdomain" в настройках пира в sip.conf.

Если установлено «trustrpid=yes» в настройках пира sip.conf, тогда Asterisk возьмет номер из RPI header (вместо From header) из запроса полученного при входящем вызове.

Настройка SIP в Asterisk 13 sip.conf

Asterisk 'sip.zadarma.com' PJSIP trunk

$
0
0

Asterisk 'sip.zadarma.com' PJSIP trunk

local_net - локальная сеть (например 192.168.0.0/24)
external_media_address = внешний IP
external_signaling_address = внешний IP
SIP_USER - SIP логин
SIP_PASSWORD - SIP пароль

/etc/asterisk/pjsip.conf

Global PJSIP Settings

[global]
type=global
user_agent=Asterisk 13.8.2

Transport PJSIP

[0.0.0.0-udp]
type = transport
protocol = udp
bind = 0.0.0.0:5066
; NAT settings
local_net = 10.0.0.0/8
external_media_address =  123.123.123.123
external_signaling_address =  123.123.123.123

Zadarma ITSP

AOR

[zadarma]
type=aor
qualify_frequency=400
contact=sip:SIP_USER@sip.zadarma.com:5060

AUTH

[zadarma]
type=auth
auth_type=userpass
password=SIP_PASSWORD
username=SIP_USER

ENDPOINT

[zadarma]
type=endpoint
transport=0.0.0.0-udp
context=from-zadarma
from_user=SIP_USER
from_domain=sip.zadarma.com
disallow=all
allow=alaw,ulaw
outbound_auth=zadarma
aors=zadarma

IDENTIFY

[zadarma]
type=identify
endpoint=zadarma
match=sip.zadarma.com

REGISTRATION

[zadarma]
type=registration
transport=0.0.0.0-udp
outbound_auth=zadarma
retry_interval=120
max_retries=10
expiration=3600
auth_rejection_permanent=yes
contact_user=SIP_USER
server_uri=sip:sip.zadarma.com:5060
client_uri=sip:SIP_USER@sip.zadarma.com:5060

Установка Asterisk 12 / 13 + FreepBX 12 на CentOS 7 64-bit

$
0
0

~~DISCUSSION:off~~

Установка Asterisk 12 / 13 + FreepBX 12 на CentOS 7 64-bit

CentOS 7 64-bit Asterisk 13, FreePBX 12 , libpri, DAHDI, Mysql (mariadb), apache2, lame, php, httpd.conf, php.ini
<fs xx-small>последняя редакция, июль 2015 года</fs>

Выключение SELinux

sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config

Зависимости

yum install -y kernel-devel kernel-headers
yum install -y e2fsprogs-devel  keyutils-libs-devel krb5-devel libogg \
libselinux-devel libsepol-devel libxml2-devel libtiff-devel gmp php-pear \
php php-gd php-mysql php-pdo php-mbstring ncurses-devel \
mysql-connector-odbc unixODBC unixODBC-devel \
audiofile-devel libogg-devel openssl-devel zlib-devel  \
perl-DateManip sox git wget net-tools psmisc
yum install -y gcc gcc-c++ make gnutls-devel \
libxml2-devel ncurses-devel subversion doxygen \
texinfo curl-devel net-snmp-devel neon-devel  \
uuid-devel libuuid-devel sqlite-devel sqlite \
speex-devel gsm-devel libtool libtool-ltdl libtool-ltdl-devel 

Сделайте полный апдейт

 yum update -y

Перезагрузите компьютер

 reboot

Установка mysql (mariadb)

1: Установим mariadb (MySQL)

 yum -y install mariadb-server mariadb mariadb-devel

2: Запустим и включим автозагрузку mariadb (MySQL)

 systemctl start mariadb.service
 systemctl enable mariadb.service

3: Запустим интерактивный конфигуратор (будет предложено задать пароль пользователя root для mysql и др.)

 mysql_secure_installation

Установите PearDB

 pear uninstall db
 pear install db-1.7.14

SRTP

 cd /usr/src && wget http://srtp.sourceforge.net/srtp-1.4.2.tgz 
tar zxvf srtp-1.4.2.tgz && 
cd srtp && autoconf && 
./configure CFLAGS=-fPIC --prefix=/usr && 
make && 
make runtest && 
make install

Pjproject

 cd /usr/src && git clone git://github.com/asterisk/pjproject pjproject 
cd pjproject/ && 
./configure --libdir=/usr/lib64 --prefix=/usr --enable-shared --disable-sound --disable-resample &&
make dep &&
make &&
make install &&
ldconfig &&
ldconfig -p | grep pj

<spoiler|Вывод ldconfig -p | grep pj>

        libpjsua.so (libc6,x86-64) => /usr/lib/libpjsua.so
        libpjsip.so (libc6,x86-64) => /usr/lib/libpjsip.so
        libpjsip-ua.so (libc6,x86-64) => /usr/lib/libpjsip-ua.so
        libpjsip-simple.so (libc6,x86-64) => /usr/lib/libpjsip-simple.so
        libpjnath.so (libc6,x86-64) => /usr/lib/libpjnath.so
        libpjmedia.so (libc6,x86-64) => /usr/lib/libpjmedia.so
        libpjmedia-videodev.so (libc6,x86-64) => /usr/lib/libpjmedia-videodev.so
        libpjmedia-codec.so (libc6,x86-64) => /usr/lib/libpjmedia-codec.so
        libpjmedia-audiodev.so (libc6,x86-64) => /usr/lib/libpjmedia-audiodev.so
        libpjlib-util.so (libc6,x86-64) => /usr/lib/libpjlib-util.so
        libpj.so (libc6,x86-64) => /usr/lib/libpj.so

</spoiler>

libjansson

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

Исходники

cd /usr/src &&  
wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz

Lame

cd /usr/src && 
tar zxvf lame-3.98.4.tar.gz && 
cd lame-3.98.4 && 
./configure && 
make && 
make install 

DAHDI & LibPRI

 yum install "kernel-devel-uname-r == $(uname -r)"
cd /usr/src && 
tar xvfz dahdi-linux-complete-current.tar.gz && 
cd dahdi-linux-complete-* && 
make all && 
make install && 
make config
cd /usr/src && 
tar xvfz libpri-1.4-*.tar.gz && 
cd /usr/src/libpri-1.4.* && 
make && 
make install

SpanDSP

cd /usr/src && wget http://soft-switch.org/downloads/spandsp/spandsp-0.0.6.tar.gz
tar zxvf spandsp-0.0.6.tar.gz && 
cd spandsp-0.0.6 && 
./configure && 
make && 
make install &&
ln -s /usr/local/lib/libspandsp.so.2 /usr/lib64/libspandsp.so.2

Asterisk 13

cd /usr/src && 
tar xvfz asterisk-13-current.tar.gz &&
cd asterisk-13.* &&
./configure --libdir=/usr/lib64 &&
contrib/scripts/get_mp3_source.sh &&
make menuselect

<spoiler|Asterisk 12>

cd /usr/src && 
tar xvfz asterisk-12-current.tar.gz &&
cd asterisk-12.* &&
./configure --libdir=/usr/lib64 &&
contrib/scripts/get_mp3_source.sh &&
make menuselect

</spoiler>

После ввода команды make menuselect, вам будет предложено выбрать устанавливаемые модули. Большинство требуемых модулей выбираются автоматически. Для поддержки mp3 включите модуль 'format_mp3'

 --->  Add-ons (See README-addons.txt)  
             --- extended ---
             XXX chan_mobile
             [*] chan_ooh323
             [*] format_mp3
             [*] res_config_mysql
             --- deprecated ---
             [*] app_mysql
             [*] app_saycountpl
             [*] cdr_mysql

  ---> Core Sound Packages
            [*] CORE-SOUNDS-RU-GSM
  --->  Extras Sound Packages
            [*] EXTRA-SOUNDS-EN-GSM  
make && make install && make config && ldconfig
 sed -i 's/ASTARGS=""/ASTARGS="-U asterisk"/g'  /usr/sbin/safe_asterisk

FreePBX

Скачаем FreePBX

cd /usr/src &&
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-12.0-latest.tgz &&
tar zxvf freepbx-*.tgz &&
cd /usr/src/freepbx

<spoiler|freepbx13>

pear install Console_Getopt
cd /usr/src &&
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz &&
tar zxvf freepbx-13.0-latest.tgz &&
cd freepbx &&
./start_asterisk start &&
./install -n

</spoiler>

Создайте пользователя Asterisk и задайте права пользователя.

useradd -m asterisk &&
chown asterisk.asterisk /var/run/asterisk &&
chown -R asterisk.asterisk /etc/asterisk &&
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk &&
chown -R asterisk.asterisk /usr/lib64/asterisk 

Настроим httpd (Apache)

cp /etc/php.ini /etc/php.ini_orig &&
sed -ie 's/\;date\.timezone\ \=/date\.timezone\ \=\ "Europe\/Moscow"/g' /etc/php.ini &&
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini &&
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_orig &&
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf &&
sed -i 's/AllowOverride None/AllowOverride All/'  /etc/httpd/conf/httpd.conf &&
systemctl restart httpd &&
systemctl enable httpd

Подготовим MySQL

Требуется создать безопасный пароль для связи FreePBX и MySQL

 export ASTERISK_DB_PW=`dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 - | cut -c2-18`

Эта команда сгенерирует 16-ти значный пароль и сохранит его в переменной ASTERISK_DB_PW.

Подготовка базы данных Asterisk в MySQL.

Если вы задали 'root' пароль MySQL при установке mariadb, добавьте его после ключа -pyourpassword. (mysqladmin -u root -pYOURPASSWORD create asterisk)
Выполните по очереди следующие команды:

mysqladmin -u root create asterisk
mysqladmin -u root create asteriskcdrdb
 cd /usr/src/freepbx
mysql asterisk < SQL/newinstall.sql
mysql asteriskcdrdb < SQL/cdr_mysql_table.sql

Зададим права на использование БД MySQL

Замените asteriskuserна имя пользователя, которое вам нравится. Например: YOURUSER@localhost. Можно оставить как есть.

mysql -u root -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
mysql -u root -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
mysql -u root -e "flush privileges;"

Запустим Asterisk и установим FreePBX.

Если в предыдущем пункте вы задали собственное имя пользователя, замените asteriskuserна него. Например: –username=YOURUSER

./start_asterisk start
cd /usr/src/freepbx && ./install_amp --installdb --username=asteriskuser --password=${ASTERISK_DB_PW}

Если появится ошибка:

Enter the path to use for your AMP web root:
 [/var/www/html]

PHP Warning:  mkdir(): File exists in /usr/src/freepbx/libfreepbx.install.php on line 199
[FATAL] Cannot create /var/www/html!

просто запустите установку ещё раз:

 ./install_amp --installdb --username=asteriskuser --password=${ASTERISK_DB_PW}
amportal a ma reload &&
amportal a ma refreshsignatures &&
amportal chown
ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
amportal restart

<spoiler|Network Setup>

Network Setup

 yum install net-tools
 
 yum install NetworkManager
 systemctl enable NetworkManager
 systemctl start NetworkManager
 yum install NetworkManager-tui
 nmtui edit < ethernet_interface >

</spoiler>

В Centos7 вместо IPTables используется Firewalld. Порт 80 tcp (HTTP) по умолчанию закрыт. Так что вам надо либо отключить файервол (не рекомендуется), либо настроить его соответствующим образом

<spoiler| centos 7 firewalld >

1. Выключим Firewalld службу.

 systemctl mask firewalld

2. Остановим Firewalld Service.

 systemctl stop firewalld

3. Установим iptables.

 yum -y install iptables-services

4. Включим IPtables при загрузке системы:

 systemctl enable iptables
iptables -P INPUT ACCEPT &&
iptables -F &&
service iptables save &&
iptables -A INPUT -i lo -j ACCEPT &&
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT &&
iptables -A INPUT -p tcp --dport 22 -j ACCEPT &&
iptables -A INPUT -p tcp --dport 80 -j ACCEPT &&
iptables -P INPUT DROP &&
iptables -P FORWARD DROP &&
iptables -P OUTPUT ACCEPT &&
iptables -A INPUT -p udp -m udp --dport 5060 -j ACCEPT &&
iptables -A INPUT -p udp -m udp --dport 5061 -j ACCEPT &&
iptables -A INPUT -p tcp -m tcp --dport 5060 -j ACCEPT &&
iptables -A INPUT -p tcp -m tcp --dport 5061 -j ACCEPT &&
iptables -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT &&
iptables -A INPUT -p udp -m udp --dport 4569 -j ACCEPT &&
iptables -A INPUT -p tcp -m tcp --dport 5038 -j ACCEPT &&
service iptables save &&
iptables -L

<spoiler>

iptables -L
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     udp  --  anywhere             anywhere             udp dpt:sip
ACCEPT     udp  --  anywhere             anywhere             udp dpt:sip-tls
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:sip
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:sip-tls
ACCEPT     udp  --  anywhere             anywhere             udp dpts:ndmp:dnp
ACCEPT     udp  --  anywhere             anywhere             udp dpt:iax
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:5038

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

</spoiler>

Asterisk + IPTables

</spoiler>

Подключимся к FreePBX

http://IP.Address.FreePBX.Server/admin

Первым делом, вам будет предложено задать имя пользователя и пароль FreePBX

freepbx start set user login

<spoiler|zend guard loader>

скачать и рапаковать:

http://www.zend.com/products/guard/downloads

скопировать:

 cp ZendGuardLoader.so /usr/lib64/php/modules

Подключить раcширение php:

 ZendGuard.ini - /etc/php.d directory:
 nano /etc/php.d/ZendGuard.ini
## CentOS 64-bit ##
; Enable Zend Guard extension
zend_extension=/usr/lib64/php/modules/ZendGuardLoader.so
zend_loader.enable=1

systemctl restart httpd

</spoiler>

Установка Asterisk

ICTDialer © - Автообзвон

$
0
0

~~DISCUSSION:off~~ [float right background=#ffffff size=12 width=220 height=200]

Наши контакты


info@asterisk-pbx.ru

Skype:asterisk-pbx.ru


(812) 321-61-11

(812) 998-11-38


Неотек Инжиниринг

194021,Санкт-Петербург
2-й Муринский пр-т, 49, оф. 225

время работы офиса 10-00 до 17-30

[/float]

ICTDialer © - Автообзвон

Многопользовательская система голосового оповещения (Автоматического Обзвона Абонентов).

ictdialer logo

<fs x-large><fc #4682b4>Программное решение для малых и средних предприятий и провайдеров услуг. ICTDialer © реализует функции Интеллектуального автоматического дозвона и смарт-возможности прогнозирования дозвона. Система может совершать тысячи одновременных вызовов с использованием каналов связи VoIP или PSTN. В качестве телефонной платформы используется IP АТС FreeSWITCH. ICTDialer © может работать с большинством сценариев голосового оповещения. Это надежное и простое в использовании ПО имеет удобный веб-интерфейс для управления.</fc></fs>

<fs small>*Стоимость установки для физических лиц - 275 у.е</fs>

Заказывая эту услугу вы получаете:

  • <fs large><fc #4682b4>IP АТС FreeSWITCH.</fc></fs>
  • Веб интерфейс FusionPBX для FreeSWITCH.
  • Систему Автоматического обзвона абонентов ICTDialer.
  • Настройку IP АТС и системы Автообзвона по вашему ТЗ.
  • Бесплатную Тех. поддержку в течении месяца с момента ввода в эксплуатацию.

<fs large><fc #4682b4>Возможны разные варианты установки:</fc></fs>

  • Продажа сервера с установкой и настройкой системы.
  • Установка на сервере заказчика.
  • Удаленная установка/настройка на сервере заказчика.
  • Установка на VPS хостинге

<fs x-large><fc #4682b4>Описание Веб интрефейса для управления ICTDialer</fc></fs>

Существуют два основных типа пользователей: Administrator и User.

Администратор управляет всей системой: пользователями, маршрутизацией вызовов, файлами а также, что самое главное - кампаниями, контактами и голосовыми сообщениями.

ictdialer main screen

<fs large><fc #4682b4>Кампании</fc></fs>

Кампания, в данном случае, это сценарий обзвона списка абонентов и трансляции голосовых сообщений и/или соединения с операторами.

ictdialer campaigns

Campaign Name:Идентификационное имя для кампании

Delay:Набирать номера по очереди, через заданное время.

ictdialer campaigns edit

Voice Message Type:Выберете тип наведения для кампании - голосовое сообщение или IVR

Recordings:Выбор заранее созданных сообщений для воспроизведения абоненту

ictdialer campaigns message

IVR:В данном случае под IVR имеется ввиду набор действий: ответить на вызов, проиграть сообщение. соединить с оператором и т.д.(см. ниже)

ictdialer campaigns ivr

IVR

<fs large><fc #4682b4>IVR расшифровывается как Interactive Voice Response. Этот модуль позволяет системе соединять абонентов с группами вызова, очередями колл центра, получать информацию от пользователя при помощи модуля text-to speech настраивать интерактивные меню по DTMF сигналам. IVR может быть использован для создания систем автоответа, напоминания и телефонных опросов.</fc></fs>

IVR Designer

<fs large><fc #4682b4>IVR Designer позволяет продвинутые сценарии отбработки вызова, при помощи простого интерфейса drag-and-drop.</fc></fs>

Услуги по установке и настройке IP АТС Asterisk.

 

VoIP модернизация устаревших TDM АТС

$
0
0

~~DISCUSSION:off~~ [float right background=#ffffff size=12 width=220 height=200]

Наши контакты


info@asterisk-pbx.ru

Skype:asterisk-pbx.ru


+7 (812) 998-11-38

+7 (921) 998-11-38


Неотек Инжиниринг

194021,Санкт-Петербург
2-й Муринский пр-т, 49, оф. 225

время работы офиса 10-00 до 17-30

[/float]

VoIP модернизация устаревших TDM АТС

<fs x-large><fc #4682b4>Если у вас используется устаревшая TDM АТС, которая не поддерживает VOIP или VoIP лицензии слишком дороги, вы можете модернизировать её подключив программную IP АТС при по каналу ISDN PRI E1.</fc></fs>

<fs large><fc #4682b4>Эта схема апробирована нами на множестве АТС, таких как: Avaya IP Office,Avaya (Definity) CSI, s8300, s8500, s8700; АТС NEC: Nec SL1000, SV8100, SV8300, SV8500, NEAX2000 IPS,NEAX2400 IPX, NEAX7400; LG-Erricson ipLDK, IPECS; Samsung OfficeServ; Panasonic KX-TDA; Nortel; и является высокоэффективным методом для модернизации вашей телекоммуникационной платформы.</fc></fs>

<fs medium>Рассмотрим два варианта подключения, прямое и транзитное</fs>

<fs large>Первый вариант предполагает, что в вашей АТС есть свободная плата ISDN PRI E1</fs>

<fs medium>Требуемое оборудование для прямого подключения</fs>

  1. Плата ISDN PRI E1 в вашей АТС.
  2. Однопортовая Плата ISDN PRI E1 Digium или Parabel.
  3. Сервер для установки IP АТС Asterisk или FreeSWITCH.

<fs large><fc #4682b4>Второй вариант предполагает, что в вашей АТС есть подключение по ISDN PRI E1 к провайдеру телефонии. IP АТС подключается в разрыв на поток E1 провайдера, вызовы идут транзитом на старую АТС и обратно.</fc></fs>

<fs medium>Требуемое оборудование для транзитного подключения</fs>

  1. Плата ISDN PRI E1 в вашей АТС
  2. Двухпортовая Плата ISDN PRI E1 Digium или Parabel
  3. Сервер для установки IP АТС Asterisk или FreeSWITCH

<fs large><fc #4682b4>IP ATC подключается потоком E1 к АТС. Создается единый номерной план с учетом внутренних номеров вашей атс. Абоненты АТС могут звонить абонентам IP АТС и наоборот. Работает переадресация. Поддерживается передача CallerID. Абоненты обоих АТС могут использовать внешние линии подключенные к каждой из станций. Абоненты TDM АТС могут использовать голосовые сервисы IP АТС, такие как голосовая почта, многоканальные телеконференции и тд.</fc></fs>

<fs large><fc #4682b4>Подключив open source IP АТС к старой станции вы получаете неограниченное кол-во IP абонентов. Неограниченное кол-во VoIP транков (внешних линий). При это сохраняется старая номерная емкость. И все это при минимальных затратах. Все устанавливаемое ПО свободно распространяемое. Вы платите только за оборудование и настройку.</fc></fs>

Стоимость настройки от 17 000 рублей (включая настройку маршрутизации старой АТС).

<fs x-large><fc #fa8072>Стоимость одно-канальной платы ISDN PRI E1 производства компании Parabel, составляет 14 850 рублей.</fc></fs>

<fs x-large><fc #fa8072>Стоимость двух-канальной платы ISDN PRI E1 производства компании Parabel, составляет 19 800 рублей.</fc></fs>

<fs large><fc #4682b4>Сервер для установки системы может быть приобретен у нас или предоставлен заказчиком.</fc></fs>

Digium TE230 цифровые платы

TE235 / TE235B PCI Express

digium te235f digital card

Digium T1/E1 - платы для передачи голоса. Они поддерживают стандартные протоколы, в том числе Robbed Bit Signaling (также известный как CAS или Channel Associated Signaling), CCS (Common Channel Signaling), E&M, и Primary Rate ISDN (PRI). Карты TE230 серии работают в режимах E1, T1 или J1. Поддерживается DACSканалов от одного спана к другому.Платы TE230-й серии прекрасно подходят для для подключения к T1/E1 коммутаторов или подключения к удаленной АТС.

Это руководство предназначено для использования с картами TE235/TE235B PCI Express. Эти карты определяются как карты TE серии. Платы TE серии полностью совместимы с существующими программными приложениями и полной интеграции с Asterisk, карты TE серии реализуют множество дополнительных функций вызова.

<fs medium><fc #4682b4>Голосовые режимы:</fc></fs>

  • PRI CPE and PRI NET
    • NI1
    • NI2
    • EuroISDN
    • 4ESS (AT&T)
    • 5ESS (Lucent)
    • DMS100
    • Q.SIG

Наиболее часто используемые в нашей стране режимы - <fc #fa8072>EuroISDN</fc> (для подключения к провайдерам телефонии) и <fc #fa8072>Q.SIG</fc>(для подключения офисных АТС).

te230 pbx тфоп asterisk

Пример 1: Подключение офисной АТС к Телефонной сети Общего Пользования (ТфОП) через Asterisk при помощи платы TE235 Express. Данная схема позволяет объединить офисную АТС c Asterisk и провайдеру ТфОП, значительно расширив функции офисной АТС (Запись разговоров, VoIP абоненты, VoIP транки, голосовая почта, IVR и тд)

te230 asterisk ippbx

Пример 2: Подключение Asterisk к Телефонной сети Общего Пользования (ТфОП) при помощи платы TE235 Express.

Эхоподавление

При соединении плат с ТфОП из-за прохождения разнородных сред передачи данных, может возникать эхо. Asterisk поддерживает ряд программных систем эхоподавления, которые более-менее хорошо справляются с этой проблемой, но для достижения максимального качества лучше использовать аппаратный модуль эхоподавления.

Модуль VPMO64 совместим с платами серии TE230 и обеспечивает высочайшее качество голоса. Если модуль установлен и не запрещен явно в конфигурационном файле chan_dahdi.confопцией echocancel=no, эхоподавление включается автоматически для каждого используемого b-канала.

GoAutoDial

$
0
0

GoAutoDial

GOautodial это основанный на LAMP (Linux, Apache, MySQL, PHP) программный комплекс, базирующийся на CentOS.
В основе кода лежит приложение ViciDIAL. В качестве телефонного движка использован Asterisk 1.8.
GOautodial реализованы функции Predictive Dialer (Интелектуального АВтоОбзвона) и Центра Обработки Входящих вызовов.

Подробнее о функционале:

  • Обработка входящих, исходящих и смешанных вызовов.
  • Автообзвон для оповещения и опросов.
  • Веб-интерефейс
  • Мастер конфигурации.
  • Запись переговоров.
  • Высокая производительность.
  • VoIP trunks and standard Telco lines
  • Поддержка плат Sangoma и Digium.
  • И все это по Open-Source GPLv2 лицензии.

Usernames и passwords по умолчанию

Goautodial 3.0:

Login Password
MySQL (mysql -u root -p) <fc #008000>http://ServerIPAddress/phpmyadmin/</fc> root vicidialnow
Limesurvey <fc #008000>https://ServerIPAddress/limesurvey/admin/admin.php</fc> admin kamote1234
Portal – <fc #008000>http://ServerIPAddress/</fc> admin goautodial
User Login agent001 to agent020 goautodial
Phone Login (SIP) 8001 to 8020 goautodial

Скачайте образ с сайта http://goautodial.org

Для скачивания файлов требуется регистрация.

Download:

goautodial-64bit-ce-3.3-final.iso
md5sum: 5f3e201277c8152baba37c649b9f0847

goautodial-32bit-ce-3.3-final.iso
md5sum: b0de2b302faec4c57ef87bb99f8d03b3

Инсталляция

Рекомендуется сразу подключить компьютер на который устанавливается система к сети ethernet.

Загрузитесь с GoAutoDial CD и нажмите 'Enter'.

Задайте рутовый пароль. По завершении инсталляции извлеките GoAutoDial CD и нажмите Reboot.

После загрузки системы, авторизуйтесь с заданным по ходу установки паролем и сделайте апдейт системы командой yum update -y.

Задайте IP адрес, Hostname и Time Zone. Псевдо-графический интерфейс запускается командой Setup. Затем перезапустите сетевые интерфейсы и MySQL командами:

/etc/init.d/network restart
/etc/init.d/mysqld restart

Откройте GoAutodial CE портал в вашем любимом веб браузере по ip в адресной строке и авторизуйтесь:

Login : admin
Password : goautodial

Кликните ADD NEW CAMPAIGNи выберете CAMPAIGN TYPE (Outbound).
Задайте Campaign IDи Campaign Name.
Выберете Lead File, задайте код страны и проверку повторов Check for duplicates by phone in List IDи Check for duplicates by phone in all Campaign Listи закачайте созданный Lead.

Пример lead файла

http://goautodial.org/projects/goautodialce/wiki/Goautodial_Getting_Started_Guidev3

http://support.goautodial.com/support/solutions

http://goautodial.org/

Приложения

MicroSIP

$
0
0

MicroSIP

Основное

MicroSIP может работать как с аккаунтом VoIP-провайдера / SIP-сервера, так и без них (SIP direct). MicroSIP при закрытии сворачивается в трей. Щелкните правой кнопкой мыши на иконку в трее вы можете просматривать состояние и настройки приложения. MicroSIP не требуется каких-либо предустановленных кодеков, все кодеки уже включены.

Кнопки (Dialpad)

Используется для ввода цифр с помощью мыши или отправки DTMF сигналов. Также вы можете ввести номер с физической клавиатуры, в этом случае вы можете вводить буквы, указать пользовательский домен и порт.
Примеры: 13455674657, buddy, buddy@sip.com, buddy@sip.com:5043, buddy@192.168.1.34, sip:192.168.1.77, и т.д.

Контакты

Чтобы добавить контакт правой кнопкой мыши на пустой области. Контактный номер может быть в любом формате, примеры в Dialpad. Если включить «Подписка на присутствие» MicroSIP пошлет на SIP-сервер запрос о состоянии контакта. Ваш SIP-сервер должен поддерживать эту функцию.

microsip contacts presence

«Подписка на присутствие» позволяет использовать функционал BLF - перехват звонков других пользователей.
<fs medium>Как BLF работает в MicroSIP:</fs>

Пользователи должны включить «Публиковать присутствие» в окне Account. Вы должны включить «Подписка на присутствие» для пользователей в списке контактов. После этого, значки пользователей в списке контактов становятся цветными. Если значки все-таки серые - настроить SIP-сервер (PBX).

Когда пользователь из списка контактов получает входящий вызов, значок контакта будет мигать (зеленый мигающий значок). Чтобы принять входящий вызов, дважды щелкните по нему или нажмите правую кнопку мыши и используйте контекстное меню - «Перехват вызова». Код перехвата используемый в MicroSIP "**" и в настоящее время не может быть изменен.

Цвета пользователей: зеленый - онлайн, красный - оффлайн, желтый - активный вызов, зеленый мигающий - входящий вызов.

Звонки и смс

Аккаунт

microsip account

  • SIP сервер- SIP сервер регистрации.
  • SIP прокси - SIP прокси вашего аккаунта. Примеры: «192.168.1.1», «192.168.1.1:5070», «192.168.1.1;hide». «;hide» параметр поможет разрешить проблемы с регистрацией.
  • Пользователь - Имя пользователя SIP аккаунта.
  • Домен - SIP домен регистрации.
  • Логин - Uимя пользователя для аутентификации, если пусто используется Username.
  • Пароль - пароль SiP аккаунта.
  • Ваше имя - Имя отображаемое при вызове.
  • Шифрование медиа
    • Отключено- на шифровать никогда.
    • Необязательно - использовать настройки удаленной стороны.
    • Обязательно - всегда шифровать.
    • Рекомендованное значение: Необязательно.
  • Транспорт

Зависит от конфигурации вашего SIP сервера. Попробуйте выбратьчто-то одно из TLS, TCP, UDP. Обычно используется UDP. Авто означает TCP и UDP. Если ваш сервер не поддерживает TCP, «Авто» вызовет задержку исходящего вызова,перед переключением на UDP.

  • Публичный адрес

Вы можете указать IP-адрес или имя хоста, это может локальный ip адрес интерфейса или может внешний ip адрес маршрутизатора. При использовании SIP-сервера и если есть проблемы с сетевым адресом, оставьте «Авто» и попробуйте включить «Разрешить перезапись IP», это позволит определять и обновлять адрес автоматически.

  • Локальный порт

По умолчанию MicroSIP пытается использовать стандартный SIP порт - 5060. Если порт занят другим приложением, MicroSIP выберет случайный порт или вы можете назначить нужный порт вручную.

  • Публиковать присутствие

Отправляет на SIP-сервере информацию о состоянии, это означает, что другие подписавшиеся контакты могут видеть ваш статус и могут перехватывать входящие вызовы (BLF функционал).

  • STUN server

STUN сервер перенаправляет RTP медиа потоки напрямую между SIP пирами, минуя SIP узел провайдера, при использовании NAT. Это требует открытия диапазона UDP портов на маршрутизаторе для входящих соединений.
Существуют разные типы NAT (full cone NAT, (address) restricted cone NAT, port restricted cone NAT and symmetric NAT). Вы можете использовать STUN, только если ваш NAT не симметричный. В противном случае у вас будут проблемы с односторонней слышимостью. Значение по умолчанию - пусто.

stun

  • ICE

Помогает найти кратчайшие пути для медиа потоков. Подробнее Подробнее о поддержке ICE в Asterisk>>>
Рекомендуемое значение - включено.

  • Разрешить перезапись IP

Включайте только в крайнем случае, если вы не можете совершать вызовы. Это может решить проблемы, связанные с NAT. Когда эта опция включена, MicroSIP будет отслеживать внешний IP-адрес из ответа на запрос REGISTER . Этот IP адрес будет использоваться в заголовках последующих запросов: Contact, VIA и SDP. Значение по умолчанию: отключено.

Настройки

microsip настройки

  • Звук вызова

Выберете файл в формате WAV.

  • Аудио кодеки

Разрешайте или запрещайте использование кодеков, перемещая из списка активных.

  • VAD

Включить распознование голосовой активности. По умолчанию -нет.

  • EC

Включить эхо-подавление.

  • Задать кодек для входящих

Как правило, вызывающий (caller) абонент определяет приоритет использования кодеков. Эта опция позволяет вызываемому абоненту (calle) выбрать предпочитаемый кодек.

  • Отключить H.264 codec
  • Отключить H.263 codec
  • Битрейт -Video codec bitrate

Установите максимальный битрейт. Если одна из сторон установит 256 кбит / с а другая 512 кбит/с - будет использоваться 256 кбит/с для обоих.

  • Авто ответ

MicroSIP will play short tone and popup when call auto accepted. SIP header - when receiving the «Call-Info: Auto Answer» or «Call-Info: answer-after=0» or «X-AUTOANSWER: TRUE» in SIP header.

  • Запретить входящие

Блокируйте нежелательные или spam вызовы по разным условиям - другой пользователь; другой домен; удаленный домен итд.

  • Каталог пользователей

URL (with http://) файла в формате XML, содержащий список контактов. Формат файла:

<?xml version="1.0"?>
   <directory>
   <entry>
   <name>Name</name>
   <extension>1234</extension>
   <presence>0</presence>
   </entry>
   </directory>

Также поддерживается Cisco IP phone directory формат CiscoIPPhoneDirectory и другие.

MessageSend

Отправка мгновенных сообщений через Asterisk

/etc/asterisk/sip_general_custom.conf

accept_outofcall_message = yes
outofcall_message_context = sip-msg
auth_message_requests = no
 #  asterisk -rx "sip reload"

/etc/asterisk/extensions_custom.conf

[sip-msg]
exten => _7XXX,1,MessageSend(sip:${EXTEN},"${CALLERID(name)}"${MESSAGE(from)})
 #  asterisk -rx "dialplan reload"

где 7XХХ, в данном примере, внутренняя нумерация абонентов Asterisk

microsip messagesend asterisk

 Executing [111@sip-msg:1] MessageSend("Message/ast_msg_queue", "sip:111,""<sip:7999@vox.voxpopuli.tld>") in new stack

Phoner

Zoiper

$
0
0

Zoiper

Хороший софтфон с поддержкой SIP и IAX протоколов.

Zoiper


В бесплатной версии (ниже 3.0) поддерживается до трех аккаунтов.

Zoiper Accounts


В настройках можно включить RPORT и RPORT MEDIA

Zoiper advased settings

А также указать локальный SIP и IAX порт, RTP начальный порт и STUN серевер.

zoiper rtp sip port stun server

Поддерживаются внешние USB устройства.

zoiper audio external handsets

https://cloud.mail.ru/public/5c4a6aa951c7%2FZoiper_Free_2.39_Installer.zip

Wireshark

$
0
0

Wireshark

Подключение Wiresharkна Windowsк удаленному Linuxхосту, для захвата и анализа SIPи RTPтрафика.


Wireshark Windows pipe ssh Linux tcpdump

Все пакеты

"C:\Program Files\putty\PLINK.EXE" -ssh -pw PASSWORD USER@HOST -P 22 "tcpdump -ni eth0 -s 0 -w - not port 22" | "C:\Program Files\Wireshark\wireshark.exe" -k -i -

SIP (udp 5060)

"C:\Program Files\putty\PLINK.EXE" -ssh -pw PASSWORD USER@HOST -P 22 "tcpdump -ni eth0 -s 0 -w - udp port 5060 " | "C:\Program Files\Wireshark\wireshark.exe" -k -i -

SIP и RTP (udp 5060, 10000-20000)

"C:\Program Files\putty\PLINK.EXE" -ssh -pw PASSWORD USER@HOST -P 22 "tcpdump -ni eth0 -s 0 -w - udp port 5060 or udp portrange 10000-20000" | "C:\Program Files\Wireshark\wireshark.exe" -k -i -

где:

"C:\Program Files\putty\PLINK.EXE" - Путь к приложению plinkв вашей системе.

"C:\Program Files\Wireshark\wireshark.exe" - Путь к приложению Wireshark.

PASSWORD USER@HOST - ssh пароль, имя пользователя и адрес

-P - порт ssh (22)

eth0 - ethernet интерфейс со стороны Linux

udp port 5060 or udp portrange 10000-20000 - протокол и порт сигнализации SIP и протокол и диапазон портов RTP (tcp port 5061 or tcp portrange 10500-38000)

Фильтры

Команда Значение Пример использования
== равенство ip.dst == 192.168.0.10
!= Не равно udp.dst != 5060
< меньше чем ip.ttl < 24
> больше чем frame.len > 10
меньше или равно frame.len ⇐ 0x20
>= больше или равно tcp.analysis.bytes_in_flight >= 1000
matches регулярные выражения frame matches "[Aa][Ss][Ss]"
contains содержит dns.resp.name contains google

примеры:

Request INVITE to IP

 (ip.dst == 192.168.0.111) && (sip.Method == "INVITE")

Request REGISTER from IP

 (ip.src == 192.168.0.111) && (sip.Method == "REGISTER")

Wireshark SIP Filter reference

SIP response codes (Busy here)

 sip.Status-Code == 486

Not 1XX & 2XX response

 sip.Status-Code > 200

List of SIP response codes

SIP user 3944

 sip contains  "sip:3944"   

SIP user range 3944 & 3945

 sip matches  "sip:394[45]"

SIP user range 3…

 sip matches  "sip:3"

Extensions 810…

sip contains "INVITE sip:810" 

Screenshots

Telephony > Voip Calls

Если захвачен RTP трафик, можно прослушать разговор.

wireshark VoIP Calls

Call Center

$
0
0

Call Center

Определение колл-центр может употребляться в нескольких значениях:

  • Операторский центробработки входящих и исходящих звонков.
  • Программно-аппаратный комплекс, позволяющий управлять входящими и исходящими звонками.
  • Контактный центр (контакт-центр) для обработки обращений по всем известным каналам связи

Call center— центр обслуживания звонков — централизованный офис, используемый для получения и передачи больших объёмов информации, поступающей в виде запросов по телефону.

Центр обслуживания звонков производит администрирование входящего потока запросов по поддержке продукта (услуги) от клиентов или потенциальных потребителей. Также могут проводится исходящие звонки по телемаркетингу, клиентские звонки, обслуживание своего продукта (услуги) и коллекторские мероприятия по сбору долгов. Помимо центра обслуживания звонков, можно управлять потоком корреспонденции (писем, факсов, чатов, электронной почты) в одном месте, контакт-центре.

Центр обслуживания звонков часто представляет собой открытую систему рабочего пространства, где работают операторы центра обслуживания звонков. Система включает компьютер для каждого оператора, телефон (с наушниками), или телефонную трубку, подсоединенную к свитчу и одной или нескольким станциям. Такой центр может независимо управляться либо быть в составе сети нескольких Call-центров, часто — подключенных к корпоративной компьютерной сети, включая мейнфреймы, микрокомпьютеры и локальные сети LAN. Все в большей мере потоки, идущие через Call-центр, взаимосвязаны между собой новыми технологиями, которые называются CTI (computer telephony integration).

Большинство компаний используют центры по обслуживанию звонков для общения со своими клиентами. Примеры включают компании, которые продают различные утилиты (служебные программы), обслуживание клиентов компаний «Товары почтой», осуществление телефонной техподдержки для программного обеспечения и продаваемого компьютерного оборудования. Некоторые компании даже обслуживают некоторые внутренние функции с помощью Call-центров. Примерами этого являются help desk, ритейл, техподдержка финансовых услуг и поддержка продаж.

<fs x-large><fc #4682b4>Для Asterisk существуют коммерческие системы с функциями - контроля агентов, статистики, маршрутизации, телемаркетинга, обзвона (predictive dialers) и интеграции с CRM.</fc></fs>

Вот некоторые из них:

Switchvox

Swichvox SMB 4.0 является IP АТС с функциями Колл Центра. и обладает следующими возможностями:

  • Унифицированные коммуникации: факс, чат, видео
  • Более 20 новых очередей вызовов и IVR функции!
  • Расширение APIдля быстрой и легкой интеграции

Сравнение версий


Fonality Call Center

Полнофункциональной Контакт центр

для обработки входящих вызовов,

маршрутизации и контроля за агентами,

Fonality Call Center


Aheeva Contact Center Suite

Отмеченный наградами Aheeva Contact Center Suite
предлагает обширную функциональность
при одновременном снижении эксплуатационных расходов.
В отличие от проприетарных систем связи, Aheeva CCS основана на Asterisk IP АТС
и предлагает гибкое, масштабируемое и легко настраивамое решение.

Aheeva CCS


QueueMetrics

  • Cистема статистики для Колл центра.
  • Рабочее место агента.
  • Интеграция с внешним CRM.

QueueMetrics - Call center monitoring solution for the Asterisk PBX


Asternic Call Center Stats

Веб интерфейс статистики очереди (queue).
Парсит лог очереди (var/log/asterisk/queue_log)
и выводит информацию о количестве отвеченных/неотвеченных вызовов,
о среднем времени ожидания и разговора по очередям и агентам.
Существует бесплатная версия с урезанным функционалом.
Отличное решение для бюджетного колл-центра.

call_center_stats

http://www.asternic.net/downloads/


AsterCRM

Open Source ПО для создания Call Center на базе Asterisk. Предоставляет функции:

  • всплывающего окна с информацией о звонящем из базы данных;
  • интеллектуального набора;
  • Click-to-call;
  • Статус абонента;
  • Запись разговоров;
  • Группы операторов, супервайзеров, администраторов

astercrm_install
asterCC, asterisk callcenter and billing solution


SoftPhones

$
0
0

SoftPhones

Софтфоны

MicroSIP

Основное

MicroSIP может работать как с аккаунтом VoIP-провайдера / SIP-сервера, так и без них (SIP direct). MicroSIP при закрытии сворачивается в трей. Щелкните правой кнопкой мыши на иконку в трее вы можете просматривать состояние и настройки приложения. MicroSIP не требуется каких-либо предустановленных кодеков, все кодеки уже включены.

Кнопки (Dialpad)

Используется для ввода цифр с помощью мыши или отправки DTMF сигналов. Также вы можете ввести номер с физической клавиатуры, в этом случае вы можете вводить буквы, указать пользовательский домен и порт.
Примеры: 13455674657, buddy, buddy@sip.com, buddy@sip.com:5043, buddy@192.168.1.34, sip:192.168.1.77, и т.д.

Контакты

Чтобы добавить контакт правой кнопкой мыши на пустой области. Контактный номер может быть в любом формате, примеры в Dialpad. Если включить «Подписка на присутствие» MicroSIP пошлет на SIP-сервер запрос о состоянии контакта. Ваш SIP-сервер должен поддерживать эту функцию.

microsip contacts presence

«Подписка на присутствие» позволяет использовать функционал BLF - перехват звонков других пользователей.
<fs medium>Как BLF работает в MicroSIP:</fs>

Пользователи должны включить «Публиковать присутствие» в окне Account. Вы должны включить «Подписка на присутствие» для пользователей в списке контактов. После этого, значки пользователей в списке контактов становятся цветными. Если значки все-таки серые - настроить SIP-сервер (PBX).

Когда пользователь из списка контактов получает входящий вызов, значок контакта будет мигать (зеленый мигающий значок). Чтобы принять входящий вызов, дважды щелкните по нему или нажмите правую кнопку мыши и используйте контекстное меню - «Перехват вызова». Код перехвата используемый в MicroSIP "**" и в настоящее время не может быть изменен.

Цвета пользователей: зеленый - онлайн, красный - оффлайн, желтый - активный вызов, зеленый мигающий - входящий вызов.

Звонки и смс
Аккаунт

microsip account

  • SIP сервер- SIP сервер регистрации.
  • SIP прокси - SIP прокси вашего аккаунта. Примеры: «192.168.1.1», «192.168.1.1:5070», «192.168.1.1;hide». «;hide» параметр поможет разрешить проблемы с регистрацией.
  • Пользователь - Имя пользователя SIP аккаунта.
  • Домен - SIP домен регистрации.
  • Логин - Uимя пользователя для аутентификации, если пусто используется Username.
  • Пароль - пароль SiP аккаунта.
  • Ваше имя - Имя отображаемое при вызове.
  • Шифрование медиа
    • Отключено- на шифровать никогда.
    • Необязательно - использовать настройки удаленной стороны.
    • Обязательно - всегда шифровать.
    • Рекомендованное значение: Необязательно.
  • Транспорт

Зависит от конфигурации вашего SIP сервера. Попробуйте выбратьчто-то одно из TLS, TCP, UDP. Обычно используется UDP. Авто означает TCP и UDP. Если ваш сервер не поддерживает TCP, «Авто» вызовет задержку исходящего вызова,перед переключением на UDP.

  • Публичный адрес

Вы можете указать IP-адрес или имя хоста, это может локальный ip адрес интерфейса или может внешний ip адрес маршрутизатора. При использовании SIP-сервера и если есть проблемы с сетевым адресом, оставьте «Авто» и попробуйте включить «Разрешить перезапись IP», это позволит определять и обновлять адрес автоматически.

  • Локальный порт

По умолчанию MicroSIP пытается использовать стандартный SIP порт - 5060. Если порт занят другим приложением, MicroSIP выберет случайный порт или вы можете назначить нужный порт вручную.

  • Публиковать присутствие

Отправляет на SIP-сервере информацию о состоянии, это означает, что другие подписавшиеся контакты могут видеть ваш статус и могут перехватывать входящие вызовы (BLF функционал).

  • STUN server

STUN сервер перенаправляет RTP медиа потоки напрямую между SIP пирами, минуя SIP узел провайдера, при использовании NAT. Это требует открытия диапазона UDP портов на маршрутизаторе для входящих соединений.
Существуют разные типы NAT (full cone NAT, (address) restricted cone NAT, port restricted cone NAT and symmetric NAT). Вы можете использовать STUN, только если ваш NAT не симметричный. В противном случае у вас будут проблемы с односторонней слышимостью. Значение по умолчанию - пусто.

stun

  • ICE

Помогает найти кратчайшие пути для медиа потоков. Подробнее Подробнее о поддержке ICE в Asterisk>>>
Рекомендуемое значение - включено.

  • Разрешить перезапись IP

Включайте только в крайнем случае, если вы не можете совершать вызовы. Это может решить проблемы, связанные с NAT. Когда эта опция включена, MicroSIP будет отслеживать внешний IP-адрес из ответа на запрос REGISTER . Этот IP адрес будет использоваться в заголовках последующих запросов: Contact, VIA и SDP. Значение по умолчанию: отключено.

Настройки

microsip настройки

  • Звук вызова

Выберете файл в формате WAV.

  • Аудио кодеки

Разрешайте или запрещайте использование кодеков, перемещая из списка активных.

  • VAD

Включить распознование голосовой активности. По умолчанию -нет.

  • EC

Включить эхо-подавление.

  • Задать кодек для входящих

Как правило, вызывающий (caller) абонент определяет приоритет использования кодеков. Эта опция позволяет вызываемому абоненту (calle) выбрать предпочитаемый кодек.

  • Отключить H.264 codec
  • Отключить H.263 codec
  • Битрейт -Video codec bitrate

Установите максимальный битрейт. Если одна из сторон установит 256 кбит / с а другая 512 кбит/с - будет использоваться 256 кбит/с для обоих.

  • Авто ответ

MicroSIP will play short tone and popup when call auto accepted. SIP header - when receiving the «Call-Info: Auto Answer» or «Call-Info: answer-after=0» or «X-AUTOANSWER: TRUE» in SIP header.

  • Запретить входящие

Блокируйте нежелательные или spam вызовы по разным условиям - другой пользователь; другой домен; удаленный домен итд.

  • Каталог пользователей

URL (with http://) файла в формате XML, содержащий список контактов. Формат файла:

<?xml version="1.0"?>
   <directory>
   <entry>
   <name>Name</name>
   <extension>1234</extension>
   <presence>0</presence>
   </entry>
   </directory>

Также поддерживается Cisco IP phone directory формат CiscoIPPhoneDirectory и другие.

MessageSend
Отправка мгновенных сообщений через Asterisk

/etc/asterisk/sip_general_custom.conf

accept_outofcall_message = yes
outofcall_message_context = sip-msg
auth_message_requests = no
 #  asterisk -rx "sip reload"

/etc/asterisk/extensions_custom.conf

[sip-msg]
exten => _7XXX,1,MessageSend(sip:${EXTEN},"${CALLERID(name)}"${MESSAGE(from)})
 #  asterisk -rx "dialplan reload"

где 7XХХ, в данном примере, внутренняя нумерация абонентов Asterisk

microsip messagesend asterisk

 Executing [111@sip-msg:1] MessageSend("Message/ast_msg_queue", "sip:111,""<sip:7999@vox.voxpopuli.tld>") in new stack

 

Phoner

Бесплатный софтфон с поддержкой SIP, TAPI и CAPI.

phoner

Настройки SIP протокола.

poner sip settings

http://www.phoner.de/download_en.htm

 

Zoiper

Хороший софтфон с поддержкой SIP и IAX протоколов.

Zoiper


В бесплатной версии (ниже 3.0) поддерживается до трех аккаунтов.

Zoiper Accounts


В настройках можно включить RPORT и RPORT MEDIA

Zoiper advased settings

А также указать локальный SIP и IAX порт, RTP начальный порт и STUN серевер.

zoiper rtp sip port stun server

Поддерживаются внешние USB устройства.

zoiper audio external handsets

https://cloud.mail.ru/public/5c4a6aa951c7%2FZoiper_Free_2.39_Installer.zip

 

Настройка DAHDI - chan_dahdi

$
0
0

Настройка DAHDI - chan_dahdi

Драйвер DAHDI отвечает за работу плат интерфейсов телефонии устанавливаемых непосредственно в сервер или работающих по TDM over IP, от Digium и других производителей: Openvox, Sangoma, Parabel, Cronyx и др..

DAHDI Linux и DAHDI Tools

Dahdi linux драйвер с открытым исходным кодом, для взаимодействия Asterisk с телефонным оборудованием.
Dahdi Tools набор утилит для управления и мониторинга DAHDI устройств.

Скачать DAHDI

настройка E1 - /etc/dahdi/system.conf

span => <Number>,<Timing>,<Line BuildOut>,<Framing>,<Coding>[,Yellow]

Драйвер DAHDI работает с синхронным оборудованием, т.е. каждая следующая порция данных в следующий такт должна быть доступна. Если Периферийных устройств несколько - они должны работать синхронно, по одним часам.

В синхронной сети должно выполняться одно простое правило - master должен быть соединен с slave. Если это правило нарушается - будут потерянные(skip) или повторенные (slip) кадры.

Предположим, вы получаете от АТС поток E1, т.е. АТС - master, заводите его в Asterisk/DAHDI, и у вас есть внутренний коммутатор. В такой схеме вы должны настроить порт 1 платы потока как slave {span = 1,1,0,ccs,hdb3,crc4} , он смотрит на АТС. Порт 2 настроить как master {span = 2,0,0,ccs,hdb3,crc4}, порт 2 будет получать синхронизацию от порта 1, т.к. это одно устройство. Внутренний коммутатор должен быть в режиме slave. DAHDI будет работать с устройствами по часам АТС

Timing:
This determines how timing is handled by the card.
*  0 - Порт является источником синхронизации
*  1 - Получает синхронизацию с удаленной станции
*  2 - Receives secondary backup timing from remote end
*  3 - Receives tertiary backup timing from remote end
*  4 - Receives quaternary backup timing from remote en 
span = 1,1,0,ccs,hdb3,crc4 
bchan = 1-15,17-31
dchan = 16

span = 2,0,0,ccs,hdb3,crc4
bchan = 32-46,48-62
dchan = 47

При разговоре слышно легкое пощелкивание, факсы не идут или проходят с ошибками. У вас неправильно настроена синхронизация. Настройте синхронизацию как описано выше.

ISDN PRI - /etc/asterisk/chan_dahdi.conf

chan_dahdi.conf - определяет параметры каналов TDM интерфейса DAHDI. Каналы должны быть определены в этом файле, чтобы Asterisk мог их использовать.
chan_dahdi.conf состоит из секций, а секции в свою очередь из ключевых слов и их значений. Значения могут быть булевы (да/нет), или содержать специфичные для данного ключевого слова значения. Секции используют формат наследования свойств объекта.

context - привязывает канал к контексту в плане набора (диалплане), тем самым определяя действия при инициации вызова. :

context => default

channel - назначает канал или несколько каналов, Каналы могут быть определены индивидуально, через запятую, или диапазоном через дефис.

channel => 16
channel => 2,3
channel => 1-15, 17-31

group - назначает каналы в группу. Для исходящей связи будет выбираться первый свободный канал. Для назначения в несколько групп, перечислите значения через запятую. Чтобы не назначать в группу - оставьте значение пустым.

group = 1
group = 2,3
group =

switchtype - устанавливает тип сигнализации для PRI.

  • national: National ISDN type2 (Американский)
  • ni1: National ISDN type 1
  • dms100: Nortel DMS100
  • 4ess: AT&T 4ESS
  • 5ess: Lucent 5ESS
  • euroisdn: EuroISDN
  • qsig: Протокол с минимальной функциональностью, используемый для построения «сети» между двумя или более АТС от различных производителей.
switchtype => euroisdn

signalling - Параметр устанавливает тип соединения и/или сигнализации. Эти параметры должны соответствовать тому, что описано в конфигурации драйвера DAHDI (/etc/dahdi/system.conf). Значение этого параметра частично зависит от типа используемой Вами интерфейсной карты. Сервер Asterisk не запустится: если определение типа соединения для канала неправильное или нерабочее, если значение не совпадает с тем, что описано в конфигурации Zaptel драйвера или, если устройство не установлено или сконфигурировано не должным образом. Во многих случаях, правильное значение этого параметра - это одно из этих четырех значений: fxs_ks, fxo_ks, pri_cpe or pri_net. Этот параметр не имеет значения по умолчанию, Вы обязательно должны определить его значения перед описанием какого-либо канала. Полный список типов соединений и сигнализаций

  • fxo_ks: Используется для сигнализации FXS устройств.
  • fxs_ks: Противоположная сторона fxo_ks. Для сигнализации FXO устройств
  • pri_cpe: Сигнализация PRI. Клиентская сторона оборудования (user)
  • pri_net: Сигнализация PRI, network side.

:!:Аналоговые интерфейсы могут стать источником путаницы в Asterisk.
Для FXS интерфейсов используется fxo_ks.
Для FXO - fxs_ks.

signalling => fxs_ks

priindication: Этот параметр устанавливает то, как сервер Asterisk должен сигнализировать состояние Busy() и Congestion() для удаленного коммутатора или пользователя. По умолчанию: inband. Доступные значения следующие:

  • inband: Сервер Asterisk будет сам проигрывать тональные сигналы без перевода канала в отвеченное состояние; Не доступно для всех соединений PRI/BRI.
  • outofband: Сервер Asterisk будет разрывать связь с информационным кодом busy/congestion, при этом уже сам телефонный коммутатор будет проигрывать тональные сигналы пользователю. Busy(), в этом случае, это то же самое, что установка: PRI_CAUSE=17 и выполнение команды: Hangup().

pridialplan - устанавливает тип плана набора для ISDN PRI. Игнорируется в большинстве случаев. Может понадобиться для корректной работы CallerID Доступные значения: unknown, local, private, national, international.

pridialplan => national

overlapdial: если - «yes», то набранные цифры будут сразу отправляться в поток. По умолчанию: no. (enblock)

overlapdial => yes

Состояние аналоговых вызовов

В этой секции описываются директивы сигнализирующие о состоянии вызовов аналоговых интерфейсов.

busydetect - детектирование сигнала занято для FXS, FXO или T1 (E&M, Wink, Feature Group D). Значение 'yes' или 'no'.

callprogress - контроллировать состояние вызова (КПВ, занято или подняли трубку). Значение 'yes' или 'no'.

busydetect => yes
callprogress => yes

Функции CallerID

usecallerid - разрешить или запретить передачу CallerID (yes/no) По умолчанию 'yes'.

hidecallerid - скрывать исходящий CallerID. По умолчанию 'no'.

calleridcallwaiting - получать CallerID во время вызова.

usecallerid => yes
hidecallerid => no

callerid - устанавливает CallerID для данного канала. Принимает данные правильного формата «имя» и <номер>. Возможное значение 'asreceived' для передачи полученных значений.

callerid => "Oleg" <8123216111>
callerid =>
callerid => asreceived

Call feature options

Эти параметры включают или отключают дополнительные опции для FXS (FXO) каналов, такие как конференция и пере-адресация и т.д.. Значения могут быть только (yes/no)

threewaycalling - разрешает или запрещает three-way calling для канала.

cancallforward - разрешает или запрещает функцию «следуй за мной».

transfer - разрешает или запрещает функцию флэш для канала (для включения threewaycallingдолжно быть 'yes')

immediate - Если этот режим установлен 'yes', входящий вызов немедленно направляется на расширение 's' без тона набора и чтения цифр.

ADSI - Включает или выключает поддержку ADSI. ADSI спецификации системы, аналогичной Caller ID для передачи закодированной информация для аналоговых телефонов. Это позволяет создавать интерактивные меню и обеспечивает доступ к таким услугам, как голосовая почта, посредством текстового интерфейса.

threewaycalling = yes
transfer = yes
immediate = no
adsi = yes
cancallforward = yes

Параметры качества аудио

echocancelвключить эхо-подавление. По умолчанию всегда включен.

echocancelwhenbridgedВключение или выключает эхо-подавление в режиме моста между TDM интерфейсами.В принципе в этом режиме не требуется эхо-подавления, но иногда это позволяет улучшить качество связи. Значение (yes / no).

rxgain - регулировка усиления приемника.
txgain - регулировка усиления передатчика.

echocancel = yes
echocancelwhenbridged = no
rxgain = 20%

Call Logging Options

Эти параметры влияют на записи Call Detail Records Asterisk.
amaflags: Устанавливает AMA флаги, влияющие на классификацию записей в Call Detail Records. Принимает следующие значения:

billing: маркирует для биллинга
documentation: маркирует для документирования.
omit: не записывать информацию о звонке.
default: по умолчанию.

accountcode: Устанавливает код счета за звонки. Код в счете может иметь любое буквенное или цифровое значение.

accountcode = oleg145
amaflags = billing

Asterisk -vvvvvv команды CLI для тестирования DAHDI

dahdi show status
localhost*CLI> dahdi show status
Description                              Alarms  IRQ    bpviol CRC    Fra Codi Options  LBO
Wildcard TE121 Card 0                    OK      2      -1     -1     CCS HDB3          0 db (CSU)/0-133 feet (DSX-1)

Команда dahdi show status отобразит состояние установленных плат.

dahdi show channels

dahdi show channels

localhost*CLI> dahdi show channels
   Chan Extension  Context         Language   MOH Interpret        Blocked    State
 pseudo            default                    default                         In Service
      1            from-avaya      en         default                         In Service
      2            from-avaya      en         default                         In Service
      3            from-avaya      en         default                         In Service
      4            from-avaya      en         default                         In Service
      5            from-avaya      en         default                         In Service
      6            from-avaya      en         default                         In Service
      7            from-avaya      en         default                         In Service
      8            from-avaya      en         default                         In Service
      9            from-avaya      en         default                         In Service
     10            from-avaya      en         default                         In Service
     11            from-avaya      en         default                         In Service
     12            from-avaya      en         default                         In Service
     13            from-avaya      en         default                         In Service
     14            from-avaya      en         default                         In Service
     15            from-avaya      en         default                         In Service
     17            from-avaya      en         default                         In Service
     18            from-avaya      en         default                         In Service
     19            from-avaya      en         default                         In Service
     20            from-avaya      en         default                         In Service
     21            from-avaya      en         default                         In Service
     22            from-avaya      en         default                         In Service
     23            from-avaya      en         default                         In Service
     24            from-avaya      en         default                         In Service
     25            from-avaya      en         default                         In Service
     26            from-avaya      en         default                         In Service
     27            from-avaya      en         default                         In Service
     28            from-avaya      en         default                         In Service
     29            from-avaya      en         default                         In Service
     30            from-avaya      en         default                         In Service
     31            from-avaya      en         default                         In Service

Команда dahdi show channels выведет список сконфигурированных каналов «channel ⇒ 1-15,17-31».

pri show spans
localhost*CLI> pri show spans
PRI span 1/0: Up, Active

Команда pri show spans выводит информацию о ISDN PRI ( в частности статус layer2 - Up или Down)

Linux команды для тестирования DAHDI

ls
[root@localhost ~]# ls /dev/dahdi/
1   11  13  15  17  19  20  22  24  26  28  3   31  5  7  9        ctl     timer
10  12  14  16  18  2   21  23  25  27  29  30  4   6  8  channel  pseudo  transcode
lspci
 [root@localhost ~]# lspci | grep Digium
 02:08.0 Ethernet controller: Digium, Inc. Wildcard TE121 single-span T1/E1/J1 card (PCI-Express) (rev 11)
 
 
[root@localhost ~]# lspci | grep Ethernet
02:08.0 Ethernet controller: Digium, Inc. Wildcard TE121 single-span T1/E1/J1 card (PCI-Express) (rev 11)
dmesg

на примере Digium te120b

[root@localhost ~]# dmesg | grep wcte12xp
wcte12xp 0000:02:08.0: Setting up global serial parameters for E1
wcte12xp 0000:02:08.0: Found a Wildcard TE121
wcte12xp 0000:02:08.0: Booting VPMADT032
wcte12xp 0000:02:08.0: VPM present and operational (Firmware version 125)
wcte12xp 0000:02:08.0: Span configured for CCS/HDB3
cat /proc/dahdi/span_number
[root@localhost ~]# cat /proc/dahdi/1
Span 1: WCT1/0 "Wildcard TE121 Card 0" (MASTER) HDB3/CCS
        BPV count: -1
        CRC4 error count: -1
        E-bit error count: -1
        FAS error count: -1
        IRQ misses: 2

           1 WCT1/0/1 Clear (In use) (EC: VPMADT032 - INACTIVE)
           2 WCT1/0/2 Clear (In use) (EC: VPMADT032 - INACTIVE)
           3 WCT1/0/3 Clear (In use) (EC: VPMADT032 - INACTIVE)
           4 WCT1/0/4 Clear (In use) (EC: VPMADT032 - INACTIVE)
           5 WCT1/0/5 Clear (In use) (EC: VPMADT032 - INACTIVE)
           6 WCT1/0/6 Clear (In use) (EC: VPMADT032 - INACTIVE)
           7 WCT1/0/7 Clear (In use) (EC: VPMADT032 - INACTIVE)
           8 WCT1/0/8 Clear (In use) (EC: VPMADT032 - INACTIVE)
           9 WCT1/0/9 Clear (In use) (EC: VPMADT032 - INACTIVE)
          10 WCT1/0/10 Clear (In use) (EC: VPMADT032 - INACTIVE)
          11 WCT1/0/11 Clear (In use) (EC: VPMADT032 - INACTIVE)
          12 WCT1/0/12 Clear (In use) (EC: VPMADT032 - INACTIVE)
          13 WCT1/0/13 Clear (In use) (EC: VPMADT032 - INACTIVE)
          14 WCT1/0/14 Clear (In use) (EC: VPMADT032 - INACTIVE)
          15 WCT1/0/15 Clear (In use) (EC: VPMADT032 - INACTIVE)
          16 WCT1/0/16 HDLCFCS (In use) (EC: VPMADT032 - INACTIVE)
          17 WCT1/0/17 Clear (In use) (EC: VPMADT032 - INACTIVE)
          18 WCT1/0/18 Clear (In use) (EC: VPMADT032 - INACTIVE)
          19 WCT1/0/19 Clear (In use) (EC: VPMADT032 - INACTIVE)
          20 WCT1/0/20 Clear (In use) (EC: VPMADT032 - INACTIVE)
          21 WCT1/0/21 Clear (In use) (EC: VPMADT032 - INACTIVE)
          22 WCT1/0/22 Clear (In use) (EC: VPMADT032 - INACTIVE)
          23 WCT1/0/23 Clear (In use) (EC: VPMADT032 - INACTIVE)
          24 WCT1/0/24 Clear (In use) (EC: VPMADT032 - INACTIVE)
          25 WCT1/0/25 Clear (In use) (EC: VPMADT032 - INACTIVE)
          26 WCT1/0/26 Clear (In use) (EC: VPMADT032 - INACTIVE)
          27 WCT1/0/27 Clear (In use) (EC: VPMADT032 - INACTIVE)
          28 WCT1/0/28 Clear (In use) (EC: VPMADT032 - INACTIVE)
          29 WCT1/0/29 Clear (In use) (EC: VPMADT032 - INACTIVE)
          30 WCT1/0/30 Clear (In use) (EC: VPMADT032 - INACTIVE)
          31 WCT1/0/31 Clear (In use) (EC: VPMADT032 - INACTIVE)
проверка прерываний - interrupts
Every 1.0s: cat /proc/interrupts             Sat Aug 16 15:21:34 2014

           CPU0       CPU1
  0:  298549499      30187    IO-APIC-edge  timer
  1:         61          4    IO-APIC-edge  i8042
  8:          1          2    IO-APIC-edge  rtc
  9:          0          0   IO-APIC-level  acpi
 12:       1614         57    IO-APIC-edge  i8042
 14:   41268991         24    IO-APIC-edge  ide0
 50:        126  116383116         PCI-MSI  eth0
 58:        168          0         PCI-MSI  hda_intel
169:       8391  298523206   IO-APIC-level  uhci_hcd:usb5, wcte12xp0
217:          0          0   IO-APIC-level  uhci_hcd:usb4
225:          0          0   IO-APIC-level  ehci_hcd:usb1, uhci_hcd:usb2
233:       2119    3653665   IO-APIC-level  uhci_hcd:usb3, ata_piix
NMI:          0          0
LOC:  298575253  298575261
ERR:          0
MIS:          0

DAHDI Tools

dahdi_tool

modules

модули dahdi

модули dahdi

# Contains the list of modules to be loaded / unloaded by /etc/init.d/dahdi.
#
# NOTE:  Please add/edit /etc/modprobe.d/dahdi or /etc/modprobe.conf if you
#        would like to add any module parameters.
#
# Format of this file: list of modules, each in its own line.
# Anything after a '#' is ignore, likewise trailing and leading
# whitespaces and empty lines.

# Digium TE205P/TE207P/TE210P/TE212P: PCI dual-port T1/E1/J1
# Digium TE405P/TE407P/TE410P/TE412P: PCI quad-port T1/E1/J1
# Digium TE220: PCI-Express dual-port T1/E1/J1
# Digium TE420: PCI-Express quad-port T1/E1/J1
wct4xxp

# Digium TE120P: PCI single-port T1/E1/J1
# Digium TE121: PCI-Express single-port T1/E1/J1
# Digium TE122: PCI single-port T1/E1/J1
wcte12xp

# Digium T100P: PCI single-port T1
# Digium E100P: PCI single-port E1
wct1xxp

# Digium TE110P: PCI single-port T1/E1/J1
wcte11xp

# Digium TDM2400P/AEX2400: up to 24 analog ports
# Digium TDM800P/AEX800: up to 8 analog ports
# Digium TDM410P/AEX410: up to 4 analog ports
wctdm24xxp

# X100P - Single port FXO interface
# X101P - Single port FXO interface
wcfxo

# Digium TDM400P: up to 4 analog ports

Asterisk Dialplan - extensions.conf

Файлы конфигурации Asterisk

Asterisk: настройка и установка

Asterisk: настройка и установка

$
0
0

Asterisk: настройка и установка

Документация по настройке и установке Asterisk. Dialplan Realtime CDR Queue Agents SIP PJSIP DAHDI MySQL ODBC Features LDAP ConfBridge AMI ARI NAT SRTP RTP.

Asterisk: установка

Asterisk работает под управлением операционных систем Linux и FreeBSD. Доступны установка из бинарных файлов и компиляция из исходного кода. Также существует множество дистрибьютивов Linux с уже готовым к работе предустановленным Asterisk и FreePBX.
Инструкции по установке Asterisk для различных дистрибьютивов Linux:

На нашем сайте собрано множество справочных материалов и руководств по настройке Asterisk. Документация постоянно обновляется и дополняется. Рассмотрим разные аспекты настройки программного комплекса Asterisk, сгруппированные по основным темам.

Asterisk настройка

Конфигурационные файлы Asterisk

Большинство настроек Asterisk контролируются с помощью конфигурационных файлов, расположенных в директории /etc/asterisk. Синтаксис конфигурационных файлов Asterisk разработан для редактирования вручную и имеет простую и понятную структуру. Категории или по иному контексты группируют свойства объектов и отделяют их друг от друга именами в квадратных скобках по принципу наследования. Все, что записано после имени контекста относится к нему, пока не появится следующее имя контекста в квадратных скобках. Практически в каждом кофиге встречается категория [general], которая задает параметры для всех объектов конфигурационного файла. Параметры объектов имеют приоритет над глобальными параметрами, если одинаковый параметр, может быть назначен, как глобально, так и конкретному объекту. Некторые конфиги имеют только заранее определенные секции, например asterisk.confотвечающий за общие настройки pbx. Но в большинстве случаев, для назначения объектов, создаются контексты и задаются их имена. Приведенные ниже примеры конфигов Asterisk 14 с описанием параметров, переведены и дополнены авторами сайта.

Realtime архитектура Asterisk

Реалтайм Архитектура Asterisk - набор драйверов и функций для конфигурации в режиме реального времени. Существует два типа конфигурации - статический и динамический: - Статический хранит конфигурации в БД, как конфигурационные файлы и также обновляет данные при перезагрузке модулей. - Динамический используется для создания и обновления объектов в режиме реального времени, при совершении вызовов

Каналы связи в Asterisk

SIP

Под каналами связи в Asterisk подразумевается набор драйверов для взаимодействия с устройствами и протоколами связи. Так как Asterisk в первую очередь VoIP АТС ключевое значение имеют драйвера взаимодействия с VoIP протоколами, в частности с SIP протоколом. Изначально в Asterisk был один драйвер SIP протокола chan_sip. Но его реализация была неполной и в конкуренции с FreeSWITCH, который имел более продвинутый SIP драйвер, в Asterisk начиная с версии 12, был включен новый драйвер SIP - chan_pjsip.
Поддержка старого драйвера сохраняется и оба драйвера могут действовать совместно.
Однако предпочтительней использовать новый драйвер PJSIP.

IAX

Также в Asterisk реализован собственный VoIP протокол - IAX (Inter Asterisk Exchange). Как и следует из названия, он в первую очередь ориентирован на создание каналов связи между серверами Asterisk. IAX имеет упрощенную структуру, используя один и тот же порт для сигнализации и медиа, что в теории упрощает прохождение NAT и экономит трафик, однако в современных условиях и с появлением PJSIP его преимущества не завоевали ему популярности.

h323

Поддержка устаревшего VoIP протокола h323 может понадобиться для интеграции с устаревшими АТС, например Avaya CSI.

DAHDI

Драйвер DAHDI поддерживает большую линейку устройств, таких как платы потоков ISDN PRI E1, FXO, FXS и GSM интерфейсов.

Local

Прокси - псевдо канал Asterisk, позволяющий вызывать канал любой технологии без явного ее указания.

NAT SIP Asterisk

План набора Asterisk

Для понимания Asterisk очень важен - диалплан (dialplan).
Диалплан направляет каждый звонок от его источника, с помощью различных приложений,
в пункт назначения. Все вызовы, будь-то голосовая почта, конференция, меню автосекретаря
или вызов телефона, определяются логикой и концепцией диалплана.
Русская документация мануал по dialplan Asterisk

Команды диалплана Asterisk

Функции диалплана Астериск

Asterisk Dialplan functions

Функции Asterisk используются в диалплане. Это не командыдиалпланаи не могут быть использованы прямо. Функции возвращают значение для дальнейшего использования в логике диалплана.

Очереди и Агенты Asterisk

Очередями в Asterisk называется механизм ACD (automated call distribution) для распределения входящих вызовов между агентами колл центра. Конфигурация очередей осуществляется в файле Asterisk: queues.conf, имена очередей вызовов используются в качестве аргумента команды Queueв файле конфигурации плана набора extensions.conf. Агенты, которые обрабатывают вызовы, поступающие в очередь, описываются в файле Asterisk: agents.conf.

Шифрование в Asterisk

Конференции Asterisk

Asterisk позволяет организовать телеконференции с неограниченным числом пользователей.

Абонентские функции Asterisk

В файле features.conf назначаются пользовательские коды абонентских функций Asterisk и опции абонентских функций, такие как:
Переадресация вызова(transfer), перехват вызова (pickup), запись по требованию (record on demand), таймауты между набора и переадресации (digit timeout), паркинг (park) и др.

Отчеты о звонках Asterisk

Детализированный отчет о звонках (CDR) backend для сохранения данных о входящих, исходящих и внутренних вызовах Asterisk. Полное описание на русском языке CDR, MySQL, ODBC etc.

Логи в Asterisk

CLI - интерфейс командной строки Asterisk.

Командная строка является мощным инструментом для мониторинга и управления работой Asterisk PBX

Asterisk AMI

Asterisk manager Interface - интерфейс управления.

Asterisk ARI

Asterisk CDR - Статистика звонков

$
0
0

Asterisk CDR - Статистика звонков

CDR - детализированный отчет вызовов. Лог вызовов через ODBC: MySQL, PostgreSQL, TDS и др. Детализированные отчеты о звонках используются для выставления счетов (биллинг), анализа объемов голосового трафика или для отладки Asterisk.

Call Detail Records

CDR: Описание полей

  • R/O - поле только для чтения, нет записи функцией CDR
Поле Значение/Пример Описание
accountcode 54321 Код аккаунта присвоенный абоненту, для биллинга например. По умолчанию не задан.
src 8129981138 Идентификатор вызывающего абонента(Caller ID). Источник вызова, сохраняется автоматически. R/O
dst 111 Пункт назначения вызова.Вызываемое расширение диалплана.
dcontext from-internal Контекст назначения обработки вызова. auto, R/O
clid "Olegus" <81239981138> Caller ID вызывающего абонента в полном формате - "name" <number>. auto, R/O
channel SIP/0004F2040808-a1bc23ef Канал инициатор вызова. A-leg(side).auto, R/O
dstchannel SIP/0004F2046969-9786b0b0 Канал назначения вызова. B-Leg(side).auto, R/O
lastapp Dial Приложениеобработки вызова выполненное последним в канале. auto, R/O
lastdata SIP/0004F2046969,30,tT Данные (например 'Dial(данные)') приложения выполненного последним.auto, R/O
start 2016-05-27 12:02:00 Время поступления вызова вызова. auto, R/O
answer 2016-05-27 12:02:15 Время ответа на вызов абонентом или ответ приложения. auto, R/O
end 2016-05-27 12:08:15 Время окончания соединения.Hangup. auto, R/O
duration 195 Общая продолжительность вызова в секундах.auto, R/O
billsec 180 Продолжительность соединения в секундах с момента ответа(снятия трубки или выполнения команды Answerв диалплане).auto, R/O
disposition ANSWERED Состояние обработки вызова. Может быть: NO ANSWER, FAILED, BUSY, ANSWEREDили UNKNOWN.
amaflags DOCUMENTATION Automatic Message Accounting (AMA) flag. значения: OMIT, BILLING, DOCUMENTATION или Unknown.
userfield custom Пользовательское поле. Пусто по умолчанию, назначается в диалплане. set(CDR(userfield)=<value>). R/W
uniqueid 1288332400.1 Уникальный идентификатор канала. R/O

Помимо поля userfieldвы можете создавать собственные CDR переменные или модифицировать стандартные.

Поля CDR записей могут быть назначены в диалплане Asterisk функцией CDR(). Функция CDR() также может быть использована для установки полей CDR, которые определяются пользователем.

 exten => 177,1,Verbose(Call start time: ${CDR(start)})
       same => n,Set(CDR(userfield)=red_eyes)

Также можно добавить собственные поля:

   exten => 177,1,NoOp()
       same => n,Set(CDR(mycustomfield)=greentea)
       same => n,Verbose(I need some more ${CDR(mycustomfield)})

Если создано кастомное поле CDR, в базе данных тоже потребуется дополнительное поле.

Приложения и функции CDR

Команды и функции диалплана для работы с CDR.

  • ForkCDR: Разделить запись CDR текущего канала .
  • NoCDR: Не сохранять CDR для текущего вызова.
  • ResetCDR: Сбросить CDR для текущего канала.
  • function 'CDR': Задать пользовательское значение CDR в канале. Не работает для Read Onlyполей CDR.

cdr.conf

Содержит общие (глобальные) параметры CDR и конфигурацию бакендов cdr_scvи cdr_radius.
Файл конфигурации cdr.conf

Option Value/Example Notes
enable yes Включить лог CDR. По умолчанию включено.
unanswered no Сохранять или нет информацию о неотвеченных вызовах. Не касается внешних вызовов. О них сохраняется полная информация, независимо от значения данной опции.
endbeforehexten no Закрыть и сохранить запись CDR до выполнения расширения 'h' (hangup). Если значение - 'no', закрытие CDR произойдет, только по завершению всех шагов диалплана. Если - 'yes', при завершении вызова, независимо от того продолжается выполнение диалплана в контексте или нет
initiatedseconds no По умолчанию 'billsec' вычисляется, просто как разница 'end' минус 'answer' в секундах. Включение опции initiatedseconds=yes, укажет Asterisk использовать точные значения до микросекунд
batch no Записывать CDR группой, вместо записи каждого вызова отдельно. Снижает нагрузку на Asterisk. Зависит от перечисленных ниже опций.
size 100 Кол-во строк CDR в буфере, при достижении которого, будет произведена запись.
time 300 Предел времени хранения данных в буфере. Запись будет произведена, независимо от порога строк в буфере, заданного параметром size.
scheduleronly no Set whether CDR batch processing should be done by spawning a new thread, or within the context of the CDR batch scheduler. The default value is no, and we recommend not changing it.
safeshutdown yes Блокировать остановку Asterisk, пока буфер не очищен (данные сохранены).Предотвращает потерю данных, при корректномвыключении Asterisk.

backends

Модули баз данных предоставляют различные бакенды для записи CDR. Все они требуют специфических настроек.

Проверка подключенных backends: CLI>cdr show status

Call Detail Record (CDR) settings
----------------------------------
  Logging:                    Enabled
  Mode:                       Simple
  Log unanswered calls:       No
  Log congestion:             No

* Registered Backends
  -------------------
    mysql
    Adaptive ODBC
    cdr-custom

cdr_adaptive_odbc

Как следует из названия, модуль cdr_adaptive_odbc сохраняет CDR в базу данных через ODBC.
«adaptive» в данном случае означает, что она пытается приспособиться к структуре таблицы: нет статической структуры таблиц, которые должны быть использованы с этим модулем.
Когда модуль загружен (или при перезагрузке), он читает структуру таблицы. Он ищет имя столбца, которому соответствует переменная CDR.
Это относится как к встроенным CDR переменным, так и к пользовательским переменным.
Например, чтобы передавать данные из встроенной переменной CDR channel, в таблице базы данных должен быть столбец channel.

пример:

Добавим в кастомную CDR переменную useragentзначение равное номеру SIP телефона.

exten ⇒ 177,n,Set(CDR(useragent)=${CHANNEL(useragent)})

Чтобы данные переменной useragentбыли занесены через cdr_adaptive_odbc, надо создать столбец useragentв БД.

В файле конфигурации cdr_adaptive_odbc можно создать множество таблиц. Имя секции может быть любым, модуль не использует его. Вот пример простой конфигурации таблицы:

[mytable]
connection = asterisk
table = asterisk_cdr
Option Value/Example Notes
connection asterisk База данных. Параметры соединения настраиваются в Asterisk: res_odbc.conf. Обязательный параметр.
table asterisk_cdr Имя таблицы БД. Обязательное поле.
usegmtime no Использовать время GMT вместо локального времени. По умолчанию -'no'.

В дополнение к вышеперечисленным опциям cdr_adaptive_odbc.conf, можно задать ещё несколько.

Обычно, CDR ищет столбец соответствующий имени переменной. Параметр aliasпозволяет соотнести имя переменной с отличным от него именем столбца.

 alias <CDR variable> => <column name>

Например:

 alias src => source

Также, можно отфильтровать определенное содержимое.

  filter <CDR variable> => <content>

Например:

  filter accountcode => 321

И наконец, можно добавить статические данные, дополнительно к поступающим из CDR.

 static <"Static Content Goes Here"> => <column name>

Например:

static "My Data" => my_id

cdr_csv

Модуль cdr_csvпростейший бакенд, сохраняющий CDR данные в CSVфайл, разделяя запятой.
Конфигурация находится в файле cdr.conf

Для работы не требует конфигурации, тем не менее есть несколько параметров:

Option defaultNotes
usegmtime no Сохранять время GMT вместо локального. По умолчанию - no.
loguniqueid no Сохранять uniqueid переменную CDR. По умолчанию - no
loguserfield no Сохранять userfield CDR переменную . По умолчанию - 'no'.
accountlogs yes Создавать отдельный csv файл для каждой переменной accountcode. По умолчанию - yes.

Порядок CDR переменных в CSV файле созданном модулем CDR_CSV:

<accountcode>,<src>,<dst>,<dcontext>,<clid>,<channel>,<dstchannel>,<lastapp>,<lastadata>,<start>,<answer>,<end>,<duration>,<billsec>,<disposition>,<amaflags>[,<uniqueid>][,<userfield>]
cdr_custom

Данный модуль используется для создания пользовательского (custom) CSV файла.
Конфигурационный файл модуля cdr_custom.conf.
Единственная секция [mappings] может быть использована в этом файле. Шаблон задается с помощью функций диалплана Asterisk.

В следующем примере cdr_customсоздает файл /var/log/asterisk/cdr-custom/Master.csv. Шаблон использует функции function 'CDR'() для извлечения значений и function 'CSV_QUOTE'() обеспечивающую правильное форматирование CSV файла (${CSV_QUOTE(${CDR(lastdata)})}).

[mappings]

Master.csv => ${CSV_QUOTE(${CDR(clid)})},${CSV_QUOTE(${CDR(src)})},
   ${CSV_QUOTE(${CDR(dst)})},${CSV_QUOTE(${CDR(dcontext)})},
   ${CSV_QUOTE(${CDR(channel)})},${CSV_QUOTE(${CDR(dstchannel)})},
   ${CSV_QUOTE(${CDR(lastapp)})},${CSV_QUOTE(${CDR(lastdata)})},
   ${CSV_QUOTE(${CDR(start)})},${CSV_QUOTE(${CDR(answer)})},
   ${CSV_QUOTE(${CDR(end)})},${CSV_QUOTE(${CDR(duration)})},
   ${CSV_QUOTE(${CDR(billsec)})},${CSV_QUOTE(${CDR(disposition)})},
   ${CSV_QUOTE(${CDR(amaflags)})},${CSV_QUOTE(${CDR(accountcode)})},
   ${CSV_QUOTE(${CDR(uniqueid)})},${CSV_QUOTE(${CDR(userfield)})}

cdr_manager

Модуль cdr_manager интерпретирует данные CDR, как события Asterisk Manager Interface (AMI).
Конфигурационный файл - cdr_manager.conf.

Первая секция [general] содержит единственную опцию enabled, по умолчанию = no.

[general]
enabled = yes

Следующая секция cdr_manager.confэто [mappings]. Здесь назначается пользовательская CDR переменная передаваемая менеджеру Asterisk.

<CDR variable> => <Header name>

пример:

 [mappings]
 rate => Rate
 carrier => Carrier

В данной конфигурации заданные переменные появятся как события в интерфейсе менеджера.
Источником событий станет следующий диалплан:

 exten => 177,1,Answer()
     same => n,Set(CDR(rate)=0.03)
     same => n,Set(CDR(carrier)=BВ&С)
     same => n,Hangup()

Следующая команда инициирует вызов:

*CLI> console dial 177@test

asterisk:alsa.conf

В итоге, следующее событие отобразится в Asterisk Call ManagerFinally:

Event: Cdr
Privilege: cdr,all
AccountCode:
Source:
Destination: 177
DestinationContext: test
CallerID:
Channel: Console/dsp
DestinationChannel:
LastApplication: Hangup
LastData:
StartTime: 2016-05-23 08:29:21
AnswerTime: 2016-05-23 08:29:22
EndTime: 2016-05-23 08:29:23
Duration: 0
BillableSeconds: 0
Disposition: ANSWERED
AMAFlags: DOCUMENTATION
UniqueID: 1383680051.3
UserField:
Rate: 0.03
Carrier: BВ&С

cdr_mysql

Файл конфигурации - cdr_mysql.conf
Данный модуль для сохранения CDR в MySQL. В новых системах рекомендуется, по возможности, использовать модуль cdr_adaptive_odbc.

cdr_odbc

Файл конфигурации - cdr_odbc.conf
Модуль для сохранения CDR через ODBC драйвер. В новых системах рекомендуется, по возможности, использовать модуль cdr_adaptive_odbc.

cdr_pgsql

Файл конфигурации - cdr_pgsql.conf
Модуль для сохранения CDR в базу данных PostgreSQL. В новых системах рекомендуется, по возможности, использовать модуль cdr_adaptive_odbc.

cdr_radius

cdr_radiusбакенд связывает CDR с Radius сервером.
Используется конфигурационный файл cdr.confв секции [radius].

Option Value/Default Notes
usegmtimeyesСохранять время GMT вместо локального.
loguniqueidyesСохранять uniqueid переменную CDR.
loguserfieldyesСохранять userfield CDR переменную.
radiuscfg/etc/radiusclient-ng/radiusclient .confМестоположение конфигурационного файла radiusclient-ng.

cdr_sqlite

Устарело. Используйте cdr_sqlite3_custom.

cdr_sqlite3_custom

CDR бакенд для сохранения данных в SQLite БД версии 3. База данных создается модулем, как /var/log/asterisk/master.db
Данный модуль использует конфигурационный файл cdr_sqlite3_custom.conf.
Конфигурация указывает имя таблицы CDR и пользовательские переменные, если требуется.

Нажмите, чтобы отобразить

Нажмите, чтобы скрыть

[master]

table = cdr

;
; List the column names to use when inserting CDRs.
;
columns => calldate, clid, dcontext, channel, dstchannel, lastapp, lastdata,
    duration, billsec, disposition, amaflags, accountcode, uniqueid, userfield,
    test


;
; Map CDR contents to the previously specified columns.
;
values => '${CDR(start)}','${CDR(clid)}','${CDR(dcontext)}','${CDR(channel)}','${CDR(dstchannel)}','${CDR(lastapp)}','${CDR(lastdata)}','${CDR(duration)}','${CDR(billsec)}','${CDR(disposition)}','${CDR(amaflags)}','${CDR(accountcode)}','${CDR(uniqueid)}','${CDR(userfield)}','${CDR(test)}'
In the cdr_sqlite3_custom.conf file, the contents of the columns and values options must each be on a single line.

cdr_syslog

Сохраняет CDR используя syslog linux. Чтобы включить данную возможность, сперва добавьте запись в конфиг syslog, /etc/syslog.conf.
Например:

local.*      /var/log/asterisk/asterisk-cdr.log

Конфигурационный файл Asterisk - cdr_syslog.conf:

[cdr]

facility = local
priority = info
template = "Вызов от ${CDR(src)}"

пример записи syslog, для приведенной конфигурации:

 cat /var/log/asterisk/asterisk-cdr.log

Sep 17 18:15:57 pbx cdr: «Вызов от 8129981138»

cdr_tds

Конфигурационный файл - cdr_tds.conf

cdr_tdsмодуль использует FreeTDS библиотеку для отправки CDR Microsoft SQL Server или Sybase БД.
FreeTDS возможно использовать с unixODBC, так что конфигурация может быть сделана и в cdr_adaptive_odbc.

Файлы конфигурации Asterisk

Asterisk: настройка и установка

Asterisk Конференц-мост

$
0
0

Asterisk Конференц-мост

Asterisk позволяет создавать телеконференции с неограниченным количеством участников. В стандартной конференции участник должен набрать номер конференции для присоединения. А если надо собрать конференцию из предустановленных участников нажатием одной клавиши или набором кода?

Для этого можно использовать возможности Call File.

Синтаксис Call файла

Для совершения вызова
  • Channel: <channel>: Канал используемый для вызова.
  • CallerID: «name» <number> Caller ID, Примечание: Это не работает если формат не соответсвует шаблону: CallerID: «Some Name» <1234>
  • MaxRetries: <number> Число попыток (исключая первую попытку, т.е. если поставить 0 = всего будет совершена одна попытка). Default is 0.
  • RetryTime: <number> Время в секундах между попытками. Default is 300 (5 min).
  • WaitTime: <number> Время посылки вызова. Default is 45.
  • Account: Set the account code to use.
Когда соединение установлено:
  • Context: [Контекст] в extensions.conf
  • Extension: Екстеншен в [контексте] extensions.conf
  • Priority: приоритет в контексте
  • Set: Set a variable for use in the extension logic (example: file1=/tmp/to ); in Asterisk 1.0.x use 'SetVar' instead of 'Set'
  • Application: Asterisk Application to run (используется вместо контекста, екктншена и приоритета)
  • Data: The options to be passed to application
  • Set: Can now also write to dialplan functions like CDR()
  • AlwaysDelete: Yes/No - If the file's modification time is in the future, the call file will not be deleted
  • Archive: Yes/No - Move to subdir «outgoing_done» with «Status: value», where value can be Completed, Expired or Failed.

Контекст [conference] направляет ответивших абонентов в конференц комнату.
/etc/asterisk/extensions.conf/

 [conference]
  exten => s,1,Answer()
  exten => s,n,ConfBridge(111)

Контекст inviteзадает номер для сбора конференции.
/etc/asterisk/extensions.conf

  [invite]
  exten => _111,1,Answer()
  exten => _111,n,System(/var/spool/asterisk/call_list.sh)
  exten => _111,n,ConfBridge(111)

Создадим конференцию в файле meetme.conf

[rooms]
conf => 111,
Shell Скрипт /var/spool/asterisk/call_list.sh/

Cкрипт вызывает номера перечисленные в файле /var/spool/asterisk/list.txt.
Количество номеров разрешенных для одновременного набора указывается в переменной «$count_f» -eq «15»

#!/bin/sh

while read number; do

cat <<EOF  >  /var/spool/asterisk/$number

Channel: Local/$number
Callerid: $number
MaxRetries: 1
RetryTime: 20
WaitTime: 30
Context: conference
Extension: s
Priority: 1
Archive: yes
Set: CDR(userfield)=${REASON}
Account: confrence_1
EOF

    chown asterisk:asterisk /var/spool/asterisk/$number
    mv /var/spool/asterisk/$number  /var/spool/asterisk/outgoing

    echo "$number"

    number=`expr $number + 1`

    while [ "$?" -eq "0" ]

    do
count_files ()

{

    count_f=`ls /var/spool/asterisk/outgoing | wc -l`

        if [ "$count_f" -eq "15" ]; then

            sleep 10

            return 0

        else

            return 1

        fi

}


    count_files

    done


done < /var/spool/asterisk/list.txt

exit 0

Участники конференции

/var/spool/asterisk/list.txt

100
101
102
103
104

How To

Viewing all 1135 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>