“This guide will help you make your Asterisk talk to Bitcall. It’s like matchmaking for VoIP nerds — but way more romantic.” 💘📞
🧰 What You Need
A working Asterisk server (even on a basic VPS is fine)
A SIP account created inside your Bitcall dashboard (with username and password)
Console/SSH access to your server (you’ll use nano or vim — don’t worry, we’ll help)
🛠️ Step-by-Step Setup
🔹 1. Login to your Asterisk server
ssh root@your-server-ip
📸 [Insert screenshot: terminal window showing SSH into server]
🔹 2. Locate Your SIP Config File
You’re either using:
sip.conf (for chan_sip)
pjsip.conf (for chan_pjsip)
🧠 Let’s assume you’re using sip.conf first (chan_sip is more beginner-friendly). If you’re using pjsip, we’ll cover that right after.
🧾 A. chan_sip Configuration (Classic Style)
3. Edit
sip.conf
nano /etc/asterisk/sip.conf
Scroll to the bottom and add this:
[bitcall]
type=peer
host=gateway.bitcall.io
port=5060
username=your-bitcall-username
secret=your-sip-password
fromuser=your-bitcall-username
fromdomain=gateway.bitcall.io
insecure=invite
qualify=yes
dtmfmode=rfc2833
disallow=all
allow=ulaw
allow=alaw
nat=yes
canreinvite=no
📸 [Insert screenshot: sip.conf with above config added]
4. Edit
extensions.conf
nano /etc/asterisk/extensions.conf
Add this to your outbound dial plan (example for calling out through Bitcall):
[outbound-bitcall]
exten => _X.,1,Set(CALLERID(num)=your-callerid)
same => n,Dial(SIP/${EXTEN}@bitcall,60)
same => n,Hangup()
⚠️ Replace your-callerid with a valid CLI assigned to you by Bitcall.
📸 [Insert screenshot: extensions.conf with outbound context added]
5. Reload Asterisk
asterisk -rx "reload"
Then connect to the console to test:
asterisk -rvvv
You should see:
-- Registered SIP 'yourusername' to gateway.bitcall.io
📸 [Insert screenshot: Asterisk console showing SIP registration]
🧾 B. pjsip.conf Configuration (Modern Asterisk)
If your system uses pjsip (default in Asterisk 16+), follow this instead.
3. Edit
pjsip.conf
nano /etc/asterisk/pjsip.conf
Paste the following at the bottom:
[bitcall]
type=registration
outbound_auth=bitcall-auth
server_uri=sip:gateway.bitcall.io
client_uri=sip:[email protected]
retry_interval=60
contact_user=your-bitcall-username
[bitcall-auth]
type=auth
auth_type=userpass
username=your-bitcall-username
password=your-sip-password
[bitcall-aor]
type=aor
contact=sip:gateway.bitcall.io
[bitcall-endpoint]
type=endpoint
transport=transport-udp
aor=bitcall-aor
auth=bitcall-auth
context=outbound-bitcall
disallow=all
allow=ulaw
allow=alaw
outbound_auth=bitcall-auth
[bitcall-identify]
type=identify
endpoint=bitcall-endpoint
match=gateway.bitcall.io
📸 [Insert screenshot: pjsip.conf with above blocks added]
4. Create or Edit
extensions.conf
Same as before:
[outbound-bitcall]
exten => _X.,1,Set(CALLERID(num)=your-callerid)
same => n,Dial(PJSIP/${EXTEN}@bitcall-endpoint)
same => n,Hangup()
⚠️ Replace your-callerid with your assigned number.
✅ Testing
From the Asterisk console:
asterisk -rvvv
Then try calling a number manually:
channel originate SIP/bitcall/14155550123 extension 100@default
Or from your SIP phone, dial an external number that matches your outbound-bitcall context.
🚧 Troubleshooting Tips
Problem | Fix |
“SIP registration failed” | Check username/password, ensure DNS resolves correctly |
One-way audio | Set nat=yes, or use STUN or external_media_address settings |
CLI not showing or rejected | Check that your Caller ID is valid and approved in Bitcall |
Call disconnects fast | Try insecure=invite in sip.conf or disable re-invites |
Still stuck? | Try using IP: 188.34.143.144 instead of domain |
🧠 TL;DR Recap
✅ Edit sip.conf or pjsip.conf to add Bitcall as a peer
✅ Set username, password, and domain (gateway.bitcall.io)
✅ Add outbound rule in extensions.conf
✅ Reload and test a call
🎉 Boom. You’re now using Asterisk with Bitcall!
