You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This will render beautiful keyboard keys when converted to html but will also
produce valid text-only output for command line markdown readers.
Additionally one occasion where this also previously wasn't rendered at all
(not even as text) due to an incorrect prefix was fixed.
Copy file name to clipboardExpand all lines: docs/Configuration/Dialplan/Special-Dialplan-Extensions.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@ Here we'll list all of the special built-in dialplan extensions and their usage.
22
22
a: Assistant extension
23
23
----------------------
24
24
25
-
This extension is similar to the **o** extension, only it gets triggered when the caller presses the asterisk (\*) key while recording a voice mail message. This is typically used to reach an assistant.
25
+
This extension is similar to the **o** extension, only it gets triggered when the caller presses the asterisk (<kbd>*</kbd>) key while recording a voice mail message. This is typically used to reach an assistant.
Copy file name to clipboardExpand all lines: docs/Configuration/Interfaces/Asterisk-REST-Interface-ARI/Introduction-to-ARI-and-Channels/ARI-and-Channels-Handling-DTMF.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@ While this concept is relatively straight forward, handling DTMF is quite common
16
16
This example mimics the [automated attendant/IVR dialplan example](/Deployment/Basic-PBX-Functionality/Auto-attendant-and-IVR-Menus/Handling-Special-Extensions). It does the following:
17
17
18
18
* Plays a menu to the user which is cancelled when the user takes some action.
19
-
* If the user presses 1 or 2, the digit is repeated to the user and the menu restarted.
19
+
* If the user presses <kbd>1</kbd> or <kbd>2</kbd>, the digit is repeated to the user and the menu restarted.
20
20
* If the user presses an invalid digit, a prompt informing the user that the digit was invalid is played to the user and the menu restarted.
21
21
* If the user fails to press anything within some period of time, a prompt asking the user if they are still present is played to the user and the menu restarted.
22
22
@@ -350,7 +350,7 @@ def cancel_timeout(channel):
350
350
351
351
```
352
352
353
-
Finally, we need to actually do *something* when the user presses a `1` or a `2`. We could do anything here - but in our case, we're merely going to play back the number that they pressed and restart the menu.
353
+
Finally, we need to actually do *something* when the user presses a <kbd>1</kbd> or a <kbd>2</kbd>. We could do anything here - but in our case, we're merely going to play back the number that they pressed and restart the menu.
354
354
355
355
```python
356
356
defhandle_extension_one(channel):
@@ -586,7 +586,7 @@ client.run(apps='channel-aa')
586
586
587
587
### channel-aa.py in action
588
588
589
-
The following shows the output of `channel-aa.py` when a PJSIP channel presses `1`, `2`, `8`, then times out. Finally they hang up.
589
+
The following shows the output of `channel-aa.py` when a PJSIP channel presses <kbd>1</kbd>, <kbd>2</kbd>, <kbd>8</kbd>, then times out. Finally they hang up.
590
590
591
591
```
592
592
Channel PJSIP/alice-00000001 has entered the application
@@ -833,7 +833,7 @@ function cancelTimeout(channel) {
833
833
834
834
```
835
835
836
-
Finally, we need to actually do *something* when the user presses a `1` or a `2`. We could do anything here - but in our case, we're merely going to play back the number that they pressed and restart the menu.
836
+
Finally, we need to actually do *something* when the user presses a <kbd>1</kbd> or a <kbd>2</kbd>. We could do anything here - but in our case, we're merely going to play back the number that they pressed and restart the menu.
837
837
838
838
```javascript
839
839
functionhandleDtmf(channel, digit) {
@@ -1038,7 +1038,7 @@ function clientLoaded (err, client) {
1038
1038
1039
1039
### channel-aa.js in action
1040
1040
1041
-
The following shows the output of `channel-aa.js` when a PJSIP channel presses `1`, `2`, `8`, then times out. Finally they hang up.
1041
+
The following shows the output of `channel-aa.js` when a PJSIP channel presses <kbd>1</kbd>, <kbd>2</kbd>, <kbd>8</kbd>, then times out. Finally they hang up.
1042
1042
1043
1043
```
1044
1044
Channel PJSIP/alice-00000001 has entered the application
Copy file name to clipboardExpand all lines: docs/Configuration/Interfaces/Asterisk-REST-Interface-ARI/Introduction-to-ARI-and-Media-Manipulation/ARI-and-Media-Part-1-Recording.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -142,7 +142,7 @@ This way, when calling any three-digit extension that begins with the number '3'
142
142
Basic Voice Mail Recording
143
143
==========================
144
144
145
-
We've seen a lot of the underlying concepts for our application, so let's actually make something useful now. We'll start with a very simple application that allows callers to record a message upon entering the application. When the caller has completed recording the message, the caller may press the '#' key or may hang up to accept the recording. Here is a state machine diagram for the application:
145
+
We've seen a lot of the underlying concepts for our application, so let's actually make something useful now. We'll start with a very simple application that allows callers to record a message upon entering the application. When the caller has completed recording the message, the caller may press the <kbd>#</kbd> key or may hang up to accept the recording. Here is a state machine diagram for the application:
146
146
147
147

148
148
@@ -372,7 +372,7 @@ var HungUpState = require('./hungup_state');
372
372
373
373
```
374
374
375
-
The following is a sample output of a user calling the application and pressing the '#' key when finished recording
375
+
The following is a sample output of a user calling the application and pressing the <kbd>#</kbd> key when finished recording
376
376
377
377
```
378
378
Channel PJSIP/200-00000003 recording voicemail for 305
@@ -391,7 +391,7 @@ silverseagreenReader Exercise 1solidblackCurrently, the voicemails being recorde
391
391
Cancelling a Recording
392
392
======================
393
393
394
-
Now we have a simple application set up to record a message, but it's pretty bare at the moment. Let's start expanding some. One feature we can add is the ability to press a DTMF key while recording a voice mail to cancel the current recording and re-start the recording process. We'll use the DTMF '\*' key to accomplish this. The updated state machine diagram looks like the following:
394
+
Now we have a simple application set up to record a message, but it's pretty bare at the moment. Let's start expanding some. One feature we can add is the ability to press a DTMF key while recording a voice mail to cancel the current recording and re-start the recording process. We'll use the DTMF <kbd>*</kbd> key to accomplish this. The updated state machine diagram looks like the following:
395
395
396
396

397
397
@@ -446,7 +446,7 @@ jstrue function on_dtmf(event, channel) {
446
446
447
447
```
448
448
449
-
The first part of the method is the same as it was before, but we have added extra handling for when the user presses the '\*' key. The `cancel()` method for live recordings causes the live recording to be stopped and for it not to be stored on the file system.
449
+
The first part of the method is the same as it was before, but we have added extra handling for when the user presses the <kbd>*</kbd> key. The `cancel()` method for live recordings causes the live recording to be stopped and for it not to be stored on the file system.
450
450
451
451
We also need to add our new transition while setting up our state machine. Our `VoiceMailCall::setup_state_machine()` method now looks like:
This is exactly the same as it was, except for the penultimate line adding the ``Event.DTMF_STAR`` transition. Here is sample output for when a user calls in, presses '\*' twice, and then presses '#' to complete the call
491
+
This is exactly the same as it was, except for the penultimate line adding the ``Event.DTMF_STAR`` transition. Here is sample output for when a user calls in, presses <kbd>*</kbd> twice, and then presses <kbd>#</kbd> to complete the call
492
492
493
493
```
494
494
Channel PJSIP/200-00000007 recording voicemail for 305
@@ -519,7 +519,7 @@ Modify the `RecordingState` to allow for a DTMF digit of your choice to cancel t
519
519
Operating on Stored Recordings
520
520
==============================
521
521
522
-
So far, we've recorded a channel, stopped a live recording, and cancelled a live recording. Now let's turn our attention to operations that can be performed on stored recordings. An obvious operation to start with is to play back the stored recording. We're going to make another modification to our voice mail recording application that adds a "reviewing" state after a voicemail is recorded. In this state, a user that has recorded a voice mail will hear the recorded message played back to him/her. The user may press the '#' key or hang up in order to accept the recorded message, or the user may press '\*' to erase the stored recording and record a new message in its place. Below is the updated state diagram with the new "reviewing" state added.
522
+
So far, we've recorded a channel, stopped a live recording, and cancelled a live recording. Now let's turn our attention to operations that can be performed on stored recordings. An obvious operation to start with is to play back the stored recording. We're going to make another modification to our voice mail recording application that adds a "reviewing" state after a voicemail is recorded. In this state, a user that has recorded a voice mail will hear the recorded message played back to him/her. The user may press the <kbd>#</kbd> key or hang up in order to accept the recorded message, or the user may press <kbd>*</kbd> to erase the stored recording and record a new message in its place. Below is the updated state diagram with the new "reviewing" state added.
The following is the output from a sample call. The user records audio, then presses '#'. Upon hearing the recording, the user decides to record again, so the user presses '\*'. After re-recording, the user presses '#'. The user hears the new version of the recording played back and is satisfied with it, so the user presses '#' to accept the recording.
715
+
The following is the output from a sample call. The user records audio, then presses <kbd>#</kbd>. Upon hearing the recording, the user decides to record again, so the user presses <kbd>*</kbd>. After re-recording, the user presses <kbd>#</kbd>. The user hears the new version of the recording played back and is satisfied with it, so the user presses <kbd>#</kbd> to accept the recording.
716
716
717
717
```
718
718
Channel PJSIP/200-00000009 recording voicemail for 305
@@ -734,9 +734,9 @@ Ending voice mail call from PJSIP/200-00000009
734
734
735
735
silverseagreenReader Exercise 5solidblackIn the previous section we introduced the ability to delete a stored recording. Stored recordings have a second operation available to them: [copying](/Latest_API/API_Documentation/Asterisk_REST_Interface/Recordings_REST_API/#copystored). The `copy()` method of a stored recording can be used to copy the stored recording from one location to another.
736
736
737
-
For this exercise modify `ReviewingState` to let a DTMF key of your choice copy the message to a different mailbox on the system. When a user presses this DTMF key, the state machine should transition into a new state called "copying." The "copying" state should gather DTMF from the user to determine which mailbox the message should be copied to. If '#' is entered, then the message is sent to the mailbox the user has typed in. If '\*' is entered, then the copying operation is cancelled. Both a '#' and a '\*' should cause the state machine to transition back into `ReviewingState`.
737
+
For this exercise modify `ReviewingState` to let a DTMF key of your choice copy the message to a different mailbox on the system. When a user presses this DTMF key, the state machine should transition into a new state called "copying." The "copying" state should gather DTMF from the user to determine which mailbox the message should be copied to. If <kbd>#</kbd> is entered, then the message is sent to the mailbox the user has typed in. If <kbd>*</kbd> is entered, then the copying operation is cancelled. Both a <kbd>#</kbd> and a <kbd>*</kbd> should cause the state machine to transition back into `ReviewingState`.
738
738
739
-
As an example, let's say that you have set DTMF '0' to be the key that the user presses in `ReviewingState` to copy the message. The user presses '0'. The user then presses '3' '2' '0' '#'. The message should be copied to mailbox "320", and the user should start hearing the message played back again. Now let's say the user presses '0' to copy the message again. The user then presses '3' '2' '1' '0' '\*'. The message should not be copied to any mailbox, and the user should start hearing the message played back again.
739
+
As an example, let's say that you have set DTMF <kbd>0</kbd> to be the key that the user presses in `ReviewingState` to copy the message. The user presses <kbd>0</kbd>. The user then presses <kbd>3</kbd> <kbd>2</kbd> <kbd>0</kbd> <kbd>#</kbd>. The message should be copied to mailbox "320", and the user should start hearing the message played back again. Now let's say the user presses <kbd>0</kbd> to copy the message again. The user then presses <kbd>3</kbd> <kbd>2</kbd> <kbd>1</kbd> <kbd>0</kbd> <kbd>*</kbd>. The message should not be copied to any mailbox, and the user should start hearing the message played back again.
Copy file name to clipboardExpand all lines: docs/Configuration/Interfaces/Asterisk-REST-Interface-ARI/Introduction-to-ARI-and-Media-Manipulation/ARI-and-Media-Part-2-Playbacks.md
Here is a sample run where the user cuts off the greeting by pressing the '#' key, records a greeting and presses the '#' key, and after listening to the recording presses the '#' key once more.
213
+
Here is a sample run where the user cuts off the greeting by pressing the <kbd>#</kbd> key, records a greeting and presses the <kbd>#</kbd> key, and after listening to the recording presses the <kbd>#</kbd> key once more.
214
214
215
215
```
216
216
Channel PJSIP/200-0000000b recording voicemail for 305
@@ -237,14 +237,14 @@ So far in our voice mail application, we have stopped playbacks, but there are a
237
237
238
238
For this, we will write a new application. This new application will allow a caller to listen to the voicemails that are stored in a specific mailbox. When the caller enters the application, a prompt is played to the caller saying which message number the caller is hearing. When the message number finishes playing (or if the caller interrupts the playback with '#'), then the caller hears the specified message in the voicemail box. While listening to the voicemail, the caller can do several things:
239
239
240
-
* Press the '1' key to go back 3 seconds in the current message playback.
241
-
* Press the '2' key to pause or unpause the current message playback.
242
-
* Press the '3' key to go forward 3 seconds in the current message playback.
243
-
* Press the '4' key to play to the previous message.
244
-
* Press the '5' key to restart the current message playback.
245
-
* Press the '6' key to play to the next message.
246
-
* Press the '\*' key to delete the current message and play the next message.
247
-
* Press the '#' key to end the call.
240
+
* Press the <kbd>1</kbd>' key to go back 3 seconds in the current message playback.
241
+
* Press the <kbd>2</kbd> key to pause or unpause the current message playback.
242
+
* Press the <kbd>3</kbd> key to go forward 3 seconds in the current message playback.
243
+
* Press the <kbd>4</kbd> key to play to the previous message.
244
+
* Press the <kbd>5</kbd> key to restart the current message playback.
245
+
* Press the <kbd>6</kbd> key to play to the next message.
246
+
* Press the <kbd>*</kbd> key to delete the current message and play the next message.
247
+
* Press the <kbd>#</kbd> key to end the call.
248
248
249
249
If all messages in a mailbox are deleted or if the mailbox contained no messages to begin with, then "no more messages" is played back to the user, and the call is completed.
Copy file name to clipboardExpand all lines: docs/Deployment/Basic-PBX-Functionality/Auto-attendant-and-IVR-Menus/Record-Application.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@ title: Record Application
3
3
pageid: 4817379
4
4
---
5
5
6
-
For creating your own auto-attendant or IVR menus, you're probably going to want to record your own custom prompts. An easy way to do this is with the **Record()** application. The **Record()** application plays a beep, and then begins recording audio until you press the hash key (**#**) on your keypad. It then saves the audio to the filename specified as the first parameter to the application and continues on to the next priority in the extension. If you hang up the call before pressing the hash key, the audio will not be recorded. For example, the following extension records a sound prompt called **custom-menu** in the **gsm** format in the **en/** sub-directory, and then plays it back to you.
6
+
For creating your own auto-attendant or IVR menus, you're probably going to want to record your own custom prompts. An easy way to do this is with the **Record()** application. The **Record()** application plays a beep, and then begins recording audio until you press the <kbd>#</kbd> key on your keypad. It then saves the audio to the filename specified as the first parameter to the application and continues on to the next priority in the extension. If you hang up the call before pressing the hash key, the audio will not be recorded. For example, the following extension records a sound prompt called **custom-menu** in the **gsm** format in the **en/** sub-directory, and then plays it back to you.
Copy file name to clipboardExpand all lines: docs/Getting-Started/Installing-Asterisk/Installing-Asterisk-From-Source/Using-Menuselect-to-Select-Asterisk-Options.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,13 +22,13 @@ The next step in the build process is to tell Asterisk which [modules](/Fundamen
22
22
Terminal must be at least 80 x 27.
23
23
```
24
24
25
-
The **Menuselect** menu should look like the screen-shot below. On the left-hand side, you have a list of categories, such as **Applications**, **Channel****Drivers**, and **PBX****Modules**. On the right-hand side, you'll see a list of modules that correspond with the select category. At the bottom of the screen you'll see two buttons. You can use the **Tab** key to cycle between the various sections, and press the **Enter** key to select or unselect a particular module. If you see **[\*]** next to a module name, it signifies that the module has been selected. If you see **\*XXX** next to a module name, it signifies that the select module cannot be built, as one of its dependencies is missing. In that case, you can look at the bottom of the screen for the line labeled **Depends****upon**: for a description of the missing dependency.
25
+
The **Menuselect** menu should look like the screen-shot below. On the left-hand side, you have a list of categories, such as **Applications**, **Channel****Drivers**, and **PBX****Modules**. On the right-hand side, you'll see a list of modules that correspond with the select category. At the bottom of the screen you'll see two buttons. You can use the **<kbd>Tab</kbd>** key to cycle between the various sections, and press the **<kbd>Enter</kbd>** key to select or unselect a particular module. If you see **[\*]** next to a module name, it signifies that the module has been selected. If you see **\*XXX** next to a module name, it signifies that the select module cannot be built, as one of its dependencies is missing. In that case, you can look at the bottom of the screen for the line labeled **Depends****upon**: for a description of the missing dependency.
26
26
27
27

28
28
29
29
When you're first learning your way around Asterisk on a test system, you'll probably want to stick with the default settings in **Menuselect**. If you're building a production system, however, you may not wish to build all of the various modules, and instead only build the modules that your system is using.
30
30
31
-
When you are finished selecting the modules and options you'd like in **Menuselect**, press **F12** to save and exit, or highlight the **Save****and****Exit** button and press enter.
31
+
When you are finished selecting the modules and options you'd like in **Menuselect**, press **<kbd>F12</kbd>** to save and exit, or highlight the **Save****and****Exit** button and press enter.
0 commit comments