Title: CPL, Policies, Features, FET
1CPL, Policies, Features, FET
2Overview
- Feature service enhancement through
subscription to added functionality. - CPL allows users to customize the service via
call setup instructions. - FET target the specification of telephone
systems, the definition of features, and user
customization of the service on top.
3CPL in a nutshell
- CPL permits to customize the SIP/Proxy server by
instructing it how to react under specific
circumstances, during call setup. - It is designed to minimize the risks of
misbehaviors caused by erroneous scripts (e.g. by
forbidding recursion) and claims to be intended
for general users (as opposed to designers).
4CPL-Driven System
User
CPL SIP/Proxy Server
Network
5CPL Mode of Operation
- intercept INVITE message
- incoming and outgoing
- follow decision tree, based on message and/or
environment values - address/time/priority/string switches
- execute action
- proxy/redirect/reject
- optionally handle action response
- proxy -gt busy no-answer
6CPL Locations
- CPL provides means of managing the list of target
- addresses through
- Static Location
- statically specifying an address
- Registration Lookup
- fetch the current user's address
- Source Lookup
- (dynamically) obtain addresses
7Address- and Time-Switched Features
- Speed Call (address proxying)
- e.g. invite(12) -gt invite(555-1212)
- Outgoing Call Screening (address rejection)
- e.g. invite(1-976-555-1212) -gt reject
- Incoming Call Screening (address rejection)
- e.g. invite(1-800-salesman) -gt reject
- Do Not Disturb (timely rejection)
- e.g. time(lunch) -gt reject("Gone to Lunch")
- Night Service (timely proxying)
- e.g. time(day) -gt invite(01) time(night) -gt
invite(02)
8CPL Location Manipulations
- Call Forward on Busy
- proxy -gt busy -gt location (ForwardToTel) -gt proxy
- Call Forward
- location (ForwardToTel) -gt proxy
- Hunt Groups
- location (SetOfNumbersToForwardTo) -gt proxy
(orderingsequential, timeout) - Call Forking
- location (SetOfNumbersToForwardTo) -gt proxy
(orderingparallel)
9CPL Caveats
- Location
- sensitive lookups, storage
- Presence
- location and availability switches
- In-Call Processing
- Administrative operations
10FET In a nutshell
- FET are lower level than CPL they aim at dealing
with all system operations. Therefore, all of the
current CPL functionality should be implementable
by FET. - Not unlike CPL, FET permit to customize the
SIP/Proxy server by instructing it how to react
this holds for call setup in particular, and for
any other events in general.
11FET-Driven system
- FET are executed as (or by) agents, and would
share a similar view of the system to that of
CPL.
User
FET SIP/Proxy Server
Network
12FET Mode of Operation
- FET describe how the system reacts to the
presence of events on the tuple-space - FET of Basic Service and Features are used to
define users policies - User Agents implement the user's policies
- lookup the tuple-space for events related to user
- execute the first FET that applies
- repeat until no more event concerns user
13Feature Execution Tree
Pre-Cdn
Action
Pre-Cdn
Action
Post-Cdn
14FET Format
feature(Parameters, fet(Pre-Condition,
Action, Post-Condition) ).
caller goes off-hook (to initiate a call) and
gets dial-tone basic( Self, fet( status(Self,
idle), action(Self, off_hook), status(Self,
dial_tone), not(status(Self, idle)),
not(action(Self, off_hook)) ) ).
15FET of Features
- call_Forward(Self, From, To,
- fet(event(invite(From, Redirector, Self)),
- event(invite(From, Self, To)),
- not(event(invite(From, Redirector, Self)))
)). - call_Screening(Source, Destination,
- fet(event(invite(Source, Redirector,
Destination)), - event(busy(Destination, Source)),
- not(event(invite(Source, Redirector,
Destination))))).
16Policies using FET
- time_period(0) ENTERPRISE forbids "luigi" to
call "jack" - policy(enterprise, FET) -
- time_period(0),
- call_Screening(luigi, jack, FET).
- time_period(1) "jack" forwards all incoming
calls to "ruoshan" - policy(jack, FET) -
- time_period(1),
- call_Forward(jack, _From, ruoshan, FET).
17Other Actors The enterprise, group and other
entities may exist in the system as user's agents
do, with varied priorities. System data FET has
access to system data and is not limited to
static data provided in the user's policy.
Furthermore, it can also store data for later use
(e.g. redial, recall). FET Caveats Recursion Due
to its mode of operation, FET is sensitive to
loops.