PIONEERS The New Kid: Introducing VitalPBX

jrglass

Guru
Joined
Oct 18, 2007
Messages
292
Reaction score
19
Ward,

I spun a droplet on DO per instruction. I ran the commands listedand got the following
Retype new password:
[[email protected] ~]# cd /root
[[email protected] ~]# wget https://raw.githubusercontent.com/wardmundy/VPS/master/vps.sh
-bash: wget: command not found
[[email protected] ~]#

I used CentOS 7.4 x64

TIA,

Jeff



Installing VitalPBX Securely on Vultr and Digital Ocean (OpenVZ is NOT supported!!)

1. Create at least a 1GB RAM VPS with 64-bit CentOS 7 OS
2. Change your root password: passwd
3. Issue the following commands while logged in as root:
Code:
cd /root
wget https://raw.githubusercontent.com/wardmundy/VPS/master/vps.sh
chmod +x vps.sh
./vps.sh
4. Reboot VPS when install completes.
5. Log into VitalPBX GUI with a browser and set your admin password for GUI access
6. WhiteList your client and server IP addresses as well as 127.0.0.1 in Admin:Security:Firewall:WhiteList
7. Enable Fail2Ban in Admin:Security:Intrusion Detection
8. WhiteList your client IP address(es) in Admin:Security:Intrusion Detection:Whitelist
9. Remove the following rules from Admin:Security:Firewall:Rules
Code:
SIP
HTTP
HTTPS
SSH
IAX2
PJSIP
10. Install PortKnocker from previous post.
11. WhiteList the IP addresses of any trunk providers to whom your server doesn't register. (see #6)
12. WhiteList the IP addresses of any remote extensions. (see #6)

Email Configuration. One of the other things you’ll want to get working is email delivery for Voicemails. The VitalPBX solution is the best in the business. It supports Gmail as a RelayHost out of the box. For residential users where your ISP blocks downstream SMTP mail servers, this is a godsend. Setup couldn’t be easier. Navigate to Admin:System Settings:Email Settings. For Server, click Use External Mail Server. For Provider, click Gmail and enter your full Gmail account name and password. Click Save and Reload your Dialplan. Then send yourself a test message by entering an email address and clicking the Envelope icon.
 

wardmundy

Nerd Uno
Joined
Oct 12, 2007
Messages
15,134
Reaction score
2,628
Found my first roadblock: Ring Groups doesn't allow for "Confirm Calls", actually, they have really dumbed down the Ring Groups from FreePBX. This is pretty much a deal breaker for me, we use the Ring Groups to external numbers extensively. And currently, I don't see a way to send the call to an external number in a ring group.
Here's the reply from the VitalPBX folks to my call forwarding workaround where you set up an extension to be used to call forward to an external number, adding this extension to your ring group.

*58 is the step to configure the CFI external number for an extension. You can further customize it...

1. Go to the Extensions Status module, that is located under PBX >> Extensions >> Extensions Status

2. Click in the button located in the actions column, This will launch a modal to configure the different kinds of CF

3. In the modal that appear after to click the button, you will be able to configure the CFI or any other diversion




4. After configure your diversions, click in the save button, and don't forget to apply changes

So, Those are the steps to configure the CFI or any other diversion from the GUI. however, in the next version we will include the possibility to add external numbers to ring-groups.
 

wardmundy

Nerd Uno
Joined
Oct 12, 2007
Messages
15,134
Reaction score
2,628
Apparently not, and the other workaround doesn't work either:

I have to inform you that the current dialplan implementation doesn't allow any kind of diversions to the extensions in a Ring Group; however, as I said in the previous message, the external numbers in ring groups will be implemented in the next VitalPBX version.
 

tbrummell

Guru
Joined
Jan 8, 2011
Messages
633
Reaction score
71
Well without Confirm Call I can't use this in our current design. I can't have the calls being answered by users personal voicemail while we're waiting for someone live to pick up the call.
Damn, I had high hopes for this distribution. It is great in everything else it does that I would use, so far at least. I would miss Superfecta notifying my Kodi devices of calls, but not a deal breaker.
 

jrglass

Guru
Joined
Oct 18, 2007
Messages
292
Reaction score
19

If you liked Ombutel, you’re going to love VitalPBX. If you’ve never heard of Ombutel but you live and breathe Asterisk®, you’re still going to love VitalPBX. For everyone else, you’re going to love VitalPBX. In addition to an impressive collection of commercial modules, this month’s release of the VitalPBX 2.0 Unified Communications Platform provides the slickest user interface in the VoIP universe. It includes new support for PJsip, DPMA and Digium phones, XMPP chat, video conferencing, WebRTC, and our favorite, Custom Contexts. What began several years ago as a joint development project between Telesoft and Xorcom is now an independent venture of Telesoft. If you love Features, VitalPBX has no equal… Read More ›

Continue reading...
Can you ADD FQDN to Vital PBX. If so how?

TIA
Jeff
 

wardmundy

Nerd Uno
Joined
Oct 12, 2007
Messages
15,134
Reaction score
2,628
At the moment, add-fqdn wouldn't do much because all of the services are wide open anyway. Next week's article will walk you through setting up a whitelist firewall with VitalPBX. Then it would make more sense although, unlike IPtables, VitalPBX's firewalld doesn't support FQDNs at all so we'll have to come up with an intermediate lookup source to translate FQDNs into IP addresses that firewalld understands. Not sure whether we'll get this done by next week, but it is on our to-do list.
 
Last edited:

wardmundy

Nerd Uno
Joined
Oct 12, 2007
Messages
15,134
Reaction score
2,628
@jrglass: We have ported the TM3 utilities including add-fqdn to VitalPBX. Assuming testing goes well, all of it (including the scripts) will be in next week's article.
 
Last edited:

jerrm

Guru
Joined
Sep 23, 2015
Messages
514
Reaction score
213
If it helps - snippets from my equivalent of TM3-like code is below. This is been in production forever, but is not in the form I would usually publish. Quick and dirty code that was always intended to be improved, but has always worked.

Probably a thousand ways to break it, but it is assumed whoever is editing the config files has some idea of what is going on.

Reads lists of IPs/CIDRs/FQDNs from a config file, outputs a list of resolved IPs/CIDRs. Full version goes on to update iptables rule chains - I never do an iptables "restart." IPs are added/removed as needed. Assumes IPv4 specific use, could be modified to support IPv6.

Should be very portable. The functions are written to be compatible on embedded systems with limited busybox builds, so the chosen methods & utilities seem a little odd.

Code:
#!/bin/sh

inifile="./pbx.fw.ini"
inisection1=pbx.trunk
inisection2=pbx.phone

cleanit() {
  sed 's/^[\t ]*//;s/[\t ]*$//;s/#.*$//;/^$/d'
}

readini() {
  [ -r "$2" ] && sed -n -e "/^\s*\[$1]\s*$/,/^\s*\[.*]\s*$/{ /^\s*\[$1]\s*$/d; /^\s*\[.*]\s*$/d; p; }" "$2"  || echo "readini[$1]: Bad File $2" 1>&2
}

lookupips() {
  ipv4='\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b'

  echo $1 | grep -E "^$ipv4" || {
    lookup=$(nslookup "$1" | grep -E "$ipv4")
    server=$(echo "$lookup" | grep "^Server. *" | grep -E -o "$ipv4")
    echo "$lookup" | grep -v $server | grep -E -o "$ipv4"
  }
}

ipsort() {
sort -u | sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4
}

listips() {
  {
  local i=""
  for i in $( echo "$1" | cleanit )
  do
    lookupips "$i"
  done
  } | ipsort
}


newips="$(listips "$(readini $inisection1 $inifile)" )"
echo "
$inisection1:
------------------
$newips
=================="

newips="$(listips "$(readini $inisection2 $inifile)" )"
echo "
$inisection2:
------------------
$newips
=================="
Sample config file:
Code:
[pbx.trunk]
# voip.ms
atlanta.voip.ms
atlanta2.voip.ms

# vitelity registered
inbound33.vitelity.net

# vitelity sbc
64.2.142.90
64.2.142.0/24
66.241.96.0/24
66.241.97.0/24
66.241.99.0/24
66.241.107.0/24
66.241.109.0/24
140.239.143.0/24
207.166.136.0/24
207.166.137.0/24


[pbx.phone]
www.pbxinaflash.com #home office
www.cisco.com #my cell phone
Sample output:
Code:
pbx.trunk:
------------------
64.2.142.0/24
64.2.142.90
66.241.96.0/24
66.241.97.0/24
66.241.99.0/24
66.241.99.22
66.241.107.0/24
66.241.109.0/24
72.9.246.170
75.127.65.130
140.239.143.0/24
207.166.136.0/24
207.166.137.0/24
==================

pbx.phone:
------------------
104.112.243.234
178.32.147.114
==================
 
Last edited:
  • Like
Reactions: wardmundy

wardmundy

Nerd Uno
Joined
Oct 12, 2007
Messages
15,134
Reaction score
2,628
Thanks, @jerrm. That's quite similar to TM3. But the problem with VitalPBX is they use firewalld instead of plain old IPtables, and firewalld doesn't support FQDNs at all. So we've reworked the TM3 design for VitalPBX so that Travelin' Man 3 with FQDN support can coexist with VitalPBX's firewalld and Fail2Ban setup. That took more than a little head scratching. I've covered the entire redesign in the upcoming article so I won't repeat it here other than to note that users will get the best of both worlds without throwing out the very creative firewalld implementation that's included in VitalPBX.
 

Members online

PIAF 5 - Powered by 3CX

Forum statistics

Threads
22,364
Messages
137,343
Members
14,574
Latest member
ipv6freely