Size: a a a

2020 April 24

V

Vitaliy in ru_freeswitch
Anton
Коллеги привет!
Возможно ли после команды
<action application="bridge" data="user/bob@domain" />
ловить причину hangup.
Если USER_BUSY проиграть файл user_busy.wav
Если SERVICE_UNAVAILABLE (пользователь недоступен) проиграть user_not_available.wav
и т.д.
Если механизм позволяющий это реализовать в диалплане?
continue_on_fail
источник

АХ

Алексей Хабуляк in ru_freeswitch
Anton
Коллеги привет!
Возможно ли после команды
<action application="bridge" data="user/bob@domain" />
ловить причину hangup.
Если USER_BUSY проиграть файл user_busy.wav
Если SERVICE_UNAVAILABLE (пользователь недоступен) проиграть user_not_available.wav
и т.д.
Если механизм позволяющий это реализовать в диалплане?
источник

АХ

Алексей Хабуляк in ru_freeswitch
один из вариантов.
выставляете в диалплане continue_on_fail=true и hangup_after_bridge=false
после bridge делаете трансфер в контекст где будет проверяться bridge_hangup_cause
источник

АХ

Алексей Хабуляк in ru_freeswitch
можно lua скрипт написать
источник

A

Anton in ru_freeswitch
Спасибо всем, буду пробывать.
источник

A

Anton in ru_freeswitch
Алексей Хабуляк
один из вариантов.
выставляете в диалплане continue_on_fail=true и hangup_after_bridge=false
после bridge делаете трансфер в контекст где будет проверяться bridge_hangup_cause
Сделал как вы написали.
Но при выполнении:
<action application="log" data="play_target--B-leg hangup cause: ${bridge_hangup_cause}"/>
log(-----play_target--B-leg hangup cause: )
${bridge_hangup_cause} всегда пустой, кроме того случая когда абонент поднял трубку:
log(-----play_target--B-leg hangup cause: NORMAL_CLEARING)
источник

АХ

Алексей Хабуляк in ru_freeswitch
Anton
Сделал как вы написали.
Но при выполнении:
<action application="log" data="play_target--B-leg hangup cause: ${bridge_hangup_cause}"/>
log(-----play_target--B-leg hangup cause: )
${bridge_hangup_cause} всегда пустой, кроме того случая когда абонент поднял трубку:
log(-----play_target--B-leg hangup cause: NORMAL_CLEARING)
хм. а просто hangup_cause ?
источник

A

Anton in ru_freeswitch
Алексей Хабуляк
хм. а просто hangup_cause ?
пуста во всех случаях
источник

АХ

Алексей Хабуляк in ru_freeswitch
Anton
пуста во всех случаях
странно. а сделайте info сразу после бриджа.
источник

АХ

Алексей Хабуляк in ru_freeswitch
он выплюнет все переменные канала
источник

A

Anton in ru_freeswitch
Алексей Хабуляк
странно. а сделайте info сразу после бриджа.
bridge_hangup_cause нет. Но есть вот такие переменные: variable_originate_disposition: [USER_NOT_REGISTERED]
variable_DIALSTATUS: [USER_NOT_REGISTERED]
variable_originate_failed_cause: [USER_NOT_REGISTERED]
источник

A

Anton in ru_freeswitch
Получается могу основывать логику на variable_originate_failed_cause?
источник

АХ

Алексей Хабуляк in ru_freeswitch
Anton
bridge_hangup_cause нет. Но есть вот такие переменные: variable_originate_disposition: [USER_NOT_REGISTERED]
variable_DIALSTATUS: [USER_NOT_REGISTERED]
variable_originate_failed_cause: [USER_NOT_REGISTERED]
ну или так. hangup_cause пустой потому что он даже не делает originate, потому что возвращается error channel
источник

A

Anton in ru_freeswitch
Алексей Хабуляк
ну или так. hangup_cause пустой потому что он даже не делает originate, потому что возвращается error channel
Спасибо.
источник

h

halt in ru_freeswitch
Anton
Коллеги привет!
Возможно ли после команды
<action application="bridge" data="user/bob@domain" />
ловить причину hangup.
Если USER_BUSY проиграть файл user_busy.wav
Если SERVICE_UNAVAILABLE (пользователь недоступен) проиграть user_not_available.wav
и т.д.
Если механизм позволяющий это реализовать в диалплане?
Example: Playback custom error message

<action application="set" data="hangup_on_bridge=true"/>
<action application="set" data="continue_on_fail=true"/>
<action application="bridge" data="..."/>
<action application="lua" data="playerror.lua"/>

That'll run the lua script after the bridge, but only if the bridge fails.
In the lua script:

cause = session:getVariable("originate_disposition")
if (cause == "USER_BUSY") then
    session:streamFile("ivr/ivr-user_busy.wav");
     elseif (cause == "UNALLOCATED_NUMBER") then
          session:streamFile("ivr/ivr-unallocated_number.wav");  
       elseif (cause == "NO_USER_RESPONSE" or cause=="NO_ANSWER") then
           session:streamFile("ivr/ivr-no_user_response.wav");
        else
            session:streamFile("ivr/ivr-please_check_number_try_again.wav");
end
источник

A

Anton in ru_freeswitch
halt
Example: Playback custom error message

<action application="set" data="hangup_on_bridge=true"/>
<action application="set" data="continue_on_fail=true"/>
<action application="bridge" data="..."/>
<action application="lua" data="playerror.lua"/>

That'll run the lua script after the bridge, but only if the bridge fails.
In the lua script:

cause = session:getVariable("originate_disposition")
if (cause == "USER_BUSY") then
    session:streamFile("ivr/ivr-user_busy.wav");
     elseif (cause == "UNALLOCATED_NUMBER") then
          session:streamFile("ivr/ivr-unallocated_number.wav");  
       elseif (cause == "NO_USER_RESPONSE" or cause=="NO_ANSWER") then
           session:streamFile("ivr/ivr-no_user_response.wav");
        else
            session:streamFile("ivr/ivr-please_check_number_try_again.wav");
end
Спасибо, класс.
источник

NS

Nikolay Shmyrev in ru_freeswitch
Всем привет. Несколько последних новостей по Воску, так как про него сегодня спрашивали:

1) Добавил модуль для FS, должно быть просто использовать в диалплане:

https://github.com/signalwire/freeswitch/pull/578

2) Недавно вышла новая модель kaldi-ru-0.9

https://alphacephei.com/kaldi/kaldi-ru-0.9.tar.gz  (2.5Gb)

для телефонных разговоров должна быть гораздо лучше 0.7
источник

A

Alexey in ru_freeswitch
Nikolay Shmyrev
Всем привет. Несколько последних новостей по Воску, так как про него сегодня спрашивали:

1) Добавил модуль для FS, должно быть просто использовать в диалплане:

https://github.com/signalwire/freeswitch/pull/578

2) Недавно вышла новая модель kaldi-ru-0.9

https://alphacephei.com/kaldi/kaldi-ru-0.9.tar.gz  (2.5Gb)

для телефонных разговоров должна быть гораздо лучше 0.7
Николай, не совсем очевидная последняя фраза для меня получилась )
Так лучше 0.9 или 0.7 для телефонных разговоров?
источник

NS

Nikolay Shmyrev in ru_freeswitch
0.9 конечно
источник

A

Alexey in ru_freeswitch
ну на всякий случай уточнил
источник