Меня всегда пугала классическая телефония. Это словно какое-то тайное знание. Передаётся оно только из уст в уста, от учителя ученику. И несмотря на все попытки держаться от неё подальше, волею судеб меня кинуло всем телом на амбразуру АТС, E1, и прочих там CO-транков.



Прежде я уже писал о настройке АТС IP Office 500. С тех пор много тайм-слотов освобождено и передо мной встала новая задача: настроить транк между двумя АТС (Definity и IP Office) и сделать возможными городские звонки через этот транзит.
Заинтересованных в тайном знании прошу

АТС Avaya Definity наша старая постоялица с доброй сотней номеров для трёх организаций холдинга. До сих пор мне удавалось отделаться лишь добавлением новых внутренних номеров и сменой порядка следования вызова.
АТС была подключена через составной канал с двумя преобразованиями Ethernet-E1. Кроме сложной настройки такого соединения и непрозрачной логики, это вызывало ряд трудностей и проблем.
1) Весьма долгое время ожидания соединения с абонентом.
2) Наличие всего 12 тайм-слотов в потоке и соответственно лишь 12 возможных одновременных звонков. Это связано с характеристиками маршрутизатора cisco, осуществляющего транзит.
3) При падении канала, кроме локальной сети, перестаёт работать и телефония.
4) Сложный процесс отладки и большое число узлов отказа.

Но не так давно потребовалось приобрести для ещё одной организации IP Office и из финансово-технических соображение решено было подключать его транком к Definity. Кроме того, это даёт возможность гипотетически настроить единый номерной план для всех организаций холдинга.
Одновременно с этим было решено переключить эту АТС но новый поток, а старый транзит оставить лишь для местной телефонии.

Итак, конечная схема будет выглядеть следующим образом:



И настройка, фактически будет производиться с нуля. Так пройдём этот путь вместе, коллеги?

I


Начнём с подключения к оператору.
Первое, что нам необходимо сделать — это поставить платы E1 в АТС Definity. Она поддерживает горячую замену, так что проверив, положение dip-переключателей, можно смело втыкать их в работающую станцию.

Dip-переключателя два. Одним из них мы указываем тип физической линии: коаксиал или витая пара. Как правило, это всё-таки витая пара и поэтому выбираем 120 Ом.
Второй указывает стандарт работы E1/T1, соответственно 32/24 канала. Разумеется, в России используется E1 — 32 канала.

Мы забираем у оператора два потока, соответственно нужны 2 платы. Сразу после того, как платы заняли место в своих слотах через Avaya Terminal Emulator командой #list conf all можно проконтролировать, что АТС увидела их:



На этом этапе можно произвести физическое подключение. Независимо от того, какая стоит плата: цифровые или аналоговые порты на 24 линии, E1 с четырьмя проводами или Ethernet, разъём универсален: 50-пиновый. Я называю его амфенол, хотя не уверен, что этот термин не означает только телефонный разъём.
Для E1 используются пара 23,48 для передачи и 22,47 для приёма. Это легко можно проверить, подключив светодиод к парам Tx — передачи. Нужно подключить передачу оператора на наш приём и наоборот: нашу передачу на их приём.



Следующий шаг — добавить интерфейс ds1.

#add ds1 xxx со следующими параметрами



xxx — номер платы, в нашем случае это 01b06
Возможно потребуется выполнить #ch sync, если настраивается АТС впервые.
Поскольку мы подключаемся к оператору, то, скорее всего, в параметре Connect следует указать network. А вообще следует, конечно, узнать все эти параметры у оператора.
Если на этом этапе всё сделано верно, то команда #test board xxx, где xxx — номер платы, должна вернуть PASS по всем тестам. FAIL на тесте 138 означает отсутсвие сигнала на приёме.

Как вы знаете, 16-й тайм-слот E1 используется для сигнализации, потому следующим шагом является настройка сигнальной группы.
#add sig next



Последние две цифры Primary D-Channel — номер тайм-слота в потоке.
Avaya тут не требует указывать номер транк-группы (тем более его у нас ещё пока нет). Но лучше это всё-таки сделать во избежании различных проблем (параметр Trunk Group for Channel Selection)

Проверяем статус сигнальной группы следующими командами.
#test sig x
Тесты должны выдать результат PASS или ABORT. ABORT не является признаком проблемы, а лишь говорит о неприменимости этого теста. Если результат теста FAIL с большой долей вероятности можно сказать, что дело в настройках Connect — например на обеих станциях стоит Network или Line-side
#status sig x
Сигнальная группа должна иметь статус in-service

Теперь всё готово для того чтобы настроить транковую группу, которая и будет использоваться для передачи звонков.
Но сначала нужно проверить ваш номерной план. В нём должна быть задана цифра dac.
#disp dial



В нашем случае это номер, начинающийся на 7 и состоящий из 3 цифр.
Именно такой номер нужно указывать на первой странице команды #add trunk next



Важные параметры подчёркнуты
Начиная с 4-й страницы здесь указываются используемые в транке тайм-слоты. Это довольно гибкий механизм: можно в одном потоке сделать несколько транков, разбив поток, а можно несколько потоков объединить в один транк. У нас как раз второй случай, поскольку возможно до 50 одновременных вызовов. Поэтому в одну транковую группу я добавляю все 60 тайм-слотов двух потоков E1, за исключением служебных 16 и 32.



