fix(ivr): play russian language prompt first
This commit is contained in:
@@ -43,7 +43,7 @@ def build_seed_plan(tag: str) -> dict[str, Any]:
|
||||
"recording_file_name": "demo-call.wav",
|
||||
"ivr_root_prompt_kz": "\u0421\u0430\u043b\u0430\u043c\u0430\u0442\u0441\u044b\u0437 \u0431\u0430! \u049a\u0430\u0437\u0430\u049b \u0442\u0456\u043b\u0456\u043d \u0442\u0430\u04a3\u0434\u0430\u0443 \u04af\u0448\u0456\u043d \u0431\u0456\u0440 \u0446\u0438\u0444\u0440\u044b\u043d \u0442\u0435\u0440\u0456\u04a3\u0456\u0437.",
|
||||
"ivr_root_prompt_ru": "\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435! \u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0430\u043a\u0442-\u0446\u0435\u043d\u0442\u0440. \u0414\u043b\u044f \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u0446\u0438\u0444\u0440\u0443 \u0434\u0432\u0430.",
|
||||
"ivr_root_prompt": "Саламатсыз ба! Қазақ тілін таңдау үшін бір цифрын теріңіз. Здравствуйте! Добро пожаловать в контакт-центр. Для русского языка нажмите цифру два.",
|
||||
"ivr_root_prompt": "Здравствуйте! Добро пожаловать в контакт-центр. Для русского языка нажмите цифру два. Саламатсыз ба! Қазақ тілін таңдау үшін бір цифрын теріңіз.",
|
||||
"ivr_ru_menu_prompt": "Для отдела продаж нажмите 1. Для службы поддержки нажмите 2.",
|
||||
"ivr_kz_menu_prompt": "Сату бөлімі үшін 1 басыңыз. Қолдау қызметі үшін 2 басыңыз.",
|
||||
}
|
||||
@@ -61,16 +61,16 @@ def _demo_ivr_flow_document(
|
||||
"node_id": "root",
|
||||
"prompt_text": plan["ivr_root_prompt"],
|
||||
"prompt_sequence": [
|
||||
{
|
||||
"prompt_audio_key": "ivr/demo-language-kz",
|
||||
"prompt_text": plan["ivr_root_prompt_kz"],
|
||||
"language": "kz",
|
||||
},
|
||||
{
|
||||
"prompt_audio_key": "ivr/demo-language-ru",
|
||||
"prompt_text": plan["ivr_root_prompt_ru"],
|
||||
"language": "ru",
|
||||
},
|
||||
{
|
||||
"prompt_audio_key": "ivr/demo-language-kz",
|
||||
"prompt_text": plan["ivr_root_prompt_kz"],
|
||||
"language": "kz",
|
||||
},
|
||||
],
|
||||
"is_terminal": False,
|
||||
"invalid_target_node_id": "root",
|
||||
|
||||
@@ -659,7 +659,7 @@ def test_ivr_fastagi_runtime_plays_prompt_sequence_before_wait(monkeypatch):
|
||||
|
||||
def play_and_wait_for_digit(self, prompt_audio_key: str, timeout_ms: int) -> str | None:
|
||||
self.playbacks.append((prompt_audio_key, timeout_ms))
|
||||
if prompt_audio_key == "ivr/demo-language-ru":
|
||||
if prompt_audio_key == "ivr/demo-language-kz":
|
||||
return "2"
|
||||
return None
|
||||
|
||||
@@ -695,8 +695,8 @@ def test_ivr_fastagi_runtime_plays_prompt_sequence_before_wait(monkeypatch):
|
||||
"node_id": "root",
|
||||
"prompt_text": "Combined bilingual prompt",
|
||||
"prompt_sequence": [
|
||||
{"prompt_audio_key": "ivr/demo-language-kz", "prompt_text": "Kazakh segment", "language": "kz"},
|
||||
{"prompt_audio_key": "ivr/demo-language-ru", "prompt_text": "Russian segment", "language": "ru"},
|
||||
{"prompt_audio_key": "ivr/demo-language-kz", "prompt_text": "Kazakh segment", "language": "kz"},
|
||||
],
|
||||
"options": [{"digit": "2", "target_node_id": "support"}],
|
||||
},
|
||||
@@ -728,8 +728,8 @@ def test_ivr_fastagi_runtime_plays_prompt_sequence_before_wait(monkeypatch):
|
||||
bridge_ivr_fastagi.run_ivr_call(channel, request)
|
||||
|
||||
assert channel.playbacks == [
|
||||
("ivr/demo-language-kz", 1),
|
||||
("ivr/demo-language-ru", 1),
|
||||
("ivr/demo-language-kz", 1),
|
||||
]
|
||||
assert channel.waits == []
|
||||
assert dtmf_calls == ["2"]
|
||||
|
||||
@@ -47,8 +47,8 @@ def test_demo_seed_plan_contains_demo_keyword():
|
||||
assert plan["recording_file_name"] == "demo-call.wav"
|
||||
assert (
|
||||
plan["ivr_root_prompt"]
|
||||
== "Саламатсыз ба! Қазақ тілін таңдау үшін бір цифрын теріңіз. "
|
||||
"Здравствуйте! Добро пожаловать в контакт-центр. Для русского языка нажмите цифру два."
|
||||
== "Здравствуйте! Добро пожаловать в контакт-центр. Для русского языка нажмите цифру два. "
|
||||
"Саламатсыз ба! Қазақ тілін таңдау үшін бір цифрын теріңіз."
|
||||
)
|
||||
assert plan["ivr_ru_menu_prompt"] == "Для отдела продаж нажмите 1. Для службы поддержки нажмите 2."
|
||||
assert plan["ivr_kz_menu_prompt"] == "Сату бөлімі үшін 1 басыңыз. Қолдау қызметі үшін 2 басыңыз."
|
||||
|
||||
@@ -155,16 +155,16 @@ def test_flow_validation_accepts_prompt_sequence_without_single_prompt_key():
|
||||
"node_id": "root",
|
||||
"prompt_text": "Combined bilingual prompt",
|
||||
"prompt_sequence": [
|
||||
{
|
||||
"prompt_audio_key": "ivr/demo-language-kz",
|
||||
"prompt_text": "Kazakh segment",
|
||||
"language": "kz",
|
||||
},
|
||||
{
|
||||
"prompt_audio_key": "ivr/demo-language-ru",
|
||||
"prompt_text": "Russian segment",
|
||||
"language": "ru",
|
||||
},
|
||||
{
|
||||
"prompt_audio_key": "ivr/demo-language-kz",
|
||||
"prompt_text": "Kazakh segment",
|
||||
"language": "kz",
|
||||
},
|
||||
],
|
||||
"is_terminal": False,
|
||||
"invalid_target_node_id": "root",
|
||||
@@ -189,8 +189,8 @@ def test_flow_validation_accepts_prompt_sequence_without_single_prompt_key():
|
||||
|
||||
assert response.status_code == 200
|
||||
payload = response.json()
|
||||
assert payload["flow_json"]["nodes"][0]["prompt_sequence"][0]["prompt_audio_key"] == "ivr/demo-language-kz"
|
||||
assert payload["flow_json"]["nodes"][0]["prompt_sequence"][1]["prompt_audio_key"] == "ivr/demo-language-ru"
|
||||
assert payload["flow_json"]["nodes"][0]["prompt_sequence"][0]["prompt_audio_key"] == "ivr/demo-language-ru"
|
||||
assert payload["flow_json"]["nodes"][0]["prompt_sequence"][1]["prompt_audio_key"] == "ivr/demo-language-kz"
|
||||
|
||||
|
||||
def test_ivr_session_runtime_emits_voice_event_and_timeline():
|
||||
|
||||
+14
-14
@@ -272,20 +272,20 @@ function defaultIvrFlowDocument() {
|
||||
nodes: [
|
||||
{
|
||||
node_id: 'root',
|
||||
prompt_text: 'Саламатсыз ба! Қазақ тілін таңдау үшін бір цифрын теріңіз. Здравствуйте! Добро пожаловать в контакт-центр. Для русского языка нажмите цифру два.',
|
||||
prompt_text: 'Здравствуйте! Добро пожаловать в контакт-центр. Для русского языка нажмите цифру два. Саламатсыз ба! Қазақ тілін таңдау үшін бір цифрын теріңіз.',
|
||||
prompt_sequence: [
|
||||
{
|
||||
prompt_audio_key: 'ivr/demo-language-kz',
|
||||
prompt_text:
|
||||
'\u0421\u0430\u043b\u0430\u043c\u0430\u0442\u0441\u044b\u0437 \u0431\u0430! \u049a\u0430\u0437\u0430\u049b \u0442\u0456\u043b\u0456\u043d \u0442\u0430\u04a3\u0434\u0430\u0443 \u04af\u0448\u0456\u043d \u0431\u0456\u0440 \u0446\u0438\u0444\u0440\u044b\u043d \u0442\u0435\u0440\u0456\u04a3\u0456\u0437.',
|
||||
language: 'kz',
|
||||
},
|
||||
{
|
||||
prompt_audio_key: 'ivr/demo-language-ru',
|
||||
prompt_text:
|
||||
'\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435! \u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0430\u043a\u0442-\u0446\u0435\u043d\u0442\u0440. \u0414\u043b\u044f \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u0446\u0438\u0444\u0440\u0443 \u0434\u0432\u0430.',
|
||||
language: 'ru',
|
||||
},
|
||||
{
|
||||
prompt_audio_key: 'ivr/demo-language-kz',
|
||||
prompt_text:
|
||||
'\u0421\u0430\u043b\u0430\u043c\u0430\u0442\u0441\u044b\u0437 \u0431\u0430! \u049a\u0430\u0437\u0430\u049b \u0442\u0456\u043b\u0456\u043d \u0442\u0430\u04a3\u0434\u0430\u0443 \u04af\u0448\u0456\u043d \u0431\u0456\u0440 \u0446\u0438\u0444\u0440\u044b\u043d \u0442\u0435\u0440\u0456\u04a3\u0456\u0437.',
|
||||
language: 'kz',
|
||||
},
|
||||
],
|
||||
is_terminal: false,
|
||||
invalid_target_node_id: 'root',
|
||||
@@ -369,20 +369,20 @@ function defaultVoiceStartIvrFlowDocument() {
|
||||
{
|
||||
node_id: 'root',
|
||||
prompt_text:
|
||||
'\u0421\u0430\u043b\u0430\u043c\u0430\u0442\u0441\u044b\u0437 \u0431\u0430! \u049a\u0430\u0437\u0430\u049b \u0442\u0456\u043b\u0456\u043d \u0442\u0430\u04a3\u0434\u0430\u0443 \u04af\u0448\u0456\u043d \u0431\u0456\u0440 \u0446\u0438\u0444\u0440\u044b\u043d \u0442\u0435\u0440\u0456\u04a3\u0456\u0437. \u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435! \u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0430\u043a\u0442-\u0446\u0435\u043d\u0442\u0440. \u0414\u043b\u044f \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u0446\u0438\u0444\u0440\u0443 \u0434\u0432\u0430.',
|
||||
'\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435! \u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0430\u043a\u0442-\u0446\u0435\u043d\u0442\u0440. \u0414\u043b\u044f \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u0446\u0438\u0444\u0440\u0443 \u0434\u0432\u0430. \u0421\u0430\u043b\u0430\u043c\u0430\u0442\u0441\u044b\u0437 \u0431\u0430! \u049a\u0430\u0437\u0430\u049b \u0442\u0456\u043b\u0456\u043d \u0442\u0430\u04a3\u0434\u0430\u0443 \u04af\u0448\u0456\u043d \u0431\u0456\u0440 \u0446\u0438\u0444\u0440\u044b\u043d \u0442\u0435\u0440\u0456\u04a3\u0456\u0437.',
|
||||
prompt_sequence: [
|
||||
{
|
||||
prompt_audio_key: 'ivr/demo-language-kz',
|
||||
prompt_text:
|
||||
'\u0421\u0430\u043b\u0430\u043c\u0430\u0442\u0441\u044b\u0437 \u0431\u0430! \u049a\u0430\u0437\u0430\u049b \u0442\u0456\u043b\u0456\u043d \u0442\u0430\u04a3\u0434\u0430\u0443 \u04af\u0448\u0456\u043d \u0431\u0456\u0440 \u0446\u0438\u0444\u0440\u044b\u043d \u0442\u0435\u0440\u0456\u04a3\u0456\u0437.',
|
||||
language: 'kz',
|
||||
},
|
||||
{
|
||||
prompt_audio_key: 'ivr/demo-language-ru',
|
||||
prompt_text:
|
||||
'\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435! \u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0430\u043a\u0442-\u0446\u0435\u043d\u0442\u0440. \u0414\u043b\u044f \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u0446\u0438\u0444\u0440\u0443 \u0434\u0432\u0430.',
|
||||
language: 'ru',
|
||||
},
|
||||
{
|
||||
prompt_audio_key: 'ivr/demo-language-kz',
|
||||
prompt_text:
|
||||
'\u0421\u0430\u043b\u0430\u043c\u0430\u0442\u0441\u044b\u0437 \u0431\u0430! \u049a\u0430\u0437\u0430\u049b \u0442\u0456\u043b\u0456\u043d \u0442\u0430\u04a3\u0434\u0430\u0443 \u04af\u0448\u0456\u043d \u0431\u0456\u0440 \u0446\u0438\u0444\u0440\u044b\u043d \u0442\u0435\u0440\u0456\u04a3\u0456\u0437.',
|
||||
language: 'kz',
|
||||
},
|
||||
],
|
||||
is_terminal: false,
|
||||
invalid_target_node_id: 'root',
|
||||
|
||||
Reference in New Issue
Block a user