> For the complete documentation index, see [llms.txt](https://prosbcdocs.telcobridges.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://prosbcdocs.telcobridges.com/telecom-references/protocols/cas-r1-loopstart-user.md).

# CAS R1 LOOPSTART USER

Loopstart is a CAS R1 variant.

Loopstart is an asymmetrical variant where a user and network sides must be face to face.

Current page describes the Loop start user side variant, see the following page for documentation about [Loop start network side](https://github.com/telcobridges-main/tmedia-wiki/tree/main/reference/protocols/cas-r1-loopstart-network/README.md) variant.

You can find general documentation about CASR1 scripts in Toolpack in the following page:[CASr1\_scripting](https://github.com/telcobridges-main/tmedia-wiki/tree/main/reference/isdn-cas/casr1-scripting/README.md).

### Overview

In the Loopstart variant, FAX side is sending CAS bit A, which is used to indicate if user's phone is "on hook" or "off hook", while it receives CAS bit B from network side to indicate when it's required to make the user's phone ring.

Initial CAS bits values:

* Bit A (from user) is 1 ("on hook")
* Bit B (from network) is 1 ("ringer off")

Summary of the Loopstart call flow:

* Call establishment:
  * User calling:
    * User side set CAS bit A to 1, indicating that the phone is "off hook"
    * User side wait for a dial tone
    * User side dials the DNIS (called number)
    * User should hear ring tone, then remote party
  * Network calling:
    * User side detects bit B changes to 0, and makes the phone ring
    * User side detects bit B toggles, and makes the phone ringer "on" and "off" accordingly
    * User side set CAS bit A to 1, indicating that the phone is "off hook"
* Call termination (user side only, network has no way to terminate the call):
  * User side set CAS bit A to 0, indicating that user's phone is "on hook"

Note: There is no way, with a Loopstart variant, for the network side to report when the call is answered, or terminated. The caller considers the call answered when the ring tone ends and when someone starts talking. The caller considers the call terminated when the conversation is over, or when he no longer hears the remote party.

### Configuration

#### Choosing tone type

With CAS R1, DNIS (called number) can be sent using either DTMF or MFR1 tones.

To specify the type of tones to use, use the following constant:

```
TONE_USE_DTMF			= 1
```

**Transmission of DNIS**

Optionnally, a suffix and/or prefix may be added to the DNIS (called number) that Toolpack sent:

```
	DNIS = {
		prefix = "",
		suffix = "",
	},
```

Note that prefix and suffix are rarely used in this variant.

Also note that reception of DNIS does not need to be configured in this user-side variant, because a call from network to user does not provide any DNIS, and thus user side never has to detect a DNIS.

### Detailed information about the Loop start user side script and state machines

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://prosbcdocs.telcobridges.com/telecom-references/protocols/cas-r1-loopstart-user.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
