Настройка Cisco 1751 для работы с Asterisk

Настройка Cisco 1751 для работы с Asterisk

Мы закончили долгожданную статью по настройке оборудования Cisco для совместного использования с Asterisk. А также открываем новую серию и раздел Cisco, в который будет входить инструкции по реализации наших задач. Сегодня большая статья по выполнению задачи сопряжения с сетью связи общего пользования (СсОП). Дальнейший цикл будет содержать менее содержательные статьи, в которых мы рассмотрим некоторые вещи более детально.

Сегодня будем реализовывать очень простую схему (Рисунок 1).
Внимание! Данная инструкция по организации приведенной схемы подходит и для Cisco 1700 series, Cisco 1900 series, Cisco 2800 series, Cisco 2900 series, Cisco 3900 series, Cisco AS5300 series.
Cisco 1700 Series снято с производства (End-of-Sale and End-of-Life).
Cisco 2800 Series снято с производства (End-of-Sale and End-of-Life).
Рекомендуемые к использованию – Cisco 1900, 2900, 3900 Series

Содержание

Исходные данные:

– Городская автоматическая телефонная станция (ГАТС). Номерная емкость _33XX;
– Asterisk PBX. Номерная емкость _77XX;
– Cisco 1751 в составе (Рисунок 2):
  • Шасси Cisco 1751-V с 32Mb Flash, 64Mb Dram – 1шт.
  • Модуль Cisco VWIC-1MFT-E1 – 1 шт.
  • PVDM-12 – 2 шт.

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

Настройка Cisco 1751 для работы с Asterisk
Рисунок 1. Схема реализации

Задача:

1. Настроить Cisco 1751, как транзитное устройство (SIP-шлюз) между ГАТС (PSTN) и Asterisk PBX.
2. Маршрутизация со стороны PSTN осуществляется в формате ABCx1-x7 (где ABC – код географической зоны, x1-x7 – номер абонента).
3. Подключить SIPv2 транк к Asterisk с авторизацией (SIP-UA).
4. Настроить политику безопасности доступа к устройству.

Исходные данные:

Asterisk PBX – 192.168.0.100/24.
Cisco 1751 Gateway – 192.168.0.200/24

  • Protocol side: user
  • HDB3
  • CRC4 on
  • Clock: Line
  • Time slots: 30
  • PRI Protocol Type: PRI EURO ISDN
  • PCM Type: A-law.
Шлюз по умолчанию – 192.168.0.1

Часть 1. Настраиваем Cisco gateway

Шаг 1. Сбрасываем текущую конфигурацию Cisco Gateway

1. Подключаемся с помощью консольного кабеля, удаляем всю текущую конфигурацию и перезапускаем шлюз:

Метод №1

Этот метод использует команду config-register 0x2102 в режиме глобальной конфигурации.
Проверьте конфигурационный регистр на шлюзе, выполнив команду show version.
Настройка конфигурационного регистра находится в последней линии вывода show version и должна быть выставлена в значение 0x2102. Если это не так, выполните следующую последовательность команд, чтобы это исправить.
router#configure terminal
router(config)#config-register 0x2102
router(config)#end
router#
Теперь, если снова посмотреть show version, то к предыдущему выводу добавится “will be 0x2102 at next reload” в конце.
Сотрите существующую конфигурацию шлюза, используя команду write erase или erase startup-config (идентичны).
Перезагрузите шлюз, используя команду reload. Когда Вам будет предложено сохранить конфигурацию – НЕ ДЕЛАЙТЕ ЭТОГО!
router#reload
System configuration has been modified. Save?[yes/no]: no
Proceed with reload?[confirm]
Когда устройство перезагрузится, Вам будет предложено начать процесс начальной конфигурации (System Configuration Dialog).
--- System Configuration Dialog ---
At any point you may enter a question mark '?' for help.
Use ctrl-c to abort configuration dialog at any prompt.
Default settings are in square brackets '[]'.
Would you like to enter the initial configuration dialog? [yes/no]: yes

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

Метод №2

Этот метод использует команду config-register 0x2142 в режиме глобальной конфигурации.
Введите команду config-register 0x2142 в режиме глобальной конфигурации.

router(config)#config-register 0x2142
Это заставит шлюз игнорировать загрузочную (start-up) конфигурацию при следующей перезагрузке. Если Вы выполните команду show version, то в последней строчке вывода Вы увидите запись “will be 0x2142 at next reload”, добавленную сразу после существующей настройки конфигурационного регистра.
Перезагрузите шлюз, используя команду reload. Сохранять конфигурацию, когда это будет предложено, не нужно.
Router#reload
System configuration has been modified. Save?[yes/no]: no
Proceed with reload?[confirm]

