ISP`s IT Аутсорсинг
Быстрый переход: Главная блога Главная сайта Форум
Если Вы чего то недопоняли или не нашли - задайте
вопрос на нашем форуме и мы попробуем Вам помочь.
Subnets.ru Регистрация IP и Автономных систем mega-net.ru

Метки статьи: ‘VoIP’

Добро пожаловать в блог! Надеемся, что Вы еще вернетесь.

Данная статья описывает решение определенной задачи.

Схема:

Два поставщика услуг классической телефонии.

Один (Оператор 1) предоставляет номера в 4 потоках Е1.

Второй (Оператор 2) пока через 1 поток Е1, но в дальнейшем предусматривается увеличение потоков от Оператора 2.

Все потоки подключены к Cisco AS5350xm.

Задача:

Исходя из коммерческих соображений необходимо все местные вызовы направлять на Оператора 1, причем потоки Оператора 1 должны заниматься последовательно начиная с первого, а все МГ/МН вызовы отправляем Оператору 2.

Решение:

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

Создаем транкгруппы, первая:

!
trunk group 88
description ###Operator 1###

настраиваем алгоритм выбора потока внутри транкгруппы:
hunt-scheme sequential both

вторая транкгруппа:
!
trunk group 888
description ###Operator 2###

Объединяем потоки в соответствующие транкгруппы:
!
interface Serial3/0:15
description ### Operator 1 1E1 ###
no ip address
encapsulation hdlc

указываем номер транкгруппы и приоритет, чем ниже номер тем выше приоритет, по аналогии с preference в dial-peer:
trunk-group 88 1
isdn switch-type primary-net5
isdn overlap-receiving
isdn incoming-voice modem
isdn guard-timer 3000
isdn map address .* plan isdn type unknown
fair-queue 64 256 0
no cdp enable

!
interface Serial3/1:15
description ### Operator 1 2E1 ###
no ip address
encapsulation hdlc

указываем номер транкгруппы и приоритет, чем ниже номер тем выше приоритет, по аналогии с preference в dial-peer:
trunk-group 88 2
isdn switch-type primary-net5
isdn overlap-receiving
isdn incoming-voice modem
isdn guard-timer 3000
isdn map address .* plan isdn type unknown
fair-queue 64 256 0
no cdp enable

!
interface Serial3/2:15
description ### Operator 1 3E1 ###
no ip address
encapsulation hdlc

указываем номер транкгруппы и приоритет, чем ниже номер тем выше приоритет, по аналогии с preference в dial-peer:
trunk-group 88 3
isdn switch-type primary-net5
isdn overlap-receiving
isdn incoming-voice modem
isdn guard-timer 3000
isdn map address .* plan isdn type unknown
fair-queue 64 256 0
no cdp enable

!
interface Serial3/3:15
description ### Operator 1 4E1 ###
no ip address
encapsulation hdlc

указываем номер транкгруппы и приоритет, чем ниже номер тем выше приоритет, по аналогии с preference в dial-peer:
trunk-group 88 4
isdn switch-type primary-net5
isdn overlap-receiving
isdn incoming-voice modem
isdn guard-timer 3000
isdn map address .* plan isdn type unknown
fair-queue 64 256 0
no cdp enable

!
interface Serial3/4:15
description ### Operator 2 ###
no ip address
encapsulation hdlc

снова указываем номер транкгруппы:
trunk-group 888
isdn switch-type primary-net5
isdn overlap-receiving
isdn incoming-voice modem
isdn guard-timer 3000
isdn map address .* plan isdn type unknown
fair-queue 64 256 0
no cdp enable

Проверить правильность настроек можно командой:

sh trunk group 88

Trunk group: 88
Description: ### Operator 1 ###
trunk group label: 88

Translation profile (Incoming):
Translation profile (Outgoing):

Hunt Scheme is sequential both
Max Calls (Incoming):   NOT-SET (Any)   NOT-SET (Voice) NOT-SET (Data)
Max Calls (Outgoing):   NOT-SET (Any)   NOT-SET (Voice) NOT-SET (Data)
Max Calls (MixTotal):   NOT-SET (Any)   NOT-SET (Voice) NOT-SET (Data)
Retries: 0

Trunk Se3/0:15  Preference 1
Member Timeslots : 1-31
Total channels available : 30
Data = 0, Voice = 10, Modem = 0, Pending = 0, Free = 20
Trunk Se3/1:15  Preference 2
Member Timeslots : 1-31
Total channels available : 30
Data = 0, Voice = 2, Modem = 0, Pending = 0, Free = 28
Trunk Se3/2:15  Preference 3
Member Timeslots : 1-31
Total channels available : 30
Data = 0, Voice = 0, Modem = 0, Pending = 0, Free = 30
Trunk Se3/3:15  Preference 4
Member Timeslots : 1-31
Total channels available : 30
Data = 0, Voice = 2, Modem = 0, Pending = 0, Free = 28

Total calls for trunk group: Data = 0, Voice = 14, Modem = 0
Pend = 0, Free = 106

advertise_flag 0x00000040, capacity timer 25 sec tripl_config_mask 0x00000000
AC_curr 106, FD_curr 40, SD_curr -40

succ_curr 929408 tot_curr 1093569
succ_report 929408 tot_report 1093569
changed 1 replacement position 0

Остается создать соответствующие диал-пиры в соответствии с задачей:

  • местная связь — Оператор 1
  • мг/мн — Оператор 2

!
dial-peer voice 7495 pots
trunkgroup 88
huntstop
preference 1
destination-pattern 749[5,9]…….$
progress_ind setup enable 3
progress_ind alert enable 8
no digit-strip
direct-inward-dial
!
dial-peer voice 8495 pots
trunkgroup 88
huntstop
preference 1
destination-pattern 849[5,9]…….$
progress_ind setup enable 3
progress_ind alert enable 8
no digit-strip
direct-inward-dial
!
dial-peer voice 810 pots
trunkgroup 888
destination-pattern 810.T
progress_ind setup enable 3
progress_ind alert enable 8
no digit-strip
!
dial-peer voice 888 pots
trunkgroup 888
destination-pattern 8……….$
progress_ind setup enable 3
progress_ind alert enable 8
no digit-strip

P.S. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Автор: zaikini
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 1, среднее: 5,00 из 5)
Загрузка...
Отправить на почту Отправить на почту

Введение

После нескольких лет перерыва в работе с cisco ata-186, потребовалось запустить ее в работу с авторизацией по SIP. В моем случае в ata-шке была прошивка SCCP (Skinny Client Control Protocol, проприетарный протокол, разработан Selsius Corporation, в настоящее время принадлежит Cisco Systems Inc), нужно было ее заменить на прошивку, поддерживающую SIP. В принице, ничего сложного нет, но когда перерывы между подходами к этой задаче измеряются годами, то нюансы из головы потихоньку улетучиваются.

Решение

Прошивка входит в состав архива, где, помимо самой прошивки, еще есть и вспомогательные инструменты, в т.ч. и для решения этой задачи: sata186us. Варианты этой утилиты предусматривают возможность работы в средах Windows, Sun Solaris и linux. Вот последний вариант нам как раз и нужен, т.к. рабочая машина у меня под FreeBSD (с поддержкой исполнения линуксовых бинарников). Выставляем бит «х» на sata186us.linux и запускаем его:

[book]# ./sata186us.linux -any -d2 ATA030200SIP041111A.zup -h192.168.18.15

где:

-any — разрешать входящие подключения с любого IP адреса;

-d2 — debug level 2;

-h — на каком IP адресе «слушать» входящие подключения, в случае, когда адресов несколько;

ATA030200SIP041111A.zup — сам файл прошивки.

После запуска выводится следующая информация:
sata186us version 3.1

Using Host with IP: 192.168.18.15 as upgrade server
This machine IP: 192.168.18.15
Upgrade Server Port: 8000
Data stream 0 port: 8500
image found: code — ata186.itsp2.v3.2
Number of 1024 blocks: 315

Using dialpad of your telephone (attached to your ATA box),
press ATA button to go to main menu, and enter:

100#192*168*18*15*8000# (to upgrade code)

NOTE:
Pressing 123# will announce your code’s version number.
You can later verify that you have upgraded your ATA box.

——————————————-

This program runs continuously; Press <ctrl>-c to abort.
Upgrade server ready…

На ata-186 нажимаем указанную комбинацию клавиш и процесс прошивки пошел:

Tue Dec 16 18:53:59 2008 172.16.121.122 -> <udp: 192.168.18.15 8500 123>
Begin uploading code to 172.16.121.122 (Tue Dec 16 18:53:59 2008) …
7a793e56: 0
7a793e56: 1
7a793e56: 2

….

После окончания прошивки нажимаем в консоли ctrl+c.

Все, после перезагрузки ata-шки на ней уже работает новая прошивка.

З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !
Автор: Панфилов Алексей (lehis (at) subnets.ru)
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 1, среднее: 5,00 из 5)
Загрузка...
Отправить на почту Отправить на почту

В качестве примера возьмем вариант с приветствием, 2-мя подменю (отдел продаж и тех. поддержки) и 3-мя попытками выбора.

При входящем звонке из города:

  1. Поднимаем трубку
  2. говорим приветствие
  3. нажмите 4-ре — отдел продаж
  4. нажмите 5 — отдел тех.поддержки

Выдержка из файла /usr/local/etc/asterisk/extensions.conf

[fromcity]
exten => s,1,Answer() ;Поднимаем трубку
exten => s,n,Background(hello) ;Запускаем приветствие
exten => s,n,Set(numTries=0) ;Выставляем кол-во попыток
exten => s,n(naberite),Background(naberite) ;Рассказываем о возможности набрать цифры 4 и 5
exten => s,n,WaitExten() ;Ждем ввода от пользователя
exten => 4,1,Goto(otdel-prodaj,s,1) ; Нажали 4-ре переходим на голосовое меню отдела продаж
exten => 5,1,Goto(supports,s,1) ;Нажали 5-ть — переходим на голосовое меню тех.подов
exten => i,1,Playback(pbx-invalid) ;Нажали не 4-ре и не 5-ть — говорим что ввод не верный
exten => i,n,Goto(s,naberite) ; Возвращаемся и повторяем сообщение о том какие кнопки можно нажимать
exten => t,1,Set(numTries=$[${numTries} + 1]) ; Увеличивает кол-во попыток на 1-цу при таймауте набора
exten => t,n,GotoIf($[«${numTries}» < «3»]?s|naberite) ;Пока кол-во потыток меньше 3-х повторяем сообщение о том какие кнопки можно нажимать
exten => t,n,Playback(bay) ;Кол-во попыток на таймаут израсходовано, прощаемся
exten => t,n,Hangup() ; Вешаем трубку

[otdel-prodaj]
exten => s,1,Playback(vi_nahodites_v_menu)
exten => s,n,Playback(otdela_prodag)
exten => s,n,Background(glavnoe_menu_nazmite_zvezdochka)
exten => s,n,Background(dlya_zaversheniya_nazmite_reshetka)
exten => s,n,WaitExten()
exten => *,1,Goto(fromcity,s,naberite)
;Нажали звездочку, выходим в главное меню
exten => #,1,Hangup() ;Нажали решетку — вешаем трубку
exten => i,1,Playback(pbx-invalid)
exten => i,n,Goto(s,1)
exten => t,1,Playback(bay)
exten => t,n,Hangup()

[supports]
exten => s,1,Playback(vi_nahodites_v_menu)
exten => s,n,Playback(otdela_supportov)
exten => s,n,Background(glavnoe_menu_nazmite_zvezdochka)
exten => s,n,Background(dlya_zaversheniya_nazmite_reshetka)
exten => s,n,WaitExten()
exten => *,1,Goto(fromcity,s,naberite)
exten => #,1,Hangup()
exten => i,1,Playback(pbx-invalid)
exten => i,n,Goto(s,1)
exten => t,1,Playback(bay)
exten => t,n,Hangup()

Вот так это работает. Вы можете создать ещё саб-менюхи.
В саб-менюхах (в примере это otdel-prodaj и supports) вы можете описывать новые саб-меню по нажаитию кнопок и т.д.

Главное чтобы саб-меню выступали как отдельные экстеншены.

Немаловажно помнить о том, что при проигрывании сообщения с помощью функции Playback нажатие каких либо клавиш игнорируются, «прослушка» нажатия клавиши от пользователя ТОЛЬКО при использовании функции Background.

Как записать сами голосовые файлы ?

Вариантов как минимум два:

  1. С помощью самого сервера Asterisk c помощью функции Record, сделать экстеншн (exten) под это дело.
    Пример:

    exten => 1111,1,Set(TIME="${STRFTIME(${EPOCH},,%C%y-%m-%d_%H-%M-%S)}")
    exten => 1111,n,Playback(beep)
    exten => 1111,n,Record(/usr/local/share/asterisk/sounds/record%d_${TIME}.gsm)
    exten => 1111,n,Playback(${RECORDED_FILE})
    exten => 1111,n,Hangup()

    записанный файл будет сохранен в директории /usr/local/share/asterisk/sounds/ и иметь название формата record_НОМЕР_ВРЕМЯ.gsm
    (или ещё вариант: такая возможность реализована в веб-интерфейсе asterisk-gui -> в FreeBSD /usr/ports/www/asterisk-gui -> сайт http://www.asterisknow.org/)

  2. Записать с помощью Windows recorder («Пуск»-«Программы»-«Стандартные» — «Развлечения и звукозапись»), выбираем параметры записи: Формат PCM, Mono, 8bit

Если вы записали файлы вторым способом, то для того чтобы Asterisk «понял» их необходимо перекодировать в формат gsm.

Это можно сделать утилитой sox (в FreeBSD /usr/ports/audio/sox)

sox input.wav -r 8000 -c 1 output.gsm resample -ql

если версия sox 14.3.0:

sox input.wav -r 8k -c 1 -e gsm output.gsm

где input.wav — записанный вами в Windows файл

output.gsm — файл для Asterisk на выходе, его потом нужно разместить в /usr/local/share/asterisk/sounds/

«Нарезать» wav файлы удобно с помощью программы Audacity

При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Автор: Николаев Дмитрий (virus (at) subnets.ru)
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 12, среднее: 4,67 из 5)
Загрузка...
Отправить на почту Отправить на почту

ether0.0 — Интерфейс Addpac смотрящий в ethernet сеть

192.168.1.77 — Шлюз и сервер Asterisk

192.168.1.10 — IP-адрес Addpac

7777 — внутренний номер для телефонного аппарата за Addpac

access-list 30 — Аксесс лист для ограниченя доступа к Addpac

Вот как будет выглядеть show run в минимальной конфигурации для совершения звонков и их принятия:

!
version 8.23H
!
hostname addpac-test
!
!
no bridge spanning-tree
!
access-list 30 permit ip host 192.168.1.77 host 192.168.1.10
!
!
ip-share enable
ip-share interface net-side ether0.0
ip-share interface local-side ether1.0
!
interface ether0.0
ip address 192.168.1.10 255.255.255.0
ip access-group 30 in
!
interface ether1.0
no ip address
shutdown
!
snmp name AP200B
!
no arp reset
!
route 0.0.0.0 0.0.0.0 192.168.1.77
!
no service ftpd
no service httpd
!
!
!
!
!
! VoIP configuration.
!
!
! Voice service voip configuration.
!
voice service voip
fax protocol t38 redundancy 0
fax rate 9600
h323 call start fast
h323 call tunnel enable
timeout tidt 5
busyout monitor gatekeeper
no busyout monitor callagent
busyout monitor voip-interface
!
!
! Voice port configuration.
!
! FXS
voice-port 0/0
description 2_Telephone-(AOH-7777)
!
!
! FXS
voice-port 0/1
!
!
!
!
! Pots peer configuration.
!
dial-peer voice 3 pots
destination-pattern 7777
port 0/0
!
!
!
! Voip peer configuration.
!
dial-peer voice 2 voip
destination-pattern .T
session target 192.168.1.77
session protocol sip
codec g711alaw
dtmf-relay rtp-2833
no vad
description 2_Asterisk_server
!
!
!
!
!
!
! Gateway configuration.
!
gateway
h323-id voip.192.168.1.10
no ignore-msg-from-other-gk
!
!
! SIP UA configuration.
!
sip-ua
!
!
! MGCP configuration.
!
mgcp
codec g711ulaw
!
!
! Tones
!
!
!
!

Asterisk

sip.conf:

[adpak]
context=default
type=peer
host=192.168.1.10
port=5060
canreinvite=yes
reinvite=yes
disallow=all
allow = alaw
deny=0.0.0.0/0
permit=192.168.1.10/32
insecure=invite

[7777]
#Для исходящих звонков
callerid=Office phone
type=friend
call-limit=1
context=default
host=192.168.1.10
reinvite=no
canreinvite=no
disallow=all
allow = alaw

extensions.conf:

[default]
exten => 7777,1,Dial(SIP/7777@adpak,60,r)

Ссылки:

При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Авторы:
Панфилов Алексей (lehis (at) subnets.ru)
Николаев Дмитрий (virus (at) subnets.ru)
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (Еще не голосовали)
Загрузка...
Отправить на почту Отправить на почту
  • http://voip.rus.net/tiki-index.php — VoIp Справочник на русском языке
  • http://www.voip-info.org/wiki/ — a reference guide to all things VOIP
  • http://www.asterikast.com/ — online video tutorial explaining how to setup, configure and use the Asterisk PBX by Digium.
  • http://www.asteriskguru.com/ — tutorials
  • http://www.opennet.ru/docs/RUS/voip_asterisk/2.html — Asterisk и Linux — миссия IP-телефония
  • http://asterisk-support.ru/ — портал поддержки пользователей Asterisk
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (Еще не голосовали)
Загрузка...
Отправить на почту Отправить на почту