Делаем soft phone на c# (Введение)

С чего все начиналось

        В один прекрасный момент появилась достаточно нетривиальная на то время задачка — необходимо было обзванивать огромное количество людей и пытаться донести до них какую-то информацию. Первично с юмором решили, а почему бы не звонить вручную? От этого моментально отказались, примерно подсчитав сколько звонков ежедневно нужно совершать (по минимуму — 250-400 звонков, а это далеко не предел). В итоге было принято решение разрабатывать свою систему оповещения.

Долгий. Мучительный сбор данных

        Те, кто не поверят в дальнейший рассказ, могут попробовать кинуть любому поисковику запрос: «Система оповещения», — или «Автоматический обзвон клиентов». Даже указав конкретный язык программирования, пришлось перелопатить немало ресурсов, в том числе и англоязычных (еще одна причина учить языки в школе). Первое, что нам предлагается — обилие уже реализованных решений, которые стоят не так уж и много, однако многое сделать банально не позволяют. Для примера. Почти сразу мы нашли софтину (название опущу, дабы не оскорблять создателя), которая на первый взгляд была ну идеальна для наших целей. Однако после выяснилось, что ни толковой статистики, ни задания шаблона обзвона от программы не добьешься. Что ж, поиск продолжился. В конце-концов было найдено два варианта развития событий:

  • разработка приложения на базе GSM модема;
  • разработка системы оповещения на базе SIP-сервера.

В итоге, были реализованы оба варианта.

Первые подводные камни

        Выбрав аппаратное обеспечение для будущего проекта мы столкнулись с новым вопросом. «Хорошо, звонить мы научимся, а говорить то кто будет?» Казалось бы, в чем проблема, сделать пару сотен аудио-файлов и собирать их в разном порядке, делая полноценное сообщение. От этой идеи сразу же отказались хотя бы потому, что для создания более-менее приличной базы звуков нужно если не оборудование, то время. А проект хотелось сделать быстрее. Пришлось искать голосовой движок, который мог бы стыковаться с средой разработки и давать более-менее внятный звук. Искали снова долго, натыкались на кучу платных вариантов, пока не нашелся один опенсорсный voice engine, который устроил всех по звучанию. И уже только после этого началась разработка самой системы оповещения. Однако об этом мы расскажем несколько позже.