Extensions.conf

Введение

Если у вас еще не настроен сервер с Debian, рекомендую мои материалы на эту тему:

  • Установка Debian на сервер
  • Базовая настройка Debian после установки

Я не буду касаться вопроса настройки фаервола, буду считать, что он выключен. Но на сервере с астериском, особенно если он смотрит в интернет напрямую, обязательно надо настроить firewall. По этому поводу рекомендую мою подробную статью по настройке iptables. Там хоть и идет речь о другой операционной системе, но сами правила iptables во всех системах абсолютно одинаковые.

Для отладки и тестирования работы voip я рекомендую сервис Zadarma. Плюс его в том, что после регистрации вы получите настройки пира для внутренней сети оператора. И внутри этой сети вы можете бесплатно звонить. Например, я одного пира регистрирую на sip клиенте смартфона и с него звоню на второй аккаунт, пир от которого настроен в астериске. Таким образом эмулирую внешний звонок. Удобно отлаживать различные конфигурации звонков, не требуя платного подключения.

Приступаем к установке астериска. Я буду работать на следующей системе:

Введение

Я приведу простой пример, подразумевая, что вы выполнили настройку asterisk по моей статье или схожим образом. Классическая конфигурация для среднестатистического офиса. Представим, что у вас 2 таких офиса в разных городах. Пусть этими городами будут Москва (условное имя сервера moscow) и Санкт-Петербург (условное имя сервера piter) Вы хотите звонить на внутренние номера этих офисов напрямую, как-будто они обслуживаются вашим сервером. Допустим, на сервере moscow у вас номера начинаются на 100 и 200, а в piter на 300 и 400. Я считаю, что между серверами у вас настроен vpn канал и они видят друг друга без проблем.

Если у вас номера пересекаются, например, и там и там начинаются на 100, то задача немного усложняется, но не сильно. Просто придется добавить какую-нибудь еще цифру к набору, а в диалплане ее отсекать. Но я не буду рассматривать этот вариант. Если вы одна организация, то логично сделать такую нумерацию, чтобы она не пересекалась. Если это не так, то лучше ее переделать, чем городить костыли.

Для отладки и тестирования работы voip я рекомендую сервис Zadarma. Плюс его в том, что после регистрации вы получите настройки пира для внутренней сети оператора. И внутри этой сети вы можете бесплатно звонить. Например, я одного пира регистрирую на sip клиенте смартфона и с него звоню на второй аккаунт, пир от которого настроен в астериске. Таким образом эмулирую внешний звонок. Удобно отлаживать различные конфигурации звонков, не требуя платного подключения.

Наша задача будет разбита на 2 этапа:

  1. Готовим пиры и регистрации для связи двух серверов между собой.
  2. Настраиваем dialplan, чтобы распределять звонки по серверам.

Может возникнуть вопрос: «А зачем вообще соединять 2 сервера, если можно сделать один сервер asterisk и подключить к нему абонентов обоих офисов?». Причины могут быть разными. Мне видятся несколько, например:

  • В каком-то филиале нестабильный интернет. Офис не хочет терять возможность внутренних звонков при проблемах с интернетом. А если сервер с астериском будет находиться не у них, то даже между собой не смогут созвониться.
  • Разные люди администрируют сервера. В рамках одного сервера сложнее настроить разделение доступа. Более того, я даже не знаю, как это реализовать. А в случае с разными серверами никаких проблем. Главное не трогать часть диалплана, которая отвечает за звонки друг к другу, а дальше можно конфигурировать как душе угодно.
  • Нужна раздельная статистика и запись звонков. Конечно, можно все это реализовать в рамках одного сервера, но нужно будет либо покупать какое-то коммерческое решение, либо переделывать бесплатное. Я не знаю простого, бесплатного и удобного средства, которое позволит это реализовать в рамках одного сервера. А так ставишь любой cdr viewer и ограничиваешь доступ к web панели любым удобным способом.

