- P25Link was first conceived around December, 2017.
By the end of January, 2018 a sync HDLC to async HDLC board begin to be developed by Bryan W9CR and Juan Carlos XE1F. An ambitious project that will be the evolution form P25NX.
- On October 10, 2019, a Bridge code between P25NX and P25-MMDVM was released for testing on talk group 10203. The bridge is based on Perl. Later, by April 2020, a dashboard and more talk groups were added.
- During June 2020, the first public release for code that replaces the old P25NX C# Code been uploaded to github. The code was completely written from scratch using Perl.
- By October 24, the first .deb package was released.
- On March 29, 2021, Juan Carlos XE1F made an attempt to relocate the Bridged TGs from 10100-10303 to the 1050x range, which was not aceptable for Jonathan G4KLX who decided he does not want any crosslink to P25NX so there are no Bridged TGs in the P25Clients/P25Gateway/P25Hosts.txt file on github as he denied to update his github repo.
p25link_2.33-3 Raspberry Pi Raspbian Installer - Public release.
P25Link in a nutshell
P25Link Perl code talks to Quantar repeater by a HDLC card Or a Cisco router using STUN (serial tunneling). It also connects to P25NX network using a VPN managed by the Cisco router and exchange data with other systems running P25Link code or P25NX code. All this data is exchanged using Multicast UDP frames. To connect to P25-MMDVM reflectors, it establish an UDP connection with the linked reflectors.
The best way to go for P25Link is to follow W9CR wiki: Allstar®_and_P25_on_Quantar
For those that prefer to go with P25-MMDVM features only, here is an example configuration. Please don't copy this blindly, it is not a turn-key/copy-paste solution.
service timestamps debug datetime msec service timestamps log datetime msec service password-encryption ! hostname #SET-HOSTNAME-HERE ! aaa new-model ! ! aaa authentication login localauth local aaa authorization exec default local aaa accounting delay-start aaa session-id common ! clock timezone EST -6 0 #CHANGE THIS clock summer-time EDT recurring ! ip dhcp pool RPi network 192.168.0.200 255.255.255.0 #Change this to Fa0/0 IP address default-router 192.168.0.200 #change this to Fa0/1 interface IP dns-server 22.214.171.124 126.96.36.199 #DNS SERVER lease 0 0 15 ! ! ip cef ip multicast-routing ! username w9cr privilege 15 secret 5 $1$9lDK$ALihMA.kF88ExXKVmFq7K/ username Wodie privilege 15 secret 5 $1$M9o/$80Ek/.0CKN207Fh3lPY7O1 username kris privilege 15 secret 5 $1$f3zx$.r9BFydXeSv4HMZ4eMCxR. username rancid privilege 15 secret 5 $1$ahD1$l5GzplOjj4xrcVgCZqfjp1 username bryan privilege 15 secret 5 $1$4GKN$COhQTbtzjgMEsfznmLjqf0 #ADD YOU IN HERE ! stun peer-name 192.168.0.200 #CHANGE THIS TO FA0/0 IP stun protocol-group 1 basic #change this to your group ! ! interface FastEthernet0/0 description INTERNET ip address dhcp # Allow for DHCP, or you can set static: #ip address 192.168.0.200 255.255.255.0 # Static example ip nat inside ip virtual-reassembly in duplex auto speed auto ip pim sparse-mode ip tcp adjust-mss 1400 ip igmp query-interval 125 ! interface Serial0/0/0 description To-Raspberry-Pi mtu 2104 no ip address encapsulation stun clock rate 9600 stun group 130 stun route all tcp 192.168.0.201 #change to the R-Pi IP address. ! ! ! Turn off Crap no ip forward-protocol nd no ip http server no ip http secure-server ! ip pim bidir-enable ip pim spt-threshold infinity ! ! scheduler allocate 20000 1000 ntp update-calendar ntp server pool.ntp.org
Juan Carlos XE1F
27 47 67 1B2F43
41 62 83 293E53