В данной заметке я опишу решение задачи, согласно которой было необходимо по звонку на внутренний телефонный номер FreePBX запустить определенные команды на маршрутизаторе Mikrotik.

Настраиваем FreePBX для подключения к Mikrotik

В данной заметке я опишу решение задачи, согласно которой было необходимо по звонку на внутренний телефонный номер FreePBX запустить определенные команды на маршрутизаторе Mikrotik.

Конфигурируем выбранный внутренний номер 998 для целей запуска команд на Микротике:

FreePBX

FreePBX

Настраиваем FreePBX с помощью командной строки

1 шаг. Создаем звонок в /etc/asterisk/extensions_custom.conf:

[office1-block]
exten => s,1,Noop(***Red Button***)
same => n,Background(beep)
same => n,WaitExten(3)

exten => 1,1,Noop(***Shutdown inteface GRE-to-office1***)
same => n,Authenticate(1)
;same => n,Playback()
same => n,System(/var/lib/asterisk/scripts/red_button.sh &)
same => n,Noop(Результат выполнения: ${SYSTEMSTATUS})
same => n,Hangup

2 шаг. Меняем права на /var/lib/asterisk/scripts/red_button.sh: chown asterisk. scripts -R

[root@freepbx scripts]# cat red_button.sh
#!/bin/bash

ssh red_button@192.168.2.1 /interface gre disable gre-office1

[root@freepbx scripts]# ls -l
total 20
-rwxrwxr-x 1 root root 109 Jul 12 11:24 red_button.sh
[root@freepbx scripts]# chown asterisk. red_button.sh
[root@freepbx scripts]# ls -l
total 20
-rwxrwxr-x 1 asterisk asterisk 109 Jul 12 11:24 red_button.sh

3 шаг. Запускаем оболочку под asterisk: sudo -u asterisk bash

Генерируем ключ для подключения по SSH

4 шаг. Генерируем rsa ключ для пользователя: asterisk ssh-keygen -t rsa

bash-4.1$ ssh-keygen -t rsa
Genetrating public/private rsa key pair.
Enter file in which to save the key (/home/asterisk/.ssh/id_rsa):
Enter passphrase (empty fo no passphrase): {press enter}
Enter same passphrase again:
Your identification has been saved in /home/asterisk/.ssh/id_rsa.
Your public key has been saved in /home/asterisk/.ssh/id_rsa.pub.
The key fingerprint is:
7c:b7:fa:7b:a0:c6:bb:11:61:88:01:d5:88:b0:e8:7d asterisk@freepbx.company.com
The key's random image is:
+--[ RSA 2048]----+
| ...+oo |
| . .. .o.. |
|. . . . o |
|. . . . . |
| . . E S o . |
| . . o . |
| ..... |
| +o . |
| .++oo |
+-----------------+

5 шаг. Загружаем файл /home/asterisk/.ssh/id_rsa.pub по ftp на mikrotik:

bash-4.1$ ftp 192.168.2.1
Connected to 192.168.2.1 (192.168.2.1).
220 office1 FTP server (MikroTik 6.39.2) ready
Name (192.168.2.1:asterisk): user1
331 Password required for user1
Password:
230 User user1 logged in
Remote system type is UNIX.
ftp> put id_rsa.pub
local: id_rsa.pub remote: id_rsa.pub
227 Entering Passive Mode (192,168,2,1,207,227).
150 Opening ASCII mode data connection for '/id_rsa.pub'
226 ASCII transfer complete
411 bytes sent in 7e-05 secs (5871.43 Kbytes/sec)
ftp> quit
221 Closing
bash-4.1$

6 шаг. Подключаемся к mikrotik: ssh 192.168.2.1 -l user1
Вводим пароль.
[user1@office1-gw1] > user ssh-keys import public-key-file=id_rsa.pub
[user1@office1-gw1] > user ssh-keys print
Flags: R - RSA, D - DSA
# USER BITS KEY-OWNER
0 R user1 2048 asterisk@freepbx.company.com

7 шаг. Проверяем запуск команды из-под asterisk на mikrotik:

su -c 'ssh red_button@192.168.2.1 /interface gre disable gre-office1' asterisk

8 шаг. Делаем проверочный звонок и проверяем выключился ли GRE-интерфейс

Задача выполнена

Читать далее

Запуск команд на Mikrotik по звонку на FreePBX
Adblock detector