Налаштуйте ваш сервер VOIP Asterisk для Odoo¶
Встановлення сервера Asterisk¶
Залежності¶
Перед встановленням Asterisk вам потрібно встановити наступні залежності:
wget
gcc
g++
ncurses-devel
libxml2-devel
sqlite-devel
libsrtp-devel
libuuid-devel
openssl-devel
pkg-config
Для встановлення libsrtp виконайте наведені нижче інструкції:
cd /usr/local/src/
wget http://srtp.sourceforge.net/srtp-1.4.2.tgz
tar zxvf srtp-1.4.2.tgz
cd /usr/local/src/srtp
./configure CFLAGS=-fPIC --prefix=/usr/local/lib
make && make install
Вам також потрібно встановити PJSIP, ви можете завантажити джерело тут <http://www.pjsip.org/download.htm>
_. Після вилучення вихідного каталогу:
Перейдіть у вихідний каталог pjproject:
# cd pjproject
запустіть:
# ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr CFLAGS='-O2 -DNDEBUG'
Побудуйте та встановіть pjproject:
# make dep
# make
# make install
Оновіть посилання на спільну бібліотеку:
# ldconfig
Перевірте, чи встановлено pjproject:
# 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
Asterisk¶
Щоб встановити Asterisk 13.7.0, ви можете завантажити джерело безпосередньо там.
Вилучіть Asterisk:
tar zxvf asterisk*
Введіть каталог Asterisk:
cd ./asterisk*
Запустіть налаштування скрипта Asterisk:
./configure --with-pjproject --with-ssl --with-srtp
Запустіть інструмент вибору меню Asterisk:
make menuselect
У меню вибору перейдіть до опції ресурсів і переконайтесь, що res_srtp увімкнено. Якщо біля res_srtp є 3 х, виникають проблеми з бібліотекою srtp, і ви повинні перевстановити його. Збережіть налаштування (натисніть x). Ви також повинні побачити зірки перед рядками res_pjsip.
Скомпілюйте та встановіть Asterisk:
make && make install
Якщо вам потрібні зразки налаштування, ви можете запустити „зробити зразки“ для встановлення зразків налаштування. Якщо вам потрібно встановити сценарій запуску Asterisk, ви можете запустити „зробити налашт“.
Сертифікати DTLS¶
Після цього вам потрібно встановити сертифікати DTLS.
mkdir /etc/asterisk/keys
Введіть каталог скриптів Asterisk:
cd /asterisk*/contrib/scripts
Створіть сертифікати DTLS (замініть pbx.mycompany.com на свою IP-адресу чи ім’я dns, замініть My Super Company на назву вашої компанії):
./ast_tls_cert -C pbx.mycompany.com -O "My Super Company" -d /etc/asterisk/keys
Налаштуйте сервер Asterisk¶
Для WebRTC велика кількість необхідних параметрів ПОВИННА бути в показаних налаштуваннях. Глобальні параметри не дуже добре потраплять в налаштування показаних рівнів. За замовчуванням конфігураційні файли Asterisk розташовані в /etc/asterisk/. Почніть з редагування http.conf і переконайтеся, що наступні рядки не коментуються:
;http.conf
[general]
enabled=yes
bindaddr=127.0.0.1 ; Replace this with your IP address
bindport=8088 ; Replace this with the port you want to listen on
Далі змініть файл sip.conf. WebRTC потребує розшифрування, avpf та iicesupport. У більшості випадків, Directmedia повинен бути відключений. Також під клієнтом WebRTC транспорт потрібно вказати як «ws», щоб дозволити з’єднання веб-вузлів. Всі ці конфігураційні лінії мають бути під одним рівнем; установка цих конфігураційних рядки глобально можуть не працювати:
;sip.conf
[general]
realm=127.0.0.1 ; Replace this with your IP address
udpbindaddr=127.0.0.1 ; Replace this with your IP address
transport=udp
[1060] ; This will be WebRTC client
type=friend
username=1060 ; The Auth user for SIP.js
host=dynamic ; Allows any host to register
secret=password ; The SIP Password for SIP.js
encryption=yes ; Tell Asterisk to use encryption for this peer
avpf=yes ; Tell Asterisk to use AVPF for this peer
icesupport=yes ; Tell Asterisk to use ICE for this peer
context=default ; Tell Asterisk which context to use when this peer is dialing
directmedia=no ; Asterisk will relay media for this peer
transport=udp,ws ; Asterisk will allow this peer to register on UDP or WebSockets
force_avp=yes ; Force Asterisk to use avp. Introduced in Asterisk 11.11
dtlsenable=yes ; Tell Asterisk to enable DTLS for this peer
dtlsverify=no ; Tell Asterisk to not verify your DTLS certs
dtlscertfile=/etc/asterisk/keys/asterisk.pem ; Tell Asterisk where your DTLS cert file is
dtlsprivatekey=/etc/asterisk/keys/asterisk.pem ; Tell Asterisk where your DTLS private key is
dtlssetup=actpass ; Tell Asterisk to use actpass SDP parameter when setting up DTLS
У sip.conf та rtp.conf файлах вам також потрібно додати чи відключити рядки:
icesupport = true
stunaddr = stun.l.google.com:19302
Нарешті, встановіть extensions.conf:
;extensions.conf
[default]
exten => 1060,1,Dial(SIP/1060) ; Dialing 1060 will call the SIP client registered to 1060
Налаштуйте ІР-телефонію Odoo¶
В Odoo налаштування повинне виконуватися в налаштуваннях користувача.
SIP Login/Розширення браузера - це номер, яки ви налаштували раніше у файлі sip.conf (у нашому прикладі: 1060).
Пароль SIP - секретний ключ, який ви обрали у файлі sip.conf.
Розширення вашого офісного телефону - це необов’язкове поле але воно використовується, якщо ви хочете перемістити ваш дзвінок з Odoo на зовнішній телефон, що також налаштовується у файлі sip.conf.
Налаштування також слід виконати у Загальних налаштуваннях під розділом «Інтеграції».
IP сервера PBX має бути таким же, як і IP, який ви визначаєте у файлі http.conf.
WebSocket має бути: ws://localhost:XXXX/ws, де «localhost» має бути таким же, як і IP, визначений попередньо, та «XXXX» повинен бути портом, визначеним у файлі http.conf.