Вы здесь

Простой IVR или автоответчик на маршрутизаторе

В среде Call Manager мы можем принимать входные звонки с использованием автоответчика или IVR.

Для организации IVR у нас есть несколько путей:

Последний пункт хорош тем, что ничего не надо ставить дополнительного. Если в региональном офисе есть маршрутизатор с поддержкой голоса, на нем можно поднять простой скрипт IVR.

Скрипт IVR также накладывает и ограничение: с ним нельзя использовать MGCP.

приведенный ниже пример скрипта включает в себя 5 файлов:
router#show flash
25 3293 Apr 21 2011 12:22:48 +06:00 vxml-ivr/My.vxml
26 45754 Apr 21 2011 11:39:16 +06:00 vxml-ivr/newfirst_announcement.wav
27 38458 Apr 21 2011 12:37:30 +06:00 vxml-ivr/absent_number.wav
28 48058 Apr 21 2011 12:38:12 +06:00 vxml-ivr/number_busy.wav
29 45754 Apr 21 2011 12:37:52 +06:00 vxml-ivr/no_answer.wav

Работа скрипта:
При входящем звонке снимается трубка и звучит приветствие. При этом можно набрать 3-х значный внутренний номер либо дождаться ответа секретаря.
0 – Секретарь
9 – Факс

Настройка IOS:

Включение сервиса vxml
application
service ivrr flash:/vxml-ivr/My.vxml
!
global
service alternate default

Настройка физического порта FXO. Входящий звонок будет перенаправлен на внутренний номер 550.
voice-port 1/0/8
supervisory disconnect dualtone mid-call
echo-cancel coverage 32
timeouts call-disconnect 1
timeouts ringing 20
timeouts wait-release 1
connection plar 550
caller-id enable

Данный диалпир направляет звонки на внутренний номер 550 на скрипт.
dial-peer voice 1000 pots
service ivrr
incoming called-number 550
port 1/0/8

Скрипт возвращает трехзначный номер абонента. Его отдаем на Call Manager:
dial-peer voice 3001 voip
description Short calls
destination-pattern [1-5]..
session target ipv4:10.16.0.11
dtmf-relay h245-alphanumeric
codec g711ulaw
no vad

При изменении скрипта или файлов необходимо перезапустить:
application
no service ivrr flash:/vxml-ivr/My.vxml
service ivrr flash:/vxml-ivr/My.vxml

Запись звуковых файлов:
Самое простое: приложение sndrec32, там выбираем тип формата CCITT u-Law 8,000 и приступаем к записи.
sndrec32_ciscomaster.ru.jpg

Проверка
debug voip application digitcollect
show call active voice compact

Вариант скрипта самый простой:
My2.vxml

Вариант скрипта посложней
My1.vxml

Также см.
Пример рабочего IVR CME + E1

Возможные проблемы

При настройке данного скрипта для работы с SIP провайдером может не проходить трансфер, решить можно попытаться:

Tags: 

Комментарии

Какое у вас подключение к PSTN? E1, FXO?

маршрутизатор 2901 с карточкой FXO 4 порта
вот как выглядит конфиг без ivr

voice-port 0/0/0
supervisory disconnect dualtone mid-call
no battery-reversal
cptone RU
timeouts call-disconnect 1
timeouts ringing 60
timeouts wait-release 1
connection plar opx 3110437
caller-id enable
!
voice-port 0/0/1
supervisory disconnect dualtone mid-call
no battery-reversal
cptone RU
timeouts call-disconnect 1
timeouts wait-release 1
connection plar opx 3110436
caller-id enable
!
voice-port 0/0/2
shutdown
!
voice-port 0/0/3
shutdown
!
dial-peer voice 1 pots
destination-pattern 9.T
port 0/0/0
!
dial-peer voice 2 pots
destination-pattern 9.T
port 0/0/1
!
dial-peer voice 3 pots
incoming called-number 3110437
direct-inward-dial
port 0/0/0
!
dial-peer voice 4 pots
incoming called-number 3110436
direct-inward-dial
port 0/0/1

а вот с ivr