После перезагрузки, Вам будет предложено начать процесс начальной конфигурации (System Configuration Dialog).
Откажитесь от него, ответив no на вопрос “Would you like to enter initial configuration dialog?”
Измените значение конфигурационного регистра обратно на 0x2102, введя команду config-register 0x2102 в режиме глобальной конфигурации.
Выполните команду write memory или copy running-config startup-config (идентичны), чтобы перезаписать загрузочную конфигурацию на пустую.
Перезагрузите шлюз, используя команду reload.
После перезагрузки, Вам будет предложено начать процесс начальной конфигурации (System Configuration Dialog).

--- System Configuration Dialog ---
At any point you may enter a question mark '?' for help.
Use ctrl-c to abort configuration dialog at any prompt.
Default settings are in square brackets '[]'.
Would you like to enter the initial configuration dialog? [yes/no]: yes

Ваше устройство сброшено в заводские настройки.

Шаг 2. Чтобы перейти в средство командной строки setup, введите yes:

Would you like to enter the initial configuration dialog? [yes/no]: yes

Шаг 3. После отображения следующих сообщений введите ‘yes’, чтобы перейти в базовый режим настройки:

At any point you may enter a question mark '?' for help.
Use ctrl-c to abort configuration dialog at any prompt.
Default settings are in square brackets '[]'.
Basic management setup configures only enough connectivity
for management of the system, extended setup will ask you to configure each interface on the system
Would you like to enter basic management setup? [yes/no]: yes

Шаг 4. Введите имя хоста маршрутизатора (в этом примере используется имя Router):

Configuring global parameters:
Enter host name [Router]: Router

Шаг 5. Введите секретный пароль разрешения. Этот пароль шифруется (более безопасный), его нельзя увидеть при просмотре конфигурации:

The enable secret is a password used to protect access to privileged EXEC and configuration modes. This password, after entered, becomes encrypted in the configuration.
Enter enable secret: xxxxxx

Шаг 6. Введите пароль разрешения, отличный от секретного пароля разрешения. Этот пароль не шифруется (менее защищен), и его можно увидеть при просмотре конфигурации:

The enable password is used when you do not specify an enable secret password, with some older software versions, and some boot images.
Enter enable password: xxxxxx

Шаг 7. Введите пароль виртуального терминала, который исключает несанкционированный доступ к маршрутизатору через порты, отличные от порта консоли:

The virtual terminal password is used to protect access to the router over a network interface.
Enter virtual terminal password: xxxxxx

Шаг 8. Ответьте на следующие запросы в соответствии с параметрами вашей сети:

Configure SNMP Network Management? [yes]:
Community string [public]:
Отображается сводка по доступным интерфейсам.

Примечание. Нумерация выводимых интерфейсов зависит от типа модульной платформы маршрутизатора Cisco и от установленных интерфейсных модулей и плат.

Current interface summary
Controller Timeslots D-Channel Configurable modes Status
T1 0/0/0 24 23 pri/channelized Administratively up
T1 0/0/1 24 23 pri/channelized Administratively up
T1 0/1/0 24 23 pri/channelized Administratively up
T1 0/1/1 24 23 pri/channelized Administratively up
Any interface listed with OK? value “NO” does not have a valid configuration
Interface IP-Address OK? Method Status Prol
FastEthernet0/0 unassigned NO unset up up

Шаг 9. Выберите один из доступных интерфейсов для подключения маршрутизатора к сети управления:

Enter interface name used to connect to the management network from the above interface summary: FastEthernet0/0

Шаг 10. Ответьте на следующие запросы в соответствии с параметрами вашей сети:

Configuring interface FastEthernet0/0:
Use the 100 Base-TX (RJ-45) connector? [yes]: yes
Operate in full-duplex mode? [no]: no
Configure IP on this interface? [yes]: yes
IP address for this interface: 192.168.0.200
Subnet mask for this interface [255.255.255.0] : 255.255.255.0
Class B network is 192.168.0.0, 32 subnet bits; mask is /24

Шаг 11. Отображается конфигурация:

The following configuration command script was created:
hostname Router
enable secret 5 3k$D5P6$rtPYx41/3WIASK.HcSbfO5q1
enable password xxxxxx
line vty 0 4
password xxxxxx
snmp-server community public
!
no ip routing
!
interface FastEthernet0/0
speed 100
half-duplex
ip address 192.168.0.200 255.255.255.0
!
end

