h1. Обработчик вызовов _Обработчик Вызовов_ это последовательность инструкций, которой следует *Smartswitch* при обработке входящего вызова. _Обработчик Вызовов_ создается через _Конфигуратор Обработчика Вызовов_, путем перетаскивания и соединения мышью необходимых узлов на рабочем пространстве. !call_handler.png! Сама последовательность обработки звонков представляет собой набор _деревьев_, каждое из которых начинается с _Элемента Расширения_. Доступные _Элементы Расширения_ доступны в разделе [[Расширения]]. [[Расширения]] определяют условия, которые необходимы для активации данного дерева обработки звонков. После входа в определенное дерево обработки вызовов, последовательно выполняются приложения из этого дерева. Контрольный путь может содержать условные ветвления. В самом простом случае дерево содержит только одну ветвь. В более сложным возможно сложные ветвления. Каждая ветвь обработки звонка должна замыкаться _Элементом Завершения_. Элементами завершения могут выступать действия на канале из раздела [[Канал]], например [[Канал Отбой|Отбой]] или [[Канал Занято|Занято]]. Контрольный путь обработки вызова может переходить между разными ветвями обработки вызовов, но в конце замкнется на каком-либо _Элементе Завершения_. По завершению выполнения какого-либо [[Приложения]] из ветви система проверяет внутренний код возврата приложения. Установка кодов возврата описана в разделе [[Приложения]]. Если код возврата: * *больше 0*. Начинается цикл считывания DTMF для совпадения по [[Расширение Шаблон|Расширению Шаблон]]. * *0* Выполняется следующее приложение по ветви. * *меньше 0* Система проверяет, был ли отбой со стороны оригинатора: * *если отбой со стороны оригинатора был*. Происходит отбой связанного вызова на терминатора. Если связанного вызова нет, система просто выходит из обработчика. * *если отбоя со стороны оригинатора не было*. Система переходит в [[Расширение Отбой]] в текущем обработчике вызовов. Если такого расширения нет, система просто выходит из обработчика. [[Call handler|English translation]]