Date   

Re: mmdvm_bridge dashboard

Steve N4IRS
 

Nick,
I am still working on the MMDVM_Bridge dashboard. We are making changes to MMDVM_Bridge to provide good data to the dashboard. I hope to release the changes soon.

Steve N4IRS

On 1/21/2019 8:18 PM, Nick Robinson wrote:
Hey guys

I am new to this stuff, i've followed it off and on for the last few years, but didnt really know how much of a powerful tool its become, very exciting times

I've successfully got HBlink/DMRLink talking to our c-Bridge, works fine with a openspot we've been testing with, been trying to play with the MMDVM_Bridge dashboard but can't seem to get it to work

Can someone give me the idiots rundown of the DMR Network settings in MMDVM_Bridge.ini, what address and ports this is actually looking for? can't get it to work with any combination

Thanks!


Re: mmdvm_bridge dashboard

Valentino
 

I believe i do not understand well,  Nick, maybe /without maybe, sure) you need a config. of MMDVM_BRIDGE ........  so, this message sure do not help you, Well i work with this also but  i use for allstarlink and worked well. Then i put here my mmdvm_bridge that i use:


[General]
Callsign=EA1HNC
Id= your id here
Timeout=180
Duplex=0
 
[Info]
RXFrequency=434300000
TXFrequency=434300000
Power=1
Latitude=42.3425
Longitude=-003.6996
Height=0
Location=IN82DI, SPAIN
Description=MMDVM_Bridge
URL=http://www.qrz.com/db/EA1HNC
 
[Log]
# Logging levels, 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
DisplayLevel=1
FileLevel=2
FilePath=/var/log/mmdvm
FileRoot=MMDVM_Bridge
 
[DMR Id Lookup]
File=/var/lib/mmdvm/DMRIds.dat
Time=24
 
[NXDN Id Lookup]
File=/var/lib/mmdvm/NXDN.csv
Time=24
 
[Modem]
Port=/dev/null
RSSIMappingFile=RSSI.dat
Trace=0
Debug=0
 
[D-Star]
Enable=0
Module=C
 
[DMR]
Enable=1
ColorCode=1
EmbeddedLCOnly=1
DumpTAData=0
 
[System Fusion]
Enable=0
 
[P25]
Enable=0
NAC=293
 
[NXDN]
Enable=0
RAN=1
Id=12345
 
[D-Star Network]
Enable=0
GatewayAddress=127.0.0.1
GatewayPort=20010
LocalPort=20011
Debug=0
 
[DMR Network]
Enable=1
Address=3021.repeater.net
Port=62031
Jitter=360
Local=62032
Password=passw0rd
Slot1=0
Slot2=1
Debug=0
 
[System Fusion Network]
Enable=0
LocalAddress=0
LocalPort=3200
GatewayAddress=ysfreflector.dvswitch.org
GatewayPort=42166
Debug=0
 
[P25 Network]
Enable=0
GatewayAddress=127.0.0.1
GatewayPort=42020
LocalPort=32010
Debug=0
 
[NXDN Network]
Enable=0
#LocalAddress=127.0.0.1
Debug=0
LocalPort=14021
GatewayAddress=127.0.0.1
GatewayPort=14020
 


Re: mmdvm_bridge dashboard

Valentino
 

ufffffffff. am sorry!!!!! for XLX when your write in LOSE=  change for TRUE !!!!!!!!!!!!!!!!!!!!!!! DO NOT FORGET.


Re: mmdvm_bridge dashboard

Valentino
 

Hi Nick, i hope you understand. This is mine system conf. 
Best 73' EA1HNC - Valentino


# ACLs:
# See comments in the GLOBAL stanza

[MASTER]
MODE: MASTER
ENABLED: True
REPEAT: True
MAX_PEERS: 10
EXPORT_AMBE: False
IP:
PORT: 54000
PASSPHRASE: YOUR PASSWORD
GROUP_HANGTIME: 5
USE_ACL: True
REG_ACL: DENY:1
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL

# PEER INSTANCES - DUPLICATE SECTION FOR MULTIPLE PEERS

# ACLs:
# See comments in the GLOBAL stanza

# REPEATER 001

 


[REPEATER-YSF]
MODE: PEER
ENABLED: TRUE
LOOSE: False
EXPORT_AMBE: False
IP:
PORT: 54001
MASTER_IP: 84.232.5.113
MASTER_PORT: 62031
PASSPHRASE: passw0rd

CALLSIGN: XXXXXXX
RADIO_ID: XXXXXXX
RX_FREQ: 434300000
TX_FREQ: 434300000
TX_POWER: 7
COLORCODE: 1
SLOTS: 2
LATITUDE: 42.342514
LONGITUDE: -3.699689
HEIGHT: 75
LOCATION: IN82DI, SPAIN
DESCRIPTION: This is a cool repeater
URL: www.qrz.com/db/EA1HNC
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 5
OPTIONS:
USE_ACL: True
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL

# REPEATER 002

[REPEATER-SKYNET]
MODE: PEER
ENABLED: TRUE
LOOSE: False
EXPORT_AMBE: False
IP:
PORT: 54002
MASTER_IP: 84.232.5.113
MASTER_PORT: 62031
PASSPHRASE: passw0rd

CALLSIGN: XXXXXXX
RADIO_ID: XXXXXXX
RX_FREQ: 434300000
TX_FREQ: 434300000
TX_POWER: 7
COLORCODE: 1
SLOTS: 2
LATITUDE: 42.342514
LONGITUDE: -3.699689
HEIGHT: 75
LOCATION: IN82DI, SPAIN
DESCRIPTION: This is a cool repeater
URL: www.qrz.com/db/EA1HNC
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 5
OPTIONS:
USE_ACL: True
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL

# REPEATER 003

[REPEATER-ALS-41792]
MODE: PEER
ENABLED: True
LOOSE: False
EXPORT_AMBE: False
IP:
PORT: 54003
MASTER_IP: 84.232.5.113
MASTER_PORT: 62031
PASSPHRASE: passw0rd

CALLSIGN: XXXXXXX
RADIO_ID: XXXXXXX
RX_FREQ: 434300000
TX_FREQ: 434300000
TX_POWER: 7
COLORCODE: 1
SLOTS: 2
LATITUDE: 42.342514
LONGITUDE: -3.699689
HEIGHT: 75
LOCATION: IN82DI, SPAIN
DESCRIPTION: This is a cool repeater
URL: www.qrz.com/db/EA1HNC
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 5
OPTIONS:
USE_ACL: True
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL

# REPEATER 004

[REPEATER-IPSC2]
MODE: PEER
ENABLED: True
LOOSE: False
EXPORT_AMBE: False
IP:
PORT: 54004
MASTER_IP: 80.211.226.37
MASTER_PORT: 55555
PASSPHRASE: passw0rd

CALLSIGN: XXXXXXX
RADIO_ID: XXXXXXX
RX_FREQ: 434300000
TX_FREQ: 434300000
TX_POWER: 7
COLORCODE: 1
SLOTS: 2
LATITUDE: 42.342514
LONGITUDE: -3.699689
HEIGHT: 75
LOCATION: IN82DI, SPAIN
DESCRIPTION: This is a cool repeater
URL: www.qrz.com/db/EA1HNC
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 5
OPTIONS:
USE_ACL: True
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL

# REPEATER 005

[REPEATER-XLX067]
MODE: PEER
ENABLED: True
LOOSE: True
EXPORT_AMBE: False
IP:
PORT: 54005
MASTER_IP: 192.168.0.158
MASTER_PORT: 62030
PASSPHRASE: passw0rd

CALLSIGN: XXXXXXX
RADIO_ID: XXXXXXX
RX_FREQ: 434300000
TX_FREQ: 434300000
TX_POWER: 7
COLORCODE: 1
SLOTS: 2
LATITUDE: 42.342514
LONGITUDE: -3.699689
HEIGHT: 75
LOCATION: IN82DI, SPAIN
DESCRIPTION: This is a cool repeater
URL: www.qrz.com/db/EA1HNC
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 5
OPTIONS:
USE_ACL: True
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL


IF YOU WANT PUT MORE!!!!! DO NOT FORGET  IF YOU WORK WITH XLX   WHEN YOU CONF  WRTIRE MODE =PEER AND ENABLE= TRUE (if you do not put true and write False, do not run!!! )

******************************************************************************************************************************************************************************************************************************************************