Шаг 12. Ответьте на следующие запросы. Выберите [2] для сохранения исходной настройки.

[0] Go to the IOS command prompt without saving this config.
[1] Return back to the setup without saving this config.
[2] Save this configuration to nvram and exit.
Enter your selection [2]: 2
Building configuration...
Use the enabled mode 'configure' command to modify this configuration.
Press RETURN to get started! RETURN

Отображается командная строка пользователя.

Router>
Переходим в привилегированный режим enable
Router>ena
Router#
Переходим в режим глобального конфигурирования
Router#conf t
Router(config)#
Если Asterisk и Cisco 1751 находятся в одной подсети, основной шлюз для работы SIP не обязателен. Если устройства находятся в разных подсетях, указываем шлюз:
Router(config)#ip route 0.0.0.0 0.0.0.0 192.168.0.1

Шаг 13. Настраиваем общие и системные параметры Cisco 1751

! Используем новую модель ААА и локальную базу пользователей
Router(config)#aaa new-model
! Настройка Tacacs (используя такой синтаксис в 15 и выше получите предупреждение will be deprecated soon)
Router(config)#tacacs-server host 192.168.0.20 key 0 VeryLongANDSecureKey
Router(config)#tacacs-server host 192.168.0.21 key 0 VeryLongANDSecureKey
Router(config)#tacacs-server timeout 2
Router(config)#tacacs-server directed-request

! Так как у нас 2 сервера (для надежности), то их необходимо объеденить в группу
Router(config)#aaa group server tacacs+ tac-int
Router(config-sg-tacacs+)#server 192.168.0.20
Router(config-sg-tacacs+)#server 192.168.0.21
Router(config)#exit

! Создаем листы, описывающие authentication, authorization and accounting и связываем их с группой
Router(config)#aaa authentication login admin group tac-int local
Router(config)#aaa authorization exec admin group tac-int local
Router(config)#aaa authorization commands 15 admin group tac-int local
Router(config)#aaa accounting update newinfo
Router(config)#aaa accounting commands 15 admin start-stop group tac-int
Router(config)#line vty 0 4
Router(config-line)#authorization commands 15 admin
Router(config-line)#authorization exec admin
Router(config-line)#accounting commands 15 admin
Router(config-line)#login authentication admin
Router(config-line)#exit

! Созданы 4 aaa-листа с одинаковым именем admin (имена могут быть произвольными), authentication login говорит нашему шлюзу аутентифицировать пользователя в группе tac-int, а в случае недоступности её серверов локально. Та же самая конструкция используется и для остальных листов, кроме accounting.

! Включаем шифрование паролей
Router(config)#service password-encryption

! Зададим пароль на подключения через консольный порт
Router(config)#line con 0
Router(config-line)#password пароль
Router(config-line)#login
Router(config-line)#exit

! Зададим пароль на подключения через AUX порт
Router(config)#line aux 0
Router(config-line)#password пароль
Router(config-line)#login
Router(config-line)#exit

! Генерируем ключик для SSH
Router(config)#crypto key generate rsa general-keys modulus 1024

! Тюнингуем SSH
Router(config)#ip ssh time-out 120
Router(config)#ip ssh authentication-retries 2
Router(config)#ip ssh version 2

! Настраиваем удаленный доступ
Router(config)#line vty 0 4
Router(config-line)#exec-timeout 0 0
Router(config-line)#transport input telnet ssh
Router(config-line)#exit

! Зададим пароль на Enable режим
Router(config)#enable secret пароль_enable_режима

! Настроим наш сетевой интерфейс
Router(config)#interface fa 0/0
Router(config-if)#description LAN
Router(config-if)#no shutdown
Router(config-if)#exit

! Включаем разрешение имен
Router(config)#ip domain-lookup

! Включаем локальный DNS сервер
Router(config)#ip dns server

! Задаем DNS-сервера
Router(config)#ip name-server 192.168.0.2
Router(config)#ip name-server 192.168.0.99
Router(config)#ip name-server 8.8.8.8

! Задаем доменное имя шлюзу
Router(config)#ip domain-name router.domain

! Включаем ускоренную коммутацию пакетов
Router(config)#ip cef

! Отключим управление маршрутизатором через http, https и CDP
Router(config)#no ip http server
Router(config)#no ip http secure-server
Router(config)#no cdp run

