Asterisk - программная АТС, если говорить коротко. Описывать возможности и историю не буду, если вы тут, значит уже в курсе.
Установка
Настройка
- sip.conf
Настраивая клиентские приложения по протоколу SIP, вам нужно куда-то присоединится. Поэтому в Asterisk в sip.conf нужно завести этих клиентов. Например:
1
|
|
составляем шаблон, чтобы не писать одно и то же многократно. Восклицательный знак даст системе понять, что это только шаблон, не более.
1 2 3 4 5 6 |
|
создаём номер 1000 в сети, пароль к нему и добавляем уже созданный шаблон
1 2 |
|
АТС без выхода на внешнего провайдера - редкое явление. Поэтому добавим выход на примере sipnet.ru
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
Замените данные своими и всё должно работать, конфиг привёл с собственного сервера.
- Extension.conf
Конечно, без диал-плана работать это не будет. Вот пример:
1 2 3 |
|
на номер 1000 придёт внешнее сообщение по-умолчанию (если настроен на входящие от того же sipnet)
1 2 3 |
|
в данном случае разрешаем выход вне, если телефон начинается с 7 или 8 и содержит 11 цифр (например, звонок на мобильный)
1 2 3 4 |
|
разговоры внутри сети тоже нужно обозначить. m во второй строке намекнёт на проигрывание музыки из 3 строчки, в 3 строке пропишите путь к своей музыке. В 4 строке указано, что если номер занят или не отвечает, отправляем звонок на номер 1000
1 2 3 4 5 6 7 |
|
пример вызова системных функций. В данном случае мы просто отправили сообщение по почте, но что мешает перегружать сервисы, например?
1
|
|
в этих строках указываем, что номера с контекстом phones (из sip.conf), будут доступны диалпланы интернал и аутгоинг
1 2 3 |
|
Соответствие
X соответствует любому числу от 0 до 9
Z соответствует любому числу от 1 до 9
N соответствует любому числу от 2 до 9
[1237-9] соответствует любому числу или диапазону чисел, которые заключены в квадратные скобки (в данном случае: 1,2,3,7,8,9)
. специальный символ, соответствует одному или более символов (не только цифрам)
! специальный символ, соответствует отсутствию, одному или более символов (не только цифрам)
modules.conf
Asterisk - просто классное приложение в плане работы с разными устройствами. Но если их нет, зачем для них грузить модули? Ведь чем больше кода, тем больше шансов попасть на ошибку, к тому же больше расходуется память. Отключаем ненужное, вот мой список:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
|
Прослушка разговоров
Иногда нужно параллельно слышать разговор или принять в нём участие. Сделаем пару примеров, как это возможно. В данном случае мы указали номера 666 на прослушку и 667 на участие. EXTEN:3 как раз покажет, что нужно звонить на номер, не используя 666 или 667. итак, добавляем в extension.conf:
1 2 3 4 5 6 |
|
Звоним на 6661000 и сможем слышать то, о чём говорят на 1000 номере…
Звонки с добавлением внутреннего номера
Ситуация не совсем приятная, но…. Итак, нужно с обычной АТС постепенно перейти на Asterisk. Подключиться к АТС по SIP нет возможности. Но в наличии шлюз CISCO SPA100. Аналоговый его порт подключаем к АТС, его самого вешаем на номер 500. Всё, что нужно, это чтобы при наборе внутреннего трёхзначного номера мы попадали на этот номер на АТС без всяких добавочных номеров. Решить это можно, передав код через наш шлюз. Диалплан в таком случае будет выглядеть примерно так:
1 2 3 |
|
Подключаем chan_dongle на примере ubuntu
Ставим нужные пакеты, иначе не соберётся
1
|
|
Идём в темп
1
|
|
Скачиваем свежую версию
1
|
|
Разархивируем
1
|
|
Переходим в папку и собираем
1 2 3 |
|
Копируем конфиг
1
|
|
И редактируем его по своему усмотрению.
При отключении интернета клиенты из локальной сети так же отваливаются
Тут эта ошибка из-за вопросов с DNS (хотя казалось бы причём тут это?). Для начала закоментируйте register в sip.conf и можно увидеть, что клиенты стали цепляться. Решить можно так:
Поднять DNS в локальной сети, если его нет (dnsmasq или Bind)
указать в /etc/hosts nameserver и ваши DNS
Прозвон идёт, но нет гудка
Можно подставить гудок (ложный), добавив r. Например:
1
|
|
Дампим траффик
1
|
|