Всем привет!
Очередная практическая задача по реализации транскодинга на AS5350xm.
Что такое транскодирование коротко можно прочитать здесь: http://en.wikipedia.org/wiki/Transcode
А сама задача появилась из цели экономии средств отдаваемых поставщикам услуг.
Существующая схема услуг:
Поставщик А <—> Е1 <—> Арендованный канале Е1 у поставщика Б <—> Е1 <—> Cisco AS5350xm <—> VoIP (SIP, g711) <—> SIP SERVER <—> Клиенты
Посчитав затраты, было решено отказаться от арендованного канала Е1 поставщика Б, а услуги от поставщика А решено было получать по VoIP. После того как вопрос был согласован, постащик А выдал ТУ на подключение услуги, в связи с чем новая схема должна было стать такой:
Поставщик А <—> VoIP (H323, g729) <—> Cisco AS5350xm <—> VoIP (SIP, g711) <—> SIP SERVER <—> Клиенты
Просмотрев сайт www.cisco.com, было обнаружено, что необходимое транскодирование g729 <-> g711 можно реализовать без каких либо проблем при наличии IOS версий выше 12.4(20)Т3, 12.4(22)YB и 15.0(1)М (номера 13 и 14 для IOS компанией Cisco не используются, т.к. эти числа считаются «не счастливыми» в культурах разных стран). Но при отсутствии оной пришлось реализовать следующую схему:
Поставщик А <—> VoIP (H323, g729) <—> Cisco AS5350xm <—> Е1 (loop) <—> Cisco AS5350xm <—> VoIP (SIP, g711) <—> SIP SERVER <—> Клиенты
Т.е. принимаем звонок от поставщика отправляем его в Е1, «заворачиваем» его обратно и далее он «уходит» в VoIP уже с необходимыми нам параметрами. Сразу оговорюсь, что такая схема работает при наличии двух свободных Е1 на вашем маршрутизаторе.
Для начала нам потребуется кабель с разъемами RJ-45 и следуюзщей «распиновкой»:
E1 —- E1
1 —- 4
2 —- 5
На моем маршрутизаторе были свободны порты E1 3/2 и 3/3. Соединяем порты созданным кабелем и приступаем к настройкам.
Задаем параметры физических интерфейсов Е1:
!
controller E1 3/2
framing NO-CRC4
pri-group timeslots 1-31
!
controller E1 3/3
framing NO-CRC4
pri-group timeslots 1-31
Затем настройки D-каналов:
!
interface Serial3/2:15
no ip address
encapsulation hdlc
isdn switch-type primary-net5
isdn protocol-emulate network
isdn incoming-voice modem
!
interface Serial3/3:15
no ip address
encapsulation hdlc
isdn switch-type primary-net5
isdn incoming-voice modem
И проверяем состояние наших Е1:
#show controllers e1
…
E1 3/2 is up.
Applique type is Channelized E1 — balanced
No alarms detected.
alarm-trigger is not set
Version info of slot 3: HW: 519, PLD Rev: 6
Framer Version: 0x9
…
E1 3/3 is up.
Applique type is Channelized E1 — balanced
No alarms detected.
alarm-trigger is not set
Version info of slot 3: HW: 519, PLD Rev: 6
Framer Version: 0x9
Далее настраиваем необходимые пиры (сразу будут указаны различные pattern направлений, объяснение будет ниже):
POTS:
Настройки пиров для нашей «петли»
…
!
dial-peer voice 3 pots
description ###INCOMING FROM OUR VoIP###
incoming called-number .
direct-inward-dial
port 3/2:D
no register e164
!
dial-peer voice 4 pots
description ###INCOMING FROM PROVIDER-A###
incoming called-number .
direct-inward-dial
port 3/3:D
no register e164
…
! — этот пир «отправляет» звонки из нашей VoIP сети в loop
!
dial-peer voice 800 pots
description ###FROM OUR VoIP TO LOOP###
destination-pattern 011.T
progress_ind setup enable 3
progress_ind alert enable 8
port 3/2:D
! — этот пир «отправляет» звонки из сети VoIP Поставщика А в loop
!
dial-peer voice 801 pots
description ###FROM PROVIDER-A TO LOOP###
destination-pattern 022.T
progress_ind setup enable 3
progress_ind alert enable 8
port 3/3:D
VoIP:
! — этот пир «принимает и отправляет» звонки из сети/в сеть VoIP Поставщика А
!
dial-peer voice 888 voip
description ###VoIP PROVIDER A###
translation-profile incoming FROM-PROVIDER-A-TO-LOOP ! —- подставляем необходимый префикс
destination-pattern 033.T
codec g729r8
session target ras ! —- наш шлюз регистрируется на гэйткипере постащика А (об этих настройках в другой статье)
incoming called-number 7…… ! —- для того чтобы звонок на наши номера прошел через этот пир и мы смогли подставить префикс
dtmf-relay h245-signal rtp-nte
fax-relay ecm disable
fax protocol t38 ls-redundancy 0 hs-redundancy 0 fallback none
no vad
! — этот пир «принимает и отправляет» звонки из нашей сети/в наше сеть VoIP
!
dial-peer voice 700 voip
description ###OUR VOIP###
translation-profile incoming FROM-OUR-VoIP-TO-LOOP ! —- подставляем необходимый префикс
answer-address 4957…… ! —- необходимо для того чтобы звонки от наших абонентов прошли через этот пир и мы подставили необходимый префикс
destination-pattern 4957……
session protocol sipv2
session target sip-server
codec g711alaw
fax-relay ecm disable
fax protocol t38 ls-redundancy 0 hs-redundancy 0 fallback none
no vad
…
!
voice-port 3/3:D
translation-profile incoming FROM-LOOP-TO-PROVIDER-A ! —- подставляем необходимый префикс
disc_pi_off
input gain 3
echo-cancel coverage 32
cptone RU
music-threshold -45
bearer-cap Speech
Теперь собственно сама логика работы и ее реализация.
Входящие звонки со стороны Провайдера А мы принимаем и отправляем в поток 3/3, со стороны нашей сети все входящие звонки мы отправляем в поток 3/2.
При входящем звонке (направление звонка рассматриваем относительно AS5350xm) со стороны Провайдера А к набираемому номеру нам необходимо подставить префикс 022495, 022 — чтобы однозначно определить необходимый нам поток 3/3, а 495 приходится подставлять из-за того, что в нашей сети используются 10-ти значные АОНы, а провайдер присылает звонки на 7-ми значные. Для однозначного определения входящего voip пира для звонка со стороны провайдера в пире 888 voip используется команда incoming called-number. Звонок уходит в порт 3/3 согласно пиру 801, 022 при этом отрежется и из потока 3/2 придет вызов на номер 4957…… который смаршрутизируется согласно пиру 700 voip.
При входящем звонке со стороны нашей сети подставляем префикс 011 для отправки звонка в поток 3/2. Звонок уходит в порт 3/2 согласно пиру 800 pots. Чтобы однозначно определить входящий пир для нашей VoIP сети используется команда answer-address в пире 700 voip. Далее этот звонок «выходит» из 3/3 и для того, чтобы точно его отправить в сторону Поставщика А мы подставляем префикс 033 (возможно это излишне, но мы сразу предположим, что таких провайдеров может быть несколько) и звонок будет смаршрутизирован согласно пиру 888 voip.
Правила трансляции:
voice translation-rule 2
rule 1 /^7495\.*/ /011/
rule 2 /^\.*/ /011/
!
voice translation-rule 3
rule 1 /^\.*/ /022495/
!
voice translation-rule 4
rule 1 /^\.*/ /033/
!
voice translation-profile FROM-PROVIDER-A-TO-LOOP
translate called 3
!
voice translation-profile FROM-OUR-VOIP-TO-LOOP
translate called 2
!
voice translation-profile FROM-LOOP-TO-PROVIDER-A
translate called 4
На этом все, если, кому-то будет это полезным, буду рад. Жду Ваших комментариев и замечаний. Всех благ)
З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА ! Пожалуйста, уважайте чужой труд.
Автор: zaikini
Похожие статьи:
- Не найдено
Добавить комментарий
Вам следует авторизоваться для размещения комментария.