Налаштуйте ваш сервер 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 налаштування повинне виконуватися в налаштуваннях користувача.

../../../../_images/voip_config01.png
  • SIP Login/Розширення браузера - це номер, яки ви налаштували раніше у файлі sip.conf (у нашому прикладі: 1060).

  • Пароль SIP - секретний ключ, який ви обрали у файлі sip.conf.

  • Розширення вашого офісного телефону - це необов’язкове поле але воно використовується, якщо ви хочете перемістити ваш дзвінок з Odoo на зовнішній телефон, що також налаштовується у файлі sip.conf.

Налаштування також слід виконати у Загальних налаштуваннях під розділом «Інтеграції».

../../../../_images/onsip02.png
  • IP сервера PBX має бути таким же, як і IP, який ви визначаєте у файлі http.conf.

  • WebSocket має бути: ws://localhost:XXXX/ws, де «localhost» має бути таким же, як і IP, визначений попередньо, та «XXXX» повинен бути портом, визначеним у файлі http.conf.