как начать разработку "телефонного сервиса" (например, телефонный банкинг)? - PullRequest
0 голосов
/ 09 января 2012

Я хочу разработать систему, с которой пользователи будут удаленно взаимодействовать по телефону.Как и телефонная банковская система вашего банка.

Эта система будет очень простой: когда пользователь звонит, ему просто нужно запросить пользователя и принять ввод чисто с клавиатуры.Кроме того, он должен иметь возможность получать и отправлять текстовые сообщения.

1- Существуют ли какие-либо несвободные платформы, поддерживающие это?

2- Может ли кто-нибудь поделиться основами своего опытав развертывании такого рода системы?Подводные камни, на что обращать внимание и т. Д.

Ответы [ 4 ]

4 голосов
/ 09 января 2012

Существует проект с открытым исходным кодом Asterisk , который поможет вам в этом.

1 голос
/ 22 января 2012

Я разрабатываю системы IVR для клинических испытаний уже около 20 лет.Есть несколько очень хороших сторонних библиотек для кодирования IVR, которые работают с Visual Basic и C #.Pronexus имеет программное обеспечение, которое вы можете скачать и попробовать бесплатно по адресу http://pronexus.com/.. Больше всего я использовал программное обеспечение CT ADE от Syntellect.http://www.syntellect.com/pages/products/ct_ade_eng.aspx Они начинались много лет назад как VisualVoice, а затем прошли через множество выкупов и покупок.Любая из этих компаний продает программное обеспечение, которое может использоваться с Visual Basic и C #, а также C ++.Преимущество заключается в использовании чего-то, с чем вы можете быть более знакомы в программировании.Существует много решений с открытым исходным кодом, но документация, поддержка и обучение не так хороши.CT ADE имеет такой синтаксис.,.

ADXVoice1.PlayFile("C:\project\MainMenu.WAV", SOUNDFILE_TYPE_WavePCM22K, "+")
ADXVoice1.ClearDigits()

choice = ADXVoice1.GetDigits(24, 15, 15, "#")

Воспроизводит файл MainMenu.WAV для вызывающего абонента, очищает буфер цифр и затем ждет до 24 секунд, пока вызывающий абонент войдет в выбор меню.Выбор, введенный вызывающим абонентом, сохраняется в строке «выбор».Очень просто и понятно.Я настроил подобные системы, которые также подключаются к базе данных SQL для хранения и извлечения данных, которые нам нужны.

Чтобы самостоятельно разместить такую ​​систему, сначала нужно настроить сервер IVR.Вы можете использовать обычные телефонные линии с картами Dialogic.Вы можете получить много разных карт Dialogic.Я бы порекомендовал вам получить 4-строчную карту для начала.Они также делают карты 8, 12, 16 и T1 в зависимости от того, что вам нужно.Карты имеют встроенные процессоры, которые обрабатывают для вас одновременные звонки.

Итак, когда вы разрабатываете приложение на VB или C #, программа «запускается» на линии на карте.Строки также должны быть настроены в «группу поиска», чтобы вы могли указать один номер (бесплатный) на первую строку.Если он занят, то он «охотится» за открытой линией в группе.

Это старый способ, которым телефонные системы работали много лет.Более новый способ - через Интернет с использованием Voice over IP (VoIP).У него есть свои проблемы.Основное преимущество использования аппаратного обеспечения Dialogic и реальных телефонных линий в том, что его будет легче отлаживать.Вы можете разместить сервер IVR в своем офисе и иметь полный контроль над системой.

1 голос
/ 10 января 2012

Не уверен, что на самом деле не проприетарное означает открытый код.Если под проприетарным вы подразумеваете, что вы не привязаны к конкретному поставщику для развертывания своего решения, тогда вам захочется использовать открытый стандарт W3C, такой как VoiceXML .С помощью этого стандарта вы можете разработать приложение для голосовой / телефонной связи, которое может быть запущено на нескольких различных платформах IVR с использованием тех же технологий, что и при разработке веб-приложений.

Voxeo обеспечивает превосходную платформу IVR что вы можете либо разместить в облаке, либо запустить решение на основе помещения на своем предприятии, либо сочетание обоих.Он полностью соответствует стандартам VoiceXML, прост в использовании, и вы можете бесплатно разрабатывать и тестировать свои приложения на их платформе.Вы платите, только если решите развернуть приложение в производственной среде.И они даже предоставят отличную поддержку бесплатно во время процесса разработки.

Основной ловушкой является недооценка дизайна пользовательского интерфейса (UX) и голосового пользовательского интерфейса (VUI).Есть много плохо разработанных приложений IVR, которые люди просто не будут использовать, что полностью подрывает причину инвестирования в эти приложения самообслуживания.Есть так много плохих, что это привело к созданию таких сайтов, как GetHuman.com, который дает пользователям советы о том, как обойти различные системы IVR и как можно быстрее связаться с человеком.Если пользователи обходят ваше приложение самообслуживания, вы теряете свои вложения в него.Если у вас нет собственного опыта, я бы нанял кого-нибудь с опытом проектирования VUI, чтобы он помог вам, по крайней мере, с вашим первым заявлением.

1 голос
/ 09 января 2012

Я уже построил один из них, рабочий процесс: «Пользовательские вызовы» (со своего мобильного телефона, за дверью), «Ожидание CLIP», «Если неизвестный номер отклоняет вызов», «Ответ», «Подсказка: введите PIN-код »,« Ожидание 4-х цифр DTMF »,« Проверка номера телефона / PIN-кода по отношению к БД »,« Если все в порядке, откройте ворота через последовательный порт »,« иначе запрос «F *** Off» »,« повесить трубку »

Это были основные подводные камни:

  • Многие (TBH: подавляющее большинство) дешевых «голосовых модемов» на последовательном / USB / PCI упадут замертво через несколько минут / часов / дней. Если вы идете по этому пути, используйте GSM, VoIP или ISDN. Если вам действительно нужен аналоговый стационарный телефон, используйте реальное оборудование
  • Мне еще не удалось найти нормальный кроссплатформенный инструментарий, поэтому будьте готовы выбрать ОС и оставайтесь с ним, если вы не хотите начинать с "ATZ"
  • Убедитесь, что вы разрабатываете свое приложение перед кодированием. Подобные вещи не поддаются «дизайну на ходу»
  • Удивительно трудно было понять, какой кодек и форматировать различные устройства готовы принять. Имейте это в виду, если вы не хотите специализироваться на определенном типе оборудования.
...