Получение цифрового голоса через канал E1

Когда ваш телефонный провайдер приводит к вам в офис одну или несколько аналоговых линий, то сразу более-менее понятно, что и как с ними нужно делать. Но если речь заходит о полном потоке E1 или его части, то у большинства администраторов опускаются руки. Хотя всё не так сложно, как кажется на первый взгляд. Опишем всю процедуру создания телефонии в небольшом филиале с использованием оборудования компании Cisco Systems. Сразу бы хотелось бы обратить внимание на то, что здесь речь идёт именно о прямом выходе телефонии малого офиса в PSTN, а не о связи между офисами через сети передачи данных. Создание телефонии в офисе можно условно разделить на два этапа: создание внутренней телефонной сети и связь её с внешним миром. Для того чтобы у нас всё заработало, необходимо обладать маршрутизатором с голосовым и E1 модулями, коммутатором и несколькими IP-телефонами. В нашем распоряжении был маршрутизатор Cisco 2851, основные параметры которого представлены ниже (здесь и далее некоторые строки опущены). Жирным шрифтом выделены важные места, а курсивом – вводимые команды.

ATS_2851#sho ver

Cisco IOS Software, 2800 Software (C2800NM-SPSERVICESK9-M), Version 12.4(15)T4, RELEASE SOFTWARE (fc2)

Compiled Thu 13-Mar-08 03:04 by prod_rel_team

ROM: System Bootstrap, Version 12.4(13r)T, RELEASE SOFTWARE (fc1)

Cisco 2851 (revision 53.51) with 249856K/12288K bytes of memory.

Processor board ID FCZ120670M0

4 FastEthernet interfaces

2 Gigabit Ethernet interfaces

16 Serial interfaces

2 Channelized E1/PRI ports

8 Voice FXS interfaces

DRAM configuration is 64 bits wide with parity enabled.

239K bytes of non-volatile configuration memory.

62720K bytes of ATA CompactFlash (Read/Write)

ATS _2851#sho controllers e1

E1 0/2/0 is up.

Applique type is Channelized E1 - balanced

No alarms detected.

alarm-trigger is not set

Version info Firmware: 20071011, FPGA: 13, spm_count = 0

Framing is CRC4, Line Code is HDB3, Clock Source is Free Running.

CRC Threshold is 320. Reported from firmware is 320.

Data in current interval (153 seconds elapsed):

0 Line Code Violations, 0 Path Code Violations

7 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins

7 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs

Total Data (last 24 hours)

0 Line Code Violations, 7 Path Code Violations,

3265 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins,

3265 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 33 Unavail Secs

Кроме маршрутизатора был использован коммутатор Cisco Catalyst 3560, параметры которого приведены далее.

PhonesSwitch_3560#sho ver

Cisco IOS Software, C3560 Software (C3560-IPBASE-M), Version 12.2(35)SE5, RELEASE SOFTWARE (fc1)

cisco WS-C3560-24PS (PowerPC405) processor (revision R0) with 122880K/8184K bytes of memory.

Processor board ID FDO1225X12E

1 Virtual Ethernet interface

24 FastEthernet interfaces

2 Gigabit Ethernet interfaces

512K bytes of flash-simulated non-volatile configuration memory.

Model number : WS-C3560-24PS-S

Switch Ports Model SW Version SW Image

------ ----- ----- ---------- ----------

* 1 26 WS-C3560-24PS 12.2(35)SE5 C3560-IPBASE-M

PhonesSwitch_3560#

На столы офисных работников были установлены телефонные аппараты Cisco 7906, 7940 и 7960.

Локальная сеть в офисе будет 192.168.1.0/24, для телефонов будем использовать адреса с 192.168.1.101 по 192.168.1.150. Теперь нам необходимо сконфигурировать DHCP-пул, адреса из которого будут выдаваться телефонным аппаратам. Хотелось бы подчеркнуть, что дополнительные опции (66, 128 и 150) нужны для указания телефонам на IP-адреса голосового шлюза.

ip dhcp pool DHCP_Phones

network 192.168.2.0 255.255.255.0

default-router 192.168.2.1

option 150 ip 192.168.2.1

option 66 ip 192.168.2.1

option 128 ip 192.168.2.1

Приведённые конфигурационные строки заставят маршрутизатор выдавать все адреса из нашей сети класса C. Чтобы ограничить доступный диапазон, исключим из пула диапазоны адресов 192.168.1.1-192.168.1.100 и 192.168.151-192.168.254 так, как это показано ниже.