BRIDGES = {
'YSF - C4FM': [
            {'SYSTEM': 'MASTER'        ,      'TS': 2, 'TGID': 21461,   'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON',   'ON': [21461],  'OFF': [3], 'RESET': []},
            {'SYSTEM': 'REPEATER-YSF',        'TS': 2, 'TGID': 21461,   'ACTIVE': True, 'TIMEOUT': 2,  'TO_TYPE': 'NONE', 'ON': [],       'OFF': [],  'RESET': []},
        ],
    'SKYNET': [
            {'SYSTEM': 'MASTER'         ,     'TS': 2, 'TGID': 37030,   'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON',   'ON': [37030],  'OFF': [3], 'RESET': []},
            {'SYSTEM': 'REPEATER-SKYNET',     'TS': 2, 'TGID': 37030,   'ACTIVE': True, 'TIMEOUT': 2,  'TO_TYPE': 'NONE', 'ON': [],       'OFF': [],  'RESET': []},
        ],
'ANNAPOLIS HUB': [
            {'SYSTEM': 'MASTER',              'TS': 2, 'TGID': 3124216, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON',   'ON': [3124216],'OFF': [3], 'RESET': []},
            {'SYSTEM': 'REPEATER-ALS-41792',  'TS': 2, 'TGID': 3124216, 'ACTIVE': True, 'TIMEOUT': 2,  'TO_TYPE': 'NONE', 'ON': [],       'OFF': [],  'RESET': []},
        ],
'IPSC2 EA MASTER': [
            {'SYSTEM': 'MASTER',              'TS': 2, 'TGID': 4374,    'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [4374],   'OFF': [3], 'RESET': []},
            {'SYSTEM': 'REPEATER-IPSC2',      'TS': 2, 'TGID': 9,       'ACTIVE': True, 'TIMEOUT': 2,  'TO_TYPE': 'NONE', 'ON': [],       'OFF': [],  'RESET': []},
        ],
  'XLX067': [
            {'SYSTEM': 'MASTER',              'TS': 2, 'TGID': 4004,    'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [4004],   'OFF': [3], 'RESET': []},
            {'SYSTEM': 'REPEATER-XLX067',     'TS': 2, 'TGID': 4004,    'ACTIVE': True, 'TIMEOUT': 2,  'TO_TYPE': 'NONE', 'ON': [4004],   'OFF': [],  'RESET': []},
            {'SYSTEM': 'REPEATER-XLX067',     'TS': 2, 'TGID': 9,       'ACTIVE': True, 'TIMEOUT': 2,  'TO_TYPE': 'NONE', 'ON': [],       'OFF': [],  'RESET': []},
        ],
'HBLINK':   [
            {'SYSTEM': 'MASTER',              'TS': 2, 'TGID': 2149,    'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON',   'ON': [2149],   'OFF': [3], 'RESET': []},
            {'SYSTEM': 'REPEATER-HBLINK',     'TS': 2, 'TGID': 2149,    'ACTIVE': True, 'TIMEOUT': 2,  'TO_TYPE': 'NONE', 'ON': [],       'OFF': [],  'RESET': []},
 
        ],
'ALLSTAR BRIDGE':   [
            {'SYSTEM': 'MASTER',              'TS': 2, 'TGID': 2141599, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [2141599],'OFF': [3], 'RESET': []},
            {'SYSTEM': 'REPEATER-ALS-46693',  'TS': 2, 'TGID': 2141599, 'ACTIVE': True, 'TIMEOUT': 2,  'TO_TYPE': 'NONE', 'ON': [],       'OFF': [],  'RESET': []},
        ],
'BURGOS':   [
            {'SYSTEM': 'MASTER',              'TS': 2, 'TGID': 21409,   'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON',   'ON': [21409],  'OFF': [3], 'RESET': []},
            {'SYSTEM': 'REPEATER-BURGOS',     'TS': 2, 'TGID': 21409,   'ACTIVE': True, 'TIMEOUT': 2,  'TO_TYPE': 'NONE', 'ON': [],       'OFF': [],  'RESET': []},
        ],
'XLX067-E': [
            {'SYSTEM': 'MASTER',              'TS': 2, 'TGID': 4005,    'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [4005],   'OFF': [3], 'RESET': []},
            {'SYSTEM': 'REPEATER-XLX067-E',   'TS': 2, 'TGID': 4005,    'ACTIVE': True, 'TIMEOUT': 2,  'TO_TYPE': 'NONE', 'ON': [4005],   'OFF': [],  'RESET': []},
            {'SYSTEM': 'REPEATER-XLX067-E',   'TS': 2, 'TGID': 9,       'ACTIVE': True, 'TIMEOUT': 2,  'TO_TYPE': 'NONE', 'ON': [],       'OFF': [],  'RESET': []},
       ]
}
 
if __name__ == '__main__':
    from pprint import pprint
    pprint(BRIDGES)
 


Re: Cannot get P25Reflector installed

Skyler Fennell
 

Thank You Steve, P25Reflector is working now, and I was able to talk to someone else through it. 

So I stopped the P25Gateway process and the reflector still worked. I was still able to talk everybody through the reflector, and nobody has had an issue for the past day when I only have P25Reflector running, not the gateway. 

Can you please clarify where the gateway is needed when I am only running it as a simple reflector with no bridging enabled. 

Thank You,
Skyler

On Sat, Jan 19, 2019 at 12:32 PM Steve N4IRS <szingman@...> wrote:
P25Gateway.ini

[General]

Callsign= Change this to my callsign

RptAddress=127.0.0.1 This is the address of MMDVM_Bridge

RptPort=32010 -- These 2 ports are used to connect to MMDVM_Bridge

LocalPort=42020 --


[Network]

Port=42010 -- Do not need to change

HostsFile1=./P25Hosts.txt

HostsFile2=./private/P25Hosts.txt See below

ReloadTime=60

ParrotAddress=127.0.0.1

ParrotPort=42011

Startup=12345 Make this the TG number you will use on the reflector

InactivityTimeout=10

Debug=0


MMDVM_BRIDGE INI FILE

[P25 Network]

Enable=0

GatewayAddress=127.0.0.1

GatewayPort=42020  -- Same as Local port on P25Gateway.ini Yes

LocalPort=32010  -- Same as RptPort on P25Gateway.ini Yes

Debug=1


Now P25Gateway need to know how to connect to the reflector when it sees traffic from MMDVM_Bridge on TG 12345 This is in the private host file ./private/P25Hosts.txt or rename it to anything you want.
In ./private/P25Hosts.txt

# My Reflector
12345   127.0.0.1    41000


Steve

On 1/19/19 2:17 PM, Skyler Fennell wrote:
Thank you very much Steve for your quick response. So can you clarify if below is correct on what I need to change, say I want to host a private reflector on node number 12345 

I'm just not sure what all the different ports mean as far as just a standalone reflector not bridging to anything. I totally understand Bridging P25 to something such as analog_bridge, but I'm curious on where P25Gateway plays in on the reflector.

P25Reflector.ini : Nothing to change, just the network port I want to run it on, leaving this as 41000
P25Gateway.ini [General]

Callsign= Change this to my callsign

RptAddress=127.0.0.1 -- Keeping this the same because reflector running locally

RptPort=32010 -- Not sure on this port

LocalPort=42020 -- Change this to Same network port as p25Reflector ????


[Network]

Port=42010 -- Don't know what to change this to

HostsFile1=./P25Hosts.txt

HostsFile2=./private/P25Hosts.txt

ReloadTime=60

ParrotAddress=127.0.0.1

ParrotPort=42011

# Startup=10100

InactivityTimeout=10

Debug=0


MMDVM_BRIDGE INI FILE

[P25 Network]

Enable=0

GatewayAddress=127.0.0.1

GatewayPort=42020  -- Same as Local port on P25Gateway.ini?? 

LocalPort=32010  -- Same as RptPort on P25Gateway.ini??

Debug=1





On Sat, Jan 19, 2019 at 12:06 PM Steve N4IRS <szingman@...> wrote:
So,
Yes, you need P25Gateway with MMDVM_Bridge. When you run the Reflector in Daemon mode it does not run as root. If I remember it want to run as user mmdvmuser. mmdvmuser does not have rights in the /var/log/mmdvm directory.
You should be able to test by moving the log dir to /tmp.

Steve

On 1/19/19 2:03 PM, Skyler Fennell wrote:
I am currently not running P25Gateway. Do I need to run this to run the reflector?

When Daemon is set to 0, I don't get the log error message anymore and it seems to run fine. 

Also, I noticed on line 155 here, they make the error say P25Gateway for the log file failing even on p25reflector.

On Sat, Jan 19, 2019 at 11:59 AM Steve N4IRS <szingman@...> wrote:
So, I see you running P25Reflector but the error is from the Gateway

On 1/19/19 1:57 PM, Skyler Fennell wrote:

root@stn3764:/opt/P25Clients/P25Reflector# ./P25Reflector P25Reflector.ini

root@stn3764:/opt/P25Clients/P25Reflector# P25Gateway: unable to open the log file



On Sat, Jan 19, 2019 at 11:57 AM Steve N4IRS <szingman@...> wrote:
Please post the error.

On 1/19/19 1:55 PM, Skyler Fennell wrote:
The log directory does exist. I have it set to 
/var/log/mmdvm in P25Reflector.ini and this definitely exists because other programs like MMDVM_Bridge are successfully writing logs here. I still get the error that it is unable to open the log file ...

On Thu, Jan 17, 2019 at 8:26 PM Steve N4IRS <szingman@...> wrote:
Create the log directory pointed to in P25Reflector.ini and retest.

Steve N4IRS

On 1/17/19 10:23 PM, Skyler Fennell wrote:
I am attempting to get P25Reflector working on my Debian Linux VPS Machine. I have the DVSwitch repository installed on the box.

When I try to install the reflector through apt-get, I cannot run the file and I get a libsdc dependency error
 /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./P25Gateway)
I have tried to fix the GLIBCXX error by upgrading all packages but I cannot get it to work and it shows the latest version as 3.4.20.

When I try to install the reflector from the source code, it will not even start up and claims it cannot open the log file. The directory does exist.
root@stn3764:/opt/P25Clients/P25Reflector# P25Gateway: unable to open the log file


I am running Debian on Kernel 3.16.0-4-amd64 and cannot update the Kernel, which seems to be a recommendation to fix the GLIBXX error. Lat time I updated the kernel, I broke asterisk, which I am also running on the server. 

Let me know what the next is step I can to try to get P25Reflector working on my machine.

Thank You,

Skyler







mmdvm_bridge dashboard

Nick Robinson
 

Hey guys

I am new to this stuff, i've followed it off and on for the last few years, but didnt really know how much of a powerful tool its become, very exciting times

I've successfully got HBlink/DMRLink talking to our c-Bridge, works fine with a openspot we've been testing with, been trying to play with the MMDVM_Bridge dashboard but can't seem to get it to work

Can someone give me the idiots rundown of the DMR Network settings in MMDVM_Bridge.ini, what address and ports this is actually looking for? can't get it to work with any combination

Thanks!


Re: If you use HBlink OR dmr_utils, you need to read this

Cort N0MJS <n0mjs@...>
 

Well this is awesome – someone using HBink3 AND some great questions…. comments inline

On Jan 21, 2019, at 3:31 PM, n4nqv@... wrote:

I just migrated our group's server to hblink3 a couple days ago (using bridge.py now in place of the old confbridge). Everything seems to be working well at the moment. We're currently using HBmonitor as well, though we'll have to figure something else out when we migrate to the asyncio version. I have a few questions/topics of discussion about the python3/hblink3 migration:



I am working on some better ways to handle monitor stuff more efficiently, and it’s based on JSON, not pickles, and only sends update information once a reporting client gets the initial “full” feed… but that’s a ways off.


1) I noticed a commit on a branch of HBlink a couple weeks ago fixing an LC generation bug for OpenBridge connections where there's also a TG translation. We do this in our current setup, and had issues with the old HBlink(2) not sending all voice traffic properly via OpenBridge. I never got to the bottom of what the issue actually was, but I suspect it had to to with the outbound voice traffic having the wrong TG number.  UDP packet logs showed the voice traffic getting sent to Brandmeister, but I never dumped the actual packet contents when we were having issues, so I can't verify.

Do you know whether this commit actually fixed the bug, and will a patch be made to hblink3 as well? Didn't look like it had been made the last time I glanced at the source.



The bug was found when I was porting the initial commits of bridge.py, so it actually was “fixed” there before bridge.py in hblink3 ever worked. We’ve verified on the local system that the odd one-way traffic on a BM group that had plagued us for some time is resolved!

2) What needs to be done to get the asyncio version of hblink3 to a usable point? I'm definitely interested in getting migrated over to asyncio soon. I'm developing a few cool new features for our repeaters that rely heavily on HBlink (and some user presence/private call routing additions), and the asyncio version will make it a lot simpler for me to develop in. 



It’s very, very close. I have a version I need to actually try and chase bugs on. I expect very few at this point, but I need to get some more reporting of errors in the callbacks on asyncio so that the problems don’t just quietly happen without a traceback. Next time I have about 2 hours to work and use the KS-DMR network as my testbed, it should be good to go.

3) I also started a project for a monitoring system recently, one that ties into MMDVMHost to send JSON formatted repeater status messages (transmit status, last call info, etc) from all our repeaters to a central MQTT broker, where it's aggregated, logged, and (eventually will be) distributed to browsers. Sounds like it's right up the alley of how the new HBmonitor replacement is going to work. I wouldn't mind helping out with some of the software development. 



