Get on the Air
Four ways to use OpLine, from no hardware to a full RF node. Last updated by Justin Calvert, W0ABE.
To get on the air with OpLine you need an amateur radio license, the app, and one of four ways to reach the AllStarLink network. The quickest needs no hardware at all: an AllStarLink account and Web Transceiver mode. OpLine supports two ways to connect into someone else's node (Web Transceiver and IAXRpt) and two ways to run your own (Radioless and RF). Pick the path that matches your setup. Node-build documentation lives on allstarlink.org; this page is the OpLine-specific on-ramp.
- Web Transceiver Mode. Easy. AllStarLink Portal account, no node number required.
- IAXRpt / IAX Direct. Easy. Per-node credentials issued by the node operator.
- Radioless Node. Intermediate. Your own ASL3 node on a Raspberry Pi, no radio attached. Includes adding the IAX user on current and older ASL layouts.
- RF Node. Advanced. Full node with a radio interface for over-the-air operation.
- Connect from OpLine. IAX2 field reference for IAXRpt and your-own-node modes.
- Enable AMI. Optional. Recommended for live link awareness.
| Path | What you need | What you get |
|---|---|---|
| Web Transceiver Easy |
AllStarLink Portal account with a verified call sign. No node number, no hardware. | Token-authenticated access to any node that has Web Transceiver enabled. Quickest way on, but many nodes specifically block WT. |
| IAXRpt / IAX Direct Easy |
Host, port, username, and secret issued to you by the node operator. | Authenticated access to that specific node. Works even when the operator has WT turned off (common for club nodes). |
| Radioless Node Intermediate |
Raspberry Pi, ASL3 install, one UDP port forward, your own AllStarLink node number. | Your private hub on the network. Connect from OpLine and link to anything on AllStarLink. |
| RF Node Advanced |
Everything above plus a radio interface (USB sound fob / RIM / repeater controller) and a radio. | Full over-the-air node. OpLine becomes a remote control / mic for your station. |
1. Web Transceiver Mode Easy
The fastest way onto AllStarLink. You authenticate with your AllStarLink Portal account (the same username and password you use at allstarlink.org) and OpLine uses that to obtain a token for connecting to any node where the operator has enabled Web Transceiver. You do not need to apply for a node number for this mode.
Why use this mode
- Quickest way to connect to the AllStarLink network.
- Only requires a valid AllStarLink Portal account. No hardware, no node number, no port forwarding.
Disadvantages
- Requires setting up and verifying an AllStarLink Portal account (which itself requires a verified call sign).
- Not all nodes allow Web Transceiver authentication. Many operators specifically block it on purpose.
- Even when WT is enabled at the node level, the operator can still restrict access by call sign or other means.
Steps
- Create an account at allstarlink.org and get your call sign verified.
- In OpLine, enter your AllStarLink Portal username and password and switch into Web Transceiver mode. OpLine requests a token from the portal; once that succeeds, you're authenticated.
- Dial any node that has Web Transceiver enabled.
If you frequently get blocked, the IAXRpt path below works against any node where you've been issued credentials, including ones with WT off. For the widest coverage, run your own node (the Radioless or RF path).
2. IAXRpt / IAX Direct Easy
In this mode you authenticate with a username and password (secret) issued to you by a node operator, not a global Portal account. The operator adds a user on their node (the same step as Add an IAX user below) and tells you what host, port, username, and secret to use. OpLine then connects directly over IAX2.
Why use this mode
- Node operators can grant access to specific users (club members, regulars) while keeping general Web Transceiver access off.
- Bypasses allow/deny lists that may be in use for general access. You're authenticated with a pre-configured username and password.
- Works against any node where you've been issued credentials, including locked-down ones.
Disadvantages
- More setup involved. The node owner has to configure and hand you credentials.
- Credentials are tied to one node (or to nodes under the same operator's control). For a different node, you need a different set.
Steps
- Get the following from the node operator:
- Hostname of their AllStarLink server
- IAX port (typically
4569) - Your assigned username
- Your assigned password (secret)
- In OpLine, add a new account/node and fill in those values. See Connect from OpLine below for the exact fields.
- Connect and key up.
3. Radioless Node Intermediate
A radioless node is a Raspberry Pi running ASL3 with no radio attached. It acts as your personal hub on the AllStarLink network. OpLine connects to it over IAX2, and from there you can link to any other node on the network. No radio means no over-the-air operation from the node itself, but full network access.
What you'll need
- Raspberry Pi 3B+, 4, or 5. A Pi 4 with 2 GB RAM is plenty.
- microSD card (16 GB+, A1/A2 rated), power supply, wired Ethernet recommended.
- An AllStarLink account with a node number assigned to you.
- Router access to forward one UDP port (4569).
Steps
- Get a node number. Sign up at allstarlink.org, request a node number, set a node password.
- Install ASL3. Follow the official install at allstarlink.github.io. The short version: flash Raspberry Pi OS Lite (64-bit, Bookworm), add the ASL3 apt repo, install
asl3, runsudo asl3-node-setup, and choose radioless when asked for the radio interface. - Forward UDP 4569 on your router to your Pi's LAN IP. Set a DHCP reservation so the Pi keeps the same address.
- Add an IAX user for OpLine. Which file you edit depends on how recent your ASL3 install is. See Add an IAX user, just below.
Add an IAX user for OpLine
OpLine signs in to your node as an IAX2 user, the same way the old IAXRpt PC client did. Where that user lives depends on how recent your install is, so check which layout you have first:
grep -n '^\[iaxrpt\]' /etc/asterisk/iax.conf
[iaxrpt](!), with the(!): the current ASL3 layout. The stanza is a template and the users live in a separate file. Follow Current ASL3.[iaxrpt], no(!): the older layout. The stanza itself is the user. Follow Older installs.
Current ASL3: the template and iaxrpt-users.conf
Current ASL3 installs ship [iaxrpt](!) in /etc/asterisk/iax.conf as a template. It holds the shared settings (context, codecs, requirecalltoken = no) and ends with #tryinclude custom/iax/iaxrpt-users.conf, which pulls in the real users. Lines added to the template do not create a login. A secret placed there is ignored, which is why "I edited iax.conf, restarted Asterisk, and nothing changed" is the usual symptom.
Instead, add one stanza per user to /etc/asterisk/custom/iax/iaxrpt-users.conf. Create the file if it is missing:
sudo mkdir -p /etc/asterisk/custom/iax
sudo nano /etc/asterisk/custom/iax/iaxrpt-users.conf
[w0abe](iaxrpt)
secret = a-long-random-secret
callerid = "W0ABE" <0>
- The bracketed name is the User you type in OpLine. A call sign is the convention; any name works, but it must be unique within the file.
(iaxrpt)inherits everything from the template in iax.conf. Do not repeattype,contextor codec lines here.calleridis what the node shows for you in Allmon and uses when it announces the link. Keep the number as<0>and the name to 8 characters or fewer; the stock file warns that anything else misbehaves.- Want to keep OpLine's default User of
iaxrpt? Name the stanza[iaxrpt](iaxrpt). The stock file shows exactly that, commented out, as the shared single-user option.
Then reload IAX2 (no Asterisk restart needed) and confirm the user is listed:
sudo asterisk -rx "iax2 reload"
sudo asterisk -rx "iax2 show users"
Your user should appear with context iaxrpt. If it does not, check that the #tryinclude custom/iax/iaxrpt-users.conf line is still inside the [iaxrpt](!) block in iax.conf, and that the stanza name has no stray spaces.
Older installs: a plain [iaxrpt] stanza
ASL 2, HamVoIP, and ASL3 nodes whose iax.conf predates the template ship [iaxrpt] as a normal stanza with the secret inside it. There is no template and no users file. Edit the stanza in /etc/asterisk/iax.conf so it looks like this (add it if it is missing):
[iaxrpt]
type = user
context = iaxrpt
auth = md5
secret = a-long-random-secret
host = dynamic
disallow = all
allow = ulaw
transfer = no
Here the stanza name, iaxrpt, is the User, and everyone who connects shares the one secret. For a user per person, copy the whole stanza under a new name such as [w0abe]. Reload and verify the same way:
sudo asterisk -rx "iax2 reload"
sudo asterisk -rx "iax2 show users"
NODENUM.nodes.allstarlink.org automatically and keeps it pointed at your current public IP. You don't need DuckDNS or No-IP. That's the host you'll use in OpLine.
For the full ASL3 install (commands, dialplan, troubleshooting), follow the official AllStarLink documentation. The active AllStarLink forums are the right place for ASL3-specific issues.
4. RF Node Advanced
An RF node is the same as a radioless node, plus a radio interface. The Pi side is identical; the additional work is wiring (and tuning) a USB sound interface, a RIM, or a repeater controller to a radio, and configuring simpleusb.conf or usbradio.conf in Asterisk so PTT, COS, and audio levels are right.
From OpLine's perspective nothing changes. You still connect to the node over IAX2 with the same IAX user shown above. The difference is what happens on the node side: keying OpLine keys the radio.
What's extra (vs. radioless)
- A radio interface. Common options: CM108-based USB sound fobs, the RIM-Lite / RIM-USB family, or a repeater controller with sound card.
- A radio with the right cabling for PTT, COS, and discriminator audio.
- Configuration of
simpleusb.conforusbradio.conf, plus interface tuning withsimpleusb-tune-menu/radio-tune-menu. - Awareness of duty cycle, ID, and any local coordination if you're putting the node on a repeater pair.
Full RF node build documentation lives at allstarlink.github.io. Once the node is on the air, return to Connect from OpLine below. The connection setup is identical to the radioless case.
5. Connect from OpLine
This field reference applies to IAXRpt, Radioless, and RF modes (anywhere OpLine connects directly over IAX2). Web Transceiver mode uses your AllStarLink Portal credentials instead and doesn't need these fields.
| Field | Value |
|---|---|
| Host | For your own node: NODENUM.nodes.allstarlink.org. For IAXRpt: whatever hostname the node operator gives you. |
| Port | 4569 (unless the operator specifies otherwise) |
| Node # | The node number you're connecting to. |
| User | The IAX user's stanza name on the node: the bracketed name in iaxrpt-users.conf on current ASL3, or iaxrpt on the older layout (OpLine's default). For IAXRpt to someone else's node: the username the operator assigned you. |
| Password | The secret = line in that stanza. |
| Context | Leave it at iaxrpt. For the default, OpLine sends no context at all, so the node uses the context = line from its own [iaxrpt] stanza. Only type a context if the operator told you to, and then exactly as written: the node compares it byte for byte and reports a mismatch as a wrong password. |
There is no codec field. OpLine always negotiates ulaw, which the stock [iaxrpt] stanza allows. If you trimmed the allow = lines on the node, keep allow = ulaw.
Save the node, mark it as a favorite, and tap Connect. Hold push-to-talk and you should hear your node ID. Try connecting to the AllStarLink Parrot (node 2002) for an echo test.
If Test says "Authentication failed"
- Is the user loaded? Run
sudo asterisk -rx "iax2 show users"on the node. If your user is not listed, the stanza is in the wrong file (see Add an IAX user) or you have not reloaded. - Stray spaces. The node compares User and Context byte for byte and reports a mismatch as a wrong password. OpLine warns about a padded field, but check the node side too.
- Watch the node while you tap Test. Run
sudo asterisk -r, theniax2 set debug on, tap Test, and read the REJECT line. Turn it off afterwards withiax2 set debug off. - Works on Wi-Fi, fails on LTE. A
deny/permitline in the stanza is blocking your phone's mobile address. Same fix as for AMI below.
6. Enable AMI optional, recommended
The Asterisk Manager Interface (AMI) is a TCP control channel built into every AllStar node. When OpLine talks to AMI, it sees every node currently linked to yours in real time, including links created by another client or an earlier session. Without AMI, OpLine only knows about links it created in the current session and limits you to one peer at a time as a safety measure.
Only relevant if you run your own node (radioless or RF). Skip this for Web Transceiver and IAXRpt modes; those connect to someone else's node, where AMI is the operator's call to configure.
Quick setup
In /etc/asterisk/manager.conf, make sure the [general] stanza has these lines (default bindaddr is localhost only; that's the one to change):
[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
Add a user stanza at the bottom with a strong password:
[opline]
secret = a-strong-password-you-pick
read = command,reporting
write = command
deny = 0.0.0.0/0.0.0.0
permit = 0.0.0.0/0.0.0.0
Reload (sudo asterisk -rx "manager reload"), then forward TCP 5038 on your router to the Pi's LAN IP. In OpLine, open Settings → Asterisk Manager (AMI) and enter the username, password, and port.
permit rule is blocking your phone's mobile IP. Either widen the permit range (paired with a strong secret) or whitelist the carrier ranges you control. telnet your.node.host 5038 from the failing network is the quickest credential test.
Next steps
You should be on the air. From here:
- Hardening AMI and IAX2 against the internet. Strong password, Fail2ban, non-standard port, and/or a VPN.
- Asterisk-specific issues (won't start, won't link, ID not playing). The official ASL3 docs and the AllStarLink forums are the right place.
- Stuck on something OpLine-specific? Email support@opline.app.