Raspberry GPIO's Setup
ASL GPIO wiki
Lets consider we are going to use
GPIO 17 (Pin 11) for COS input
GPIO 27 (Pin 13) for PTT Output
Install wiringpi
sudo apt-get install git-core sudo git clone https://github.com/WiringPi/WiringPi.git /opt/wiringpi cd /opt/wiringpi sudo ./build
Create an initialization file
Create the following file using nano:
sudo nano /usr/local/sbin/Init-GPIO.sh
Add the following code to the file
#!/bin/bash #script name - Init_GPIO # COS Input gpio -g mode 17 in # makes gpio 17 pin 11 on Raspberry pi 2/3 as input gpio -g mode 17 up # activates pull-up # PTT pin (Output) gpio -g mode 27 out # makes gpio 27 pin 13 as output gpio -g write 27 0 # Default to 0/Off
After making your changes type <CTRL> + <X> and then type <Y> followed by <Enter>. You will be back to the previous menu and choose <Back>.
Create the COS monitoring script
Create the following file using nano:
sudo nano /usr/local/sbin/COS-wfi.sh
#!/bin/bash gpio -g mode 17 in gpio -g mode 17 up while [ 1=1 ] do # wait int pin to go low gpio -g wfi 17 both COS=$(gpio -g read 17) if [ "$COS" = "0" ]; then gpio -g write 27 1 echo COS GPIO low/closed else gpio -g write 27 0 echo COS GPIO high/open fi done
After making your changes type <CTRL> + <X> and then type <Y> followed by <Enter>. You will be back to the previous menu and choose <Back>.
Create Event files
now create the following file using nano:
sudo nano /usr/local/sbin/PTT-GPIO-high.sh
Add the following lines to the file, in this example I am using GPIO 27 which is assigned to pin 13 on a Raspberry Pi Model 2/3.
#!/bin/bash gpio -g write 27 1
After making your changes type <CTRL> + <X> and then type <Y> followed by <Enter>. You will be back to the previous menu and choose <Back>.
Next create the following file using nano:
sudo nano /usr/local/sbin/PTT-GPIO-low.sh
Add the following lines to the file, in this example I am using GPIO 27 which is assigned to pin 13 on a Raspberry Pi Model 2/3.
#!/bin/bash gpio -g write 27 0
After making your changes type <CTRL> + <X> and then type <Y> followed by <Enter>. You will be back to the previous menu and choose <Back>.
Make the Init-GPIO and COS-wfi.sh scripts run at startup
you have to add a line to the rc.local file.
sudo nano /etc/rc.local
Before the exit 0 line you have to add:
# For AllStarLink /usr/local/sbin/Init-GPIO.sh /usr/local/sbin/COS-wfi.sh
After making your changes type <CTRL> + <X> and then type <Y> followed by <Enter>. You will be back to the previous menu and choose <Back>.
Edit rpt.conf file
Now use nano to edit your rpt.conf file:
sudo nano /etc/asterisk/rpt.conf
On your node number stanza, i.e. [12345] add the following line:
events=events12345;
Then at the end of the file add the following stanza:
[events12345] sudo /usr/local/sbin/PTT-GPIO-high.sh = S|T|RPT_TXKEYED; sudo /usr/local/sbin/PTT-GPIO-low.sh = S|F|RPT_TXKEYED;
After making your changes type <CTRL> + <X> and then type <Y> followed by <Enter>. You will be back to the previous menu and choose <Back>.
Set permisions to execute scripts
cd /usr/local/sbin sudo chmod +x Init-GPIO.sh sudo chmod +x COS-wfi.sh sudo chmod +x PTT-GPIO-high.sh sudo chmod +x PTT-GPIO-low.sh