Skip to content

Instantly share code, notes, and snippets.

View lgaetz's full-sized avatar

Lorne Gaetz lgaetz

  • Nova Scotia, Canada
View GitHub Profile
@lgaetz
lgaetz / extensions_custom.conf
Last active May 22, 2025 20:36
Get FreePBX AMPUSER from Asterisk channel
; Asterisk dialplan sub that takes an Asterisk channel name and returns the matching FreePBX AMPUSER or null if no matching user
;
; License GNU/GPL3+
;
; Latest Version: https://gist.github.com/lgaetz/1d75bab3c975f0b6b54071a7c7c07d6d
;
; Usage: When writing asterisk dialplan for fpbx, reference the subroutine and pass the channel name as ARG1
; Channel name format follows something like PJSIP/4002-0000004f
; Example dialplan:
; exten => s,n,Gosub(get-AMPUSER-from-asterisk-channel,s,1(${DYNAMIC_WHO_ACTIVATED}))
@lgaetz
lgaetz / extensions_custom.conf
Last active December 12, 2024 22:37
PJSIP signaling/media encryption reader
; FreePBX dialplan to create a dialable feature code that will play audio back to the caller telling them if the
; pjsip signaling and rtp/srtp audio they are using is encrypted or not
;
; latest version: https://gist.github.com/lgaetz/3c2bc4709607fdde40a278f980dbe9b2
;
; License: GNU GPL3
;
; Usage - place the dialplan below in the file /etc/asterisk/extensions_custom.conf and reload the dialplan (apply config)
; from a local device dial 4511. The audio played will indicate if signaling and/or media is encrypted.
;
@lgaetz
lgaetz / FreePBX Dialplan Captcha
Last active November 30, 2024 00:03
FreePBX Dialplan Captcha
; FreePBX Dialplan to block robocalls
;
; License: GNU GPL3+
; Latest version: https://gist.github.com/lgaetz/bdc261b0d12efafeb1eed64651c7d32b
;
;
; Usage: Place the dialplan below in /etc/asterisk/extensions_custom.conf
; change the context for the trunk(s) to from-pstn-captcha1
; Apply Config
;
@lgaetz
lgaetz / FreePBX Campon hack dialplan
Last active November 20, 2024 21:41
Campon Hack
; FreePBX Dialplan to mimic the old Campon Feature in fpbx (Asterisk CCSS)
;
; License: GNU GPL3+
; Latest version: https://gist.github.com/lgaetz/40636245b6846f3aab372b22eb310e40
;
;
; The Goal:
; Watcher extension dials a prefix feature code and target extension. Once the target extension ends their current (or next) call,
; fpbx automatically sets up a call between the watcher and target extensions. Secondary goal, avoid AGI/ARI if possible
;
@lgaetz
lgaetz / lgaetz-callfile
Last active April 12, 2025 01:12
Gentleman Caller
; FreePBX dialplan to schedule a call for future using Asterisk call file.
;
; License: GNU GPL3+
; latest version: https://gist.github.com/lgaetz/ec3509da8d989a00064337f194b9d58e
;
; Asterisk diaplan sub requires 3 arguments
; ARG1 = dialstring for first leg of call
; ARG2 = dialstring for second leg of call
; ARG3 = how many minutes in the future to schedule the call
;
@lgaetz
lgaetz / lgaetz bounce
Last active April 27, 2025 15:24
Feature code to seamlessly bounce an active bridged call between a user’s multiple devices
; FreePBX dialplan for a feature code that can be dialed from an idle device that will immediately bounce
; any active call from any of the the same user's extensions. Primary use case is when a user has multiple
; registered devices they can quickly move the active call between deskphone, to mobile client to desktop client.
;
; License: GNU GPL3+
; latest version: https://gist.github.com/lgaetz/4c14829c14eb0a739a216016d9f394b2
;
; Requirements: FreeBPX 17+ or system based on version 17+
; Tested with Asterisk 20, will will likely work on any supported version
;
@lgaetz
lgaetz / lgaetz-click2call.php
Created November 24, 2023 16:40
Local PHP script for originating a call from local extension to another number
<?php
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
*
* Script: lgaetz-click2call.php
*
* Latest version: https://gist.github.com/lgaetz/6ff9aeff59de40df5755c52d85a65c9b
*
* Usage: Scipt to list/toggle/set FreePBX Call Flow Controls. Developed for FreePBX 16
*
@lgaetz
lgaetz / DTMF 2 Trusted Zone
Last active March 28, 2024 15:33
DTMF to Firewall Trusted Zone
[from-internal-custom]
; Dialplan for a feature code to add ; an IP address to the FreePBX trusted zone
; Dial F-I-R-E-W-A-L-L from an internal extension and enter an IPv4 address using
; DTMF with * as the dot character.
;
; License: GNU GPL3+
; latest version: https://gist.github.com/lgaetz/8a043b7aa39484f622f0f7c138909558
;
; version history 2023-01-21 First commit working
; FreePBX dialplan to create a dynamic voicemail blast group.
; Place this in /etc/asterisk/extensions_custom.conf and reload
; GNU GPL3+
; latest version: https://gist.github.com/lgaetz/76006451910295a4625555361c9b5085
; version history 2022-11-04 First commit
; 2022-11-05 Added recording playback to toggle
[from-internal-custom]
; Create feature code previx with hints. Each extension can enable/disable vm group membership by dialing the
#!/usr/bin/php
<?php
// script requires a command - echo help and exit if arg1 missing
if (!isset($argv[1])) {
echo "
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
*
* Script: lgaetz-cftoggle.php
*