voice-port 0/0/0
supervisory disconnect dualtone mid-call
no battery-reversal
cptone RU
timeouts call-disconnect 1
timeouts ringing 20
timeouts wait-release 1
connection plar 550
caller-id enable
!
voice-port 0/0/1
supervisory disconnect dualtone mid-call
no battery-reversal
cptone RU
timeouts call-disconnect 1
timeouts ringing 20
timeouts wait-release 1
connection plar 551
caller-id enable
!
voice-port 0/0/2
shutdown
!
voice-port 0/0/3
shutdown
!
dial-peer voice 1 pots
service ivrr
incoming called-number 550
port 0/0/0
!
dial-peer voice 2 pots
service ivrr
incoming called-number 551
port 0/0/1
!
dial-peer voice 3 pots
destination-pattern 9.T
port 0/0/0
!
dial-peer voice 4 pots
destination-pattern 9.T
port 0/0/1
!
dial-peer voice 5 voip
description Short calls
destination-pattern [1-2]..
session target ipv4:10.10.0.150
dtmf-relay h245-alphanumeric
codec g711ulaw
no vad

У меня сделано с ivr совершенно аналогично.
c2951-universalk9_npe-mz.SPA.151-4.M1.bin
Насколько свежий у вас иос?

иос вот такой c2900-universalk9-mz.SSA.V151_4_M_RO_IOS_2

ИОС в принципе можно обновить, есть более свежие версии. Высылайте полный конфиг.

вот конфиг

!
hostname CISCO2901
!
no ipv6 cef
ip source-route
ip cef
!
ip domain name mydomain.kz
ip name-server 8.8.8.8
multilink bundle-name authenticated
!
crypto pki token default removal timeout 0
!
crypto pki trustpoint TP-self-signed-111111777
enrollment selfsigned
subject-name cn=IOS-Self-Signed-Certificate-111111777
revocation-check none
rsakeypair TP-self-signed-111111777
!
crypto pki certificate chain TP-self-signed-111111777
certificate self-signed 01 nvram:IOS-Self-Sig#2.cer
voice-card 0
dsp services dspfarm
!
voice service voip
ip address trusted list
no supplementary-service h450.2
no supplementary-service h450.3
no supplementary-service h450.7
no supplementary-service sip moved-temporarily
no supplementary-service sip refer
fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback none
sip
bind control source-interface GigabitEthernet0/0
bind media source-interface GigabitEthernet0/0
!
voice translation-rule 1
rule 1 /^9/ //
!
voice translation-profile cut_9
translate called 1
!
application
service ivrr flash:/vxml-ivr/My.vxml
!
global
service alternate default
!
license udi pid CISCO2901/K9 sn FCZ11111111B
hw-module pvdm 0/0
!
username ХХХХХХ privilege 15 password $1$JNYr$.in6Df5G

redundancy
!
no ip ftp passive
ip ssh version 2
!
interface Embedded-Service-Engine0/0
no ip address
shutdown
!
interface GigabitEthernet0/0
description ====== LAN =====
ip address 10.10.0.150 255.255.255.0
ip virtual-reassembly in
duplex auto
speed auto
!
interface GigabitEthernet0/1
description ====== WAN ======$ETH-WAN$
ip address XX.XX.XX.XX 255.255.255.0
ip access-group FIREWALL in
ip virtual-reassembly in
duplex auto
speed auto
!
ip forward-protocol nd
!
no ip http server
ip http authentication local
ip http secure-server
!
ip route 0.0.0.0 0.0.0.0 XX.XX.XX.XX
!
ip access-list extended FIREWALL
permit tcp any any eq XX
!
tftp-server flash://its/BOOT69xx.0-0-0-14.zz.sgn alias BOOT69xx.0-0-0-14.zz.sgn
tftp-server flash://its/DSP69xx.0-0-0-8.zz.sgn alias DSP69xx.0-0-0-8.zz.sgn
tftp-server flash://its/SCCP69xx.9-2-1-0.loads alias SCCP69xx.9-2-1-0.loads
tftp-server flash://its/SCCP69xx.9-2-1-0.zz.sgn alias SCCP69xx.9-2-1-0.zz.sgn
!
control-plane
!
voice-port 0/0/0
supervisory disconnect dualtone mid-call
no battery-reversal
cptone RU
timeouts call-disconnect 1
timeouts ringing 20
timeouts wait-release 1
connection plar 550
caller-id enable
!
voice-port 0/0/1
supervisory disconnect dualtone mid-call
no battery-reversal
cptone RU
timeouts call-disconnect 1
timeouts ringing 20
timeouts wait-release 1
connection plar 551
caller-id enable
!
voice-port 0/0/2
shutdown
!
voice-port 0/0/3
shutdown
!
mgcp profile default
!
dial-peer voice 1 pots
service ivrr
incoming called-number 550
port 0/0/0
!
dial-peer voice 2 pots
service ivrr
incoming called-number 551
port 0/0/1
!
dial-peer voice 3 pots
destination-pattern 9.T
port 0/0/0
!
dial-peer voice 4 pots
destination-pattern 9.T
port 0/0/1
!
dial-peer voice 5 voip
description Short calls
destination-pattern [1-2]..
session target ipv4:10.10.0.150
dtmf-relay h245-alphanumeric
codec g711ulaw
no vad
!
gatekeeper
shutdown
!
telephony-service
no auto-reg-ephone
max-ephones 35
max-dn 100
ip source-address 10.10.0.150 port 2000
max-redirect 5
timeouts interdigit 3
system message -=MURKA=-
cnf-file location flash:
user-locale RU load CME-locale-ru_RU-Russian-8.8.2.5.tar
load 6921 SCCP69xx.9-2-1-0
load 6941 SCCP69xx.9-2-1-0
load 6961 SCCP69xx.9-2-1-0
max-conferences 8 gain -6
transfer-system full-consult
secondary-dialtone 9
create cnf-files version-stamp Jan 01 2002 00:00:00

