CAS R1 E&M

From TBwiki
(Difference between revisions)
Jump to: navigation, search
(basic page for E&M)
(Improved doc)
Line 1: Line 1:
  
E&M is a CASr1 family.
+
E&M "Wink Start" is a CASr1 variant.
This script is used to configure the following variants:
+
* Immediate delay
+
* Wink-start
+
* Double-ack
+
* EANA
+
  
 
== Overview ==
 
== Overview ==
E&M scripts use the same logic specified in [[CASr1 scripting]].
+
 
 +
The E&M (often called "Wink Start") variants of CASR1 are "symetrical" CASR1 variants (both sides use identical signaling and state machines, calls can be made in both directions).
 +
* Only bit A is used (generally replicated to bit B)
 +
** Idle ("on hook") pattern is to set bit A to 0
 +
** "Off hook" pattern is to set bit A to 1
 +
 
 +
Summary of the "wink start" call flow:
 +
* Caller side goes "off hook"
 +
* Receiver side "winks" (goes "off hook" for short period of ~200ms)
 +
* Caller side detects "wink" and sends digits
 +
* Receiver side receives digit (sends another "wink" in "Wink-start-ack" variant)
 +
* Receiver side eventually goes "off hook"
 +
Call termination:
 +
* One side goes "on hook"
 +
* Other side confirms with "on hook" too
 +
 
 +
== Supported E&M variants ==
 +
 
 +
TelcoBridges provides a E&M-compatible CAS script. You can find general documentation about CASR1 scripts in Toolpack in the following page:
 +
[[CASr1_scripting]].
 +
 
 +
The E&M script provided by TelcoBridges already supports the following variants:
 +
* Delay start
 +
* Wink-start
 +
* Wink-start-ack
 +
 
 +
Note that since this is a script, other variants may easily be added to this script by TelcoBridges or even by the user, with some knowledge of the LUA programming language.
  
  
 
== Configuration ==
 
== Configuration ==
 +
 +
=== Choosing variant ===
 
To specify a script to use E&M, you MUST specify one of the following:
 
To specify a script to use E&M, you MUST specify one of the following:
 
<pre>
 
<pre>
Line 17: Line 40:
 
CasR1.Variant = CasR1.VariantTypes.WINK_START
 
CasR1.Variant = CasR1.VariantTypes.WINK_START
 
CasR1.Variant = CasR1.VariantTypes.WINK_START_ACK
 
CasR1.Variant = CasR1.VariantTypes.WINK_START_ACK
CasR1.Variant = CasR1.VariantTypes.EANA
 
 
</pre>
 
</pre>
  
Depending if you want to use 0, 1 or 2 winks and if you plan to receive or not the ANI.
+
Depending if you want to use 0, 1 or 2 winks.
  
  
 +
=== Configuring exchange of ANI/DNIS ===
 +
* ANI stands for "Automic Number Identification" (or "calling number).
 +
* DNIS stands for "Dialed Number Identification Service" (or "called number").
  
== Subvariants ==
+
In the E&M variants, ANI (calling number) is optional, while DNIS (called number) is mandatory.
Here are the differences between the subvariants:
+
  
=== Delay Start ===
+
==== Detection of ANI and/or DNIS ====
there's no wink before receiving ANI/DNIS.
+
Configuration of reception/transmission of ANI/DNIS is controlled by the following variables:
 +
<pre>
 +
ANI = {
 +
prefix = "",
 +
suffix = "",
 +
expected_digits = 0,
 +
inter_digit_timeout = 0,
 +
},
 +
 +
DNIS = {
 +
prefix = "*",
 +
suffix = "#",
 +
expected_digits = 0,
 +
inter_digit_timeout = 0,
 +
},
 +
</pre>
  
=== Wink Start ===
+
* ANI/DNIS may be surrounded by separator digits (most of the time "KP" and "ST" MFR1 tones).
There's 1 wink before receiving ANI/DNIS.
+
** Prefix/suffix are automatically added by the script when the digits are being sent
 +
** Prefix/suffix are detected by the script and removed from the collected digits before being reported to the application as calling/called numbers
 +
* Expected number of digits is generally used in cases where no prefix/suffix are used, but instead a well-known (and fixed) number of digits are expected to be received
 +
* The inter-digit timeout allows to declare ANI/DNIS complete after a delay without receiving subsequent digits. This is generally used with prefix/suffix separators are not used.
  
=== Wink Start ACK ===
+
==== Enabling/disabling usage of ANI ====
There's 1 wink before receiving ANI/DNIS.
+
To enable detection of ANI, enable one of the 3 detection methods above (prefix/suffix, expected number of digits, or inter-digit timeout).
There's 1 wink after receiving ANI/DNIS.
+
  
=== EANA ===
+
If none is used, ANI won't be sent or received by the script.
This variant is similar to wink start, but it contains ANI, while wink-start has no ANI.
+
  
  
== ANI ==
 
  
This is the Automic Number Identification, commonly called the "calling number".
+
== Subvariants ==
 +
Here are the differences between the subvariants:
  
 +
=== Delay Start ===
 +
There's no wink before receiving ANI/DNIS. Instead, a fixed delay is inserted after going "off hook" and before sending the first digit.
 +
The following script constant defines that delay, and may be modified:
 
<pre>
 
<pre>
ANI = {
+
OUTGOING_DELAY_TIMEOUT = 500
prefix = "*",
+
suffix = "*",
+
expected_digits = 0,
+
inter_digit_timeout = 0,
+
}
+
 
</pre>
 
</pre>
  
 +
=== Wink Start ===
 +
There's 1 wink before exchanging ANI/DNIS. In that variant, ANI/DNIS tones will only be sent after detecting a Wink from the remote side.
 +
A Wink will be sent after detecting a remote "off hook" (new incoming call).
  
== DNIS ==
+
Wink duration can be configured by the following script constant (in milliseconds):
 
+
This is the Dialed Number Identification Service, commonly called the "called number".
+
 
<pre>
 
<pre>
DNIS = {
+
INCOMING_WINK_DURATION = 200
prefix = "*",
+
suffix = "#",
+
expected_digits = 0,
+
inter_digit_timeout = 0,
+
}
+
 
</pre>
 
</pre>
  
By using the 2 above sections, you're expecting to receive:
+
=== Wink Start ACK ===
<pre>
+
There's 1 wink before receiving ANI/DNIS.
*ANI*DNIS#
+
There's 1 wink after receiving ANI/DNIS.
</pre>
+
 
when you're in the incoming addressing state.
+
== Detailed information about the E&M script and state machines ==
 +
For more detailed information about how this script is implemented (various states, and options), please refer to the "e_m.lua" script provided with Toolpack.

Revision as of 12:23, 5 August 2013

E&M "Wink Start" is a CASr1 variant.

Contents

Overview

The E&M (often called "Wink Start") variants of CASR1 are "symetrical" CASR1 variants (both sides use identical signaling and state machines, calls can be made in both directions).

  • Only bit A is used (generally replicated to bit B)
    • Idle ("on hook") pattern is to set bit A to 0
    • "Off hook" pattern is to set bit A to 1

Summary of the "wink start" call flow:

  • Caller side goes "off hook"
  • Receiver side "winks" (goes "off hook" for short period of ~200ms)
  • Caller side detects "wink" and sends digits
  • Receiver side receives digit (sends another "wink" in "Wink-start-ack" variant)
  • Receiver side eventually goes "off hook"

Call termination:

  • One side goes "on hook"
  • Other side confirms with "on hook" too

Supported E&M variants

TelcoBridges provides a E&M-compatible CAS script. You can find general documentation about CASR1 scripts in Toolpack in the following page: CASr1_scripting.

The E&M script provided by TelcoBridges already supports the following variants:

  • Delay start
  • Wink-start
  • Wink-start-ack

Note that since this is a script, other variants may easily be added to this script by TelcoBridges or even by the user, with some knowledge of the LUA programming language.


Configuration

Choosing variant

To specify a script to use E&M, you MUST specify one of the following:

CasR1.Variant = CasR1.VariantTypes.DELAY_START
CasR1.Variant = CasR1.VariantTypes.WINK_START
CasR1.Variant = CasR1.VariantTypes.WINK_START_ACK

Depending if you want to use 0, 1 or 2 winks.


Configuring exchange of ANI/DNIS

  • ANI stands for "Automic Number Identification" (or "calling number).
  • DNIS stands for "Dialed Number Identification Service" (or "called number").

In the E&M variants, ANI (calling number) is optional, while DNIS (called number) is mandatory.

Detection of ANI and/or DNIS

Configuration of reception/transmission of ANI/DNIS is controlled by the following variables:

	ANI = {
		prefix = "",
		suffix = "",
		expected_digits = 0,
		inter_digit_timeout = 0,
	},
	
	DNIS = {
		prefix = "*",
		suffix = "#",
		expected_digits = 0,
		inter_digit_timeout = 0,
	},
  • ANI/DNIS may be surrounded by separator digits (most of the time "KP" and "ST" MFR1 tones).
    • Prefix/suffix are automatically added by the script when the digits are being sent
    • Prefix/suffix are detected by the script and removed from the collected digits before being reported to the application as calling/called numbers
  • Expected number of digits is generally used in cases where no prefix/suffix are used, but instead a well-known (and fixed) number of digits are expected to be received
  • The inter-digit timeout allows to declare ANI/DNIS complete after a delay without receiving subsequent digits. This is generally used with prefix/suffix separators are not used.

Enabling/disabling usage of ANI

To enable detection of ANI, enable one of the 3 detection methods above (prefix/suffix, expected number of digits, or inter-digit timeout).

If none is used, ANI won't be sent or received by the script.


Subvariants

Here are the differences between the subvariants:

Delay Start

There's no wink before receiving ANI/DNIS. Instead, a fixed delay is inserted after going "off hook" and before sending the first digit. The following script constant defines that delay, and may be modified:

	OUTGOING_DELAY_TIMEOUT	= 500

Wink Start

There's 1 wink before exchanging ANI/DNIS. In that variant, ANI/DNIS tones will only be sent after detecting a Wink from the remote side. A Wink will be sent after detecting a remote "off hook" (new incoming call).

Wink duration can be configured by the following script constant (in milliseconds):

	INCOMING_WINK_DURATION 	= 200

Wink Start ACK

There's 1 wink before receiving ANI/DNIS. There's 1 wink after receiving ANI/DNIS.

Detailed information about the E&M script and state machines

For more detailed information about how this script is implemented (various states, and options), please refer to the "e_m.lua" script provided with Toolpack.

Personal tools