Приём показаний приборов учёта. Инструкция
Основной алгоритм работы
- Произнесение приветственого сообщения.
- Ожидание выбора способа передачи показаний.
- Если номер телефона определён, выполняется запрос на поиск лицевого счёта по номеру телефона.
- Если номер лицевого счёта по номеру телефона не получен, выполняется получение номера лицевого счёта от абонента.
- Если лицевой счёт получен, выполняется запрос на поиск лицевого счёта в базе данных.
- Если лицевой счёт найден в базе данных, выполняется запрос на получение списка приборов учёта по этому лицевому счёту.
- По каждому прибору учёта из списка принимаются показания.
- Принятые показания проверяются и, если проверка прошла успешно, записываются в базу данных.
- Произносится прощальное сообщение.
Пошаговая настройка
Вступительное сообщение
В этом сообщении абонент получает информацию о том, каким образом будет происходить приём показаний.
Необходимо объяснить, что при нажатии любой клавиши на телефоне в тональном режиме приём показаний будет происходить путём распознавания нажатых клавиш, иначе — путём распознавания голоса.
Ожидание выбора способа передачи показаний
В область действия сценария добавляется переменная [IsVoice], она имеет значение true, если выбрана передача показаний голосом, или false, если выбрано получение показаний путём нажатия клавиш телефона. В дальнейшем эту и любые другие переменные, добавленные в область действия сценария можно использовать как в запросах, так и в голосовых сообщениях. Например, для выбора сообщения, которое будет произноситься абоненту.
Запрос на поиск лицевого счёта по номеру телефона
Если у ваших абонентов есть жёсткая привязка лицевого счёта к номеру телефона, используйте запрос на странице «Поиск лицевого счета по номеру телефона». Если такой привязки нет, запрос можно оставить пустым, и поиск по номеру телефона производиться не будет.
В запросе необходимо в обязательном порядке получить поле с номером лицевого счёта, которое выбирается на странице настроек ниже. Для подстановки в запрос номера телефона, который определился у абонента, используйте переменную [InPhone].
Например, если задать запрос:
select * from `Account` where `Phone`='[InPhone]'
при звонке с номера 2222201 будет выполнен запрос:
select * from `Account` where `Phone`='2222201'
На этой же странице можно ввести для проверки номер телефона, который будет подставлен вместо переменной [InPhone] после нажатия кнопки «Проверить». Результат выполнения запроса будет выведен в виде таблицы в поле «Результаты запроса».
Во время работы сценария выполняется поиск по номеру телефона. В случае, если запись с лицевым счётом найдена, в область действия сценария добавляется переменная [Account], содержащая номер лицевого счёта.
При получении только одной записи в результате выполнения запроса при работе сценария лицевой счёт считается определённым и дополнительно не спрашивается у абонента.
Если не получено ни одной записи, или получено две и более записей, сценарий предлагает абоненту указать лицевой счёт.
Получение номера лицевого счёта от абонента
Произносится голосовое сообщение, заданное на странице «Получение лицевого счёта». В поле «Выражение» можно использовать переменную [IsVoice]. Например:
([IsVoice]? 'Назовите номер лицевого счёта' : 'Введите номер лицевого счёта и нажмите звёздочку')
В случае, если идёт приём показаний голосом ([IsVoice] = true), произносится: «Назовите номер лицевого счёта». Иначе: «Введите номер лицевого счёта и нажмите звёздочку».
После произнесения сообщения сценарий в течение 18 секунд ожидает произнесения номера лицевого счёта или нажатия клавиш на телефоне.
В область действия сценария добавляется переменная [Account], содержащая полученное значение лицевого счёта, которую можно в дальнейшем использовать в SQL-запросах или в поле «Выражение» голосовых сообщений
Если лицевой счёт не получен или данные по нему не найдены в базе данных, произносится сообщение «Не получены данные лицевого счёта», сценарий ещё два раза запрашивает у абонента лицевой счёт.
Если лицевой счёт не получен или не найден в базе данных после трёх попыток, сценарий переходит к прощальному сообщению.
При получении данных лицевого счёта сценарий переходит к получению списка приборов учёта.
Поиск лицевого счёта в базе данных
На странице настроек «Поиск по номеру лицевого счёта» указывается SQL-запрос на получение данных по номеру лицевого счёта. Для подстановки в запрос значение номера лицевого счёта, указанного абонентом или определившегося по номеру телефона, используется переменная [Account].
Например, если задать запрос:
select * from `Account` where `Account`='[Account]'
при указанном лицевом счёте 123456789 будет выполнен запрос:
select * from `Account` where `Account`='123456789'
Если получена запись с номером лицевого счёта, в сценарий возвращается эта запись, иначе возвращается значение null.