У вас используется CUCME, поэтому dial-peer voice 5 voip "Short calls" вам не нужен: для каждого внутреннего телефона и так создано по диалпиру.

Касательно трансфера:
В telephony-service добавьте:

transfer-system full-consult transfer-pattern .T

Также, если у вас не используется sip, уберите всё лишнее из voice service voip.
Самый простой вид:

voice service voip ip address trusted list ipv4 192.168.0.0 255.255.0.0 ipv4 172.16.0.0 255.240.0.0 ipv4 10.0.0.0 255.0.0.0 fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback none

в dial-peer voice 5 voip, Short calls убрал, хотя оно там было в поле дескрипшин,
добавил transfer-pattern .T в telephony-service, поправил voice service voip не помогло
звоню, набираю внутренний номер, после чего меня переводят, слышу в трубке очень короткие гудки через длинную паузу и потом тишина :(

Опишите подробнее. У вас не работает транфер, или даже скрипт не может переключить на внутренний?

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

Еще раз пробежался по параметрам, попробуйте добавить если нет следующее:

telephony-service
transfer-system full-consult
transfer-pattern .T
call-forward pattern .T
allow-connections sip to sip
allow-connections sip to h.323
allow-connections h.323 to h.323
allow-connections h.323 to sip
!
voice service voip
supplementary-service h450.2
supplementary-service h450.3
supplementary-service h450.12
supplementary-service h450.3

Может иммет смысл перезапустить сервис CME и заодно voice service voip

Также можно порыться в дебагах:
debug ephone state
debug voip ccapin inout
debug voip application supplementary-service

Ещё был случай когда пользователь тупо не умел транферить :)
При full-consult нужно ведь раз нажать tranfer, а затем еще раз. Забывают про второй раз и кладут трубу.

не подскажете что добавить в скрипте, чтобы работало с четырехзначными номерами?

В самом простом варианте скрипта, меняете строку:

[0-9][0-9][0-9]

На эту:

[0-9][0-9][0-9][0-9]

call-forward или snr

Добрый день!
руководство озадачило чтобы если секретарь не отвечает звонки переводились на другой внутренний номер по таймауту.
прописываю как обычно в конфиге на номере секретаря строчку:

call-forward noan 1XX timeout 10

При дозвоне с города если звонок приходит через IVR переадресация не работает, тоже самое касается если прописатьSNR (звонит только телефон секретаря, тот что параллельный молчит)

Если позвонить просто с внутреннего номера (без IVR) call-forward и snr работают отлично.

Можете подсказать как побороть проблему?

уточнение:

не работает только SNR. c CALL-FORWARD разобрался.

Но SNR тоже очень нужен. Или подскажите какие еще варианты отправлять один звонок одновременно на два номера?

Добрый день,
Вы можете попробовать использовать Hunt Pilot

Добрый день. Подскажите пожалуйста, а возможно ли при использовании IVR работа по времени. Т.е. мне надо, чтобы с 9 до 22 он перенаправлял на операторов, а после, с 22 до 9 он проигрывал сообщение мол мы работаем...бла-бла.... ваш звонок будет обработан утром.

Добрый день,
это возможно. См. статью с примером http://habrahabr.ru/post/159229/