ip dhcp excluded-address 192.168.1.1 192.168.1.100

ip dhcp excluded-address 192.168.151-192.168.254

Подключим теперь первый телефон к коммутатору к порту FastEthernet0/1. Убедиться в том, что линия поднялась можно либо с помощью соответствующего светового индикатора на передней панели коммутатора, либо из вывода команды sho int fa0/1.

PhonesSwitch_3560#sho int fa0/1

FastEthernet0/1 is up, line protocol is up (connected)

Далее нам необходимо выяснить его MAC-адрес.

PhonesSwitch_3560#sho cdp ne | incl 0/1

SEP001EF7C47496 Fas 0/1 154 H P IP Phone Port 1

PhonesSwitch_3560#sho mac-address-table | incl 0/1

1 001e.f7c4.7496 DYNAMIC Fa0/1

Для чего этот адрес канального уровня может потребоваться? Например, для жёсткой привязки MAC-IP в специфических случаях использования DHCP. Самое же важное в MAC-адресе телефона состоит в том, что этот адрес в дальнейшем будет использован при указании физического телефонного аппарата при настройке параметров телефонии. В том случае, когда устройство не может ответить по протоколу CDP, его аппаратный адрес можно выяснить, если просмотреть мостовую таблицу коммутатора командой show mac-address-table.

PhonesSwitch_3560#show mac-address-table

Vlan Mac Address Type Ports

All 0180.c200.0010 STATIC CPU

All ffff.ffff.ffff STATIC CPU

1 001e.4af1.4258 DYNAMIC Fa0/3

1 001e.f7c4.7496 DYNAMIC Fa0/1

1 001e.7ac3.d99e DYNAMIC Fa0/4

Теперь займёмся самым важным в этом процессе – сконфигурируем службу telephony-service так, как это показано ниже. С помощью команды max-ephones задаётся максимальное количество поддерживаемых аппаратов IP Phone, которое зависит от используемого оборудования. Вызов max-dn позволяет указать максимальное количество номеров, присваиваемых IP Phone. С помощью ip source-address можно указать IP-адрес и порт голосового шлюза, которым мы, кстати, и являемся. Указываем тайм-аут звонка с командой timeouts ringing. Строка system message отображает некоторое сообщение на экранах телефонных аппаратов. Команды time-zone, time-format, date-format и user-locale позволяют настроить параметры локализации и времени на телефонных аппаратах. С помощью max-conferences указывается максимальное количество возможных конференций. За проигрывание музыки в режиме On Hold отвечает команда moh. Остаётся задать возможность перенаправления звонков с помощью вызовов call-forward, transfer-system и transfer-pattern.

telephony-service

max-ephones 10

max-dn 30

ip source-address 192.168.1.1 port 2000

timeouts ringing 60

system message Test_IP_Phone

user-locale RU

time-zone 28

time-format 24

date-format dd-mm-yy

max-conferences 16 gain -6

call-forward pattern .T

moh music-on-hold.au

transfer-system full-consult

transfer-pattern .T

Теперь создадим телефон 7960 с двумя кнопками, чтобы проиллюстрировать ряд возможностей. Указанные ниже действия создают два виртуальных телефона (линии), которые в дальнейшем надо будет связать с физическим телефоном.

ephone-dn 1

number 1111

label Maxim Klimanov

description Maxim Klimanov

name Maxim Klimanov

preference 1

call-forward busy 1112

call-forward noan 1112 timeout 10

no huntstop

ephone-dn 2

number 1111

label Maxim Klimanov

description Maxim Klimanov

name Maxim Klimanov

preference 1

Займёмся теперь созданием настроек для самого физического аппарата.

ephone 1

mac-address 001e.f7c4.7496

speed-dial 1 1112

speed-dial 2 1113

type 7960

button 1:1 2:2

Команды button позволяют привязать созданные ранее виртуальные линии к кнопкам физического аппарата.

Настройку локальной телефонии внутри офиса считаем законченной. Перейдём к рассмотрению самого канала E1. Помимо всего прочего в конфигурации маршрутизатора должна присутствовать строка, указывающая на тип карты контроллера. Так как поток E1 в данном случае приходит на контроллер 0/2/0, то и в типе карты должен быть указан именно такой порт.

card type e1 0 2

Теперь требуется ввести ряд параметров, отвечающих за работу контроллера E1, IDSN и самой голосовой карты.

network-clock-participate wic 2

isdn switch-type primary-net5

carrier-id source