Итак, теперь у нас уже есть полноценная связь с оператором, осталось принять от него городские номера, а так же указать, каким образом наши внутренние номера будут звонить в город.

II


Начнём пожалуй с исходящих номеров.
Вот что нам для этого нужно сделать.
Во-первых, создать route-pattern. С его помощью мы зададим куда и по каким правила будет перенаправлен вызов.
Поскольку подключение к оператору, это фактически маршрут «по-умолчанию» для наших звонков, ничего хитрить не будем:



Теперь коснёмся очень важного элемента настройки: алгоритм маршрутизации ARS — Automatic Route Selection.
Настраивается он двумя командами: #ch ars analisys и #ch ars digit.

В моём случае вывод команды #ch ars analisys выглядит так:



По сути это означает, что все звонки с вызываемыми номерами, удовлетворяющими следующим шаблонам необходимо отправлять в route-pattern 2, который суть транковая группа 4, как мы настроили выше.

Команда #ch isdn public поможет настроить правила соответствия внутренних номеров городским, иными словами АОН.



Данная запись означает, что для всех трёхзначных внутренних номеров, начинающихся на 1, городским номером будет 2390013 и отправляться это будет в транковую группу 4, а для номера 102 будет отдельный номер 2390012
Вообще-то номера шестизначные и «2» здесь указана, потому что в таком формате номер ожидает оператор, это так же следует заранее уточнить у представителей.
Если здесь указать неверный номер или неверную транковую группу, вызов будет отклонён.

Если АТС настраивается впервые, то нужно ещё указать в номерном плане код доступа к алгоритму маршрутизации. Обычно это «9». Да-да, это та самая «девятка», которую постоянно приходится набирать, если вы используете АТС.



Собственно говоря, этих настроек уже будет достаточно для осуществления исходящего вызова.

III


Со входящими номерами чуточку посложнее.
Первое, что необходимо сделать, это задать в настройках транковой группы, что к номеру набранного телефона (именно городскому) добавляется префикс «9*». То есть набрал кто-то номер 390045, по маршрутам оператора, этот номер приходит на нашу АТС в транковую группу номер 4, а здесь указано, что к номеру нужно добавить символы «9*». «9» говорит о том, что вызов нужно отправить в алгоритм маршрутизации. Правило маршрутизации мы настроем чуть позже.
Делается это на третьей странице #ch trunk



В настройке транковой группы можно задать что это происходит со всеми входящими, а можно задать конкретные шаблоны номеров, как это сделано у меня (шестизначные номера, начинающиеся на 390, 396, 680).
Далее мы настраиваем алгоритм маршрутизации для входящих вызовов. Делается это командой #ch ars digit



Вначале не забыта «*», далее мы указываем, что из 7 символов номера мы удаляем все 7 и вставляем 3 цифры номера внутреннего и отправляем это сразу на extention, то есть телефон. В итоге получается, что звонок, пришедший на номер 390013 перенаправляется на внутренний 110.
Теперь можно осуществлять и входящие вызовы.

IV


Что ж, осталось научиться пропускать звонки через транковую группу на IPO500.
Физически подключается всё очень просто. Пары на Definity те же самые, на IPO это 9-й и/или 10-й порты 1,2-4,5. Разумеется, подключаем приём на передачу.
До момента настройки маршрутизации всё делается аналогично с поправками на номер платы, количество тайм-слотов и порядковые номера параметров. Необходимо указать лишь на одно отличие: в настройках DS1 указываем не network, а line-side.

IPO

Как настраивается IPO, можно узнать из моей предыдущей статьи, здесь приведу лишь скриншот страницы настройки:




Если всё настроено правильно, то индикатор на плате Е1 в Definity должен пожелтеть, а на IP Office позеленеть:



Кроме того, на IPO сразу настроим входящие вызовы:





И исходящие. Тут опять же помним, что номер нужно указывать в том формате, в котором его ждёт оператор.





Этих настроек на IP Office достаточно.

Теперь хитрим с Definity

Поскольку у нас теперь несколько транков, то нужно придумать некий идентификатор нового транка, который одновременно будет являться префиксом для городских номеров, определяющим, в какой route-pattern его нужно засунуть. Возьмём, например префикс «10». То есть звонок, приходящий на номер 680053 будет обработан алгоритмом маршрутизации и номер изменён на 10680053.
Естественно, нужно добавить новый route-pattern, в котором настроем новую транковую группу, а также удаление двух символов — тот самый префикс, чтобы номер дошёл до IPO девственно чистым.



Следующим макаром мы добавим префикс и обработаем звонок:





Вуаля:



Теперь скажу о том, во что упёрся лбом и сломал не одно копьё.
После всех настроек, исходящие вызовы никак не работали. На трейсах Definity по этому транку ничего видно не было. Трассировка на IP Office, показывает, что звонок отправляется в 1-ую линию с Outgoing Group ID 701, но в ответ приходит «Cause=34, No cct/chan available», что означает отсутствие свободных каналов для звонка. Долгая долгая безрезультатная отладка, но помог лишь совет друга. Оказывается, возвращаясь к тому, о чём я сказал в начале статьи, нужно настроить номер транковой группы в сигнальной группе. Именно в этом крылась вся проблема. Ситуацию осложняло то, что для других транков, настроенных на АТС, этот параметр не был указан.
За сим кончаю. Для скачивания ссылка