! Настройка временной зоны GMT+3
Router(config)#clock timezone MSK 3

! Обновление времени по NTP
Router(config)#ntp server NTP.SERVER.1.IP
Router(config)#ntp server NTP.SERVER.2.IP

! Включаем архивирование всех изменений конфига, скрывая пароли в логах
Router(config)#archive
Router(config-archive)#log config
Router(config-archive)#logging enable
Router(config-archive)#hidekeys
Router(config-archive)#exit

! Историю изменения конфига можно посмотреть командой
Router#show archive log config all

! Настройка Firewall (Если ваш шлюз с доступом к Интернету)
Router(config)#ip access-list extended ETH-IN
Router(config-ext-nacl)#permit ip host ТУТ_РАЗРЕШАЕМЫЙ_IP any
Router(config-ext-nacl)#permit ip host ТУТ_РАЗРЕШАЕМЫЙ_IP any
Router(config-ext-nacl)#deny ip any any
Router(config-ext-nacl)#exit
Router(config)#interface FastEthernet0/0
Router(config-if)#ip access-group ETH-IN in
Router(config)#ip access-list standard vty_access
Router(config-std-nacl)#permit ТУТ_РАЗРЕШАЕМЫЙ_IP
Router(config-std-nacl)#permit ТУТ_РАЗРЕШАЕМЫЙ_IP
Router(config-std-nacl)#deny any
Router(config)#line vty 0 4
Router(config-line)#access-class vty_access in

! Будем осуществлять мониторинг нашего шлюза
Router(config)#snmp-server community public RO 1

! Отключение ненужных сервисов
Router(config)#no service tcp-small-servers
Router(config)#no service udp-small-servers
Router(config)#no service finger
Router(config)#no service pad
Router(config)#no ip finger
Router(config)#no ip source-route
Router(config)#no ip bootp server

! Пользователь на всякий случай
Router(config)#username ЛОГИН privilege 5 secret 5 ПАРОЛЬ

!Запишем к системным сообщениям время события
Router(config)#service timestamps debug datetime msec localtime
Router(config)#service timestamps log datetime msec localtime

Примечание! Стоит понимать, что подключение по telnet для устройств, находящихся во внешнем мире – НЕ БЕЗОПАСНО!

Шаг 14. Настраиваем VoIP сектор нашего шлюза

Сначала нам необходимо задать Card Type и выбрать тип карты E1 или T1, а также определить в каком слоте она находится. Далее мы настроим тайминги и параметры ISDN из исходных данных. На конечном этапе мы настроим голос и Dial-Peer.
Определим в каком слоте находится карта:

Router#show inventory
NAME: "VWIC2-2MFT-T1/E1 - 2-Port RJ-48 Multiflex Trunk - T1/E1 on Slot 0 SubSlot 0", DESCR: "VWIC2-2MFT-T1/E1 - 2-Port RJ-48 Multiflex Trunk - T1/E1"
PID: VWIC2-2MFT-T1/E1  , VID: V01 , SN: FOC143025H6
Router#show controllers e1
E1 0/0 is up.
...........

! Перейдем в режим глобальной конфигурации
Router#configure terminal

! Будем по SNMP собирать информацию по загруженности
Router(config)#snmp-server community public RO 1

! По умолчанию Cisco 1751 использует Е1 как источник синхронизации. Говорим что шлюз сам будет источником синхронизации
Router(config)#tdm clock E1 0/0 both import onboard internal

! Установим сигнализацию EURO ISDN и включим логгирование
Router(config)#isdn switch-type primary-net5
Router(config)#isdn logging

Router(config)#voice service pots
Router(conf-voi-serv)#fax rate disable
Router(conf-voi-serv)#exit
Router(config)#voice service voip
Router(conf-voi-serv)#fax protocol pass-through g711alaw
Router(conf-voi-serv)#sip
Router(conf-voi-serv)#exit

! Перейдем в режим конфигурации голосовой карты указанного слота
Router(config)#voice-card 0

! Определим сложность кодека на основе используемого стандарта кодека
Router(config-voicecard)#codec complexity med
Router(config-voicecard)#exit

! Определим тип карты T1/E1
Router(config)#card type e1 0 0
Router(config)#exit

! Настроим наш контроллер E1
Router(config)#controller E1 0/0
Router(config-controller)#framing NO-CRC4
Router(config-controller)#linecode hdb3
Router(config-controller)#pri-group timeslots 1-31
Router(config-controller)#no shutdown
Router(config-controller)#exit