Введение

Я приведу простой пример, подразумевая, что вы выполнили настройку asterisk по моей статье или схожим образом. Классическая конфигурация для среднестатистического офиса. Представим, что у вас 2 таких офиса в разных городах. Пусть этими городами будут Москва (условное имя сервера moscow) и Санкт-Петербург (условное имя сервера piter) Вы хотите звонить на внутренние номера этих офисов напрямую, как-будто они обслуживаются вашим сервером. Допустим, на сервере moscow у вас номера начинаются на 100 и 200, а в piter на 300 и 400. Я считаю, что между серверами у вас настроен vpn канал и они видят друг друга без проблем.

Если у вас номера пересекаются, например, и там и там начинаются на 100, то задача немного усложняется, но не сильно. Просто придется добавить какую-нибудь еще цифру к набору, а в диалплане ее отсекать. Но я не буду рассматривать этот вариант. Если вы одна организация, то логично сделать такую нумерацию, чтобы она не пересекалась. Если это не так, то лучше ее переделать, чем городить костыли.

Наша задача будет разбита на 2 этапа:

  1. Готовим пиры и регистрации для связи двух серверов между собой.
  2. Настраиваем dialplan, чтобы распределять звонки по серверам.

Может возникнуть вопрос: «А зачем вообще соединять 2 сервера, если можно сделать один сервер asterisk и подключить к нему абонентов обоих офисов?». Причины могут быть разными. Мне видятся несколько, например:

  • В каком-то филиале нестабильный интернет. Офис не хочет терять возможность внутренних звонков при проблемах с интернетом. А если сервер с астериском будет находиться не у них, то даже между собой не смогут созвониться.
  • Разные люди администрируют сервера. В рамках одного сервера сложнее настроить разделение доступа. Более того, я даже не знаю, как это реализовать. А в случае с разными серверами никаких проблем. Главное не трогать часть диалплана, которая отвечает за звонки друг к другу, а дальше можно конфигурировать как душе угодно.
  • Нужна раздельная статистика и запись звонков. Конечно, можно все это реализовать в рамках одного сервера, но нужно будет либо покупать какое-то коммерческое решение, либо переделывать бесплатное. Я не знаю простого, бесплатного и удобного средства, которое позволит это реализовать в рамках одного сервера. А так ставишь любой cdr viewer и ограничиваешь доступ к web панели любым удобным способом.

Настройка dialplan для работы с 2-мя серверами

Теперь нам нужно в диалплане на каждом из серверов указать, куда звонить по разным номерам. На сервере moscow укажем, что звонить по маскам 300 и 400 нужно в питер. Добавляем в extentions.conf правило перед основным правилом звонка на внутренние номера с маской _XXX.

exten => _XX,1,Dial(SIP/piter/${EXTEN},15,Tt)

И добавим контекст для приема входящих звонков с сервера piter

exten => _XXX,1,Dial(SIP/${EXTEN},15,Tt)

Делаем то же самое на сервере piter.

exten => _XX,1,Dial(SIP/moscow/${EXTEN},15,Tt)

Не забываем поменять маску. И добавляем контекст приема звонков с moscow.

exten => _XXX,1,Dial(SIP/${EXTEN},15,Tt)

Вот и все. Мы связали между собой 2 астериск сервера. Можно звонить друг другу, используя внутренние номера. Не забудьте перезагрузить план набора.

> dialplan reload

Можно проверять звонки. Не обязательно делать в точности, как я показал. У вас может быть по-другому организован диалплан. Можно в контекст для входящих заинклюдить ваш существующий контекст для внутренних звонков, например так.

include => office

Если у вас настроена запись звонков так же, как я рассказал в своей статье про настройку астериска, которую привел в начале, то не забудьте добавить запись по обоим направлениям. Примерно так для сервера moscow на исходящие.

exten => _XX,1,Macro(recording,${CALLERID(num)},${EXTEN})
exten => _XX,n,Dial(SIP/piter/${EXTEN},15,Tt)

И вот так на входящие:

exten => _XXX,1,Macro(recording,${CALLERID(num)},${EXTEN})
exten => _XXX,n,Dial(SIP/${EXTEN},15,Tt)

На этом все. Пример написал по горячим следам. Сегодня настраивал такую тему, конфиги взял с реальных серверов.

Если есть необходимость, то можно расширить эту конфигурацию и настроить звонки в Питер из Москвы через сервер piter, если там более выгодный тариф для локальных звонков. Для этого нужно добавить маски питерских номеров в dialplan на сервере moscow, а на сервере piter в контекст входящих звонков с moscow настроить набор через свой питерский транк.

Настройка dialplan для работы с 2-мя серверами

Теперь нам нужно в диалплане на каждом из серверов указать, куда звонить по разным номерам. На сервере moscow укажем, что звонить по маскам 300 и 400 нужно в питер. Добавляем в extentions.conf правило перед основным правилом звонка на внутренние номера с маской _XXX.

exten => _XX,1,Dial(SIP/piter/${EXTEN},15,Tt)

И добавим контекст для приема входящих звонков с сервера piter

exten => _XXX,1,Dial(SIP/${EXTEN},15,Tt)

Делаем то же самое на сервере piter.

exten => _XX,1,Dial(SIP/moscow/${EXTEN},15,Tt)

Не забываем поменять маску. И добавляем контекст приема звонков с moscow.

exten => _XXX,1,Dial(SIP/${EXTEN},15,Tt)

Вот и все. Мы связали между собой 2 астериск сервера. Можно звонить друг другу, используя внутренние номера. Не забудьте перезагрузить план набора.

> dialplan reload

Можно проверять звонки. Не обязательно делать в точности, как я показал. У вас может быть по-другому организован диалплан. Можно в контекст для входящих заинклюдить ваш существующий контекст для внутренних звонков, например так.

include => office

Если у вас настроена запись звонков так же, как я рассказал в своей статье про настройку астериска, которую привел в начале, то не забудьте добавить запись по обоим направлениям. Примерно так для сервера moscow на исходящие.

exten => _XX,1,Macro(recording,${CALLERID(num)},${EXTEN})
exten => _XX,n,Dial(SIP/piter/${EXTEN},15,Tt)

И вот так на входящие:

exten => _XXX,1,Macro(recording,${CALLERID(num)},${EXTEN})
exten => _XXX,n,Dial(SIP/${EXTEN},15,Tt)

На этом все. Пример написал по горячим следам. Сегодня настраивал такую тему, конфиги взял с реальных серверов.

Если есть необходимость, то можно расширить эту конфигурацию и настроить звонки в Питер из Москвы через сервер piter, если там более выгодный тариф для локальных звонков. Для этого нужно добавить маски питерских номеров в dialplan на сервере moscow, а на сервере piter в контекст входящих звонков с moscow настроить набор через свой питерский транк.

Другие материалы по asterisk:

Онлайн курс «DevOps практики и инструменты»

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

Проверьте себя на вступительном тесте и смотрите программу детальнее по .

  • Установка и настройка астериск с нуля
  • Мониторинг asterisk в zabbix
  • Соединение двух серверов астериск
  • Анализ SIP трафика
  • Замена +7 на 8 и наоборот
  • Ограничение на звонки для группы номеров

Настройка IAX канала.

IAX

  • Настройте Asterisk сервера с обеих сторон в файле конфигурации in iax.conf, один, как peer, а другой — как user.
  • Настройте план набора в файле extensions.conf для сервера с пользователем типом user так, чтобы можно было принимать вызовы с другова сервера от пользователя с типом peer.
  • Не обязательно, зарегистрируйте пользователя с типом peer, на сервере с пользователем типом user (для случаев, когда, например, сервер с пользователем типа peer имеет динамический ip адрес, который неизвестен второй стороне.)
  • Повторите вышеуказанные шаги, поменяв местами сервер A и B (добавив пользователей, поменяв местами тип peer и user), если вы хотите совершать вызовы в обоих направлениях.

Определение пользователя IAX2 типа peer.

peer type=peer host=hostname.domain.tld (или «dynamic, при этом требуется указать команду «register» для пользователя типа user.) auth=md5 secret=secretword ; избыточно, если включено в состав команды Dial

username=username-at-the-peer ; избыточно, если включено в состав команды Dial.

Обратите внимание:

  • тип type=user — авторизирует входящий вызов.
  • тип type=peer — это кто-то, кто совершает исходящие вызовы.
  • type=friend — это, конечно, и то и другое.

Использование типа «type=friend» делает жизнь проще, но не долго. Если вы добавите одновременно: «type=friend» и «host=hostname@domain.ext», то этим вы ограничите одним хостом, число тех серверов, с которых эта учетная запись может принять вызов на обработку, что, возможно, совсем не то, что Вам нужно.
Asterisk IAX RSA авторизация

Установка Asterisk

Скачиваем архив последней версии Asterisk с официального сайта.

# cd ~ && wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

Распаковываем исходники.

# tar zxvf asterisk-*.tar.gz

Переходим в директорию с исходниками.

# cd asterisk*

Выполняем скрипт для установки пакетов с зависимостями для asterisk.

# contrib/scripts/install_prereq install

Запускаем скрипт для скачивания исходников для работы с mp3.

# contrib/scripts/get_mp3_source.sh

Настраиваем конфигурацию:

# ./configure --with-pjproject-bundled --with-jansson-bundled --with-crypto --with-ssl=ssl --with-srtp

Запускаем меню для выбора параметров:

make menuselect

В целом, можно оставить дефолтную настройку, если вы не очень разбираетесь, что тут выбирать. Более подробно можете посмотреть в моей статье про подробную настройку asterisk.

Можно запускать установку asterisk.

# make && make install && make config && make samples && ldconfig

Настроим запуск астериск от системного пользователя asterisk. Для этого редактируем скрипт запуска /usr/sbin/safe_asterisk, установив параметр.

ASTARGS="-U asterisk"

Можете то же самое сделать автоматически.

# sed -i 's/ASTARGS=""/ASTARGS="-U asterisk"/g' /usr/sbin/safe_asterisk

Создадим этого пользователя и назначим нужные права на каталоги.

# useradd -m asterisk
# chown asterisk.asterisk /var/run/asterisk
# chown -R asterisk.asterisk /etc/asterisk
# chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk
# chown -R asterisk.asterisk /usr/lib/asterisk

Запускаем Asterisk.

# systemctl start asterisk

Проверьте сразу, что он запустился.

# systemctl status asterisk

Если у вас будут ошибки:

radcli: rc_read_config: rc_read_config: can't open /etc/radiusclient-ng/radiusclient.conf: No such file or directory

То отредактируйте конфигурационные файлы asterisk, заменив в некоторых строках пути на правильные.

# sed -i 's";\"\"g' /etc/asterisk/cdr.conf
# sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cdr.conf
# sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cel.conf

После этого перезапустите asterisk, ошибок быть не должно.

Метод с использованием SIP протокола.

  • Сервер A — имеет статический IP адрес, сервер B — динамический IP адрес: Тогда для сервера B нужно прописать строку регистрации на сервере A в sip.conf.
  • Оба сервера имеют статические IP адреса: Тут нам вообще не нужна регистрация.
  • Оба сервера имеют динамические IP адреса: Тут есть одна хитрость, которую можно использовать, можно воспользоваться динамическим DNS сервисом, например, dyndns.org, для регистрации каждого сервера на другом. В любом случае, это не самое удачное решение, использовать динамические адреса для обоих серверов, т.к. при смене IP адреса, соединение может быть потеряно, до тех пор пока информация не обновиться на динамическом DNS сервере.
  • Оба сервера имеют доступ друг к другу через NAT: Не используйте SIP протокол, вместо этого попробуйте использовать IAX2.

Соединение планов набора.

Пример 1

extensions.conf:

exten => _7XXX,1,Dial(IAX2/myserver:passwordA@IAXserverA/${EXTEN:1},30,r)
exten => _7XXX,2,Dial(SIP/myserver:passwordA@SIPserverA/${EXTEN:1},30,r)
exten => _7XXX,3,Congestion

exten => _8XXX,1,Dial(IAX2/myserver:passwordB@IAXserverB/${EXTEN:1},30,r)
exten => _8XXX,2,Dial(SIP/myserver:passwordB@SIPserverB/${EXTEN:1},30,r)
exten => _8XXX,3,Congestion

Конечно, нам нужно вместо записей типа и т.д., указать те, что мы прописали в файлах iax.conf и sip.conf, чтобы все работало как нужно

В этом примере, SIP используется как резервный канал, в случае проблем соединения по IAX протоколу.
Обратите внимание, что в этом примере имя пользователя и пароль попадает в CDR записи (Вам возможно захочется использовать второй пример или использовать ключевые выражения вместо комбинаций имя пользователя/пароль)!. Пример 2

Пример 2

В этом примере в CDR записях не показывается поле username и secret.

(сервер A)
iax.conf

register => <username>:<password>@<имя или IP адрес сервера B>


type=friend
user=<username>
secret=<password>
host=<имя или IP адрес сервера B>

extensions.conf
exten => _7XXX,1,Dial(IAX2/serverB/${EXTEN:1},30,r)
exten => _7XXX,2,Congestion

(сервер B)
iax.conf

type=friend
user=<username>
secret=<password>
host=<dynamic> | <имя или IP адрес сервера A>

extensions.conf
exten => _8XXX,1,Dial(IAX2/serverA/${EXTEN:1},30,r)
exten => _8XXX,2,Congestion

В некоторых случаях, параметры serverA и serverB, должны содержать имя пользователя сервера.

Пример 3

С помощью объекта Switch в файле extensions.conf Вы можете соединить два сервера Asterisk и план набора другова сервера. В данном случае, наш «server C» или соединяется с «server A» или с «server B»:

exten => _801XXX,1,Goto,srvA|${EXTEN}|1
exten => _802XXX,1,Goto,srvB|${EXTEN}|1


exten => _801XXX,1,StripMSD,3
exten => _XXX,2,Goto,1
switch => IAX/serverA


exten => _802XXX,1,StripMSD,3
exten => _XXX,2,Goto,1
switch => IAX/serverB

Замечания: Вы не можете установить замкнутую цепочку, используя switch с serverA на serverB и с serverB на serverA! Также, обратите внимание на (новую) установку в файле iax.conf «autokill=», которая предотвращает длительное зависание, если удаленный сервер не работает или отсоединился.

Пример 4

В файле extensions.conf (на master):

switch => IAX2/master:secret@iax-gw1.company.net/outbound

В файле iax.conf (на master):

type=user
auth=plaintext
context=outbound
context=outbound2 ; (по вашему желанию, их может быть несколько)
secret=secret
host=dynamic
callerid="slave"
trunk=yes
notransfer=yes


type=peer
auth=plaintext
context=outbound-nuphone
secret=secret
host=dynamic
trunk=yes
notransfer=yes

В файле extensions.conf (на slave):

; Выберете механизм вызова, первый вызывает указанный екстеншен,
; второй вызывает специальный екстеншен - s.

;exten => 7046446999,1,Dial,IAX2/master@slave/${EXTEN}
;exten => 7046446999,1,Dial,IAX2/master@slave

В файле iax.conf (на slave):

register => slave:secret@iax-gw1.company.net


type=peer
host=iax-gw1.company.net
secret=secret
context=outbound
trunk=yes
canreinvite=no


