The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Помогите с TCL"
Отправлено leveler, 28-Дек-06 10:35 
Помогите с TCL. Ситуация такая. В ответ на звонок проигрывается приглашение выбрать пункт из меню нажатием цифры. Если выбираешь пункт, то в зависимости от того, что выбрали, проигрывается звуковой файл.
Всё вроде работает, но приглашение прервать нельзя. Нужно, чтобы оно проигралось до конца, только после этого нажать цифру. Если нажать раньше, то эффекта нет. Что не так?


proc init {} {
puts "\n proc Init start"
global param
set param(initialDigitTimeout) 7
set param(maxDigits) 1
set param(interruptPrompt) true
infotag set med_language_map 0 ru
infotag set med_location ru 0 tftp://ip.ip.ip.ip/tcl/ru/
infotag set med_location ru 1 tftp://ip.ip.ip.ip/tcl/ru/
infotag set med_language 0
puts "\n proc Init stop"
}

proc init_Vars { } {
puts "\n proc Vars start"
global PressedKey
global Status
if { [info exists PressedKey] } { unset PressedKey }
if { [info exists Status] } { unset Status }
puts "\n proc Vars stop"
}

proc act_Setup {} {
puts "\n proc Setup start"
init_Vars
leg setupack leg_incoming
media play leg_incoming %s500 _account_closed.au
puts "\n proc Setup stop"
}

proc act_Select {} {
puts "\n proc Select start"
global param
global PressedKey
global Status
leg collectdigits leg_incoming param
puts "\n proc Select Stop"
}

proc act_Digits {} {
puts "\n proc Digits start"
global Status
global PressedKey
set Status [infotag get evt_status]
set PressedKey [infotag get evt_dcdigits]
puts "\n \n \n PressedKey: $PressedKey \n Status: $Status \n \n \n"
switch $Status {
"cd_004" {
fsm setstate PLAYSOUND
act_Play
}
default {
act_Cleanup
}
}
puts "\n proc Digits Stop"
}

proc act_Play {} {
puts "\n proc Play start"
global PressedKey
switch $PressedKey {
"1" {
media play leg_incoming %s500 _1.au %s500 _1.au %s500
}
"2" {
media play leg_incoming %s500 _2.au %s500 _2.au %s500
}
default {
act_Cleanup
}
}
puts "\n proc Play Stop"
}

proc act_Cleanup {} {
puts "\n proc Cleanup start"
call close
puts "\n proc Cleanup stop"
}


requiredversion 2.0
init

# FSM
set ivr_fsm(any_state,ev_disconnected) "act_Cleanup same_state"
set ivr_fsm(CALLCOMES,ev_setup_indication) "act_Setup same_state"
set ivr_fsm(CALLCOMES,ev_media_done) "act_Select ENTERDIGITS"
set ivr_fsm(ENTERDIGITS,ev_collectdigits_done) "act_Digits same_state"
set ivr_fsm(PLAYSOUND,ev_media_done) "act_Cleanup same_state"
set ivr_fsm(CALLDISCONNECT,ev_media_done) "act_Cleanup same_state"
set ivr_fsm(CALLDISCONNECT,ev_disconnect_done) "act_Cleanup same_state"

fsm define ivr_fsm CALLCOMES

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру