Mikrotik Voltage Alarm/Beeper

I recently needed to make my routerboard generate an audible alarm based on voltage thresholds on the 12v battery wired directly to the RB2011. This script was a modification of something i found when perusing the Mikrotik forums. Change lowvoltage and highvoltage to suite your requirements. #set lowvoltalarm to desired alarm voltage in tenths of

Docker | Asterisk 16

While working on another project, (Callcenter suite) – i built a relatively lightweight Asterisk 16 image which was being used as the base image for a series of ARI tests. I decided to release this to the open-source community, to try and motivate more people to start looking at using docker as a viable solution

Puppet & Chocolatey – Install GDrive Stream

Introduction Experimenting with Puppet & Chocolatey on Windows. Little snippet to install Google Drive Stream. class windows::google_drive_stream { Package { provider => 'chocolatey' } package { 'google-drive-file-stream': ensure => installed, } }

Postfix SMTP Sender Routing

Recently, I had need of setting up a postfix “smtp router” to distribute mail from various users among a cluster of outbound relays (on unique exit IP’s, with difference QoS policies applied) Part of the functionality that was desired was the ability to route “priority” users and “bulk” users via different cluster members. Step 1

Perl Get Active Queue Size (NetXMS/PRTG Use case)

The following Perl script gets the size of the Postfix Active queue and outputs it. (Used for queue monitoring on our NMS via SSH sensors, but might be useful in your environment) #!/usr/bin/env perl use strict; use warnings; use Symbol; sub count { my ($dir) = @_; my $dh = gensym(); my $c = 0;

Proxmox – Remove local LVM

I’m  a big Proxmox fan, having deployed more than 20 systems both at customers and on my home lab this year without drama. However, the Proxmox LVM structure bugs the heck out of me. I prefer to utilize a single LVM Volume due to some weird glitches with LXC images and small root LVM partitions. (Not perfect for production,

Fortinet/Cisco IPSec VPN – Asterisk Peer Unreachable

Recently, i had to troubleshoot an Asterisk to Asterisk trunk which was running across a site to site IPSec VPN. (Fortinet to Cisco) After running tcpdump “port 5060 and proto UDP” on either end, I discovered traffic from the Cisco end was not reaching the PBX behind the Fortinet. Packet capture on the Fortinet showed

[Snippet] FreePBX – Strip Incoming Country Code

This short & simple dial-plan removes the 3 digit country code from incoming calls and then pushes it to our FPBX IVR. nano /etc/asterisk/extensions_custom.conf After opening the above ^, modify and paste the below into the bottom of the file. Modify your SIP trunk context to reflect the name below. [trunk-in] exten=>_X.,1,Verbose(Incoming call via SIP

FreePBX – Yealink Phonebook generator.

After deploying a few PBX’s, you get bored of manually generating the required XML for remote phonebooks on Yealink Handsets. Here’s the first version of the phonebook.xml creation script. (Works on FPBX without any hitches) Observe the notes in the code please. If you’d like a more updated version, please check my github repo here. Once configured, point

Snippet – Nginx Wildcard Subdomain

This snippet works with Letsencrypt Wildcard certificates! Specify -d *.domain.com to install the certificate when using certbot. Insert into server block. Change domain.com to correct domain. server_name ~^(?<subdomain>.+)\.domain\.com$;  root /var/www/html/domain,com/$subdomain/htdocs;