See the download page to obtain this program
ANISE describes telecommunications services in an abstract and architectural manner. See the ANISE web page for details of publications. This collection of scripts and files provides:
The numerous examples may be most helpful for guidance on how to write ANISE, ANGEN or ANTEST descriptions. The constructs in these languages correspond to macros defined in the M4 scripts. Each macro is preceded by a comment explaining how to use it and what it does. This may be helpful, especially for constructs that are not actually used in the examples.
The ANISE toolset consists of a number of tools written by the author, but also exploits a number of other generally available tools. The overall architecture of the toolset is as follows:
Here are some examples of how to use the tools. The normal interface is via the angen command. This takes a list of options and a list of feature descriptions to combine and validate. The first feature must be the base description - generally POTS (Plain Old Telephone Service). Other features are combined with this and then validated according to the defined tests.
The following will combine POTS with ABD (Abbreviated Dialling) and validate the resulting description:
angen pots abd
The following will combine POTS with all the available feature descriptions and provide a trace of its activities. Note that there certain constraints must be respected as the order in which features are applied.
angen -t pots abd acb cfbl ccbs cnd cw dr one ocs cfu tcs
This call of angen will produce output like the following. See Validating Architectural Feature Descriptions using LOTOS for an explanation of what the warnings and output messages mean.
Making ANISE file "serv.anise": Warning - Ignored "Respond" Prefix in CCBS that overlaps: Prefix in ACB Warning - Ignored "RingBack" Prefix in CCBS that overlaps: Prefix in ACB Warning - Ignored "Select" Prefix in CW that overlaps: Prefix in CCBS Warning - Allowed overlapping changes of "rings": Fill in TCS Fill in CND Fill in DR Warning - Allowed overlapping changes of "dials": Fill in ONE Fill in OCS Fill in CFU Fill in ABD Warning - Allowed overlapping changes of "checks_busy": Fill in CW Fill in CCBS Fill in ACB Fill in CFBL Making ANISE test file "serv.antest": Making LOTOS file "serv.lot": Declaring Seize Declaring Dial Declaring Ring Declaring Silence Declaring Answer Declaring Speak Declaring Clear1 Declaring Clear2 Declaring Respond Declaring Select Declaring Recall Declaring Clear3 Declaring CallWaitClear Declaring CallWait Declaring Dialling Declaring Answering Declaring Ringing Declaring Call Declaring RingBack Declaring Profiles Declaring MaxCalls Declaring Specification Executing LOTOS tests: Testing ABD Normal Call ... Pass 3 succ 0 fail 4.5 secs Testing ABD Abbreviated Number ... Pass 3 succ 0 fail 1.5 secs Testing ABD Abbreviated Unknown ... Pass 3 succ 0 fail 1.1 secs Testing ACB Normal Call ... Pass 3 succ 0 fail 2.7 secs Testing ACB Called Free ... Pass 14 succ 0 fail 8.1 secs Testing ACB Caller Free ... Pass 2 succ 0 fail 2.5 secs Testing ACB Caller Busy Incoming ... Pass 14 succ 0 fail 9.3 secs Testing ACB Caller Busy Outgoing ... Pass 14 succ 0 fail 9.3 secs Testing CFBL Normal Call ... Pass 3 succ 0 fail 1.5 secs Testing CFBL Forward 1 ... Pass 9 succ 0 fail 3.5 secs Testing CFBL Forward 2 ... Pass 9 succ 0 fail 5.3 secs Testing CFBL Optional Forward 2 ... Pass 9 succ 0 fail 3.6 secs Testing CCBS Normal Call ... Pass 3 succ 0 fail 2.7 secs Testing CCBS Called Free ... Pass 14 succ 0 fail 8.4 secs Testing CCBS Caller Free ... Pass 2 succ 0 fail 2.7 secs Testing CCBS Caller Busy Incoming ... Pass 14 succ 0 fail 9.7 secs Testing CCBS Caller Busy Outgoing ... Pass 14 succ 0 fail 9.5 secs Testing CND Normal Call ... Pass 3 succ 0 fail 1.5 secs Testing CND Delivered Number ... Pass 3 succ 0 fail 1.4 secs Testing CW Normal Call ... Pass 3 succ 0 fail 1.5 secs Testing CW No Waiting ... Pass 3 succ 0 fail 1.5 secs Testing CW First Defers ... Pass 18 succ 0 fail 6.5 secs Testing CW Second Defers ... Pass 6 succ 0 fail 4.3 secs Testing CW Called Hangs Up ... Pass 12 succ 0 fail 4.9 secs Testing CW Called Rejects ... Pass 10 succ 0 fail 7.0 secs Testing CW Called Cancels ... Pass 12 succ 0 fail 5.7 secs Testing CW Called Swaps ... Pass 9 succ 0 fail 10.8 secs Testing CW Originator Swaps ... Pass 9 succ 0 fail 11.0 secs Testing DR Normal Call ... Pass 3 succ 0 fail 1.5 secs Testing DR Ring Pattern 1 ... Pass 3 succ 0 fail 1.5 secs Testing DR Ring Pattern 2 ... Pass 3 succ 0 fail 1.3 secs Testing DR Ring Pattern 3 ... Pass 3 succ 0 fail 1.6 secs Testing ONE Normal Call ... Pass 3 succ 0 fail 1.5 secs Testing ONE One Number ... Pass 3 succ 0 fail 1.5 secs Testing OCS Normal Call ... Pass 3 succ 0 fail 1.5 secs Testing OCS Screened Number ... Pass 3 succ 0 fail 1.1 secs Testing OCS Screened All ... Pass 3 succ 0 fail 1.1 secs Testing CFU Normal Call ... Pass 3 succ 0 fail 1.5 secs Testing CFU Forward 1 ... Pass 3 succ 0 fail 1.5 secs Testing CFU Forward 2 ... Pass 3 succ 0 fail 1.5 secs Testing TCS Normal Call ... Pass 3 succ 0 fail 1.5 secs Testing TCS Screened Number ... Pass 6 succ 0 fail 1.2 secs Testing TCS Screened All ... Pass 6 succ 0 fail 1.3 secs Testing POTS Invalid Number ... Pass 3 succ 0 fail 1.1 secs Testing POTS Both Clear ... Pass 3 succ 0 fail 1.5 secs Testing POTS Alternate Speech ... Pass 6 succ 0 fail 2.0 secs Testing POTS Interleaved Speech ... Pass 6 succ 0 fail 3.5 secs Testing POTS Multiple Attempts ... Pass 6 succ 0 fail 6.7 secs Testing POTS Call Self ... Pass 3 succ 0 fail 1.1 secs Testing POTS Call Busy ... Pass 102 succ 0 fail 1.1 mins Testing POTS Interdependent Calls ... Pass 102 succ 0 fail 2.4 mins Testing POTS Independent Calls ... Pass 120 succ 0 fail 4.2 mins
angen generates the files serv.anise (combined descriptions) and serv.antest (combined tests). The options for angen are:
After angen has combined the descriptions it calls the anise translator that can also be called directly with file.anise as its argument. The result is a LOTOS file file.lot.
After anise has been run, angen calls antest to translate the tests, combine them with the anise output, and run the tests. The result is an updated LOTOS file file.lot that integrates the service and test specifications. antest can also be called with file.antest as its argument and the following options:
Note that the ANISE distribution is not complete in itself. It is necessary to have or obtain the following:
Although the ANISE toolset uses some specialised implementation languages, it is not necessary to be familiar with them in order to use the tools. However any attempt to understand or change what is going on will need detailed knowledge of these languages.
This sub-directory contains the executable programs. Note that it must be in the shell's search path ($PATH).
Filename | Contents |
---|---|
angen | main interface to generate and test descriptions |
anise | translator from ANISE descriptions to LOTOS |
antest | translator from ANTEST descriptions to LOTOS |
This sub-directory contains a little documentation beyond what is published in papers.
Filename | Contents |
---|---|
README.html | this explanatory file |
test.* | LaTeX notes about the examples |
TODO | a list of things to be considered by the author |
This sub-directory contains example descriptions and tests of a variety of features. Execute angen in this sub-directory.
Filename | Contents |
---|---|
abd.* | Abbreviated Dialling |
acb.* | Automatic Call Back |
all.* | Feature Combination Tests |
ccbs.* | Call Completion to Busy Subscriber |
cfbl.* | Call Forwarding on Busy Line |
cfu.* | Call Forwarding Unconditional |
cnd.* | Calling Number Delivery |
cw.* | Call Waiting |
dr.* | Distinctive Ring |
ocs.* | Outgoing Call Screening |
one.* | One Number |
pots.* | Plain Old Telephone Service (base ANISE description) |
serv.* | result of ANISE generation (and associated TOPO files) |
test.* | various tests (of interest to the author only) |
tcs.* | Terminating Call Screening |
*.angen | ANGEN files |
*.antest | ANTEST files |
*.ctx | TOPO context file |
*.lot | LOTOS file |
This sub-directory contains the m4 scripts that support the translations. Note that it must be in M4's search path ($M4PATH).
Filename | Contents |
---|---|
anise.m4 | ANISE translator general facilities |
anise_comb_gen.m4 | ANISE translator generic feature combinations |
anise_comb_tel.m4 | ANISE translator telephony feature combinations |
anise_feat.m4 | ANISE translator feature processes |
anise_gen.m4 | ANGEN translator |
anise_prim_int.m4 | ANISE translator internal definitions for service primitives |
anise_prim_par.m4 | ANISE translator service primitive parameters |
anise_prim_queue.m4 | ANISE translator service primitive queues |
anise_prim_type.m4 | ANISE translator service primitive types |
anise_prof.m4 | ANISE translator user profiles |
anise_test.m4 | ANTEST translator |
The interpretation what telecommunications services and features mean varies from network to network. The author has tended towards British Telecom rather than, say, the BellCore definitions. The following lists some specific issues that arose during the development of ANISE.
ANISE is free software, distributed under the GNU Public License Version 2. You may re-distribute this software provided you preserve this README file. The contents of this package may be used freely for non-commercial purposes provided this README file and copyright notices are retained. Copyright remains with the author. No warranties are given as to the accuracy or suitability of this package.
Version 1.0: First public version, Ken Turner, 20th August 1998
Up one level to LOTOS
Utilities