URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID6
Нить номер: 15638
[ Назад ]

Исходное сообщение
"IVR сбрасывает входящий звонок"

Отправлено hello_world , 29-Фев-08 11:11 
Люди, помогите, я уже не могу...как только не пытался, не могу удержать входящее плечо.

Дело вот в чем, есть IVR скрипт, когда человек подключается к нему и звонит на незанятый номер вне нормально, человек дозванивается. Однако когда звонят на телефон у которого снята трубка, то входящее плечо сбрасывается. (получаю ev_disconnected со статусом di_099).

Маленькая надпись в описании leg setup гласит, что входящее плечо может сбрасываться если используетются дополнительные сервисы или h.450.

Помогите разобраться, как удежать входящее подключение?


Содержание

Сообщения в этом обсуждении
"IVR сбрасывает входящий звонок"
Отправлено Alex. , 29-Фев-08 11:27 
Если приходит событие, которое не установлено в 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"
}


"IVR сбрасывает входящий звонок"
Отправлено hello_world , 03-Мрт-08 03:54 
>Если приходит событие, которое не установлено в FSM,
>то по default, скитп завершается.

В том то и дело, что скрипт не завершается.
Происходит дисконнект входящего плеча, а скрипт работает дальше.


"IVR сбрасывает входящий звонок"
Отправлено Alex. , 03-Мрт-08 12:10 
У Вас установлено :

  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
    }
# ...
}


"IVR сбрасывает входящий звонок"
Отправлено hello_world , 03-Мрт-08 13:32 
У меня

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 сбрасывает входящий звонок"
Отправлено Alex. , 03-Мрт-08 15:01 
К сожелению у меня все IVR на 5350 и transfer H450 9,12
открыт только на одной cisco. Посторите, на какой leg
приходит disconnect. Чтоо даёт отключение service-voip-h450 ?
Попробуйте поменять версию IOS, возможно на меньшую.
Приходит ev_transfer_request в любом виде ?



"IVR сбрасывает входящий звонок"
Отправлено hello_world , 04-Мрт-08 02:58 
А можно по подробней?
Как отключить service-voip-h450?
буду очень признателен

"IVR сбрасывает входящий звонок"
Отправлено Alex. , 04-Мрт-08 11:23 
В основном борьба на 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...


"IVR сбрасывает входящий звонок"
Отправлено hello_world , 04-Мрт-08 11:42 
Благодарю...жаль что у меня из supplementary services только pass-through

в принципе, как говорится, переживу...других дел тоже полно


"IVR сбрасывает входящий звонок"
Отправлено Alex. , 05-Мрт-08 10:56 
На 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


"IVR сбрасывает входящий звонок"
Отправлено hello_world , 06-Мрт-08 06:38 
Да..нашел, таймауты можно изменять, но как это может отключить call-Forwarding?

"IVR сбрасывает входящий звонок"
Отправлено Alex. , 06-Мрт-08 11:46 
В H323 dial-peer есть только
Max Redirects = 1
Возможно для SIP есть max-forwards ?