Установка и настройка Asterisk под iD Phone (iDPhone)

в 12:33, , рубрики: Без рубрики

Установка и настройка Asterisk под iD Phone (iDPhone)

В данной инструкции описано как с нуля установить и произвести первоначальную настройку компьютерной телефонии на базе «Asterisk» с подключением к услуге «iD Phone» компании «Казахтелеком».

Некоторые идеи я почерпнул из этой статьи: http://habrahabr.ru/post/198684/ (большое спасибо автору за это), но:

  • во-первых, по указанной инструкции система у меня не заработала;
  • во-вторых, не со всеми решениями в ней я согласен;
  • в-третьих, мы будем настраивать не «Elastix», а «AsteriskNow»;
  • в-четвертых, я постарался написать инструкцию максимально подробной — для людей мало разбирающихся в Linux-системах и в «Asterisk» (каковым я и сам являюсь).

Дано:

  1. Операционная система будет установлена с нуля. Использован будет дистрибутив «AsteriskNOW» — это операционная система «CentOS» с предустановленным программным обеспечением «Asterisk» и веб-интерфейсом для его управления «FreePBX». Другими словами в данной инструкции отсутствует блок, в котором была бы описана установка «Asterisk» на уже развернутой Linux-системе.
  2. «Казахтелеком» предоставляет услугу «iD Phone» не через Интернет, а подключая абонентов к своей специальной SIP-сети. Физически, конечно, это чаще всего один канал (ADSL или оптика) вместе с Интернет и/или «iD TV». Роутер же отдает предоставляемые услуги на разные порты. Считаем, что у нас уже есть настроенный роутер, который с одного порта отдает Интернет, а с другого — «iD Phone».
  3. Компьютер имеет две сетевых карты: одна из них смотрит в Интернет, другая — в SIP-сеть «Казахтелекома».

Задача:
Получить работающую IP-АТС, имеющую доступ в Интернет.

Решение:

Скачиваем «AsteriskNOW» отсюда: http://www.asterisk.org/downloads

Устанавливаем «AsteriskNOW»:

Скриншоты установки AsteriskNOW

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Входим в систему под пользователем root и паролем, который задали при установке.

Для редактирования файлов я использую файловый менеджер Midnight Commander. Для его установки необходимо дать следующую команду:

yum install mc

Эта команда сработает, если ваш компьютер уже получил доступ к Интернету. Это может не произойти по причинам описанным ниже. Тогда можно временно отключить сетевой кабель от интерфейса, который смотрит в SIP-сеть «Казахтелекома».
Соглашаемся на всё. Когда понадобиться отредактировать какой-нибудь файл, запускаем Midnight Commander командой:

mc

Проверяем, что работают оба сетевых интерфейса. Даем команду:

ifconfig

У меня такой вывод:

Вывод команды ifconfig по одному интерфейсу


eth0      Link encap:Ethernet  HWaddr 00:15:5D:7B:4F:18
          inet addr:192.168.0.52  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::215:5dff:fe7b:4f18/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5695 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3363 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:7623500 (7.2 MiB)  TX bytes:241151 (235.4 KiB)
          Interrupt:9 Base address:0xc000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Это обозначает, что активен только один интерфейс. Активируем второй интерфейс. Для этого необходимо отредактировать файл "/etc/sysconfig/network-scripts/ifcfg-eth1". Значение параметра ONBOOT необходимо изменить с «no» на «yes».
Даем команду на перезапуск сетевых интерфейсов:

service network restart

Еще раз даем команду:

ifconfig

И получаем уже новый вывод:

Вывод команды ifconfig по двум интерфейсам


eth0      Link encap:Ethernet  HWaddr 00:15:5D:7B:4F:18
          inet addr:192.168.0.52  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::215:5dff:fe7b:4f18/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5981 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3503 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:7646872 (7.2 MiB)  TX bytes:281444 (274.8 KiB)
          Interrupt:9 Base address:0xc000

eth1      Link encap:Ethernet  HWaddr 00:15:5D:7B:4F:19
          inet addr:10.2.X.X  Bcast:255.255.255.255  Mask:255.255.255.0
          inet6 addr: fe80::215:5dff:fe7b:4f19/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:684 (684.0 b)  TX bytes:4379 (4.2 KiB)
          Interrupt:9 Base address:0xe000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Теперь видно, что активировались оба интерфейса. Разберемся, который из них куда смотрит.
eth0 получил адрес из подсети 192.168.0.X — это интерфейс, который смотрит в Интернет. Именно из этой подсети раздает адреса DHCP-сервер роутера.
eth1 получил адрес из подсети 10.X.X.X — это интерфейс, который смотрит в SIP-сеть «Казахтелекома». Именно из этой подсети раздает адреса DHCP-сервер «Казахтелекома».

А вот теперь мы приблизились к проблеме, которая мешает одновременному функционированию доступа к Интернету и к SIP-сети «Казахтелекома». Дело в том, что на первый интерфейс у нас назначен шлюз по умолчанию 192.168.0.1 (IP-адрес роутера). Но вместе с получением IP-адреса на второй интерфейс от DHCP-сервера «Казахтелекома» приходит адрес шлюза, который перебивает установленный на первом интерфейсе. После этого весь Интернет-трафик начинает идти в SIP-сеть «Казахтелекома». Для устранения этой проблемы заставим второй интерфейс получать от DHCP-сервера только те параметры, которые не помешают работе первого интерфейса. Для этого создаем файл /etc/dhclient-eth1.conf — это конфигурационной файл DHCP-клиента. В файл необходимо добавить следующие строки:

reject 192.168.0.1;
send host-name "asterisk";
request subnet-mask, broadcast-address, time-offset, host-name;

По поводу первой строки. Была у меня проблема с одним из роутеров D-Link — даже при отключенном DHCP-сервере роутер присваивал адрес на интерфейс, подключенный к SIP-сети «Казахтелекома». Первая строка конфигурационного файла запрещает интерфейсу eth1 получать IP-адрес от DHCP-сервера с адреса 192.168.0.1.
Итак, мы добились того, что шлюзом по умолчанию остается роутер. Это решение порождает другую проблему — часть трафика телефонии должна была бы уходить в SIP-сеть, но будет уходить в Интернет. Для нормального функционирования телефонии необходимо, чтобы в интерфейс SIP-сети уходил не только трафик, имеющий назначением подсеть 10.2.X.Х (в моем случае), а весь трафик для подсети 10.Х.Х.Х. Для этого создаем файл /etc/sysconfig/network-scripts/route-eth1 и добавляем в него следующую строку:

10.0.0.0/8 dev eth1

Настраиваем статический IP-адрес на интерфейсе, который смотрит в Интернет, и по совместительству в локальную сеть, где в будущем будут развернуты SIP-клиенты нашей IP-АТС. Для этого даем команду:

system-config-network

Скриншоты настройки статического IP-адреса

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Даем команду на перезапуск сетевых интерфейсов:

service network restart

В дальнейшей настройки нашей IP-АТС мы будем неоднократно обращаться к имени SIP-сервера «Казахтелекома»: sip.telecom.kz. При текущей настройке нашего компьютера это имя разрешается в белый IP-адрес 92.46.61.21. Нам необходимо добиться того, чтобы это имя разрешалось в IP-адрес SIP-сети «Казахтелекома».
Сначала необходимо узнать внутренний IP-адрес сервера, который определен для вашего региона. Для этого открываем следующую страницу: http://idphone.kz/?page_id=1010. На ней есть таблица адресов Outbound Proxy при настройке услуги iD Phone через pvc 0/41. Именно в ней ищем необходимый нам адрес.
На всякий случай процитирую эту таблицу здесь:

Актау 10.0.0.44
Актобе 10.0.0.36
Алматытелеком 10.0.0.12
Астанателеком 10.0.0.20
Атырау 10.0.0.28
Караганда 10.0.0.148
Кокшетау 10.0.0.140
Костанай 10.0.0.129
Кызылорда 10.0.0.60
Павлодар 10.0.0.108
Петропавловск 10.0.0.116
Семей 10.0.0.92
Шымкент 10.0.0.68
Талды-Корган 10.0.0.84
Тараз 10.0.0.76
Уральск 10.0.0.52
Усть-Каменогорск 10.0.0.100
Жезказган 10.0.0.156

Теперь добавляем в файл /etc/hosts такую строку:

10.0.0.116 sip.telecom.kz

Это для Петропавловска (мой случай). Замените адрес 10.0.0.116 на соответствующий вашему региону.

Убеждаемся, что все работает правильно. Даем команду:

ping 8.8.8.8

Если пинг идет, значит компьютер имеет доступ к Интернету.
Даем команду:

ping ya.ru

Если имя разрешилось, значит DNS-работает корректно.
Даем команду:

ping 10.0.0.1

Если пинг идет, значит компьютер имеет доступ к SIP-сети «Казахтелекома». На момент написания статьи в «Казахтелекомовской» сети пинговались адреса 10.0.0.1, 10.0.0.2, 10.0.0.3. Но, на самом деле отсутствие пинга не может 100% говорить о том, что у вас проблемы с настройкой. Дело в том, что «Казахтелеком» может в любой момент закрыть пинг на своих серверах. Например, адрес 10.0.0.116 на момент написания статьи не пинговался.
Даем команду:

ping sip.telecom.kz

Если имя разрешается в тот адрес, что задали в файле /etc/hosts, значит настройка этого момента произведена верно. Как написано выше, пинг на sip.telecom.kz может не идти.

Произведем обновление модулей операционной системы. Для этого даем команду:

yum update

На все вопросы системы соглашаемся.

Мы закончили с настройкой операционной системы и теперь пришло время переходить к настройке «Asterisk». Для начала нам необходимо выяснить наши параметры подключения к SIP-серверу «Казахтелекома». Для этого идем в личный кабинет услуги «ID Phone»: https://cabinet.idphone.kz. Будьте внимательны: этот сайт открывается только для пользователей Интернета от «Казахтелекома». Т.е. если вы, например, счастливый пользователь проводного Интернета от «Билайна», то кабинет у вас не откроется.
В кабинете следуем к разделу с параметрами подключения:

Скриншоты пути до параметров подключения ID Phone

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Значения в полях «Линия/Порт» и «Логин» у меня одинаковые. У вас тоже, скорее всего, т.к. поля эти для редактирования закрыты. Договоримся в дальнейшем это значение называть <SIP-логин>. Ну, а значение из поля «Пароль» будем называть <SIP-пароль>.

Открываем веб-интерфейс управления «Asterisk», который называется «FreePBX». Для этого на любом компьютере в локальной сети открываем веб-обозреватель и в адресной строке набираем адрес, который присвоили «Asterisk». В нашем случае:

192.168.0.3

Идем настраивать транк, т.е. соединение между нашим «Asterisk» и SIP-сервером «Казахтелекома»:

Скриншоты пути до настроек транка

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Предустановленные параметры входа в админку: логин — admin, пароль — admin:
Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

Установка и настройка Asterisk под iD Phone (iDPhone)

В раздел «опции для PEER» вставляем следующий текст:

type=friend
username=<SIP-логин>
secret=<SIP-пароль>
host=sip.telecom.kz
nat=no
fromuser=<SIP-логин>
fromdomain=sip.telecom.kz
dtmfmode=rfc2833
insecure=very
canreinvite=no
qualify=no
disallow=all
allow=alaw

В раздел «опции USER» вставляем следующий текст:

fromuser=<SIP-логин>
canreinvite=no
secret=<SIP-пароль>
type=user
context=from-trunk

Поле «Строка регистрации» заполняем следующей строкой:

<SIP-логин>:<SIP-пароль>@sip.telecom.kz/502000

Остальные поля я заполняю значением телефонного номера и производными от него:
Установка и настройка Asterisk под iD Phone (iDPhone)
Жмем большую красную кнопку «Apply Config» (не забываем ее жать каждый раз, как она появляется — без этого наши настройки не заработают):

Скриншот c большой красной кнопкой

Установка и настройка Asterisk под iD Phone (iDPhone)

Проверяем в консоли операционной системы, что транк зарегистрировался. Для этого сначала надо попасть в интерфейс командной строки «Asterisk». Набираем:

asterisk -r

Далее набираем:

sip show registry

Должен отобразиться наш транк и его состояние должно быть Registered. Вот пример моего вывода:

Вывод команд


[root@asterisk ~]# asterisk -r
Privilege escalation protection disabled!
See https://wiki.asterisk.org/wiki/x/1gKfAQ for more details.
Asterisk 11.6.1, Copyright (C) 1999 - 2013 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 11.6.1 currently running on asterisk (pid = 1607)
asterisk*CLI> sip show registry
Host                                    dnsmgr Username       Refresh State                Reg.Time
sip.telecom.kz:5060                     N      XXXXXXXXX           85 Registered           Sun, 22 Dec 2013 13:53:45
1 SIP registrations.

Создаем исходящую маршрутизацию (объясняем системе, что делать, когда кто-то из пользователей АТС пытается позвонить наружу):

Скриншот пути до настроек исходящего маршрута

Установка и настройка Asterisk под iD Phone (iDPhone)

В настройке исходящего маршрута необходимо указать:

  • его название («outside», например);
  • шаблон номера, по которому будет срабатывать этот маршрут (шаблон «9|.» обозначает, что все номера, которые начинаются на «9» будут отработаны этим маршрутом, при этом девятка будет убрана из номера, когда номер пойдет в транк);
  • транк, который мы создали ранее, и в который мы хотим отправлять все наши звонки («502000»).

Установка и настройка Asterisk под iD Phone (iDPhone)

Создаем внутренний номер:

Скриншоты пути до настроек внутреннего номера

Установка и настройка Asterisk под iD Phone (iDPhone)
Установка и настройка Asterisk под iD Phone (iDPhone)

В настройках внутреннего номер необходимо указать:

  • сам номер (например, «101»);
  • как будет отображаться звонящий с этого номера на экране (например, так же «101»);
  • пароль внутреннего номера (минимум 6 символов, минимум две буквы, минимум две цифры — например, «pwd101»).

Установка и настройка Asterisk под iD Phone (iDPhone)

Создаем входящую маршрутизацию (объясняем системе, что делать, когда снаружи кто-то позвонит на наш транк):

Скриншот пути до настроек входящего маршрута

Установка и настройка Asterisk под iD Phone (iDPhone)

В настройках входящего маршрута необходимо указать:

  • его описание (например, «inside»);
  • куда отправлять входящий звонок (в нашем случае отправляем на внутренний номер «101»).

Установка и настройка Asterisk под iD Phone (iDPhone)

Ну вот мы и закончили настраивать нашу АТС. Пришло время проверить, как все работает. Для этого установим софт-фон и зарегистрируемся на нашей АТС за внутренним номером «101».
Качаем «X-lite» отсюда http://www.counterpath.com/x-lite-for-windows-download.html. Устанавливаем на одном из компьютеров локальной сети.

Настраиваем «X-lite»:

Скриншот пути до настроек X-lite

Установка и настройка Asterisk под iD Phone (iDPhone)

В настройках аккаунта указываем:

  • внутренний номер, за которым мы хотим зарегистрироваться (в нашем случае «101»);
  • адрес IP-АТС в локальной сети (в нашем случае «192.168.0.3»);
  • пароль внутреннего номера (в нашем случае «pwd101»).

Установка и настройка Asterisk под iD Phone (iDPhone)

Если мы все сделали правильно, то в статусе софт-фона появится «Available»:

Скриншот подключенного X-lite

Установка и настройка Asterisk под iD Phone (iDPhone)

А вот теперь действительно все! Пробуем позвонить с софт-фона в город, а потом с города, на наш номер «ID Phone».

Автор: MaxTarasov

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js