I would LOVE to hand off the monitor stuff to someone else. I mostly built the hbmonitor to demonstrate some of my ideas about how a monitor app might look. It’s simple, and could be much more – drill-downs, etc. ANYONE willing to pick up the torch on that will see me working extra hard to standardize what HBlink & friends uses as an output format, etc.

Since it looks like you have experience with asyncio….. any guesses why Uvloop performed like absolute crap, but asyncio kicked butt like it was supposed to?

Thanks for the comments and well worded questions, Spencer.

0x49 DE N0MJS

Thanks,

Spencer Fowler

N4NQV


--
Cort Buffington
H: +1-785-813-1501
M: +1-785-865-7206






Re: DMR to P25

Michael KD5DFB
 

You will have to use Analog Bridge to transcode between the 2 modes.

 

The private host locations are defined in the .ini file

 

[Network]

Port=42010

HostsFile1=./P25Hosts.txt

HostsFile2=./Private_P25Hosts.txt

ReloadTime=60

ParrotAddress=127.0.0.1

ParrotPort=42011

Startup=8207

InactivityTimeout=10

Debug=0

 

Michael KD5DFB

 

From: Russell, KV4S
Sent: Monday, January 21, 2019 13:48
To: main@dvswitch.groups.io
Subject: [DVSwitch] DMR to P25

 

I'm looking to make a Bridge between DMR and P25 (same TG on both).

Am I able to do this without the need for Analog Bridge in the middle?

 

If so, can someone point me in the right direction?

 

Also, where (what directory) do you create a private host entry at for the P25 reflector?

 


Re: If you use HBlink OR dmr_utils, you need to read this

Spencer N4NQV
 

Cort,