type=user
secret=secret
context=acontext
trunk=yes
canreinvite=no

Команда register.

Когда ip адрес клиента типа user неизвестен, пользователь типа peer не знает, куда совершать вызов (например, при вызове из офиса сотрудника, который работает на дому, когда у него имеется только динамически назначаемый ip адрес или он находиться за NAT.) Для решения этой задачи, домашний работник активно регистрируется на сервере в офисе, предоставляя свои данные и местоположение в сети.

register => user:password@hostname.domain.ext

При этом непрерывно, через некоторые интервалы, будет обновляться информация о пользователе, и сервер всегда будет знать, как вызвать пользователя, даже если его IP адрес будет меняться.

~~socialite~~

Определение пользователя IAX2 типа user.

Пользователь, типа user — принимает вызовы. Следующие параметры необходимо указать в файле iax.conf на машине с пользователем типа user для проверки (авторизации) перед тем, как позволить ему нас вызвать.

type=user
auth=md5
secret=secretword
context=iax2users

Определение пользователя IAX2 типа peer.

Пользователь, типа peer совершает вызовы. Следующие параметры необходимо указать в файле iax.conf на машине с пользователем типа peer для своей идентификации (авторизации) на машине с пользователем типа user, перед тем, как совершить вызов.

type=peer
host=hostname.domain.tld (или "dynamic, при этом требуется указать команду 
"register" для пользователя типа user.)
auth=md5
secret=secretword ; избыточно, если включено в состав команды Dial.
username=username-at-the-peer ; избыточно, если включено в состав команды Dial.

Обратите внимание:

  • тип type=user — авторизирует входящий вызов.
  • тип type=peer — это кто-то, кто совершает исходящие вызовы.
  • type=friend — это, конечно, и то и другое.

Использование типа «type=friend» делает жизнь проще, но не долго. Если вы добавите одновременно: «type=friend» и «host=hostname@domain.ext», то этим вы ограничите одним хостом, число тех серверов, с которых эта учетная запись может принять вызов на обработку, что, возможно, совсем не то, что Вам нужно.

Для инструкций по поводу использования директивы «auth=rsa», см: Asterisk IAX RSA авторизация?.

Теперь, когда мы завершили шаги 1 и 2, осталось только настроить план набора. Прочитайте нижеприведенные примера, для того, чтобы понять, как это лучше сделать.

Метод с использованием SIP протокола.

Когда мы рассматриваем файл sip.conf, то возможно стоит начать с указания типа клиента, как type=friend, на обоих серверах, и, если при этом все начнет нормально работать, Вам, возможно, захочется разделить эту запись по типам: peer — для исходящих вызовов и user — для входящих вызовов

Также, стоит обратить внимание в файле sip.conf на параметры «insecure=very» («insecure=port,invite» в версии 1.4) и, возможно, на параметр: «autocreatepeer=yes».

  • Сервер A — имеет статический IP адрес, сервер B — динамический IP адрес: Тогда для сервера B нужно прописать строку регистрации на сервере A в sip.conf.
  • Оба сервера имеют статические IP адреса: Тут нам вообще не нужна регистрация.
  • Оба сервера имеют динамические IP адреса: Тут есть одна хитрость, которую можно использовать, можно воспользоваться динамическим DNS сервисом, например, dyndns.org, для регистрации каждого сервера на другом. В любом случае, это не самое удачное решение, использовать динамические адреса для обоих серверов, т.к. при смене IP адреса, соединение может быть потеряно, до тех пор пока информация не обновиться на динамическом DNS сервере.
  • Оба сервера имеют доступ друг к другу через NAT: Не используйте SIP протокол, вместо этого попробуйте использовать IAX2.

Редактируем sip.conf для соединения двух серверов

Идем на сервер moscow и добавляем в sip.conf новый пир, который будет использовать сервер piter для подключения.

type=friend
secret=password_p
context=piter-in
host=dynamic
qualify=300

