This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
freepbx [2019/09/24 08:54] val [Подготовка VM] |
freepbx [2025/07/26 06:07] (current) val [sangoma-freepbx-12] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== FreePBX ====== | ====== FreePBX ====== | ||
| - | * [[http://www.voxlink.ru/knowledge-base/curriculum/manual-po-freepbx/|FreePBX руководство]] | + | * [[http://val.bmstu.ru/unix/voip/Rukovodstvo_Administratora_FreePBX_na_russkom_yazyke.pdf|FreePBX 13 руководство]] |
| - | * [[http://wiki.merionet.ru/ip-telephoniya/45/krakozyabry-kodirovka-v-cdr-freepbx-14/|КРАКОЗЯБРЫ: КОДИРОВКА В CDR FREEPBX 14]] | + | |
| ===== Установка ===== | ===== Установка ===== | ||
| + | * [[https://www.asterisk.org/downloads/]] | ||
| + | * [[https://www.freepbx.org/get-started/]] | ||
| + | * [[https://www.freepbx.org/downloads/]] | ||
| + | * [[https://downloads.freepbxdistro.org/ISO/]] Новый образ FreePBX | ||
| + | |||
| ==== Подготовка VM ==== | ==== Подготовка VM ==== | ||
| * Память от 2Gb | * Память от 2Gb | ||
| - | ==== Подготовка voip1.un ==== | + | ==== Настройка сети ==== |
| - | * Учетки 00000X на voip1.un настроить на nat | + | * Настройка сети в Linux [[Настройка сети в Linux#Файлы конфигурации CentOS/SL/RHEL]] или |
| - | * Старые сервера остановить, | + | |
| - | * отрегистрировать на voip1 и | + | |
| - | * перезапустить voip1 | + | |
| - | + | ||
| - | ==== Процесс начальной конфигурации ==== | + | |
| - | + | ||
| - | * В визарде все ответы по умолчанию (Skip или Yes) | + | |
| - | * Большая пауза в конфигурационном визарде после выбора временной зоны | + | |
| <code> | <code> | ||
| - | Username: admin | + | # ifconfig eth0 inet 172.16.1.100+X/24 |
| - | Password: Pa$$w0rd | + | |
| - | Admin Email address: userX@isp.un | + | |
| - | </code> | + | |
| - | ===== SNG7-FPBX-64bit-1805-2 ===== | + | |
| - | !!! Для работы PJSIP необходимо обновить модули (лучше все, занимает, примерно 1 час, некоторые модули обновляются после нескольких итераций, необходимо, минимум три) | + | # route add default gw 172.16.1.254 |
| - | <code> | + | # echo "nameserver 172.16.1.254" > /etc/resolv.conf |
| - | Admin->Updates->Module Updates | + | |
| - | Check Online, Download all, Upgrade all, Process | + | |
| - | + | ||
| - | Confirm | + | |
| </code> | </code> | ||
| - | <code> | + | * После изменения сетевых настроек нужно произвести рестарт asterisk (так же помогает при проблемах со звуком) |
| - | # systemctl disable fail2ban | + | |
| - | + | ||
| - | # systemctl mask fail2ban | + | |
| - | + | ||
| - | # init 6 # Перезагружается долго | + | |
| - | + | ||
| - | + | ||
| - | # service asterisk start | + | |
| - | </code> | + | |
| <code> | <code> | ||
| - | Application-Extensions | + | [root@freepbx ~]# rasterisk -vvv |
| - | Add Extensions -> PJSIP | + | freepbx*CLI> core restart now |
| - | User Extension: 402 | + | |
| - | Display Name: Petr Petrov | + | |
| - | Secret: tpassword402 | + | |
| - | Link to a Default User: Create New User | + | |
| - | Username: user2 Use Custom Username | + | |
| - | Password For New User: password2 | + | |
| + | ИЛИ | ||
| - | Connectivity -> Trunks | + | [root@freepbx ~]# ps ax | grep ast |
| - | Add Trunk -> Add...pjsip... | + | ... asterisk ... |
| - | Trunk Name: PSTN | + | |
| - | Outbound CallerID: 8495NNNNNNN | + | |
| - | Username: 00000X | + | |
| - | Secret: spasswordX | + | |
| - | SIP Server: voip1.un | + | |
| - | Contact User: 8495NNNNNNN | + | |
| - | From Domain: voip1.un | + | |
| - | From User: 00000X | + | |
| - | Connectivity -> Outbound Routes | + | [root@freepbx ~]# kill NNNN |
| - | Route Name: ToPSTN | + | |
| - | Trunk Sequence for Matched Routes: PSTN | + | |
| - | Dial Patterns (match pattern): 8XXXXXXXXXX | + | |
| - | Connectivity -> Inbound Routes | + | [root@freepbx ~]# service asterisk start |
| - | Description: FromPSTN | + | |
| - | DID Number: 8495NNNNNNN | + | |
| - | Set Destination: Ext 403 | + | |
| </code> | </code> | ||
| + | ==== Процесс начальной конфигурации ==== | ||
| - | ===== AsteriskNOW-612 ===== | + | * В визарде все ответы по умолчанию (Skip или Yes) |
| - | + | * [[https://wiki.freepbx.org/pages/viewpage.action?pageId=37912685#fwconsolecommands(13+)-Unlock|unlock the GUI login of FreePBX to let you into the FreePBX GUI without the username and password]] | |
| - | ==== Setup ==== | + | |
| - | Please provide the core credentials that will be used to administer your system | + | * !!! Большая пауза в конфигурационном визарде для загрузки русских семплов (в настоящее время не доступны) |
| <code> | <code> | ||
| Line 94: | Line 55: | ||
| </code> | </code> | ||
| - | ==== Восстановление забытого пароля ==== | + | ==== Отключение Firewall ==== |
| - | <code> | + | * Можно оставить |
| - | UPDATE `ampusers` SET `password_sha1` = SHA1('12345678') WHERE `username`='admin'; | + | |
| - | </code> | + | |
| - | + | ||
| - | Не активировать, отказаться от SIPStation | + | |
| - | + | ||
| - | ==== Настройки безопасности ==== | + | |
| - | + | ||
| - | Желательно отключить f2ban для локальной сети | + | |
| <code> | <code> | ||
| - | Admin->System Admin->Intrusion Detection->Whitelist->172.16.1.0/24 | + | Connectivity - Firewall - Disable Firewall |
| </code> | </code> | ||
| - | ==== Общие настройки SIP ==== | + | * !!! в методических целях - обязательно |
| - | + | ||
| - | * Опционально!!! | + | |
| <code> | <code> | ||
| - | Settings->Asterisk SIP Settings | + | # systemctl stop fail2ban |
| - | + | ||
| - | или | + | |
| - | NAT: no | + | |
| - | IP Configuration: Public IP | + | |
| - | + | ||
| - | или | + | |
| - | External IP: 172.16.1.X | + | |
| - | Local Networks: 192.168.1.0/255.255.255.0 | + | |
| - | + | ||
| - | + | ||
| - | Allow SIP Guests: no | + | |
| </code> | </code> | ||
| - | ==== Настройка SIP канала ==== | + | ==== sangoma-freepbx-12 ==== |
| - | + | ||
| - | В версии 1013 не получается менять имя пользователя при создании канала | + | |
| <code> | <code> | ||
| - | Applications->Extensions->Generic CHAN SIP devices | + | # cat /etc/network/interfaces |
| - | Submit | + | </code><code> |
| - | User Extension: 401 | + | ... |
| - | Display Name: Ivanov Ivan Ivanovitch | + | allow-hotplug enp0s3 |
| - | Device Options | + | iface enp0s3 inet static |
| - | secret: tpassword401 | + | address 172.16.1.100+X |
| + | netmask 255.255.255.0 | ||
| + | gateway 172.16.1.254 | ||
| + | </code><code> | ||
| + | # /etc/resolv.conf | ||
| + | </code><code> | ||
| + | nameserver 172.16.1.254 | ||
| + | </code><code> | ||
| + | # init 6 | ||
| </code> | </code> | ||
| - | ==== Отладка ==== | + | * На шаге "Sangoma Smart Firewall..." выбираем Abort, включим после настройки через Connectivity->Firewall |
| + | * В случае блокировки использовать команды: | ||
| <code> | <code> | ||
| - | Admin->Asterisk CLI | + | # fwconsole firewall disable |
| - | Reports->Asterisk Log Files | + | # systemctl disable fail2ban |
| </code> | </code> | ||
| - | ==== Делегирование прав регистрации абонентов ==== | + | ===== Базовая конфигурация ===== |
| - | Удерживая клавишу CTRL | + | Может не понадобиться |
| - | + | ||
| - | <code> | + | |
| - | Admin -> Administrator | + | |
| - | Username: admin2 | + | |
| - | Password: password2 | + | |
| - | Admin Access | + | |
| - | Application->Extensions | + | |
| - | Apply Changes Bar | + | |
| - | Add Extensions | + | |
| - | </code> | + | |
| - | ==== Настройка подключения к VoIP ==== | + | |
| <code> | <code> | ||
| - | Connectivity->Trunks->Add SIP Trunk | + | Settings - Asterisk SIP Settings |
| + | External Address: 172.16.1.100+X | ||
| + | Local Networks: 172.16.0.0 / 16 | ||
| + | Local Networks: 10.0.0.0 / 8 | ||
| </code> | </code> | ||
| + | ===== Управление телефонными номерами и пользователями ===== | ||
| - | === Обработка исходящих вызовов === | + | * [[https://wiki.freepbx.org/display/FPG/Bulk+Handler+User+Guide|Bulk Handler User Guide]] |
| - | == Настройка канала для исходящих вызовов == | ||
| <code> | <code> | ||
| - | Connectivity->Trunks->Add SIP Trunk | + | Application-Extensions |
| - | General Settings | + | Add Extensions -> PJSIP |
| - | Trunk Name: Voip1 00000X | + | User Extension: 402 |
| - | Outbound CallerID: 89166071103 | + | Display Name: Petr Petrov |
| + | Secret: tpassword402 | ||
| + | Link to a Default User: Create New User | ||
| + | Username: user2 Use Custom Username | ||
| + | Password For New User: password2 | ||
| + | </code><code> | ||
| + | C:\> cd Documents | ||
| - | Outgoing Settings | + | C:\> notepad extensions.csv |
| - | Trunk Name: voip1_00000X | + | </code><code> |
| - | + | extension,name,secret | |
| - | PEER Details: | + | 401,Ivan Ivanov,tpassword401 |
| - | + | 403,Sidor Sidorov,tpassword403 | |
| - | host=voip1.un | + | |
| - | defaultuser=00000X | + | |
| - | fromuser=00000X | + | |
| - | fromdomain=voip1.un | + | |
| - | secret=spasswordX | + | |
| - | type=peer | + | |
| </code> | </code> | ||
| - | == Добавление маршрута для совершения исходящих вызовов == | + | Можно после, когда понадобиться UCP |
| - | <code> | + | |
| - | Connectivity->Outbound Routes->Add Route | + | |
| - | Route Name: Call_To_PSTN | + | |
| - | Dial Patterns that will use this Route | + | |
| - | match pattern 89XXXXXXXXX | + | |
| - | match pattern 8495XXXXXXX | + | |
| - | match pattern 8499XXXXXXX | + | |
| - | + | ||
| - | Trunk Sequence for Matched Routes | + | |
| - | 0: voip1 00000X | + | |
| - | </code> | + | |
| - | + | ||
| - | === Обработка входящих вызовов === | + | |
| - | + | ||
| - | * [[http://wiki.merionet.ru/ip-telephoniya/35/nastrojka-modulya-custom-context-v-freepbx/]] | + | |
| - | == Настройка канала для входящих звонков == | ||
| <code> | <code> | ||
| - | Connectivity->Trunks->Edit SIP Trunk | + | C:\> notepad users.csv |
| - | + | </code><code> | |
| - | PEER Details: | + | username,password,default_extension |
| - | + | user1,password1,401 | |
| - | nat=no | + | user3,password3,403 |
| - | directmedia=no | + | </code><code> |
| - | insecure=invite | + | Admin -> Bulk Handler |
| - | callbackextension=voip1_00000X | + | !!! Не включает в группу All Users, приходится "вручную" для доступа к UCP |
| </code> | </code> | ||
| - | == Объединение телефонов в группу вызова == | + | ===== Звонки в "город" ===== |
| - | <code> | + | |
| - | Application->Ring Groups->Add Ring Group | + | |
| - | Group Description: All Phones | + | |
| - | Ring Strategy: ringall | + | |
| - | Extension List: 401 | + | |
| - | 403 | + | |
| - | Destination if no answer: Terminate Call Hangup | + | |
| - | </code> | + | |
| - | == Добавление маршрута для обработки входящих вызовов == | + | * !!! Могут быть проблемы с голосом, помогает потребуется перезагрузка всей системы (попробовать перезагрузить сервис asterisk) |
| - | <code> | + | |
| - | Connectivity->Inbound Routes->Add Incoming Route | + | |
| - | Description: From voip1 00000X | ||
| - | DID Number: voip1_00000X | ||
| - | Set Destination: Ring Groups: All Phones | ||
| - | </code> | ||
| - | |||
| - | можно использовать цепочки групп используя атрибут групп "Destination if no answer" | ||
| - | |||
| - | ==== Управление кодами ДВО ==== | ||
| - | |||
| - | * !!! Для LinkSys может понадобиться отключить Voice->Regional->Vertical Service Activation Codes | ||
| <code> | <code> | ||
| - | Admin->Feature Codes | + | Connectivity -> Trunks |
| - | </code> | + | Add Trunk -> Add...pjsip... |
| + | Trunk Name: PSTN | ||
| + | Outbound CallerID: 8495NNNNNNN | ||
| + | Username: 00000X | ||
| + | Secret: spasswordX | ||
| + | SIP Server: voip1.un | ||
| + | Contact User: 8495NNNNNNN | ||
| + | From Domain: voip1.un | ||
| + | From User: 00000X | ||
| - | === Управление переводом вызова === | + | Connectivity -> Outbound Routes |
| - | <code> | + | Route Name: ToPSTN |
| - | Admin->Feature Codes | + | Trunk Sequence for Matched Routes: PSTN |
| + | Dial Patterns (match pattern): 8XXXXXXXXXX | ||
| - | In-Call Asterisk Attended Transfer: *2 | + | Connectivity -> Inbound Routes |
| - | In-Call Asterisk Blind Transfer ## | + | Description: FromPSTN |
| - | + | DID Number: 8495NNNNNNN | |
| - | Setting->General Setting->Asterisk Dial command options: Tt... | + | Set Destination: Ext 403 |
| </code> | </code> | ||
| - | === Перехват вызовов === | + | ===== Звонки в "соседний офис" ===== |
| <code> | <code> | ||
| - | Application->Extension->4XX | + | Connectivity -> Trunks |
| - | callgroup: 1 | + | Add Trunk -> Add...iax2... |
| - | pickupgroup: 1 | + | Trunk Name: CORP |
| - | </code> | + | Outbound CallerID: 013401 |
| - | ==== Follow Me ==== | + | iax Settings |
| + | Outgoing | ||
| + | Trunk Name: corp_out | ||
| + | PEER Details | ||
| + | host=corp.un | ||
| + | username=corp13 | ||
| + | secret=apassword13 | ||
| + | type=peer | ||
| + | auth=md5 | ||
| + | Incoming | ||
| + | USER Context: corp | ||
| + | USER Details: | ||
| + | secret=apassword | ||
| + | type=user | ||
| + | host=dynamic | ||
| + | auth=md5 | ||
| + | |||
| + | Connectivity -> Outbound Routes | ||
| + | Route Name: ToCORP | ||
| + | Trunk Sequence for Matched Routes: CORP | ||
| + | Dial Patterns | ||
| + | prefix: 000 | ||
| + | match pattern: XXX | ||
| - | <code> | + | Connectivity -> Inbound Routes |
| - | Admin->User Management->Ivanov Ivan Ivanovitch | + | Description: FromCORP |
| - | Login Name: user1 | + | DID Number: _XXX |
| - | Password: password1 | + | Set Destination: Ext 401 |
| - | Linked Extension: 401 | + | </code> |
| - | </code> | + | |
| - | ==== Локализация ==== | + | ===== Интерфейс пользователя ===== |
| - | + | ||
| - | * [[Сервис Asterisk#Локализация сообщений Asterisk]] | + | |
| + | * Unconditional Call Forwarding | ||
| <code> | <code> | ||
| - | Settings->Asterisk SIP Settings->Chan SIP | + | http://172.16.1.100+X/ucp/ |
| - | Language: ru | + | |
| </code> | </code> | ||
| Line 286: | Line 217: | ||
| * [[https://asterisk-pbx.ru/wiki/freepbx/custom_context|Во FreePBX предусмотрено использование пользовательских (custom) файлов]] | * [[https://asterisk-pbx.ru/wiki/freepbx/custom_context|Во FreePBX предусмотрено использование пользовательских (custom) файлов]] | ||
| + | |||
| + | * Admin -> Config Edit | ||
| <code> | <code> | ||
| - | # cat /etc/asterisk/sip_general_additional.conf | ||
| - | </code><code> | ||
| - | ... | ||
| - | </code><code> | ||
| - | # cat /etc/asterisk/sip_additional.conf | ||
| - | </code><code> | ||
| - | ... | ||
| - | </code><code> | ||
| - | # cat /etc/asterisk/extensions_additional.conf | ||
| - | </code><code> | ||
| - | ... | ||
| - | </code><code> | ||
| - | # cat /etc/asterisk/sip_custom.conf | ||
| - | </code><code> | ||
| - | language=ru | ||
| - | </code><code> | ||
| # cat /etc/asterisk/extensions_custom.conf | # cat /etc/asterisk/extensions_custom.conf | ||
| </code><code> | </code><code> | ||
| Line 315: | Line 232: | ||
| </code> | </code> | ||
| + | ===== Дополнительные задания ===== | ||
| + | * Настроить IVR | ||
| + | * Добавить учетную запись помошника администратора с ограниченными правами (только на регистрацию телефонов и пользователей) | ||
| + | * Разобраться, как сделать импорт пользователей с автоматическим включение в группу "All Users" | ||