скажите как сделать чтобы принимал 4 цифры в сложном скрипте вопрос очень срочный, с 3 все работает
и до этого почитал проблему с transfer решили здесь http://www.anticisco.ru/forum/viewtopic.php?t=5590
до этого у меня была такая же проблема

CME(config)#vxml version 2.0
CME(config)#vxml allow-star-digit

вместо true должно стоят false

отпишите пожалуйста что делать с 4 цифрами заранее благодарен

transfer connecttimeout="20s" name="mycall" destexpr="number" bridge="true"

в этой строчке вместо true должно стоят false

Чтобы сделать 4-ре цифры:
в строчки типа:

grammar type="application/grammar+regex">[0-9][0-9]

Меняете на

grammar type="application/grammar+regex">[0-9][0-9][0-9]

Cпасибо!

Прошу прощения, а если у меня демо железка, у которой нет ни аналога, ни Е1 - просто подключены два телефона. Как мне проверить ivr? Какие нужны dial-peer?

А их всего-то два POTS и Voip :).
У вас тоже POTS

Разве? А не voip dial-peer?

Добрый день. Я так понимаю, для IVR на маршрутизаторе обязательно присутствие PVDM, верно?

PVDM необходима для конвертации VoIP в аналог, в TDM (E1) и в другой VoIP, т.е. PVDM необходима для функционирования шлюза VOIP. Ну а поскольку IVR размещается на этом шлюзе, следовательно ответ да, верно :)