Добавляем аналогичный пир на сервер piter.

type=friend
secret=password_m
context=moscow-in
host=dynamic
qualify=300

Добавляем на сервер moscow в sip.conf регистрацию на сервере piter в соответствии с настройками пира.

register => moscow:password_m@192.168.10.100/piter

В данном случае 192.168.10.100 — ip адрес сервера в Питере. То же самое делаем на сервере piter.

register => piter:password_p@192.168.20.100/moscow

192.168.20.100 — ip адрес астера в Москве. Делаем на обоих серверах sip reload и проверяем состояние пиров и регистраций.

> sip show peers
> sip show registry

Вы должны на каждом сервере увидеть новый подключившийся пир и выполненную регистрацию. Если этого нет, разбирайтесь, в чем может быть дело. Скорее всего проблемы с firewall. Настройте его и проверяйте снова. Серверы должны как минимум без проблем пинговать друг друга по ip. Если все порядке, то идем дальше.

Заключение

Мы установили оригинальную версию asterisk 13 на сервер под управлением debian 8 без каких-либо дополнений и web панелей. Дальше можно приступать к настройке. Я рекомендую воспользоваться моей инструкцией по базовой настройке asterisk с нуля. Там подробно рассказано как сконфигурировать основной функционал, который удовлетворит потребности в телефонии для среднестатистического офиса. Настройка включает в себя так же запись разговоров и подробную статистику звонков.

Онлайн курсы по Mikrotik

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте .

Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курсов:

  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.

Помогла статья? Подписывайся на telegram канал автора

Рекомендую полезные материалы по Debian:
Настройки системы
  • Установка
  • Базовая настройка
  • Настройка сети
  • Обновление 8 до 9
  • Обновление 7 до 8
  • Включение логов cron

Подробная установка Debian 9 Stratch с помощью графического инсталлятора со скриншотами и пояснениями к каждому пункту установщика.

Базовая настройка сервера Debian. Приведены практические советы по улучшению безопасности и удобства администрирования.

Подробное описание настройки сети в Debian — задать ip адрес, dhcp, отключить ipv6, dns, hostname, статические маршруты и др.

Обновление предыдущей версии Debian 8 Jessie до последней Debian 9 Stratch. Подробная инструкция с описанием по каждому этапу обновления.

Обновление версии Debian 7 wheezy до Debian 8 Jessie. Подробная инструкция с описанием по каждому этапу обновления.

Включение записи логов cron в Debian в отдельный файл и настройка ротации этого файла. Отключение логов в syslog.

Настройка программных комплексов
 
  • Proxmox
  • Шлюз в интернет
  • Установка Asterisk
  • Asterisk+Freepbx
  • PostgreSQL для 1С
  • Настройка pptp

Подробное описание установки гипервизора proxmox на raid1 mdadm на базе операционной системы Debian 8. Приведены практические советы по настройке.

Настройка интернет шлюза на Debian. Включает в себя настройку iptables, nat, dhcp, dns, iftop.

Чистая установка Asterisk 13 на сервер под управлением Debian 8. Никаких дополнений и GUI, только vanilla asterisk.

Установка Freepbx 12 и Asterisk 13 на сервер под управлением Debian/Ubuntu. Подробное описание и разбор ошибок установки.

Рассказ об установке и небольшой настройке сервера бд postgresql для работы с базами 1С. Задача не сложная, но есть небольшие нюансы как по настройке, так и по выбору дистрибутива.

Описание установки и настройки pptp сервера в Debian с передачей статических маршрутов клиенту для организации доступа к ресурсам сети.

Разное
  • Бэкап с помощью rsync
  • Тюнинг postgresl для 1C

Подробное описание настройки бэкапа с помощью rsync на примере скрипта инкрементного архива на системе Centos, Debian, Ubuntu, Windows.

Ускорение работы 1С с postgresql и диагностика проблем производительности

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: