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
Last Update: 1st November 2010