voice-card 0

dspfarm

dsp services dspfarm

controller E1 0/2/0

clock source free-running

pri-group timeslots 1-16

Следует особое внимание обратить на то, какие тайм-слоты маршрутизатор будет принимать через канал E1. В приведённых командах происходит приём половины потока E1. Ошибочное указание тайм-слотов в потоке приведёт к тому, что входящие звонки (ATC->Cisco) будут происходить нормально, но при исходящих звонках в журнале маршрутизатора будут появляться разнообразные сообщения об ошибках, что объясняется тем, что при исходящих звонках тайм-слоты начинают использоваться с конца.

После указания тайм-слотов в системе будет создано соответствующее им количество подинтерфейсов.

ATS_2851#sho ip int bri

Interface IP-Address OK? Method Status Protocol

Serial0/2/0:0 unassigned YES unset down down

Serial0/2/0:1 unassigned YES unset down down

Serial0/2/0:2 unassigned YES unset down down

Serial0/2/0:3 unassigned YES unset down down

Serial0/2/0:4 unassigned YES unset down down

Serial0/2/0:5 unassigned YES unset down down

Serial0/2/0:6 unassigned YES unset down down

Serial0/2/0:7 unassigned YES unset down down

Serial0/2/0:8 unassigned YES unset down down

Serial0/2/0:9 unassigned YES unset down down

Serial0/2/0:10 unassigned YES unset down down

Serial0/2/0:11 unassigned YES unset down down

Serial0/2/0:12 unassigned YES unset down down

Serial0/2/0:13 unassigned YES unset down down

Serial0/2/0:14 unassigned YES unset down down

Serial0/2/0:15 unassigned YES NVRAM up up

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

ATS_2851#term mon

ATS_2851#deb isdn ?

all ISDN debug messages

api ISDN Application Program Interface(s)

cc ISDN Call Control

error ISDN error messages

events ISDN events

mgmnt ISDN management

q921 ISDN Q921 frames

q931 ISDN Q931 packets

standard Standard ISDN debugging messages

tgrm ISDN TGRM events

ATS_2851#deb isdn q921

debug isdn q921 is ON.

ATS_2851#deb isdn q931

debug isdn q931 is ON.

Отключение отображения всех сообщений debug можно произвести с помощью команды no deb all.

ATS_2851#no deb all

All possible debugging has been turned off

Дополнительную информацию об устранении неисправностей ISDN можно получить из данной статьи.

Считаем, что теперь внешний голосовой канал поднялся, поэтому переходим к вводу команд, отвечающих за перенаправление вызова к АТС. Для того, чтобы перенаправить голосовой поток в поток E1 необходимо ввести следующие команды. Строка dial-peer создаёт голосовую «пару», в соответствии с которой и будет проводиться перенаправление. Указание destination-pattern позволяет задать цифру для выхода из локальной телефонной сети. Чтобы указать тот телефонный номер, который будет определяться у вызываемого абонента, необходимо ввести команду clid network-number. Указание порта выхода во внешний мир производится командой port.

dial-peer voice 50 pots

destination-pattern 9T

clid network-number 1234567

direct-inward-dial

port 0/2/0:15

Для полноценного функционирования телефонии необходимо не только производить исходящие звонки, но и принимать входящие, передавая их на определённый IP Phone. Для идентификации того, какая из секций dial-peer должна сработать, служит команда incoming called-number, указывающая вызываемый номер. В данной секции также необходимо указать профиль, согласно которому будет производиться перенаправление входящего звонка на какой-либо локальный телефонный аппарат, что осуществляется командой translation-profile.

dial-peer voice 100 pots

description E1_incoming

translation-profile incoming TRL1234567

incoming called-number 1234567

direct-inward-dial

Внутри профиля должно быть сконфигурировано некоторое количество правил трансляции.

voice translation-profile TRL1234567

translate called 1

Также необходимо определить и те правила, которые входят в профиль.

voice translation-rule 1

rule 1 /1234567/ /1111/

Теперь входящий звонок по вызываемому номеру будет сопоставлен определённому телефонному плану (dial-peer), согласно которому он будет передан на преобразование в профиль трансляции, где и будет выполнено необходимое правило.

Для тестирования телефонных планов может быть использована недокументированная команда csim start phone_number, используемая для эмуляции исходящего вызова на номера E.164.

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

  • Построение телефонной связи внутри офиса.
  • Организация исходящих звонков.
  • Приём входящих вызовов.

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

You have no rights to post comments

Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter