# \<gather>

**Role:** \<gather>, in simple words *collects the user response* as the user makes their choice by pressing the keys on the dial pad.

**Use:** The main use of \<gather> is to collect the digits as the user enters them from their phone. Some of the examples stating how gather can be used are :-

* *IVR –* When building an IVR for your company \<gather> collects the digits that the user enters to direct the call to correct department/individual.
* Conference – When joining a conference caller enters the “pin”. This pin is collected by \<gather> for validating the user.
* *Authentication –* Yet another way of using \<gather> for security authentication when accessing personal or secured information over phone.

While there are no limitation on where \<gather> can be used, there definitely is requirement or set of attributes to use with \<gather>. Below is a list of attributes to be used with \<gather>, each attribute has a specific function and can use certain values.

### Attributes

| <p><strong>Attribute</strong><br></p> | <p><strong>Value</strong><br></p> | <p><strong>Default</strong><br></p> |
| ------------------------------------- | --------------------------------- | ----------------------------------- |
| action                                | Callback URL                      | none                                |
| Method                                | POST/GET                          | POST                                |
| minDigits                             | 1-200                             | 1                                   |
| numDigits                             | 1-200                             | 20                                  |
| Timeout (in seconds)                  | Integer                           | 4 Seconds                           |
| Tries                                 | 1-10                              | 3                                   |
| Audiotype                             | text to speech (tts)              | none                                |
| finishOnKey                           | 0-9 ; \* ;  #                     | #                                   |

#### Here is an example of how \<gather> is used within code.

```
<?xml version="1.0" encoding="UTF-8"?> 
<Response>
     <Gather timeout="10" finishOnKey="*" action="handle-key.php">
         <Say>Please enter the Extension number you want to dial.</Say>
     </Gather>
 </Response>
```

Once the user enters the response. It will call <http://yourserver/handle-key.php>

```
<?php
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 
echo "<Response><Say>You entered ".$_REQUEST['Digits']. "</Say></Response>"; ?>
```


---

# Agent Instructions: 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:

```
GET https://docs.cebodtelecom.com/api/didml-reference-doc/didml-verbs/less-than-gather-greater-than.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
