HamVOIP AutoPatch AllStar Calls

  • Outgoing Calls | DTMF:  *6[Area Code + Number]
  • outgoing example: *67771234567
  • Disconnect Calls: *0
  • Answer Incoming Call on Extension 0701
  • extension example: *60701

 

Replace NODE# with your node number.

 

rpt.conf

Enable autopatch

; Autopatch up
6=autopatchup,context=radio,noct=1,farenddisconnect=1,dialtime=20000,quiet=1
; Autopatch down
0=autopatchdn

modules.conf

enable SIP and Parking feature

;noload=chan_sip.so
;noload=app_parkandannounce.so

sip.conf

Callcentric SIP config

[general]
dtmfmode=rfc2833
context=from-callcentric
srvlookup=yes
register => USERNAME:PASSWORD@callcentric.com/NODE#
registertimeout=5
registerattempts=0

[callcentric]
type=peer
context=from-callcentric
host=callcentric.com
fromdomain=callcentric.com
username=USERNAME
fromuser=USERNAME
secret=PASSWORD
insecure=very
canreinvite=no
disallow=all
allow=ulaw
nat=yes
qualify=yes

[callcentricB1](callcentric);
host=bravo01.callcentric.net

[callcentricB2](callcentric);
host=bravo02.callcentric.net

[callcentricB3](callcentric);
host=bravo03.callcentric.net

[callcentricB4](callcentric);
host=bravo04.callcentric.net

[callcentricB5](callcentric);
host=bravo05.callcentric.net

[callcentricB6](callcentric);
host=bravo06.callcentric.net

[callcentricB7](callcentric);
host=bravo07.callcentric.net

[callcentricB8](callcentric);
host=bravo08.callcentric.net

[callcentricB9](callcentric);
host=bravo09.callcentric.net

[callcentricB10](callcentric);
host=bravo10.callcentric.net

[callcentricB11](callcentric);
host=bravo11.callcentric.net

[callcentricB12](callcentric);
host=bravo12.callcentric.net

[callcentricB13](callcentric);
host=bravo13.callcentric.net

[callcentricB14](callcentric);
host=bravo14.callcentric.net

[callcentricB15](callcentric);
host=bravo15.callcentric.net

[callcentricB16](callcentric);
host=bravo16.callcentric.net

[callcentricB17](callcentric);
host=bravo17.callcentric.net

[callcentricB18](callcentric);
host=bravo18.callcentric.net

[callcentricB19](callcentric);
host=bravo19.callcentric.net

[callcentricB20](callcentric);
host=bravo20.callcentric.net
[callcentric1](callcentric);
host=alpha1.callcentric.com

[callcentric2](callcentric);
host=alpha2.callcentric.com

[callcentric3](callcentric);
host=alpha3.callcentric.com

[callcentric4](callcentric);
host=alpha4.callcentric.com

[callcentric5](callcentric);
host=alpha5.callcentric.com

[callcentric6](callcentric);
host=alpha6.callcentric.com

[callcentric7](callcentric);
host=alpha7.callcentric.com

[callcentric8](callcentric);
host=alpha8.callcentric.com

[callcentric9](callcentric);
host=alpha9.callcentric.com

[callcentric10](callcentric);
host=alpha10.callcentric.com

[callcentric11](callcentric);
host=alpha11.callcentric.com

[callcentric12](callcentric);
host=alpha12.callcentric.com

[callcentric13](callcentric);
host=alpha13.callcentric.com

[callcentric14](callcentric);
host=alpha14.callcentric.com

[callcentric15](callcentric);
host=alpha15.callcentric.com

[callcentric16](callcentric);
host=alpha16.callcentric.com

[callcentric17](callcentric);
host=alpha17.callcentric.com

[callcentric18](callcentric);
host=alpha18.callcentric.com

[callcentric19](callcentric);
host=alpha19.callcentric.com

[callcentric20](callcentric);
host=alpha20.callcentric.com

[callcentricA](callcentric);
host=doll3.callcentric.com

[callcentricB](callcentric);
host=doll4.callcentric.com

[callcentricC](callcentric);
host=doll5.callcentric.com

extensions.conf

Dial Plan

[pstn-out] ;dial outgoing calls
exten => _XXXXXXXXXX,1,Dial(SIP/callcentric/1${EXTEN})
exten = _XXX,1,Dial(SIP/callcentric/${EXTEN}) ;allows calling 3 digit extensions
exten = _9XX,1,Dial(SIP/callcentric/${EXTEN}) ;allows 911 calling
exten => _XXXXXXXXXX,2,Congestion

