viperrsh
@viperrsh
Java разработчик

Связь Cisco Call Manager со сторонней программой-сервисом?

В вопросах администрирования CISCO IP телефонии полный нуль — спрошу у гуру.


Можно ли связать CISCO Call Manager (CCM) / IVR с каким-нибудь сервисом, который размещен на другом физическом сервере?


К примеру, поступает звонок -> звонящий набирает в тональном наборе какие-нибудь цифры -> эти данные поступают на определенный сервис на другой машине (192.168.1.1:0000/?q=DATA). Ну как-то так.


А так же другой вопрос, как можно программно записать каждый разговор и так же отправить сформированный файл на сторонний сервис?


Заранее благодарю всех заинтересовавшихся.
  • Вопрос задан
  • 3601 просмотр
Решения вопроса 1
viperrsh
@viperrsh Автор вопроса
Java разработчик
Поймал себя на мысли, что задача отправки запросов на другой сервер посредством Cisco IVR, осуществляется штатными средствами языка программирования TCL, а именно через открытие сокета

   set sock [socket -async 127.0.0.1 33000]
   vwait connected
   puts $sock "A Test Line"


При помощи puts можно отправлять уже данные, непосредственно полученные от Cisco IVR API.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
DamDamich
@DamDamich
Network Engineer
Можно. В VoIP Cisco есть такая замечательная технология, как Call Routing, пилите в эту сторону.
Ну а по второму вопросу, можно посоветовать Вам только СОРМ, возможно это именно то что вам нужно, хотя могу и ошибаться, на практике еще не встречался с ней-)
Ответ написан
viperrsh
@viperrsh Автор вопроса
Java разработчик
Кому интересно, то вот примерчик для записи звонков и последующее их проигрывание звонящему (TLC скрипт). Команда media record

proc act_Setup { } {

puts "\n DEBUGGING: Start act_Setup"
init_perCallVars

set ani [infotag get leg_ani]
set dnis [infotag get leg_dnis]

if { $dnis == "0555005211" } {
puts "\n DEBUGGING: Welcome Play"
leg setupack leg_incoming
leg proceeding leg_incoming
leg connect leg_incoming
media play leg_incoming flash:welcome.au
fsm setstate RECORD
}
aaa authenticate $ani $dnis
puts "\n DEBUGGING: Stop act_Setup"

}

.....

proc act_Record { } {
global param
global filename

set filename [infotag get leg_guid]
puts "\n DEBUGGING: Filename for record - $filename"
media record leg_incoming -p codec=5 -p maxDuration=15000 -m %b flash:$filename
fsm setstate RECORD_PLAY
}

proc act_RecordPlay {} {
global param
global filename

puts "\n DEBUGGING: Play Record"
puts "\n DEBUGGING: Filename for play - $filename"
media play leg_incoming flash:$filename
fsm setstate CALLACTIVE
}

....

set fsm(CALL_INIT,ev_setup_indication) "act_Setup AUTHENTICATE"
set fsm(RECORD,ev_media_done) "act_Record RECORD_PLAY"
set fsm(RECORD_PLAY,ev_recorder) "act_RecordPlay CALLACTIVE"

Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы