Приём показаний приборов учёта. Инструкция: различия между версиями

Материал из Call Office Wiki
Перейти к навигации Перейти к поиску
Строка 9: Строка 9:
#По каждому прибору учёта из списка [[#Приём показаний по каждому прибору учёта из списка|принимаются показания]].
#По каждому прибору учёта из списка [[#Приём показаний по каждому прибору учёта из списка|принимаются показания]].
#Принятые показания проверяются и, если [[#Проверка полученных показаний|проверка прошла успешно]], [[#Запись принятых показаний в базу данных|записываются в базу данных]].
#Принятые показания проверяются и, если [[#Проверка полученных показаний|проверка прошла успешно]], [[#Запись принятых показаний в базу данных|записываются в базу данных]].
#Произносится [[#Прощальное сообщение|прощальное сообщение]].


=Пошаговая настройка=
=Пошаговая настройка=
Строка 20: Строка 21:
==Ожидание выбора способа передачи показаний==
==Ожидание выбора способа передачи показаний==


В область действия сценария добавляется переменная '''[IsVoice]''', она имеет значение '''true''', если выбрана передача показаний голосом и '''false''', если выбрано получение показаний путём нажатия клавиш телефона. В дальнейшем эту и любые другие переменные, добавленные в область действия сценария можно использовать как в запросах, так и в голосовых сообщениях. Например, для выбора сообщения, которое будет произноситься абоненту.
В область действия сценария добавляется переменная '''[IsVoice]''', она имеет значение '''true''', если выбрана передача показаний голосом, или '''false''', если выбрано получение показаний путём нажатия клавиш телефона. В дальнейшем эту и любые другие переменные, добавленные в область действия сценария можно использовать как в запросах, так и в голосовых сообщениях. Например, для выбора сообщения, которое будет произноситься абоненту.


==Запрос на поиск лицевого счёта по номеру телефона==
==Запрос на поиск лицевого счёта по номеру телефона==


Если у ваших абонентов есть жёсткая привязка лицевого счёта к номеру телефона, используйте запрос на странице «Поиск лицевого счета по номеру телефона». Если такой привязки нет, запрос можно оставить пустым, и поиск по номеру телефона производиться не будет.
Если у ваших абонентов есть жёсткая привязка лицевого счёта к номеру телефона, используйте запрос на странице '''«Поиск лицевого счета по номеру телефона»'''. Если такой привязки нет, запрос можно оставить пустым, и поиск по номеру телефона производиться не будет.


В запросе необходимо в обязательном порядке получить поле с номером лицевого счёта, которое выбирается на странице настроек ниже. Для подстановки в запрос номера телефона, который определился у абонента, используйте переменную '''[InPhone]'''.
В запросе необходимо в обязательном порядке получить поле с номером лицевого счёта, которое выбирается на странице настроек ниже. Для подстановки в запрос номера телефона, который определился у абонента, используйте переменную '''[InPhone]'''.
Строка 37: Строка 38:


На этой же странице можно ввести для проверки номер телефона, который будет подставлен вместо переменной '''[InPhone]''' после нажатия кнопки '''«Проверить»'''. Результат выполнения запроса будет выведен в виде таблицы в поле «Результаты запроса».
На этой же странице можно ввести для проверки номер телефона, который будет подставлен вместо переменной '''[InPhone]''' после нажатия кнопки '''«Проверить»'''. Результат выполнения запроса будет выведен в виде таблицы в поле «Результаты запроса».
Во время работы сценария выполняется поиск по номеру телефона. В случае, если запись с лицевым счётом найдена, в область действия сценария добавляется переменная '''[Account]''', содержащая номер лицевого счёта.


При получении только одной записи в результате выполнения запроса при работе сценария лицевой счёт считается определённым и дополнительно не спрашивается у абонента.
При получении только одной записи в результате выполнения запроса при работе сценария лицевой счёт считается определённым и дополнительно не спрашивается у абонента.
Строка 52: Строка 55:
После произнесения сообщения сценарий в течение 18 секунд ожидает произнесения номера лицевого счёта или нажатия клавиш на телефоне.  
После произнесения сообщения сценарий в течение 18 секунд ожидает произнесения номера лицевого счёта или нажатия клавиш на телефоне.  


Если лицевой счёт не получен или данные по нему не найдены в базе данных, сценарий ещё два раза запрашивает у абонента лицевой счёт.
В область действия сценария добавляется переменная '''[Account]''', содержащая полученное значение лицевого счёта, которую можно в дальнейшем использовать в SQL-запросах или в поле «Выражение» голосовых сообщений
 
Если лицевой счёт не получен или данные по нему [[#Поиск лицевого счёта в базе данных|не найдены в базе данных]], произносится сообщение '''«Не получены данные лицевого счёта»''', сценарий ещё два раза запрашивает у абонента лицевой счёт.
 
Если лицевой счёт не получен или [[#Поиск лицевого счёта в базе данных|не найден в базе данных]] после трёх попыток, сценарий переходит к [[#Прощальное сообщение|прощальному сообщению]].
 
При получении данных лицевого счёта сценарий переходит к [[#Получение списка приборов учёта по лицевому счёту|получению списка приборов учёта]].


==Поиск лицевого счёта в базе данных==
==Поиск лицевого счёта в базе данных==
На странице настроек '''«Поиск по номеру лицевого счёта»''' указывается SQL-запрос на получение данных по номеру лицевого счёта. Для подстановки в запрос значение номера лицевого счёта, указанного абонентом или определившегося по номеру телефона, используется переменная '''[Account]'''.
Например, если задать запрос:
  select * from `Account` where `Account`='[Account]'
при указанном лицевом счёте 123456789 будет выполнен запрос:
  select * from `Account` where `Account`='123456789'
Если получена запись с номером лицевого счёта, в сценарий возвращается эта запись, иначе возвращается значение '''null'''.
==Получение списка приборов учёта по лицевому счёту==
==Получение списка приборов учёта по лицевому счёту==
==Приём показаний по каждому прибору учёта из списка==
==Приём показаний по каждому прибору учёта из списка==
==Проверка полученных показаний==
==Проверка полученных показаний==
==Запись принятых показаний в базу данных==
==Запись принятых показаний в базу данных==
==Прощальное сообщение==

Версия 05:08, 21 декабря 2015

Основной алгоритм работы

  1. Произнесение приветственого сообщения.
  2. Ожидание выбора способа передачи показаний.
  3. Если номер телефона определён, выполняется запрос на поиск лицевого счёта по номеру телефона.
  4. Если номер лицевого счёта по номеру телефона не получен, выполняется получение номера лицевого счёта от абонента.
  5. Если лицевой счёт получен, выполняется запрос на поиск лицевого счёта в базе данных.
  6. Если лицевой счёт найден в базе данных, выполняется запрос на получение списка приборов учёта по этому лицевому счёту.
  7. По каждому прибору учёта из списка принимаются показания.
  8. Принятые показания проверяются и, если проверка прошла успешно, записываются в базу данных.
  9. Произносится прощальное сообщение.

Пошаговая настройка

Вступительное сообщение

В этом сообщении абонент получает информацию о том, каким образом будет происходить приём показаний.

Необходимо объяснить, что при нажатии любой клавиши на телефоне в тональном режиме приём показаний будет происходить путём распознавания нажатых клавиш, иначе — путём распознавания голоса.

Ожидание выбора способа передачи показаний

В область действия сценария добавляется переменная [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.

Получение списка приборов учёта по лицевому счёту

Приём показаний по каждому прибору учёта из списка

Проверка полученных показаний

Запись принятых показаний в базу данных

Прощальное сообщение