! Настоим параметры голосового порта E1
Router(config)#voice-port 0/0:15
Router(config-voiceport)#cptone RU
Router(config-voiceport)#compand-type a-law
Router(config-voiceport)#bearer-cap Speech
Router(config-voiceport)#description From_TFOP

! Активируем голосовой порт
Router(config-voiceport)#no shutdown
Router(config-voiceport)#exit

! Настраиваем транковую группу и метод занятия СЛ
Router(config)#trunk group ats
Router(config-trunk-group)#hunt-scheme round-robin
Router(config-trunk-group)#translation-profile outgoing Plan
Router(config-trunk-group)#exit

! Настроим метод отправки номера
Router(config)#voice translation-rule 1
Router(cfg-translation-rule)#rule 1 // // type any subscriber plan any isdn
Router(cfg-translation-rule)#exit

! Для группы исходящих вызовов обозначим метод отправки номера
Router(config)#voice translation-profile Plan
Router(cfg-translation-profile)#translate called 1
Router(cfg-translation-profile)#exit

Router(config)#voice class codec 1
Router(config-class)#codec preference 1 g711alaw
Router(config-class)#exit

! Подключаем к Asterisk с авторизацией

Router(config)#sip-ua
Router(config-sip-ua)#transport udp
Router(config-sip-ua)#authentication username cisco_1751 password ПАРОЛЬ
Router(config-sip-ua)#registrar ipv4:192.168.0.100
Router(config-sip-ua)#sip-server ipv4:192.168.0.100
Router(config-sip-ua)#exit

Router(config)#interface Serial 0/0:15
Router(config-if)#no ip address
Router(config-if)#encapsulation hdlc
Router(config-if)#no logging event link-status
Router(config-if)#trunk-group ats
Router(config-if)#isdn switch-type primary-net5
Router(config-if)#isdn protocol-emulate network
Router(config-if)#isdn incoming-voice voice
Router(config-if)#isdn send-alerting
Router(config-if)#isdn sending-complete
Router(config-if)#no cdp enable
Router(config-if)#exit

Router(config)#dial-peer voice 1 voip
Router(config-dial-peer)#application session
Router(config-dial-peer)#description to_asterisk
Router(config-dial-peer)#tone ringback alert-no-PI
Router(config-dial-peer)#numbering-type unknown
Router(config-dial-peer)#destination-pattern 77..
Router(config-dial-peer)#voice-class codec 1
Router(config-dial-peer)#session protocol sipv2
Router(config-dial-peer)#session target sip-server
Router(config-dial-peer)#dtmf-relay cisco-rtp rtp-nte
Router(config-dial-peer)#fax rate disable
Router(config-dial-peer)#fax protocol pass-through g711alaw
Router(config-dial-peer)#ip udp checksum
Router(config-dial-peer)#no vad
Router(config-dial-peer)#exit

Router(config)#dial-peer voice 2 pots
Router(config-dial-peer)#description to_cisco1751
Router(config-dial-peer)#application session
Router(config-dial-peer)#tone ringback alert-no-PI
Router(config-dial-peer)#numbering-type subscriber
Router(config-dial-peer)#huntstop
Router(config-dial-peer)#destination-pattern .T
Router(config-dial-peer)#incoming called-number .
Router(config-dial-peer)#direct-inward-dial
Router(config-dial-peer)#port 0/0:15
Router(config-dial-peer)#forward-digits all
Router(config-dial-peer)#exit
Router(config)#exit
Router#copy running-config startup-config

Часть 2. Настраиваем Asterisk

Шаг 1. /etc/asterisk/sip.conf

[cisco_1751]
type=friend
context=outgoing
host=192.168.0.200
secret=ПАРОЛЬ
dtmfmode=rfc2833
nat=no
directmedia=no
disallow=all
allow=alaw
t38pt_udptl=no
qualify=yes
insecure=port,invite
call-limit=5 ;Если надо

Шаг 2. /etc/asterisk/extensions.conf

[local]
exten => _77XX,1,Dial(SIP/${EXTEN},90,trm)

[from-cisco_1751]
include => local
exten => _77XX,1,Dial(SIP/${EXTEN},90,trm)

[outgoing]
exten => _33XX,1,Dial(SIP/cisco_1751/${EXTEN},90,trm)

exten => _8XXXXXXXXXX/_77XX,1,Set(CALLERID(num)=4950000000)
exten => _8XXXXXXXXXX/_77XX,2,Dial(SIP/cisco_1751/${EXTEN},90,trm)