> For the complete documentation index, see [llms.txt](https://documentation.hak5.org/wifi-pineapple-pager/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.hak5.org/wifi-pineapple-pager/ringtones.md).

# Ringtones

The WiFi Pineapple Pager uses the `rtttl` format for ringtones.

`RTTTL` - the Ring Tone Text Transfer Language - was developed originally by Nokia for transferring ringtones to cell phones. This seemed highly appropriate for use with the Pager!

You can learn more about the internals of the RTTTL format [here](https://en.wikipedia.org/wiki/Ring_Tone_Text_Transfer_Language)

### RTTTL ringtones  <a href="#rtttl-ringtones" id="rtttl-ringtones"></a>

Very large quantities of ringtones can be found on the Internet; use your favorite search engine and search for “RTTTL ringtone collection” for instance.

{% hint style="info" %}
**Looking for Pager ringtones?** Check the WiFi Pineapple Pager ringtone repository on github. Here we host community contributions. <https://github.com/hak5/wifipineapplepager-ringtones>
{% endhint %}

A RTTTL ringtone will look something like this:

```none
Desk Phone:d=8,o=5,b=500:c#,f,c#,f,c#,f,c#,f,c#,f,4p.,c#,f,c#,f,c#,f,c#,f,c#,f,1p.,c#,f,c#,f,c#,f,c#,f,c#,f,4p.,c#,f,c#,f,c#,f,c#,f,c#,f
```

It consists of a name, default octave and note lengths, and the note data. The characters before the first column are the ringtone name. Additionally, comments can be added in similar fashion to payloads. For example:

```
# Title: Foo Ringtone
# Author: Hak5Darren
# Props: id Software's 1992 classic Wolfenstein 3D
# Description: Health pack sound effect from Wolf3D

HEALTH:d=32,o=4,b=200:32c#7,16.p,32g,32p,16a#3,16.a#3,16.b3
```

### Uploading ringtones  <a href="#uploading-ringtones" id="uploading-ringtones"></a>

Ringtones should be placed in `/root/ringtones`.

Each ringtone file should have a single ringtone, and be named `whatever-you-want.rtttl`.

Ringtones can be copied using `scp` or `sftp` (or a graphical front end for these tools), or created on the device directly using a text editor such as `nano` or `vim`.

### Playing ringtones  <a href="#testing-ringtones" id="testing-ringtones"></a>

Ringtones may be played using the `RINGTONE` command, either by passing a complete ringtone string (in quotes!) or the name of the ringtone file.

```shell
root@pager:/mmc/root# RINGTONE "Desk Phone:d=8,o=5,b=500:c#,f,c#,f,c#,f,c#,f,c#,f,4p.,c#,f,c#,f,c#,f,c#,f,c#,f,1p.,c#,f,c#,f,c#,f,c#,f,c#,f,4p.,c#,f,c#,f,c#,f,c#,f,c#,f"
```

```
root@pager:/mmc/root# RINGTONE bonus
```

Ringtone filenames may be either those from `/root/ringtones` or the pre-populated ringtones in `/lib/pager/ringtones` as shown:

```
alert.rtttl               error.rtttl               health.rtttl              power_disconnected.rtttl  xp.rtttl
battery_critical.rtttl    getkey.rtttl              leveldone.rtttl           pushwall.rtttl            yeah.rtttl
battery_low.rtttl         getmachine.rtttl          mute.rtttl                ringring.rtttl
bonus.rtttl               hack_stealth.rtttl        noway.rtttl               single_beep.rtttl
bootup.rtttl              hak5_the_planet.rtttl     pager.rtttl               urgent.rtttl
deskphone.rtttl           halt.rtttl                power_connected.rtttl     warning.rtttl
```
