Дерево сторінок

Versions Compared

Ключ

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Warning

Увага! Для того, щоб дзвінки не обривались на 30-й секунді, версія Asterisk повинна бути не нижче 1.8.21.0 або 11.3.0.

Створення

...

сертифікату сервера

1. Створити папку, где де будуть зберігатися ключі безпеки
yourcompany.com  -O "YourCompanyName" -d /etc/asterisk/certificate

2. Створити самоподпісанний самопідписаний центр сертифікації (Certificate Authority) та сертифікат самого Asterisk.
Для цього можна використовувати скрипт "ast_tls_cert".
# cd /etc/asterisk/certificate/
# wget   https://raw.githubusercontent.com/rillian/asterisk...
# chmod +x ast_tls_cert
# ./ast_tls_cert -C  pbx.yourcompany.com  -O "YourCompanyName" -d /etc/asterisk/certificate

Ключ "-C" використовується для опису вашого хоста (DNS або IP адреса)
Ключ "-O" використовується для визначення імені вашої організації
Ключ "-d" вказує директорію, где де будуть зберігатися створені ключі

3. Ввести пароль для /etc/asterisk/certificate/ca.key

4. Автоматично створюється файл /etc/asterisk/certificate/ca.crt

5. Ввести пароль, який ви вказали в пункті 3, автоматично створюються файли
/etc/asterisk/certificate/asterisk.key /etc/asterisk/certificate/asterisk.crt

6. Ввести пароль ще раз, створюється файл /etc/asterisk/certificate/asterisk.pem как комбинация як комбінація asterisk.key та asterisk.crt

7. Додати сертифікати lifecell в ca.crt.
cat >> /etc/asterisk/certificate/ca.crt <<EOF

...

Expand
titleНалаштування TLS

1. В файлі sip.conf (або sip_general_additions.conf, якщо використовується Elastix/FreePBX) необхідно дописати наступне: [general] tlsenable=yes
tlsbindaddr=0.0.0.0
tlscertfile=/etc/asterisk/certificate/asterisk.pem ; локальний сертифікат
tlscafile=/etc/asterisk/certificate/ca.crt ; довірений центр сертифікації
tlscipher=ALL
tlsclientmethod=tlsv1

У цьому блоці вказано, що на сервері є підтримка протокола TLS з наступними параметрами:
* Asterisk слухає усі сереживні карти (порт 5061 для TLS)
* Директорія сертифікату TLS
* Директорія сертифікату Certificate Authority
* Asterisk підтримує усі види шифрування
* SIP клієнти підтримують протокол tlsv1 (якщо SIP клієнти не підтримують tlsv1, цю строку кріще краще видалити)


2. Якщо у вас в sip.conf не прописано прописаний параметр tlsdontverifyserver=yes необхідно додати 2 сертификата, які висилає lifecell, в кінець файлу /etc/asterisk/certificate/ca.crt (див. п.7 попереднього розділу)

...

Expand
titleНалаштування peer в sip.conf

[38044232XXXX] ; peer, SIP-канал в сторону lifecell, прописується для кожної номернії номерної лінії.
host=csbc.lifecell.ua ; DNS ім'я, інакше можливі помилки при валідації TLS сертифіката якщо вказана IP адреса
port=5061 ; (port=5061 для SRTP; port=5081 для RTP; port=5071 для авторизації по IP)
transport=tls
insecure=port,invite
encryption=yes ; (для SRTP або encryption=no для RTP)
type=friend
username=38044232XXXX
fromuser=38044232XXXX
secret=verysecretpass ; тільки для авторизації за паролем
context=incoming
disallow=all
allow=ulaw
allow=alaw
[1001] ; внутрішній номер
type=friend
username=1001
secret=1001
host=dynamic
transport=udp
encryption=no
context=outgoing
disallow=all
allow=ulaw
allow=alaw
Налаштування extensions.conf
[incoming]
exten => 38044232XXXX,1,Dial(Sip/1001)
exten => 38044232XXXX,n,Playback(vm-nobodyavail)
exten => 38044232XXXX,n,Hangup()
[outgoing]
exten => _X.,1,Dial(Sip/38044232XXXX/${EXTEN})
exten => _X.,n,Hangup()
Якщо у вас декілька каналів (наприклад, 38044232XXX1, 38044232XXX2), можливо налаштувати почергове використання для кожному кожного наступного виклику:
exten => _X.,1,Gotoif(${DB_EXISTS(provider/next)}?4)
exten => _X.,2,Set(DB(provider/next)=38044232XXX1)
exten => _X.,3,Goto(1)
exten => _X.,4,GoSub(${DB_RESULT},1)
exten => _X.,5,Dial(SIP/${DB_RESULT}/${EXTEN},30)
exten => _X.,6,Congestion()
exten => _X.,7,Hangup()
exten => 38044232XXX1,1,Set(DB(provider/next)=38044232XXX2)
exten => 38044232XXX1,n,Return
exten => 38044232XXX2,1,Set(DB(provider/next)=38044232XXX1)
exten => 38044232XXX2,n,Return
У результате В результаті перший виклик поступає на номер 38044232XXX1, другий - на номер 38044232XXX2, третій - знову на номер 38044232XXX1 і т.д.
Налаштування rtp.conf
[general]
rtpstart=10000
rtpend=20000

...