Commit Graph

21 Commits

Author SHA1 Message Date
Hermes 7e719e6b43 fix(autocall): день робота → дата без сдвига; окно не считаем при пустом графике
Проверка цепочки «варианты в меню → цифра → дата в заказе» нашла два дефекта:

1. edge-функция: если дата в call-файл не попала (старый файл/сбой), дата считалась
   как «сегодня + цифра − 1» для ОБОИХ типов. Для доставки это сдвигало день на
   сутки назад: абонент нажимает «день 1» (робот говорит «завтра»), а в заказ
   уезжает сегодня. Теперь fallback повторяет ОЗВУЧЕННУЮ семантику: самовывоз
   день 1 = сегодня (сегодня/завтра/послезавтра), доставка день 1 = завтра,
   день 2 = послезавтра. Проверено живыми POST на функцию (5 случаев, включая
   приоритет chosen_date) — временная группа создана и удалена.

2. планировщик: при пустом «Графике работы» окна подменяют пустой список
   дефолтом Пн–Пт, то есть робот предлагал бы дни, когда компания не работает.
   Теперь при пустом графике звонок пропускается с понятным предупреждением.

Цепочка «варианты → цифра → дата» проверена на живых окнах: пятница 17:41 → доставка
пн/вт, самовывоз после отсечки 15:30 — только пн (2 варианта), при готовности сегодня
до 15:30 — 3 варианта (пт/пн/вт), цифры 1/2/3 → PICKUP_DAY1/2/3 и DELIVERY_DAY1/2
уходят в диалог и возвращаются как chosen_date.
2026-09-25 16:56:21 +02:00
Hermes 462c2b4892 feat(autocall): основной транк обзвона — GSM-модуль клиента (goip5), Miranda запасной
Канал call-файла строится из настройки autocall_trunk (sms_campaign_settings):
'gsm' — PJSIP/1<номер с 8>@goip5 (линия 1 модуля), 'mmedia' — прежний SIP-транк.
По умолчанию gsm.

У модуля одна SIM → один одновременный звонок: перед постановкой в спул сверяем
занятость каналов транка на АТС и ставим не больше, чем есть свободных линий.
Не успевшие звонки просто ждут следующего тика таймера — иначе они падали бы
«занято» и уезжали в «не ответил». То же для ручных звонков из очереди.
2026-09-25 16:16:43 +02:00
Hermes 775a72ea29 fix(autocall): «ручное управление» — это НЕ согласованный заказ; кнопку автодозвона по нему больше не блокирует (ошибка из прошлой правки) 2026-09-17 12:04:00 +02:00
Hermes 512aab9ff2 fix(sms): заказы больше не висят в «1-е приглашение отправлено» — в ручную работу переводим от последнего контакта и только по включённым каналам (SMS/автодозвон); заказ, где дата уже выбрана, роботу не звоним 2026-09-16 17:15:43 +02:00
Hermes e35b3d885f fix(autocall): заявку «позвонить сейчас» не закрываем — при закрытом окне звонка блокируем кнопку автодозвона с объяснением (по правилу владельца) 2026-09-16 16:47:49 +02:00
Hermes dacd43165c fix(autocall): заявка «позвонить сейчас» с закрытым окном звонка больше не висит вечно в очереди — планировщик закрывает её, карточка честно говорит «звонить больше не о чем» + кнопка «всё равно позвонить» 2026-09-16 16:39:28 +02:00
Hermes 5c98a54895 feat(autocall): звонок клиенту, если SMS не ушло (отсчёт от последней попытки) + статусы «не выбрал день/время» вместо «не нажал цифру» 2026-09-16 16:14:34 +02:00
Hermes 8e9a0f6dab fix(autocall): ручной звонок из карточки звонит клиенту (тестовый режим только для массового обзвона) + видимый процесс звонка в карточке 2026-09-15 15:26:20 +02:00
Hermes 44f58ce9e7 fix(autocall): доставка предлагает реальные рабочие дни графика (пт → пн/вт), эскалация по настройкам админки, WAIT FOR DIGIT и «0 — менеджер» 2026-09-15 09:40:43 +02:00
Hermes 1a310e5f5a fix(pickup): окно самовывоза в рабочих днях (пятница → пт, пн, вт) у робота и в ссылке; тесты окна 2026-09-14 13:59:13 +02:00
Hermes 11167516a3 feat(schedule): рабочие часы склада и доставки в админке — открытие/закрытие, границы половин, отсечка «сегодня»; робот и ссылка клиента читают часы 2026-09-14 13:15:49 +02:00
Hermes 270ab39abc fix(autocall): самовывоз только по рабочим дням графика + робот называет реальные дни; страница клиента читает график 2026-09-11 15:40:29 +02:00
Hermes 139c895290 feat(autocall): локации — переключатели звонков по городам в админке (авто-дозвон), гео-правила общие с SMS 2026-09-11 11:59:44 +02:00
Hermes f62a6b525b feat(autocall): окно самовывоза 3 дня (сегодня/завтра/послезавтра), даты из диалога, гео-исключения как у SMS 2026-09-11 11:29:49 +02:00
Hermes c4e2c4a181 feat(autocall): самовывоз — тип звонка pkp/dlv из карточки заказа, выключатель самовывоза, тип в логе и очереди 2026-09-11 10:53:53 +02:00
Hermes 46a3609233 fix(autocall): исход «не взял трубку» — добор истёкших заявок + детект объявления оператора в AGI 2026-09-10 15:27:59 +02:00
Hermes c7a35cdd29 feat(autocall): история звонков в карточке — как у SMS (попытки, слот, сценарий, длительность) 2026-09-10 11:28:39 +02:00
Hermes 5dbeae84f4 feat(autocall): исключения автодозвона — таблица, UI в настройках, проверка в планировщике, бейдж в реестре/карточке 2026-09-08 11:16:16 +02:00
Hermes 95af771596 perf(autocall): таймер 60с + fast-path (молча, если очередь пуста и кампания выключена) 2026-09-02 11:42:58 +02:00
Hermes 0d8e0f9d40 feat(autocall): тестовый звонок из UI для мегаадмина — autocall_queue nullable + is_test_call, TestCallPanel с окном результата 2026-09-02 11:10:06 +02:00
Hermes 4ed7f64a37 feat(autocall): добавить autocall_queue (ручной звонок через планировщик). Миграция 20260902 + чтение очереди в scheduler 2026-09-02 10:56:02 +02:00