Схема:
Задача: Необходимо настроить ESR-12 для обеспечения маршрутизации вызовов между пользователями 333, 444, 888 и 777. Для выполнения данной задачи необходимо настроить регистрацию пользователей 555 (FXO), 888 (FXS), 444 (IP-telephone) на локальном PBX-сервере маршрутизатора ESR-12, настроить транк для входящих вызовов с внешнего SIP-server, а также настроить контекст маршрутизации (правила) для обработки вызовов.
Решение задачи:
Решение данной задачи будет происходить в 2 этапа:
1. Настройка PBX-сервера.
2. Настройка интерфейсов gi 1/0/1, gi 1/0/2, а также FXO и FXS.
1. Настройка PBX-сервера.
Пример настройки PBX-сервера рассмотрим в виде следующих этапов:
1) Пример настройки контекста маршрутизации на сервере PBX. В качестве примера рассмотрим настройку контекста маршрутизации для IP-telephone. Необходимо настроить правила вызова до номеров 888, 777 и 333.
Номер 888 является локальным и правило вызова будет следующим:
esr-12vf# configure
esr-12vf(config)# pbx
esr-12vf(config-pbx)# ruleset sip_phone
esr-12vf(config-pbx-ruleset)# rule 1
esr-12vf(config-pbx-rule)# description "Calling the 888"
esr-12vf(config-pbx-rule)# pattern '888,1,Dial(SIP/${EXTEN},,t)'
esr-12vf(config-pbx-rule)# enable
Номер 777 доступен через FXO (номер 555) и правило вызова будет следующим:
esr-12vf# configure
esr-12vf(config)# pbx
esr-12vf(config-pbx)# ruleset sip_phone
esr-12vf(config-pbx-ruleset)# rule 3
esr-12vf(config-pbx-rule)# description "Calling the 777 via FXO"
esr-12vf(config-pbx-rule)# pattern '777,1,Dial(SIP/555/555${EXTEN})'
esr-12vf(config-pbx-rule)# enable
Номер 888 доступен через SIP-сервер и правило вызова есть возможность настроить двумя способами:
1-ый способ через IP-адрес:
esr-12vf# configure
esr-12vf(config)# pbx
esr-12vf(config-pbx)# ruleset sip_phone
esr-12vf(config-pbx-ruleset)# rule 5
esr-12vf(config-pbx-rule)# description "Calling the 333 via SIP-Server"
esr-12vf(config-pbx-rule)# pattern '333,1,Dial(SIP/${EXTEN}@203.0.113.2)'
esr-12vf(config-pbx-rule)# enable
2-ой способ через trunk профиль, который мы настроим в следующем пункте настройки PBX-сервера:
esr-12vf# configure
esr-12vf(config)# pbx
esr-12vf(config-pbx)# ruleset sip_phone
esr-12vf(config-pbx-ruleset)# rule 3
esr-12vf(config-pbx-rule)# description "Calling the 333 via SIP-Server"
esr-12vf(config-pbx-rule)# pattern '333,1,Dial(SIP/trunk_to_SIP_server/${EXTEN})'
esr-12vf(config-pbx-rule)# enable
Для удачного завершения вызова рекомендуется добавить соответствующее правило для последней очереди (для текущей конфигурации - это 2-ая очередь):
esr-12vf# configure
esr-12vf(config)# pbx
esr-12vf(config-pbx)# ruleset sip_phone
esr-12vf(config-pbx-ruleset)# rule 2
esr-12vf(config-pbx-rule)# description "Hang up 888"
esr-12vf(config-pbx-rule)# pattern '888,2,Hangup()'
esr-12vf(config-pbx-rule)# enable
2) Пример настройки SIP-профиля в PBX. В качестве примера рассмотрим настройку профиля для IP-telephone, а также для транка для SIP-сервера (203.0.113.2). В конфигурации SIP-профиля включим необходимые кодеки, привяжем ранее настроенные контексты маршрутизации. В конфигурации транка для SIP-сервера (203.0.113.2) дополнительно укажем type external и host-address самого сервера.
esr-12vf# configure
esr-12vf(config)# pbx
esr-12vf(config-pbx)# profile sip_phone
esr-12vf(config-pbx-profile)# client friend
esr-12vf(config-pbx-profile)# codec allow g711a
esr-12vf(config-pbx-profile)# codec allow g711u
esr-12vf(config-pbx-profile)# codec allow g722
esr-12vf(config-pbx-profile)# codec allow g726
esr-12vf(config-pbx-profile)# nat comedia
esr-12vf(config-pbx-profile)# qualify 10000
esr-12vf(config-pbx-profile)# ruleset sip_phone
esr-12vf(config-pbx-profile)# exit
esr-12vf(config-pbx)#
esr-12vf(config-pbx)# profile trunk_to_SIP_server
esr-12vf(config-pbx-profile)# type external
esr-12vf(config-pbx-profile)# client friend
esr-12vf(config-pbx-profile)# codec allow g711a
esr-12vf(config-pbx-profile)# codec allow g711u
esr-12vf(config-pbx-profile)# security level invite-port
esr-12vf(config-pbx-profile)# nat comedia
esr-12vf(config-pbx-profile)# qualify 10000
esr-12vf(config-pbx-profile)# host-address 203.0.113.2
esr-12vf(config-pbx-profile)# ruleset from_sip_server
3) Пример настройки абонента на сервере PBX. В качестве примера рассмотрим настройку пользователя для IP-telephone. В конфигурации пользователя необходимо указать профиль и пароль для IP-telephone:
esr-12vf# configure
esr-12vf(config)# pbx
esr-12vf(config-pbx)# user 444
esr-12vf(config-pbx-user)# profile sip_phone
esr-12vf(config-pbx-user)# password 444
Пример полной конфигурации PBX для исходящей схемы:
pbx
ruleset FXO
rule 1
description "Incomming from FXO"
pattern '333,1,Dial(SIP/${EXTEN}@203.0.113.2)'
enable
exit
rule 1
description "Hang up 333"
pattern '333,2,Hangup()'
enable
exit
exit
ruleset FXS
rule 1
description "Calling the 444"
pattern '444,1,Dial(SIP/${EXTEN},,t)'
enable
exit
rule 2
description "Hang up 900"
pattern '900,2,Hangup()'
enable
exit
rule 3
description "Calling the 777 via FXO"
pattern '777,1,Dial(SIP/555/555${EXTEN})'
enable
exit
rule 4
description "Hang up 777"
pattern '777,2,Hangup()'
enable
exit
rule 5
description "Calling the 333 via SIP-Server"
pattern '333,1,Dial(SIP/${EXTEN}@203.0.113.2)'
enable
exit
rule 6
description "Hang up 333"
pattern '333,2,Hangup()'
enable
exit
exit
ruleset from_sip_server
rule 1
description "Calling the 444"
pattern '444,1,Dial(SIP/${EXTEN},,t)'
enable
exit
rule 2
description "Hang up 444"
pattern '444,2,Hangup()'
enable
exit
rule 3
description "Calling the 888"
pattern '888,1,Dial(SIP/${EXTEN},,t)'
enable
exit
rule 4
description "Hang up 888"
pattern '888,2,Hangup()'
enable
exit
rule 5
description "Calling the 777 via FXO"
pattern '777,1,Dial(SIP/555/555${EXTEN})'
enable
exit
rule 6
description "Hang up 777"
pattern '777,2,Hangup()'
enable
exit
exit
ruleset sip_phone
rule 1
description "Calling the 888"
pattern '888,1,Dial(SIP/${EXTEN},,t)'
enable
exit
rule 2
description "Hang up 888"
pattern '888,2,Hangup()'
enable
exit
rule 3
description "Calling the 777 via FXO"
pattern '777,1,Dial(SIP/555/555${EXTEN})'
enable
exit
rule 4
description "Hang up 777"
pattern '777,2,Hangup()'
enable
exit
rule 5
description "Calling the 333 via SIP-Server"
pattern '333,1,Dial(SIP/${EXTEN}@203.0.113.2)'
enable
exit
rule 6
description "Hang up 333"
pattern '333,2,Hangup()'
enable
exit
exit
profile fxo_port
client friend
codec allow g711a
codec allow g711u
security level invite-port
ruleset FXO
exit
profile fxs_ports
client friend
codec allow g711a
codec allow g711u
codec allow g729
ruleset FXS
exit
profile sip_phone
client friend
codec allow g711a
codec allow g711u
codec allow g722
codec allow g726
nat comedia
qualify 10000
ruleset sip_phone
exit
profile trunk_to_SIP_server
type external
client friend
codec allow g711a
codec allow g711u
security level invite-port
nat comedia
qualify 10000
host-address 203.0.113.2
ruleset from_sip_server
exit
user 555
profile fxo_port
exit
user 888
profile fxs_ports
exit
user 444
profile sip_phone
password encrypted C8E057
exit
enable
exit
2. Настройка интерфейсов
В конфигурации интерфейса FXS укажем пользователя 888, а также профиль fxs_ports, который мы настроили на PBX:
esr-12vf# configure
esr-12vf(config)# interface voice-port 1
esr-12vf(config-voice-port-fxs)# sip user phone 888
esr-12vf(config-voice-port-fxs)# profile pbx fxs_ports
esr-12vf(config-voice-port-fxs)# exit
В конфигурации интерфейса FXO укажем пользователя 555, а также профиль fxo_port, который мы настроили на PBX. Также укажем номер телефона, с которым будет устанавливаться вызов при вызове номера FXO (555). Например, вызов будет переадресовываться на номер 333.
esr-12vf(config)# interface voice-port 4
esr-12vf(config-voice-port-fxo)# sip user phone 555
esr-12vf(config-voice-port-fxo)# profile pbx fxo_port
esr-12vf(config-voice-port-fxo)# hotline ipt
esr-12vf(config-voice-port-fxo)# hotline number ipt 333
esr-12vf(config-voice-port-fxo)# pstn transmit-number
esr-12vf(config-voice-port-fxo)# no pstn transmit-prefix
esr-12vf(config-voice-port-fxo)# exit
Физические интерфейсы настроим соответственно схеме:
esr-12vf(config)# interface gigabitethernet 1/0/1
esr-12vf(config-if-gi)# ip firewall disable
esr-12vf(config-if-gi)# ip address 198.51.100.1/24
esr-12vf(config-if-gi)# exit
esr-12vf(config)# interface gigabitethernet 1/0/2
esr-12vf(config-if-gi)# ip firewall disable
esr-12vf(config-if-gi)# ip address 203.0.113.1/30
esr-12vf(config-if-gi)# exit