Системы телефонного банковского обслуживания предоставляют клиентам стандартный сервис в виде голосовой и факсимильной информации о платежах, остатках средств на банковских счетах, курсах валют. По сути это интеллектуальные автоответчики с возможностями навигации по голосовому меню системы с помощью клавиатуры обычного телефона, работающего в тональном режиме. В качестве оборудования call-центра в таких системах, как правило, используются весьма дорогостоящие многоканальные телефонные платы, например фирмы Dialogic, вкупе с соответствующими интерфейсными библиотеками от производителя.

При этом зачастую данный вид электронного сервиса для банков является, прямо скажем, не очень прибыльным, и осуществляется ими в рекламных целях, т. е. для привлечения и удержания клиентов. Соответственно тратиться на дорогую многоканальную систему банкиры подчас не очень-то и стремятся. В таких условиях решение подешевле и с более широкими возможностями выбора совместимого оборудования было бы востребовано банками в большей степени.

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

Обе проблемы (дороговизна и жесткая аппаратная зависимость) решает выпущенная в мае новая банковская система RS-Audio компании R-Style Softlab.

В качестве аппаратной основы для нее были взяты обычные голосовые факс-модемы, которые есть в каждом магазине, стоят недорого, хорошо известны не только специалистам, умеют воспроизводить звукозапись и различать тональные сигналы. А также выполняют функции факса, что немаловажно для получения отчетов и выписок в бумажной форме.

Проблемой оставалась традиционная программная несовместимость — иными словами, программа с вызовом голосовых функций модемов ZyXEL, скорее всего, не станет работать с модемами других производителей, скажем U.S. Robotics.

Но корпорация Microsoft давно подумала о разработчиках голосовых приложений и реализовала очень важный аппаратно-независимый интерфейс Microsoft TAPI (Telephone Application Program Interface). Вариант идеальный — поддержка гигантом компьютерной индустрии, интегрированность в саму операционную систему, широкий спектр совместимого оборудования от модемов до устройств IP-телефонии, наличие MS Fax Service (компонента, занятого обработкой факсимильных сообщений) и TAPI.

В результате система RS-Audio оказалась весьма универсальной, применимой для организации произвольного, а не только сугубо банковского call-центра. Благодаря возможности конструирования голосовых меню, а также программирования любого аудиосервиса на макроязыке высокого уровня RS-Audio применима во многих областях — от обычных автоинформаторов и до весьма сложных систем обслуживания клиентов по телефону.

О том, сколь непрост оказался путь разработки данной системы, хотелось бы рассказать поподробнее.

Прежде всего пришлось столкнуться с отсутствием поддержки TAPI в Windows NT 4.0 и факсимильного сервиса в Windows 9x, что сразу ограничило список совместимых с будущей системой ОС до Windows 2000 (и Windows XP, когда она появилась). В общем-то бедой это назвать было нельзя, так как к тому времени Windows 2000 продолжала уверенно завоевывать рынок, а использование систем класса Windows 9x для организации call-центров вряд ли пришло бы кому-то в голову. Однако это приводило к увеличению TCO системы (Total Cost Ownership — суммарная, или общая, стоимость владения — включает все затраты на приобретение, внедрение, сопровождение и утилизацию системы) и создавало ряд дополнительных неудобств для банков. Банки же в отношении системного программного обеспечения являются консерваторами в хорошем смысле этого слова и, прежде чем внедрять новую платформу, всегда тщательно взвешивают все «за» и «против». Собственно, нам был необходим TAPI версии 3.0, который удовлетворял нас по функциональным возможностям, но входил только в комплект вышеупомянутых Windows 2000 и XP. Мы откорректировали технические требования системы в наших спецификациях и двинулись дальше.

Второй сложностью, с которой возились довольно долго, оказалась интересная избирательность голосового устройства, связанного с модемом, в отношении формата принимаемого аудиоматериала. Ему требовался далеко не лучший, как нам показалось, формат, а именно восьмибитовый PCM с частотой дискретизации 8000 Гц. И это при том, что TAPI умеет работать с голосовыми фрагментами в формате wav! Так как хранить и редактировать аудиофайлы в таком формате означает потерять исходное качество, пришлось перекодировать файлы «на лету», прямо при воспроизведении. Качество звучания при этом осталось на очень приличном уровне.

Следующую трудность мы предвидели, но столкнулись с ней гораздо позже. Дело в том, что используемый на этапе разработки модем U.S.Robotics Message Modem как-то сразу без особых проблем справлялся с поставленными задачами, давал вполне приемлемое звучание и распознавание сигналов в линии. И это создало иллюзию отличной работы всех модемов с поддержкой TAPI.

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

Устройства, которые работали более-менее удовлетворительно, можно было пересчитать по пальцам, но они все же были, и их удалось найти и идентифицировать с тем, чтобы потом рекомендовать клиентам. Выяснение причин такого разнообразного поведения навело на мысль о разнице форматов звукового материала, понимаемого самими модемами и звуковым устройством в операционной системе, связанным с ними. Иногда ручной правкой информации в системном реестре удавалось частично подкорректировать работу модема, но отнюдь не всегда (с подробностями можно ознакомиться на Web-сервере компании R-Style Softlab по адресу www.softlab.ru/products/inbank/audio_tm.asp).

Чуть позже, когда по сложившейся традиции RS-Audio была передана в банки для проверки в режиме реальной эксплуатации, были отмечены случаи удовлетворительной работы системы на малоизвестных модемах, да еще и с драйверами от моделей других производителей!

Кстати, попутно выяснилось, что модемы IDC (например, модель 5814BXL/VR) ничуть не хуже U.S. Robotics справляются со своими обязанностями. Так что хотя бренд модели и играет роль, но скорее второстепенную, что положительно сказывается на цене приобретаемого устройства.

В итоге изысканий мы определили несколько моделей, обеспечивающих качественную работу, а также запасли к ним драйверы на случай выдачи клиентам.

Однако все это были, как говорится, цветочки. Самые большие проблемы приготовил для нас факсимильный сервис (Microsoft Fax Service). В документации на него было указано, что, используя функции его API, можно послать факс через TAPI-соединение. Это нам было крайне необходимо — ведь системе нужно было уметь высылать факс по требованию пользователя немедленно, не разрывая соединения, если тот звонит с факс-аппарата и намерен получить бумажный отчет сразу же.

Наивные! Мы долго и упорно, но совершенно безрезультатно боролись с «недокументированной» особенностью Fax Services, заключающейся в том, что эта заявленная возможность просто не работала. Были испробованы все мыслимые комбинации внутренних настроек и даже написано несколько писем в международные форумы в Интернете и FIDO.

Пока шли непрерывные исследования вопроса, родилась Windows XP. Это событие вселило надежду, что, может быть, теперь все тучи развеются и выглянет солнышко, как на «обоях» вышеупомянутой системы. Но нет, и тут факс упорно не хотел сотрудничать с TAPI. И только в очередном выпуске MSDN в августе 2001 г. появилась небольшая приписка, набранная кокетливым серым шрифтом, что эта возможность пока не реализована. Уфф! Утешило только сознание того, что дело оказалось не в наших программистских способностях.

Обходное решение проблемы тем не менее имелось — отправка факса методом обратного звонка. Именно так это сейчас и происходит. Клиент заказывает себе отчетов столько, сколько душа пожелает, указывает номер факса, по которому их надо выслать, и получает, но уже после того, как положил трубку. Кстати, мы в очередной раз убедились в справедливости поговорки о том, что нет худа без добра. Из-за того что отчеты по факсу теперь можно получать только в отдельном сеансе связи методом обратного вызова (call back), сама собой решилась проблема высылки факса по произвольному телефонному номеру, что особенно важно, например, для подтверждения оплаты сделки. Как вы наверняка знаете, зачастую при расчетах между стабильными партнерами заказ выполняется по факту высылки факсимильной копии платежного документа. Теперь это не представляет проблем — достаточно «попросить» RS-Audio переслать документ на факс контрагента.

А затем встал вопрос с форматом файлов, посылаемых на факс. Microsoft Fax Service предоставляет очень полезную возможность — предварительно подготовить документ некоторого зарегистрированного в Windows формата, а затем, используя средства печати приложения, связанного с этим форматом, послать его по факсу. В общем, все как обычно и как раз то, что нам нужно.

Выбрать формат было делом недолгим — разумеется, HTML: он универсален, позволяет форматировать текст, рисовать таблицы и использовать графику. Internet Explorer есть на каждой машине под управлением Windows. Но вот как раз именно браузер и преподнес очередной сюрприз. Дело в том, что при печати он всегда выдает диалоговое окно для выбора параметров печати, и эту особенность не отключишь ни в каких настройках. Как вы понимаете, автоматическая рассылка факсов в таком режиме невозможна. (Кстати, бразузеры—конкуренты Netscape и Opera по иронии судьбы с этой проблемой незнакомы.)

«Ничего страшного, — думали мы, — у Internet Explorer есть COM-интерфейс, на основе которого можно создать свое приложение и там отключить злосчастный диалог». Но вот здесь мы снова столкнулись с очередной «особенностью»! Компонент Internet Explorer может печатать только на принтере по умолчанию, и никакими функциями API с такой «упертой» позиции его не сдвинуть. Только используя его родное диалоговое окно. Все, замкнутый круг.

В качестве последнего и решительного средства была разработана программа, «прибивающая» ненавистное диалоговое окно, как только оно появляется, однако из-за очевидной спорности такого решения света оно не увидело.

Конечно, можно использовать для печати HTML-файлов Microsoft Word, но это дополнительные требования системы, к тому же выглядящие несколько нелогично — зачем на сервере call-центра вдруг понадобился Microsoft Word?

В итоге, скрепя сердце, оставили автоматический способ печати факсов через Internet Explorer на принтер по умолчанию или на любой принтер, но через Microsoft Word. Немного утешает то, что с сервера call-центра вряд ли кто-то будет печатать что-либо, кроме факсов.

На этом, пожалуй, список основных наших бед завершен. Нет, разумеется, были и более мелкие «засады», однако они легко преодолевались нами, набившими руку в борьбе с неочевидностями Microsoft TAPI.

Были и полезные приобретения. Что действительно порадовало нас, так это совместимость получившейся системы с устройствами IP-телефонии, коими может быть как специальный IP-телефон, шлюз VoIP, а в простейшем случае и обычный компьютер со звуковым адаптером, — мы проверили. Не скажу, чтобы сейчас это было хорошо востребовано, но с учетом перспектив IP-телефонии это неплохой задел на будущее.

Итак, я думаю, что Microsoft сделала сильный ход, реализовав TAPI, однако недоработки в нем наталкивают на мысль, что развитие этого стандарта корпорацию не очень-то интересует. Иначе как объяснить наличие аналогичных проблем и в Windows 2000, и в Windows XP? А жаль, так как этим стандартом Microsoft проложила бы дорогу в жизнь многим недорогим и легким в обслуживании решениям. Производителям же оборудования, несомненно, стоит более тщательно поддерживать интерфейс. Хотя это процесс взаимный. Улучшится интерфейс — будет больше прикладных программ, работающих через него, подтянутся производители оборудования. Лично нам пока вполне хватило бы заявленной функциональности TAPI, лишь бы она работала.

Об авторе: Виктор Иванов — руководитель проекта компании R-Style Softlab, e-mail: vivanov@softlab.ru