VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Asterisk 13.11.2+WebRTC+WSS+JSSIP+Node.JS HTTPS+CentOS 7.2

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Ответить
gopstopochka
Сообщения: 6
Зарегистрирован: 22 сен 2016, 12:06

Asterisk 13.11.2+WebRTC+WSS+JSSIP+Node.JS HTTPS+CentOS 7.2

Сообщение gopstopochka »

PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: Отключаем SELinux
0. Отключаем SELinux
В файле /etc/selinux/config строку SELINUX=enforcing приводим виду:

Код: Выделить всё

SELINUX=disabled
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: Устанавливаем доступ в репозиторий EPEL
1. Устанавливаем доступ в репозиторий EPEL

Код: Выделить всё

yum install http://mirror.yandex.ru/epel/7Server/x86_64/e/epel-release-7-8.noarch.rpm
yum update
systemctl reboot
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: Установка Asterisk
2. Установка Asterisk

Код: Выделить всё

cd /usr/local/src/ 
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13.11.2.tar.gz
tar xvfz asterisk-13.11.2.tar.gz 
cd asterisk-13.11.2/contrib/scripts
./install_prereq install 
./install_prereq install-unpackaged
cd ../..
./configure
make menuselect
make
make install
make samples
make config
make install-logrotate
ldconfig
systemctl enable asterisk
systemctl start asterisk
asterisk -rvvvvv
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: Установка Node.JS HTTPS
3. Установка Node.JS HTTPS

Код: Выделить всё

yum install npm
npm install express-generator -g
cd /opt
express -e site
cd site && npm install
npm install https
cd bin
mkdir keys
cd keys
openssl genrsa -out key.pem 2048
openssl req -new -days 3600 -sha256 -key key.pem -out cert.csr
--------------------------------------------------------------------------------------------------------------------
ВНИМАНИЕ!
Обязательно ввести имя хоста,
более того  asterisk должен прописан
на DNS сервере.Проверять будет веб браузер Chrome
Common Name (eg, your name or your server's hostname) []:asterisk
--------------------------------------------------------------------------------------------------------------------
openssl x509 -days 3600 -sha256 -req -in cert.csr -signkey key.pem -out cert.pem
cd ..
Корректируем строки в файле www 
var http = require('https'); //Изменили
var fs = require('fs'); //Добавили
var port = normalizePort(process.env.PORT || '443'); //Изменили
var server = http.createServer(
{
 cert: fs.readFileSync('/opt/site/bin/keys/cert.pem'),
 key:  fs.readFileSync('/opt/site/bin/keys/key.pem')
},app); //Изменили
Запускаем Node.JS HTTPS
node /opt/site/bin/www
Установка сертификат cert.pem в веб броузер Chrome
Настройки->Показать дополнительные настройки->Настроить сертификаты
Открываем вкладку "Доверенные корневые центры сертификации" и импортируем cert.pem
Обязательно перегрузить веб браузер Chrome в строке адреса набираем: https://asterisk
https засветится зелёным цветом и появиться:
Express
Welcome to Express
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: Установка JSSIP в Node.JS HTTPS
4. Установка JSSIP в Node.JS HTTPS

Код: Выделить всё

cd /opt
wget -rN https://tryit.jssip.net/
wget -rN https://tryit.jssip.net/sounds
Получили папку tryit.jssip.net
Переносим сайт tryit.jssip.net в Node.JS HTTPS
cd tryit.jssip.net
cp -r css icons images js sounds /opt/site/public
cp index.html /opt/site/views/index.ejs 
cp: переписать «/opt/site/views/index.ejs»? y
Запускаем Node.JS HTTPS с демонстрацией софтового javaScript SIP клиента
node /opt/site/bin/www
В веб браузере Chrome набираем строку https://asterisk, получаем приглашение на ввод реквизитов доступа к сервису Asterisk
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: Настройка в Asterisk WebRTC и WSS
5. Настройка в Asterisk WebRTC и WSS

Код: Выделить всё

mkdir /etc/asterisk/keys
cd /usr/local/src/asterisk-13.11.2/contrib/scripts
./ast_tls_cert -C asterisk -O "IB" -d /etc/asterisk/keys
где 
-C Имя хоста
-O Название организации
-d Директория куда будут скопированы ключ и сертикат
Редактируем файл /etc/asterisk/http.conf в разделе
[general]
enabled=yes
bindaddr=0.0.0.0
bindport=8088
tlsenable=yes
tlsbindaddr=0.0.0.0:8089
tlscertfile=/opt/site/bin/keys/cert.pem
tlsprivatekey=/opt/site/bin/keys/key.pem
asterisk -rx "core restart now"
Проверка:
nmap localhost -p 8088,8089
Starting Nmap 6.40 ( http://nmap.org ) at 2016-09-23 11:26 SAMT
Nmap scan report for localhost (127.0.0.1)
Host is up (-790s latency).
Other addresses for localhost (not scanned): 127.0.0.1
PORT     STATE SERVICE
8088/tcp open  radan-http
8089/tcp open  unknown
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: Регистрация пользователей SIP и WSS на Asterisk
5. Регистрация пользователей SIP и WSS на Asterisk

Код: Выделить всё

Настройка rtp.conf
[general]
transport=udp,wss
stunaddr=stun.l.google.com:19302

Настройка sip.conf
[general]
realm=asterisk

;Софтовый JSSIP, находящийся в веб браузере
[800]
secret=800
host=dynamic
context=from-internal
type=friend
encryption=yes
avpf=yes
force_avp=yes
icesupport=yes
nat=force_rport,comedia
directmedia=no
disallow=all
videosupport=no
allow=alaw
dtlsenable=yes
dtlsverify=no
dtlscertfile=/etc/asterisk/keys/asterisk.pem
dtlscafile=/etc/asterisk/keys/ca.crt
dtlssetup=actpass
tlsbindaddr=0.0.0.0
tlscertfile=/etc/asterisk/keys/asterisk.pem
tlscafile=/etc/asterisk/keys/ca.crt
tlsprivatekey=/etc/asterisk/keys/asterisk.key
tlscipher=ALL
tlsclientmethod=tlsv1
transport=sip,wss
tlsenable=yes
qualify=no

;Софтовый JSSIP, находящийся в веб браузере
[801]
secret=801
host=dynamic
context=from-internal
type=friend
encryption=yes
avpf=yes
force_avp=yes
icesupport=yes
nat=force_rport,comedia
directmedia=no
disallow=all
qualify=no
videosupport=no
allow=alaw
dtlsenable=yes
dtlsverify=no
dtlscertfile=/etc/asterisk/keys/asterisk.pem
dtlscafile=/etc/asterisk/keys/ca.crt
dtlssetup=actpass
tlsbindaddr=0.0.0.0
tlscertfile=/etc/asterisk/keys/asterisk.pem
tlscafile=/etc/asterisk/keys/ca.crt
tlsprivatekey=/etc/asterisk/keys/asterisk.key
tlscipher=ALL
tlsclientmethod=tlsv1
transport=sip,wss
tlsenable=yes

;Софтовый телефон находящийся в OS Windows, Linux, ....
[802]
secret=802
host=dynamic
context=from-internal
type=friend
nat=force_rport,comedia
disallow=all
qualify=no
allow=alaw
transport=sip

asterisk -rx "core restart now"
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: Настройка в Asterisk маршрутов дозвонов для пользователей SIP и WSS
5.Настройка в Asterisk маршрутов дозвонов для пользователей SIP и WSS

Код: Выделить всё

Настройка extensions.conf
[from-internal]
exten => _X.,1,Wait(0.25)
      same => n,Answer()
      same => n,DIAL(SIP/${EXTEN})

asterisk -rx "core restart now"
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: Реквизиты ввода для JSSIP находящегося на стороне Node.JS HTTPS
5.Реквизиты ввода для JSSIP находящегося на стороне Node.JS HTTPS

Код: Выделить всё

Запускаем Node.JS HTTPS Сервер:
node /opt/site/bin/www
Запускаем веб браузер Chrome в строке адреса вводим: https://asterisk, происходит загрузка демо сайта JSSIP и вводим следующие реквизиты:
Name: 800
SIP URL: 800@asterisk
SIP password: 800
WS URL: wss://asterisk:8089/ws
klistrod
Сообщения: 12
Зарегистрирован: 27 сен 2011, 20:57

Re: Asterisk 13.11.2+WebRTC+WSS+JSSIP+Node.JS HTTPS+CentOS 7

Сообщение klistrod »

wget -rN https://tryit.jssip.net/
wget -rN https://tryit.jssip.net/sounds
Получили папку tryit.jssip.net
Переносим сайт tryit.jssip.net в Node.JS HTTPS
Уже немного не актуально, парни обновили свою звонилку.
Пробовал на Asterisk 13.13.0 на chan_sip + apache все завелось, спасибо автору за подробный ман.

А вот с pj_sip не получилось, со звуком проблемы, видимо где то чтото упустил. Может есть аналогичный ман на PJ_SIP ?
bavvitdaba
Сообщения: 15
Зарегистрирован: 01 дек 2016, 17:31

Re: Asterisk 13.11.2+WebRTC+WSS+JSSIP+Node.JS HTTPS+CentOS 7

Сообщение bavvitdaba »

А просто Asterisk+sipml5 не проще?;]
klistrod
Сообщения: 12
Зарегистрирован: 27 сен 2011, 20:57

Re: Asterisk 13.11.2+WebRTC+WSS+JSSIP+Node.JS HTTPS+CentOS 7

Сообщение klistrod »

А просто Asterisk+sipml5 не проще?;]
так JSSIP значительно лучше работает, стабильнее, обновляется чаще, только не давно 3 версия вышла. ;)
И Нода сейчас в тренде за счет своей асинхронности, в отличии от апача.
И как потом на кривом sipML5 чтото достойное сделать...

