Call-Processing Language
Call-Processing Language (CPL) – язык описания правил обработки вызовов. Вызовом может быть, например, телефонный звонок или иной коммуникационный сервис.
Язык CPL является скриптовым языком на базе XML и использует соответствующий синтаксис. CPL используется для описания поведения компьютерных систем при обработке поступившего вызова. Например, можно создать расписание в котором все звонки после 18.00 переводятся на мобильный номер абонента, а после 22.00 на голосовую почту. Или, например, можно запрограммировать загрузку почтовой программы и отправку соответствующего электронного письма по шаблону при звонке определенного абонента. Таким образом CPL позволяет создавать довольно интеллектуальные компьютерные системы, которые в автоматическом режиме обрабатывают входящие звонки и сообщения.
Язык CPL не привязан ни к какой платформе и ни к какому конкретному сетевому протоколу. Наиболее активное применение нашел в системах SIP-телефонии.
Скрипты языка CPL хранятся и выполняются на так называемом сигнальном сервере. Для систем SIP это proxy-server или redirect-server. Все скрипты храняться в единой базе скриптов CPL сервера. При поступление вызова сервер активизирует скрипт CPL в соответствии с условиями описанными в скрипте.
Пример скрипта на языке CPL
<?xml version="1.0" ?> <!DOCTYPE cpl PUBLIC "-//IETF//DTD RFC3880 CPL 1.0//EN" "cpl.dtd"> <cpl> <subaction id="voicemail"> <location url="sIP:jones@voicemail.example.com"> <redirect /> </location> </subaction> <incoming> <address-switch field="origin" subfield="host"> <address subdomain-of="example.com"> <location url="sIP:jones@example.com"> <proxy timeout="10"> <busy> <sub ref="voicemail" /> </busy> <noanswer> <sub ref="voicemail" /> </noanswer> <failure> <sub ref="voicemail" /> </failure> </proxy> </location> </address> <otherwise> <sub ref="voicemail" /> </otherwise> </address-switch> </incoming> </cpl>