[radio] ;outgoing calls
exten=_X11,1,Goto(check_route|${EXTEN}|1);
;exten=_XXXXXXX,1,Goto(check_route|1${HOMENPA}${EXTEN}|1) ;Do not enable shortcut area code predial
exten=_XXXXXXXXXX,1,Goto(check_route|1${EXTEN}|1)
exten = _07XX,1,Goto(parkedcalls|${EXTEN:1}|1) ;parked calls
exten = _XXX,1,Goto(pstn-out|${EXTEN}|1) ;allows calling 3 digit extensions
exten = _9XX,1,Goto(pstn-out|${EXTEN}|1) ;allows 911 calling

[from-callcentric] ;incoming calls
exten=NODE#,1,Set(CallerIDString=${CALLERID(all)}) ;set incoming callerID
exten=NODE#,n,System(/usr/local/sbin/autopatch.sh) ;cheat script for call announcement
exten=NODE#,n,Answer()
exten=NODE#,n,Ringing
exten=NODE#,n,Wait,1
exten=NODE#,n,Playback,pls-stay-on-line ;plays message for caller to stay on the line
exten=NODE#,n,ParkAndAnnounce(silence/pbx-transfer:PARKED|120|${BLINDTRANSFER:0:7}|internal_phones|${BLINDTRANSFER:4:3}|1) 
exten=NODE#,n,Hangup


Autopatch Announce Incoming Call Script

The script will announce a call for extension 0701. It’s a cheat script, not a workaround. Place it in your /usr/local/sbin folder as “autopatch.sh”. Set permissions to 0755 or “chmod +x”. Set your NODE# before using.

#!/bin/bash

asterisk -rx "rpt localplay NODE# /var/lib/asterisk/sounds/rpt/in-call"
sleep 0.1
asterisk -rx "rpt localplay NODE# /var/lib/asterisk/sounds/extension"
sleep 0.1
cat /var/lib/asterisk/sounds/digits/0.gsm /var/lib/asterisk/sounds/digits/7.gsm /var/lib/asterisk/sounds/digits/0.gsm /var/lib/asterisk/sounds/digits/1.gsm > /tmp/autopatch.gsm
asterisk -rx "rpt localplay NODE# /tmp/autopatch"

fi

This setting REQUIRED for simplex nodes!

rpt.conf

voxtimeout = 10000 ; vox timeout time in ms

voxrecover = 2000 ; vox recover time in ms

simplexpatchdelay = 25 ; Delay for transmit while in patch in 20ms increments

Notes:

extensions.conf

;exten=s,n,ParkAndAnnounce(silence/pbx-transfer:PARKED|120|${BLINDTRANSFER:0:7}|internal_phones|${BLINDTRANSFER:4:3}|1) ;silent park, best method

;exten=s,n,Rpt(NODENUMBER|Rrpt/node:NODE:rpt/in-call:digits/0:PARKED|120) 120 ;announcement doesn't work properly

;exten => s,1,Rpt,NODENUMBER|S ;auto answer, * keys up node # unkeys node

;exten=s,n,System(sh /usr/local/sbin/speaktext.sh ${CALLERID(num)} ${NODENUMBER}) ;announces phone number of incoming caller

[check_route]
; no 800
exten=_1800NXXXXXX,2,Goto(invalidnum|s|1)
exten=_1888NXXXXXX,2,Goto(invalidnum|s|1)
exten=_1877NXXXXXX,2,Goto(invalidnum|s|1)
exten=_1866NXXXXXX,2,Goto(invalidnum|s|1)
exten=_1855NXXXXXX,2,Goto(invalidnum|s|1)
; no X00 NPA
exten=_1X00XXXXXXX,2,Goto(invalidnum|s|1)
; no X11 NPA
exten=_1X11XXXXXXX,2,Goto(invalidnum|s|1)
; no X11
exten=_X11,2,Goto(invalidnum|s|1)
; no 555 Prefix in any NPA
exten=_1NXX555XXXX,2,Goto(invalidnum|s|1)
; no 976 Prefix in any NPA
exten=_1NXX976XXXX,2,Goto(invalidnum|s|1)
; no NPA=809
exten=_1809XXXXXXX,2,Goto(invalidnum|s|1)
; no NPA=900
exten=_1900XXXXXXX,2,Goto(invalidnum|s|1)

; okay, route it
exten=_1NXXXXXXXXX,1,Goto(pstn-out|${EXTEN:1}|1)
exten=_X.,2,Goto(invalidnum|s|1)