I just migrated our group's server to hblink3 a couple days ago (using bridge.py now in place of the old confbridge). Everything seems to be working well at the moment. We're currently using HBmonitor as well, though we'll have to figure something else out when we migrate to the asyncio version. I have a few questions/topics of discussion about the python3/hblink3 migration:

1) I noticed a commit on a branch of HBlink a couple weeks ago fixing an LC generation bug for OpenBridge connections where there's also a TG translation. We do this in our current setup, and had issues with the old HBlink(2) not sending all voice traffic properly via OpenBridge. I never got to the bottom of what the issue actually was, but I suspect it had to to with the outbound voice traffic having the wrong TG number.  UDP packet logs showed the voice traffic getting sent to Brandmeister, but I never dumped the actual packet contents when we were having issues, so I can't verify.

Do you know whether this commit actually fixed the bug, and will a patch be made to hblink3 as well? Didn't look like it had been made the last time I glanced at the source.


2) What needs to be done to get the asyncio version of hblink3 to a usable point? I'm definitely interested in getting migrated over to asyncio soon. I'm developing a few cool new features for our repeaters that rely heavily on HBlink (and some user presence/private call routing additions), and the asyncio version will make it a lot simpler for me to develop in. 

 

3) I also started a project for a monitoring system recently, one that ties into MMDVMHost to send JSON formatted repeater status messages (transmit status, last call info, etc) from all our repeaters to a central MQTT broker, where it's aggregated, logged, and (eventually will be) distributed to browsers. Sounds like it's right up the alley of how the new HBmonitor replacement is going to work. I wouldn't mind helping out with some of the software development. 

 

Thanks,

Spencer Fowler

N4NQV


DMR to P25

 

I'm looking to make a Bridge between DMR and P25 (same TG on both).
Am I able to do this without the need for Analog Bridge in the middle?

If so, can someone point me in the right direction?

Also, where (what directory) do you create a private host entry at for the P25 reflector?


Re: IPSC Bridge

JeffH
 

Thanks guys! Sorry for the delay in responding....

There's a little more to this than meets the eye. The intent is for our system to be what makes the decision as to what users accessing our repeater can connect to on each of the peer networks. There are roughly 20 to 25 cross-connects from the c-Bridge on DMR-MARC over to BM.

In order to prevent any sort of bridge loops, users on our repeater wouldn't be allowed to connect to the c-Bridge to ride the cross-connects over to BM. They would only be allowed to connect to TGs within DMR-MARC.

The final configuration would allow users to connect via our repeater to a whitelisted set of TGs on BM via timeslot 1, subsequently to allow users to connect to a whitelisted set of TGs on DMR-MARC via timeslot 2.

That said.... What else is needed (in addition to DMRlink) to allow for:

1. Mapping each IPSC Peer to a timeslot on our repeater (i.e. TS1 > BM and TS2 > DMR-MARC)?

2. Whitelisting the talkgroups that users can connect to via our repeater on TS1 and TS2?

3. If we wanted to do any sort of TG rewrite, is that possible? For example if a users have their codeplug configured to use TGx and the value of the TGy on DMR-MARC is different, is it possible to rewrite TGx to TGy?

Sorry - I know this use-case is a little "out there". :-)

I'm trying to do everything possible to not have to purchase a c-Bridge of SmartPTT. I'm not sure how expensive they are, but I presume they're more than I can get approval from the club members to spend.

Thank you so much!!!

--
Jeff Hochberg
President
Atlanta Radio Club
W4JEW

w4jew@...
jeff@...


Re: DMR to the Bridge Echolink conference server

Steve N4IRS
 

I was thinking about this the other day and planned to comment. I forgot until the bump.
The only way I can think you could connect to TBD is via an AllStarLink node. As for EchoLink without ASL, not today but it is possible. Someone would need to modify the Linux EchoLink code to support USRP. We discussed it but it's not high on the list since you can connect to EchoLink with ASL.

Steve N4IRS


Re: DMR to the Bridge Echolink conference server

bagdala@...
 

Bump!


Re: Cannot get P25Reflector installed

Steve N4IRS
 

P25Gateway.ini

[General]

Callsign= Change this to my callsign

RptAddress=127.0.0.1 This is the address of MMDVM_Bridge

RptPort=32010 -- These 2 ports are used to connect to MMDVM_Bridge

LocalPort=42020 --


[Network]

Port=42010 -- Do not need to change

HostsFile1=./P25Hosts.txt

HostsFile2=./private/P25Hosts.txt See below

ReloadTime=60

ParrotAddress=127.0.0.1

ParrotPort=42011

Startup=12345 Make this the TG number you will use on the reflector

InactivityTimeout=10

Debug=0


MMDVM_BRIDGE INI FILE

[P25 Network]

Enable=0

GatewayAddress=127.0.0.1

GatewayPort=42020  -- Same as Local port on P25Gateway.ini Yes

LocalPort=32010  -- Same as RptPort on P25Gateway.ini Yes

Debug=1


Now P25Gateway need to know how to connect to the reflector when it sees traffic from MMDVM_Bridge on TG 12345 This is in the private host file ./private/P25Hosts.txt or rename it to anything you want.
In ./private/P25Hosts.txt

# My Reflector
12345   127.0.0.1    41000


Steve

On 1/19/19 2:17 PM, Skyler Fennell wrote:
Thank you very much Steve for your quick response. So can you clarify if below is correct on what I need to change, say I want to host a private reflector on node number 12345 

I'm just not sure what all the different ports mean as far as just a standalone reflector not bridging to anything. I totally understand Bridging P25 to something such as analog_bridge, but I'm curious on where P25Gateway plays in on the reflector.

P25Reflector.ini : Nothing to change, just the network port I want to run it on, leaving this as 41000
P25Gateway.ini [General]

Callsign= Change this to my callsign

RptAddress=127.0.0.1 -- Keeping this the same because reflector running locally

RptPort=32010 -- Not sure on this port

LocalPort=42020 -- Change this to Same network port as p25Reflector ????


[Network]

Port=42010 -- Don't know what to change this to

HostsFile1=./P25Hosts.txt

HostsFile2=./private/P25Hosts.txt

ReloadTime=60

ParrotAddress=127.0.0.1

ParrotPort=42011

# Startup=10100

InactivityTimeout=10

Debug=0


MMDVM_BRIDGE INI FILE

[P25 Network]

Enable=0

GatewayAddress=127.0.0.1

GatewayPort=42020  -- Same as Local port on P25Gateway.ini?? 

LocalPort=32010  -- Same as RptPort on P25Gateway.ini??

Debug=1





On Sat, Jan 19, 2019 at 12:06 PM Steve N4IRS <szingman@...> wrote:
So,
Yes, you need P25Gateway with MMDVM_Bridge. When you run the Reflector in Daemon mode it does not run as root. If I remember it want to run as user mmdvmuser. mmdvmuser does not have rights in the /var/log/mmdvm directory.
You should be able to test by moving the log dir to /tmp.

Steve

On 1/19/19 2:03 PM, Skyler Fennell wrote:
I am currently not running P25Gateway. Do I need to run this to run the reflector?

When Daemon is set to 0, I don't get the log error message anymore and it seems to run fine. 

Also, I noticed on line 155 here, they make the error say P25Gateway for the log file failing even on p25reflector.

On Sat, Jan 19, 2019 at 11:59 AM Steve N4IRS <szingman@...> wrote:
So, I see you running P25Reflector but the error is from the Gateway

On 1/19/19 1:57 PM, Skyler Fennell wrote:

root@stn3764:/opt/P25Clients/P25Reflector# ./P25Reflector P25Reflector.ini

root@stn3764:/opt/P25Clients/P25Reflector# P25Gateway: unable to open the log file



On Sat, Jan 19, 2019 at 11:57 AM Steve N4IRS <szingman@...> wrote:
Please post the error.

On 1/19/19 1:55 PM, Skyler Fennell wrote:
The log directory does exist. I have it set to 
/var/log/mmdvm in P25Reflector.ini and this definitely exists because other programs like MMDVM_Bridge are successfully writing logs here. I still get the error that it is unable to open the log file ...

On Thu, Jan 17, 2019 at 8:26 PM Steve N4IRS <szingman@...> wrote:
Create the log directory pointed to in P25Reflector.ini and retest.

Steve N4IRS

On 1/17/19 10:23 PM, Skyler Fennell wrote:
I am attempting to get P25Reflector working on my Debian Linux VPS Machine. I have the DVSwitch repository installed on the box.

When I try to install the reflector through apt-get, I cannot run the file and I get a libsdc dependency error
 /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./P25Gateway)
I have tried to fix the GLIBCXX error by upgrading all packages but I cannot get it to work and it shows the latest version as 3.4.20.

When I try to install the reflector from the source code, it will not even start up and claims it cannot open the log file. The directory does exist.
root@stn3764:/opt/P25Clients/P25Reflector# P25Gateway: unable to open the log file


I am running Debian on Kernel 3.16.0-4-amd64 and cannot update the Kernel, which seems to be a recommendation to fix the GLIBXX error. Lat time I updated the kernel, I broke asterisk, which I am also running on the server. 

Let me know what the next is step I can to try to get P25Reflector working on my machine.

Thank You,

Skyler







Re: Cannot get P25Reflector installed

Skyler Fennell
 

Thank you very much Steve for your quick response. So can you clarify if below is correct on what I need to change, say I want to host a private reflector on node number 12345 

I'm just not sure what all the different ports mean as far as just a standalone reflector not bridging to anything. I totally understand Bridging P25 to something such as analog_bridge, but I'm curious on where P25Gateway plays in on the reflector.

P25Reflector.ini : Nothing to change, just the network port I want to run it on, leaving this as 41000
P25Gateway.ini [General]

Callsign= Change this to my callsign

RptAddress=127.0.0.1 -- Keeping this the same because reflector running locally

RptPort=32010 -- Not sure on this port

LocalPort=42020 -- Change this to Same network port as p25Reflector ????


[Network]

Port=42010 -- Don't know what to change this to

HostsFile1=./P25Hosts.txt

HostsFile2=./private/P25Hosts.txt

ReloadTime=60

ParrotAddress=127.0.0.1

ParrotPort=42011

# Startup=10100

InactivityTimeout=10

Debug=0


MMDVM_BRIDGE INI FILE

[P25 Network]

Enable=0

GatewayAddress=127.0.0.1

GatewayPort=42020  -- Same as Local port on P25Gateway.ini?? 

LocalPort=32010  -- Same as RptPort on P25Gateway.ini??

Debug=1





On Sat, Jan 19, 2019 at 12:06 PM Steve N4IRS <szingman@...> wrote:
So,
Yes, you need P25Gateway with MMDVM_Bridge. When you run the Reflector in Daemon mode it does not run as root. If I remember it want to run as user mmdvmuser. mmdvmuser does not have rights in the /var/log/mmdvm directory.
You should be able to test by moving the log dir to /tmp.

Steve

On 1/19/19 2:03 PM, Skyler Fennell wrote:
I am currently not running P25Gateway. Do I need to run this to run the reflector?

When Daemon is set to 0, I don't get the log error message anymore and it seems to run fine. 

Also, I noticed on line 155 here, they make the error say P25Gateway for the log file failing even on p25reflector.

On Sat, Jan 19, 2019 at 11:59 AM Steve N4IRS <szingman@...> wrote:
So, I see you running P25Reflector but the error is from the Gateway

On 1/19/19 1:57 PM, Skyler Fennell wrote:

root@stn3764:/opt/P25Clients/P25Reflector# ./P25Reflector P25Reflector.ini

root@stn3764:/opt/P25Clients/P25Reflector# P25Gateway: unable to open the log file



On Sat, Jan 19, 2019 at 11:57 AM Steve N4IRS <szingman@...> wrote:
Please post the error.

On 1/19/19 1:55 PM, Skyler Fennell wrote:
The log directory does exist. I have it set to 
/var/log/mmdvm in P25Reflector.ini and this definitely exists because other programs like MMDVM_Bridge are successfully writing logs here. I still get the error that it is unable to open the log file ...

On Thu, Jan 17, 2019 at 8:26 PM Steve N4IRS <szingman@...> wrote:
Create the log directory pointed to in P25Reflector.ini and retest.

Steve N4IRS

On 1/17/19 10:23 PM, Skyler Fennell wrote:
I am attempting to get P25Reflector working on my Debian Linux VPS Machine. I have the DVSwitch repository installed on the box.

When I try to install the reflector through apt-get, I cannot run the file and I get a libsdc dependency error
 /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./P25Gateway)
I have tried to fix the GLIBCXX error by upgrading all packages but I cannot get it to work and it shows the latest version as 3.4.20.

When I try to install the reflector from the source code, it will not even start up and claims it cannot open the log file. The directory does exist.
root@stn3764:/opt/P25Clients/P25Reflector# P25Gateway: unable to open the log file


I am running Debian on Kernel 3.16.0-4-amd64 and cannot update the Kernel, which seems to be a recommendation to fix the GLIBXX error. Lat time I updated the kernel, I broke asterisk, which I am also running on the server. 

Let me know what the next is step I can to try to get P25Reflector working on my machine.

Thank You,

Skyler






Re: Cannot get P25Reflector installed

Steve N4IRS
 

So,
Yes, you need P25Gateway with MMDVM_Bridge. When you run the Reflector in Daemon mode it does not run as root. If I remember it want to run as user mmdvmuser. mmdvmuser does not have rights in the /var/log/mmdvm directory.
You should be able to test by moving the log dir to /tmp.

Steve

On 1/19/19 2:03 PM, Skyler Fennell wrote:
I am currently not running P25Gateway. Do I need to run this to run the reflector?

When Daemon is set to 0, I don't get the log error message anymore and it seems to run fine. 

Also, I noticed on line 155 here, they make the error say P25Gateway for the log file failing even on p25reflector.

On Sat, Jan 19, 2019 at 11:59 AM Steve N4IRS <szingman@...> wrote:
So, I see you running P25Reflector but the error is from the Gateway

On 1/19/19 1:57 PM, Skyler Fennell wrote:

root@stn3764:/opt/P25Clients/P25Reflector# ./P25Reflector P25Reflector.ini

root@stn3764:/opt/P25Clients/P25Reflector# P25Gateway: unable to open the log file



On Sat, Jan 19, 2019 at 11:57 AM Steve N4IRS <szingman@...> wrote:
Please post the error.

On 1/19/19 1:55 PM, Skyler Fennell wrote:
The log directory does exist. I have it set to 
/var/log/mmdvm in P25Reflector.ini and this definitely exists because other programs like MMDVM_Bridge are successfully writing logs here. I still get the error that it is unable to open the log file ...

On Thu, Jan 17, 2019 at 8:26 PM Steve N4IRS <szingman@...> wrote:
Create the log directory pointed to in P25Reflector.ini and retest.

Steve N4IRS

On 1/17/19 10:23 PM, Skyler Fennell wrote:
I am attempting to get P25Reflector working on my Debian Linux VPS Machine. I have the DVSwitch repository installed on the box.

When I try to install the reflector through apt-get, I cannot run the file and I get a libsdc dependency error
 /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./P25Gateway)
I have tried to fix the GLIBCXX error by upgrading all packages but I cannot get it to work and it shows the latest version as 3.4.20.

When I try to install the reflector from the source code, it will not even start up and claims it cannot open the log file. The directory does exist.
root@stn3764:/opt/P25Clients/P25Reflector# P25Gateway: unable to open the log file


I am running Debian on Kernel 3.16.0-4-amd64 and cannot update the Kernel, which seems to be a recommendation to fix the GLIBXX error. Lat time I updated the kernel, I broke asterisk, which I am also running on the server. 

Let me know what the next is step I can to try to get P25Reflector working on my machine.

Thank You,

Skyler






Re: Cannot get P25Reflector installed

Skyler Fennell
 

I am currently not running P25Gateway. Do I need to run this to run the reflector?

When Daemon is set to 0, I don't get the log error message anymore and it seems to run fine. 

Also, I noticed on line 155 here, they make the error say P25Gateway for the log file failing even on p25reflector.

On Sat, Jan 19, 2019 at 11:59 AM Steve N4IRS <szingman@...> wrote:
So, I see you running P25Reflector but the error is from the Gateway

On 1/19/19 1:57 PM, Skyler Fennell wrote:

root@stn3764:/opt/P25Clients/P25Reflector# ./P25Reflector P25Reflector.ini

root@stn3764:/opt/P25Clients/P25Reflector# P25Gateway: unable to open the log file



On Sat, Jan 19, 2019 at 11:57 AM Steve N4IRS <szingman@...> wrote:
Please post the error.

On 1/19/19 1:55 PM, Skyler Fennell wrote:
The log directory does exist. I have it set to 
/var/log/mmdvm in P25Reflector.ini and this definitely exists because other programs like MMDVM_Bridge are successfully writing logs here. I still get the error that it is unable to open the log file ...

On Thu, Jan 17, 2019 at 8:26 PM Steve N4IRS <szingman@...> wrote:
Create the log directory pointed to in P25Reflector.ini and retest.

Steve N4IRS

On 1/17/19 10:23 PM, Skyler Fennell wrote:
I am attempting to get P25Reflector working on my Debian Linux VPS Machine. I have the DVSwitch repository installed on the box.

When I try to install the reflector through apt-get, I cannot run the file and I get a libsdc dependency error
 /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./P25Gateway)
I have tried to fix the GLIBCXX error by upgrading all packages but I cannot get it to work and it shows the latest version as 3.4.20.

When I try to install the reflector from the source code, it will not even start up and claims it cannot open the log file. The directory does exist.
root@stn3764:/opt/P25Clients/P25Reflector# P25Gateway: unable to open the log file


I am running Debian on Kernel 3.16.0-4-amd64 and cannot update the Kernel, which seems to be a recommendation to fix the GLIBXX error. Lat time I updated the kernel, I broke asterisk, which I am also running on the server. 

Let me know what the next is step I can to try to get P25Reflector working on my machine.

Thank You,

Skyler





Re: Cannot get P25Reflector installed

Steve N4IRS
 

So, I see you running P25Reflector but the error is from the Gateway

On 1/19/19 1:57 PM, Skyler Fennell wrote:

root@stn3764:/opt/P25Clients/P25Reflector# ./P25Reflector P25Reflector.ini

root@stn3764:/opt/P25Clients/P25Reflector# P25Gateway: unable to open the log file



On Sat, Jan 19, 2019 at 11:57 AM Steve N4IRS <szingman@...> wrote:
Please post the error.

On 1/19/19 1:55 PM, Skyler Fennell wrote:
The log directory does exist. I have it set to 
/var/log/mmdvm in P25Reflector.ini and this definitely exists because other programs like MMDVM_Bridge are successfully writing logs here. I still get the error that it is unable to open the log file ...

On Thu, Jan 17, 2019 at 8:26 PM Steve N4IRS <szingman@...> wrote:
Create the log directory pointed to in P25Reflector.ini and retest.

Steve N4IRS

On 1/17/19 10:23 PM, Skyler Fennell wrote:
I am attempting to get P25Reflector working on my Debian Linux VPS Machine. I have the DVSwitch repository installed on the box.

When I try to install the reflector through apt-get, I cannot run the file and I get a libsdc dependency error
 /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./P25Gateway)
I have tried to fix the GLIBCXX error by upgrading all packages but I cannot get it to work and it shows the latest version as 3.4.20.

When I try to install the reflector from the source code, it will not even start up and claims it cannot open the log file. The directory does exist.
root@stn3764:/opt/P25Clients/P25Reflector# P25Gateway: unable to open the log file


I am running Debian on Kernel 3.16.0-4-amd64 and cannot update the Kernel, which seems to be a recommendation to fix the GLIBXX error. Lat time I updated the kernel, I broke asterisk, which I am also running on the server. 

Let me know what the next is step I can to try to get P25Reflector working on my machine.

Thank You,

Skyler





Re: Cannot get P25Reflector installed

Steve N4IRS
 

Are you running in daemon mode?

On 1/19/19 1:57 PM, Skyler Fennell wrote:

root@stn3764:/opt/P25Clients/P25Reflector# ./P25Reflector P25Reflector.ini

root@stn3764:/opt/P25Clients/P25Reflector# P25Gateway: unable to open the log file



On Sat, Jan 19, 2019 at 11:57 AM Steve N4IRS <szingman@...> wrote:
Please post the error.

On 1/19/19 1:55 PM, Skyler Fennell wrote:
The log directory does exist. I have it set to 
/var/log/mmdvm in P25Reflector.ini and this definitely exists because other programs like MMDVM_Bridge are successfully writing logs here. I still get the error that it is unable to open the log file ...

On Thu, Jan 17, 2019 at 8:26 PM Steve N4IRS <szingman@...> wrote:
Create the log directory pointed to in P25Reflector.ini and retest.

Steve N4IRS

On 1/17/19 10:23 PM, Skyler Fennell wrote:
I am attempting to get P25Reflector working on my Debian Linux VPS Machine. I have the DVSwitch repository installed on the box.

When I try to install the reflector through apt-get, I cannot run the file and I get a libsdc dependency error
 /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./P25Gateway)
I have tried to fix the GLIBCXX error by upgrading all packages but I cannot get it to work and it shows the latest version as 3.4.20.

When I try to install the reflector from the source code, it will not even start up and claims it cannot open the log file. The directory does exist.
root@stn3764:/opt/P25Clients/P25Reflector# P25Gateway: unable to open the log file


I am running Debian on Kernel 3.16.0-4-amd64 and cannot update the Kernel, which seems to be a recommendation to fix the GLIBXX error. Lat time I updated the kernel, I broke asterisk, which I am also running on the server. 

Let me know what the next is step I can to try to get P25Reflector working on my machine.

Thank You,

Skyler





Re: Cannot get P25Reflector installed

Skyler Fennell
 

root@stn3764:/opt/P25Clients/P25Reflector# ./P25Reflector P25Reflector.ini

root@stn3764:/opt/P25Clients/P25Reflector# P25Gateway: unable to open the log file



On Sat, Jan 19, 2019 at 11:57 AM Steve N4IRS <szingman@...> wrote:
Please post the error.

On 1/19/19 1:55 PM, Skyler Fennell wrote:
The log directory does exist. I have it set to 
/var/log/mmdvm in P25Reflector.ini and this definitely exists because other programs like MMDVM_Bridge are successfully writing logs here. I still get the error that it is unable to open the log file ...

On Thu, Jan 17, 2019 at 8:26 PM Steve N4IRS <szingman@...> wrote:
Create the log directory pointed to in P25Reflector.ini and retest.

Steve N4IRS

On 1/17/19 10:23 PM, Skyler Fennell wrote:
I am attempting to get P25Reflector working on my Debian Linux VPS Machine. I have the DVSwitch repository installed on the box.

When I try to install the reflector through apt-get, I cannot run the file and I get a libsdc dependency error
 /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./P25Gateway)
I have tried to fix the GLIBCXX error by upgrading all packages but I cannot get it to work and it shows the latest version as 3.4.20.

When I try to install the reflector from the source code, it will not even start up and claims it cannot open the log file. The directory does exist.
root@stn3764:/opt/P25Clients/P25Reflector# P25Gateway: unable to open the log file


I am running Debian on Kernel 3.16.0-4-amd64 and cannot update the Kernel, which seems to be a recommendation to fix the GLIBXX error. Lat time I updated the kernel, I broke asterisk, which I am also running on the server. 

Let me know what the next is step I can to try to get P25Reflector working on my machine.

Thank You,

Skyler



6381 - 6400 of 9288