Не совсем так. В PVDM нет необходимости для функционирования шлюза VOIP. У меня так несколько шлюзов работают, без PVDM. Может зависит от голосовых протоколов, у меня только sip to sip на шлюзах. Хотя на внутренних телефонах sccp.
Есть у меня две штуки cisco router 2901, одна с PVDM, другая без PVDM (но обе работают как CUBE). Пытаюсь на обоих запустить IVR, пока не работает ни на одной(( Вот я и думаю, есть ли зависимость от PVDM. Так что вопрос принципиальный :)

Что это у вас за шлюзы такие? Без PVDM ни аналог не подключишь, ни E1, ни MTP

Не работает IVR, хоть провались!
Маршрутизатор с2901. Даже приветствие не проигрывает. Сократил vxml-код до простого приветствия, обновил ИОС, пробовал записывать звуковой файл и в g711alaw и в g711ulaw. Бесполезно. Дебаг ошибок не выдает, показывает будто все нормально проигрывает. При дозвоне тишина, т.е. сразу отбой не происходит.

В начале статьи, указано, что не будет работать с mgcp. У меня воткнуто карта fxo, но она не активна, все порты shutdown. Может ли это послужить причиной нерабочего IVR?

Есть у кого идеи, что может быть причиной подобного?

Могу вам кинуть скрипт и звуковые файлы, с рабочего роутера, дайте email.
Если тишина, но реагирует на DTMF - скорее всего формат звукового файла.
С mgcp работать не будет, т.к. IVR привязывается к диалпиру, а mgcp контролируется напрямую Агентом

Спасибо. Мой email rodik@smtp.ru
Скиньте пожалуйста, если не сложно, попробую. Эксперементировал на скрипте и звуковых файлах из вашей статьи. DTMF не проверял. Урезал скрипт только до проигрывания приветствия.
С mgcp, не до конца понял. У меня с помощью mgcp callmanager управлял fxo, установленное на маршрутизатор с2901. Сейчас, аналоговые линии не используется. В callmanager'e я удалил все настройки для fxo. А на маршрутизаторе постарался удалить все настройки связанные с mgcp. Все порты fxo shutdown.

Какой у вас ИОС установлен на маршрутизаторе, где работает IVR?

Чтобы проверить выключен MGCP:
show mgcp
operation state дожно быть DOWN

show ccm-manager
Должна показать % Call Manager Application is not enabled

Если у вас есть MGCP берите UCCX: там все по человечески понятней, а сложное реализуется на порядок проще.

MGCP на маршрутизаторе проверил. Все так как вы написали - отключено. Про UCCX уже пытался удочку закинуть начальству, пока тишина.

Добрый день,
Недавно столкнулся с такой проблемой - как проигрывание IVR скрипта на H323 и SIP транках, на cisco.com в основном описываются решения, когда клиенты звонят на cisco с POTS,FXO,FXS или cisco phones зарегистрированных на этом же CME, где находится IVR скрипт. Но как быть когда клиенты звонят на cisco через SIP или H323 транк? Я потратил на решение этой проблемы 3 недели, пытался поднимать транскодинг, кодировать файлы в другой кодек, так как при входящем вызове на dial-peer voip в h323 согласовывался кодек g729r8 скрипт отрабатывал, но ничего не было слышно, при звонках через sip транк кодек согласовывался g711ulaw, но в ответ так же тишина. В итоге, после долгих тестирований и поисков ответа в интернете решение все таки было найдено, на cisco.com в форуме я его описал подробней - ссылка на форум https://supportforums.cisco.com/ru/discussion/11841966. Здесь же я оставлю краткое решение на всякий случай.
Итак для корректной работы скрипта IVR на SIP и H323 транках необходимо использовать только dial-peer voip как входящий интерфейс по аналогии dial-peer pots.
т.е. рабочий dial-peer должен выглядеть следующим образом:
dial-peer voice 8892 voip
incoming called-number 8892
session target ipv4:192.168.100.121
destination-pattern 8892
service test
В этом пире главное условие применение сервиса service test , а не service test outbound, и обязательное условие указать ,что этот пир является входящим incoming called-number.
На мысль сделать voip как pots подтолкнула вот эта статья http://www.cisco.com/c/en/us/td/docs/routers/access/as5350/software/feat... Configuring Interactive Voice Response for Cisco Access Platforms и вот этот абзац:
Dial-Peer Application Field
Use the application field in the inbound dial peer to associate an application with an incoming call.

P.S. После того, как я дошел до этого, нашел вот эту статью https://supportforums.cisco.com/ru/discussion/11858086 - обидно ответ был, но я его не видел.

У вас не возникало ли проблемы с трансфером? Т.е. поступает звонок по транку, попадает на секретаря. Может ли секретарь успешно перевести звонок на другого абонента?

Коллеги, подскажите на связке 2921+7941 - не происходит набор добавочных номеров и собщение нельзя тоже прервать

Вот такие ошибки
Mar 23 11:38:05.906: ephone-3[2/3][SEP0018192818D0]:
Mar 23 11:38:05.906: bulk_sd_search_lists: button= 2 state NOT_IN_SD
Mar 23 11:38:06.270: ephone-3[2/3][SEP0018192818D0]:
Mar 23 11:38:06.270: bulk_sd_search_lists: button= 2 state NOT_IN_SD
Mar 23 11:38:06.650: ephone-3[2/3][SEP0018192818D0]:
Mar 23 11:38:06.650: bulk_sd_search_lists: button= 2 state NOT_IN_SD

Использовал сложную версию скрипта- все работает. Единственный момент - если во время приветствия абонент кладет трубку секретарю все равно прилетает звонок при ответе на который естественно короткие гудки....
Как победить?

Помогите с проблемой.
Скрипт настроил - вроде все работает, но только для городских номеров. При попытке звонка с мобильного после поднятия трубки автоответчиком происходит сброс. Начал разбираться - проблема уходит когда на аналоговом порту FXO убираешь caller-id (или переводишь его в режим DMTF). Но при этом на внутренних аппаратах высвечивается номер plar т.е. 550
Переключение в режим FSK возвращает все взад - т.е. городские нормально отрабатывают и определяются, а мобильные отбивает.

У меня проблема при дозвоне тишина :(
dial-peer voice 1999 voip
service ivr_test
incoming called-number 0443949596
voice-class codec 1
voice-class sip early-offer forced
dtmf-relay rtp-nte
no vad

global
service alternate default
!
!
vxml allow-star-digit

application
service ivr_test flash:My2.vxm

Звуковой файл и скрипт взял ваш для теста!

Если сам звонок виден через команду show call active voice compact,
тишина обычно говорит о неправильном формате звукового файла.

Добрый день.
Сделал и подключил ivr на cisco 2921.
Сначала столкнулся с проблемой невозможности перевода звонка с оператора на другие внутренние номера (звонок повисал в режиме удержания и невозможно было не вернуться к звонящему человеку ни перевести на другой внутренний номер). Проблема решилась после добавления двух команд в конфигурацию cisco 2921 (vxml version 2.0 и vxml allow-star-digit). После добавления этих дух команд в скрипте перестала отрабатывать команда transferaudio="flash:/hold.au", которая осуществляла воспроизведение музыки пока звонящий ожидал ответа от оператора. Музыка пропала и вместо нее проходят обычные гудки. Если кто-то сталкивался с такой проблемой, то подскажите в чем может быть проблема.

Страницы

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Target Image