Люди, помогите, я уже не могу...как только не пытался, не могу удержать входящее плечо.Дело вот в чем, есть IVR скрипт, когда человек подключается к нему и звонит на незанятый номер вне нормально, человек дозванивается. Однако когда звонят на телефон у которого снята трубка, то входящее плечо сбрасывается. (получаю ev_disconnected со статусом di_099).
Маленькая надпись в описании leg setup гласит, что входящее плечо может сбрасываться если используетются дополнительные сервисы или h.450.
Помогите разобраться, как удежать входящее подключение?
Если приходит событие, которое не установлено в FSM,
то по default, скитп завершается. Попробуйте установить
процедуру на все приходящие события.set fsm(any_state,ev_any_event) "act_Ignore same_state"
proc act_Ignore { } {
set ev [infotag get evt_event]
puts "\n(act_Ignore):ev : $ev\n"
}
>Если приходит событие, которое не установлено в FSM,
>то по default, скитп завершается.В том то и дело, что скрипт не завершается.
Происходит дисконнект входящего плеча, а скрипт работает дальше.
У Вас установлено :set fsm(any_state,ev_disconnected) "act_Cleanup same_state"
proc act_Cleanup { } {
set temp_event [infotag get evt_event]if { ($temp_evt_leg != "") && ($temp_event != "ev_disconnect_done") } {
leg disconnect leg_incoming -c 16
}
call close
}
proc act_SetupDone {} {
# ...
set status [infotag get evt_status]if { $status != "ls_000"} {
# ...
set tone [infotag get evt_status]
playtone leg_incoming $tone
timer start leg_timer 5 leg_incoming
fsm setstate CALLDISCONNECT
return
}
# ...
}
У меняset fsm(any_state,ev_disconnected) "act_Cleanup same_state";
proc act_Cleanup {} {
set status [infotag get evt_last_disconnect_cause]puts "BYE !!!!!!!!!!!!!!!!!!!!! status = $status"
call close;
return;
}proc act_CallSetupDone {} {
#...
set status [infotag get evt_status];
set connID [infotag get evt_connections];
# set legOut [infotag get evt_legs]
switch $status {
"ls_000" {
if { $CreditTime < $WarnTime} {
set beep 0;
} else {
set beep 1;
set CreditTime [ expr $CreditTime - $WarnTime ];
}timer start leg_timer $CreditTime leg_incoming;
}
#...
По таймеру у меня все прекрасно отключается, и вообще, если абонент ответил на звонок все прекрасно (только в радиус не пишется почемуто).Но если телефон абонента занят, то все...пиши пропало.
Как я понял из документации по программированию IVR, это происходит потому, что при выполнении leg setup циска рвет стрый leg_incoming и создает два новых плеча leg_incoming и leg_outgoing (в данном случае, если связь рвется, то пропадают все плечи соединения и меня выбрасывает).
Это фишка перенаправления звонка, и написано, что в принципе циска может восстановить старое соединение в случае неудачи...однако она ни фига так не делает =(
Соединение отваливается по сообщению ev_disconnected и статусу di_099 (отвалилось входящее плечо)...что странно...
...короче я понял важную вещь, все странно и ни фига не понятно...пора искать мыло и веревку =)
К сожелению у меня все IVR на 5350 и transfer H450 9,12
открыт только на одной cisco. Посторите, на какой leg
приходит disconnect. Чтоо даёт отключение service-voip-h450 ?
Попробуйте поменять версию IOS, возможно на меньшую.
Приходит ev_transfer_request в любом виде ?
А можно по подробней?
Как отключить service-voip-h450?
буду очень признателен
В основном борьба на 5350 была с включенем и выбором между v9 -v12.
supplementary-service h450.12 (dial peer)
supplementary-service h450.12 (voice-service)
http://www.cisco.com/en/US/docs/ios/12_3t/voice/command/refe...
Благодарю...жаль что у меня из supplementary services только pass-throughв принципе, как говорится, переживу...других дел тоже полно
На 5350 12.3.18, 12.4.9 :
(conf-voi-serv)#h323
(conf-serv-h323)#?
VOICE SERVICE VOIP H323 configuration commands:
bearercap-ie Specify bearercap_ie coding
call Global setting for H.323 Calls
default Set a command to its defaults
exit Exit from voice service voip h323 configuration mode
h225 TCP H225 call signalling channel
h245 H245 Signalling
h450 H450 parameter configuration
no Negate a command or set its defaults
ras Gateway RAS configuration
session H323 Voice Protocol session config(conf-serv-h323)#h450 ?
h450-2 H450.2 parameter configuration
h450-3 h450.3 parameter configuration
conf-serv-h323)#h450 h450-3 ?
timeout H450.3 timeout value
Да..нашел, таймауты можно изменять, но как это может отключить call-Forwarding?
В H323 dial-peer есть только
Max Redirects = 1
Возможно для SIP есть max-forwards ?