Доброго времени суток.
Имеется Астериск 12 версии, без интерфейсов, просто чистый. Собран был из исходников, триста лет тому назад. Нужно его обновить хотябы до 13 версии, с сохранением настроек. Как это будет проще и эффективнее сделать? Раньше никогда не сталкивался с задачами обновления программ собранных из исходников. Сначала думал перенести его на свежий Астер с FreePBX, но настроек слишком много, плюс там свои хитрости с сим-шлюзом и балансировкой затраченных минут на абонентах, так что видимо это "сложный путь".
Сам астериск на виртуальной машине, что несколько облегчает задачу. Но, усложняет тем, что при создании копии сервера начинают конфликтовать - цепляться к транкам, базам, и т.д.
## Make and install
```bash
#make distclean ## clear before reinstall
./configure
sudo make menuselect ## set module cdr_mysql.so
make
sudo make install
```
## Update configs (optional) for clear install, will overide all configs
```bash
sudo make samples
```
## Set user asterisk for proces
```bash
/etc/asterisk/asterisk.conf.
runuser = asterisk
rungroup = asterisk
```
## Fix systemd
```bash
/etc/systemd/system/asterisk.service
[Unit]
Description=Asterisk PBX and telephony daemon
After=network.target
ну я так понимаю, в случае дебиана нужно будет только поменять адреса репозиториев?
типа да
Я бы еще
sudo cp -r /etc/asterisk /etc/asterisk.work
и после установки и корректного запуска переносил бы конфиги обратно
sudo cp /etc/asterisk.work/sip.conf /etc/asterisk/
sudo cp /etc/asterisk.work/extension.conf /etc/asterisk/
и т.д.
Valentin Barbolin, я просто уточняю. Если сложно ответить, можно было и не начинать. Спасибо за инструкцию.
Я сразу уточнил, обновлением собранного из исходников ещё не занимался.
Сначала встречный вопрос - что такого в 13 Астериске отличия от 12, почему и зачем нужно повышать версию? Я повысил версию с 1.6 до 11 и то, на Realtime с базами данных для конфигурации, и то, все заработало. А потребность была во-первых чтобы поднять TLS, во-вторых, чтобы поднять SMS SIP. А раньше такого функционала не было в 1.6.
Глобально :
1. Подумайте трижды, зачем это. Нет никаких существенных различий между 12 и 13 версиями нет. Что заставило? PJSIP и так есть в 12. Конференции нужны? Да поставьте openMCU и забудьте.
2. Если так необходимо, то найти в старом Астериске с какими ключами собирался ./configure по истории bash, если даже и нет, что все равно собрать тогда по-максимуму, со всеми зависимостями (смотрите внимательнее какие кодеки и вообще какие модули использованы в старом Астериске). Внимательно почитайте про upgrade с 12 на 13 в репозитории UPGRADE.txt
3. Исходя из 2 (или даже если не нашли) новый тупо собрать make && make install, без make configure и все должно пойти. НО зачем опять таки?
dimone73, ну не по прихоти конечно, я бы не стал обновлять его просто так.
Есть модуль интеграции Битрикса и Астериска, Itgrix. У него системные требования - минимум 13 версия Астериска.
По истории уже не найдётся, он собирался лет десять назад наверное. И все эти лет десять пилился напильником понемногу.
Смотреть какие модули/кодеки, я так понимаю в каталоге usr/lib/asterisk/modules?
My_Second_Nickname, да да. У меня после цепочки обновлений с 1.6-1.8-10 (неудачно) - сразу 11 (удачно) проблемы навскидку были:
1. Много лишних модулей, из-за них не запускалось. Файл modules.conf то остается старый, наименование другое, много новых появляется.
2. Права на доступ/запуск файлов в каталогах, особенно опять-таки модулей.
А так заработало. В вашем случае проблем то особых не должно быть (12 с 13 не сильно то различаются). А исходники, из которых собирался 12 Астериск в папке /usr/src то остались? История bash осталась интересно или нет? По ней можно посмотреть с какими ключами собирался Астериск? Ну там еще
configure с какими ключами были.... Или запустить make menuconfig на старом и посмотреть модули какие там.
библиотека разработки libxml2 теперь является обязательной зависимостью для Asterisk - а то я раньше всегда при сборке конфигурировал перед сборкой без libxml2, что-то типа --disable-xmldoc
SetMusicOnHold:
- Приложение диалплана SetMusicOnHold устарело и было удалено. Пользователи приложения должны использовать вместо этого параметр musicclass функции CHANNEL.
WaitMusicOnHold:
- Приложение диалплана WaitMusicOnHold устарело и было удалено. Пользователи приложения должны использовать MusicOnHold с параметром продолжительности.