h1. Интерфейс приложений {{toc}} Smartswitch содержит несколько интерфейсов приложений. Каждый из интерфейсов был создан для определенных целей. При выборе интерфейса рекомендуем ознакомиться со всеми доступными интерфейсами, а также целями, которым они служат. Интерфейсы перечислены в порядке возрастания сложности использования и порога входа для программиста. Рекомендуем переходить к более сложному интерфейсу только в случае, если менее сложный интерфейс не позволяет Вам решить Вашу задачу. h2. REST Данный интерфейс позволяет сторонним приложениям общаться с Smartswitch c минимальным вовлечением в логику работы и структуру Smartswitch. Цель создания интерфейса REST - дать возможность сторонним приложениям сопрягаться с Smartswitch, используя минималистичный API, с минимальным кол-вом функций и аргументов. При этом сторонние системы теоретически могут подключаться к Smartswitch без дополнительной модификации их программного обеспечения (при наличии достаточного кол-ва опций на их стороне для выполнения сопряжения). А значит, возможно обойтись без привлечения программистов для создания сопряжения. Недостатком REST является то, что при увеличении связности между объектами (например, получаем один объект, потом из него получаем другой связанный объект, итд) возникает ряд проблем: * усложняется интуитивное понимание связи между объектами на стороне клиента * возникает много вопросов к технической поддержке * усложняется логика на стороне сервера * усложняется процедура изменений API * появляется необходимость написания обширной документации с примерами. Поэтому REST мы используем только для примитивных операций. Для объектно-ориентированной модели Smartswitch мы используем интерфейс ICE (см. ниже), который элегантно решает вышеописанные проблемы. Преимущества REST интерфейса: * простота в использовании * простой синтаксис * низкий порог входа для программиста * возможность подключения сторонних систем, поддерживающих сопряжение посредством REST, без модификации последних Недостатки REST интерфейса: * ограниченность использования (только для примитивных операций) REST интерфейс подходит для сопряжения Smartswitch c: * сторонними системами для оказания платных HTTP услуг (см. [[HLR запрос]] или [[LNP/MNP запрос]]) * сторонними [[CRM система|CRM-системами]] * сайтами * приложениями ваших клиентов (например, отправка СМС) Подробнее см. [[Интерфейс приложений REST]] h2. ICE Данный интерфейс позволяет сторонним приложениям более тесно общаться с Smartswitch. Интерфейс представляет собой объектно-ориентированную модель Smartswitch. Целью создания интерфейса ICE было дать возможность сторонним приложениям общаться с Smartswitch, используя сложный API, с большим кол-вом функций, аргументов, и взаимных зависимостей. При подключении сторонних приложений через этот интерфейс, Вам не обойтись без привлечения программиста. ICE интерфейс содержит в себе все API, присутствующие в REST интерфейсе. Однако, кроме этого, ICE интерфейс содержит множество API, которых нет в REST интерфейсе. Таким образом, ICE интерфейс всегда может быть использован вместо REST интерфейса. Однако обратное утверждение неверно. Преимущества ICE интерфейса: * большие возможности * удобство в разработке сложных систем Недостатки ICE интерфейса: * высокий порог входа для программиста ICE интерфейс подходит для разработки: * кастомизированной версии веб-портала администратора * кастомизированной версии веб-портала пользователя * кастомизированной версии веб-портала компании * [[CRM система|CRM-системы]], требующими тесной интеграции с Smartswitch * сайтов, требующих тесной интеграции с Smartswitch Подробнее см. [[Интерфейс приложений ICE]] h2. AMI Это наиболее низко-уровневый интерфейс, который позволяет сторонним приложениям получать доступ к деталям совершения звонков через Smartswitch. Он не является заменой REST или ICE интерфейса, а дополняет их в случаях, когда нужно получать больший контроль над звонком, и получать больше уведомлений о состоянии звонков. При подключении стронних приложений через этот интерфейс, вам не обойтись без привлечения программиста. Исключением является случай, если вы подключаете стороннее приложения, которое было создано для подключения к Asterisk. В этом случае вы можете заменить Asterisk на Smartswitch, без модификации данного стороннего приложения. AMI интерфейс подходит для связывания Smartswitch c: * кастомизированным веб-телефоном * кастомизированной системой обзвона базы номеров * кастомизированной версией веб-портала администратора * кастомизированной версией веб-портала пользователя * кастомизированной версией веб-портала компании * сторонними [[CRM система|CRM-системами]], требующими полного контроля над звонком * сторонними [[CRM система|CRM-системами]], поддерживающими Asterisk * сайтами, требующими полного контроля над звонком Подробнее см. [[Интерфейс приложений AMI]] [[API|English translation]]