P.S. Завел все с PJSIP и JSSIP, вывалилась ошибка PJSIP_MAX_PKT_LEN c JSSIP переполнения буфера, вроде как все пофиксили, а проблема все равно есть...
https://issues.asterisk.org/jira/browse/ASTERISK-25122

Но с SIP.JS все заработало даже с opus кодеком, тестировал все на бете SNG7 (FreePBX) кстати без Nodejs, поэтому пересобирать и править Asterisk возможности не было.

Надо вносить правки:

Код: Выделить всё

vim third-party/pjproject/patches/config_site.h
/* #define PJSIP_MAX_PKT_LEN            6000 */
#define PJ_ICE_MAX_CAND 32
#define PJ_ICE_MAX_CHECKS (PJ_ICE_MAX_CAND * 16)
#define PJSIP_MAX_PKT_LEN 12288

./configure --with-pjproject-bundled
make
make install
На досуге как нибудь опробую.
bavvitdaba
Сообщения: 15
Зарегистрирован: 01 дек 2016, 17:31

Re: Asterisk 13.11.2+WebRTC+WSS+JSSIP+Node.JS HTTPS+CentOS 7

Сообщение bavvitdaba »

klistrod писал(а):
А просто Asterisk+sipml5 не проще?;]
И как потом на кривом sipML5 чтото достойное сделать...
Он же opensource ;)
aby180182
Сообщения: 11
Зарегистрирован: 12 янв 2020, 11:27

Re: Asterisk 13.11.2+WebRTC+WSS+JSSIP+Node.JS HTTPS+CentOS 7

Сообщение aby180182 »

Добрый день, кто-нибудь настраивал в библиотеке JsSIP subscribe to notifications?
aby180182
Сообщения: 11
Зарегистрирован: 12 янв 2020, 11:27

Re: Asterisk 13.11.2+WebRTC+WSS+JSSIP+Node.JS HTTPS+CentOS 7

Сообщение aby180182 »

Это не реализовано в JsSIP

https://groups.google.com/forum/#!topic ... DFzAX63LCc
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH