Date   

Re: TAPR Sept 2018

Steve N4IRS
 

Carter,
We are not planning to make TAPR this year. We will consider doing a presentation on DVSwitch in the future. I do not know if anyone is planning a MMDVM presentation. You might check the MMDVM group on Yahoo.

73, Steve N4IRS

On 04/28/2018 05:45 PM, C Davis wrote:
Just wondering if there are any plans for a MMDVM presentation or seminar for the September 2018 TAPR Conference in Albuquerque, NM this year?  I would sure go if there was some type of presentation or seminar given.

Carter, KH6FV


TAPR Sept 2018

C Davis
 

Just wondering if there are any plans for a MMDVM presentation or seminar for the September 2018 TAPR Conference in Albuquerque, NM this year?  I would sure go if there was some type of presentation or seminar given.

Carter, KH6FV


Re: SPAM

JJ Cummings
 

It's a fair statement, I agree with you and we have all been there somewhere somehow sometime... I'm just irritable today I suppose...



On Fri, Apr 27, 2018 at 12:47 PM, Bob Brown <bbrown@...> wrote:
Well, His posts have been a help to me, even with the revisions He & Cort has made.

I agree there are probably more messages than need be, and maybe till he gets it all sorted out and then make 1 post for an update.
But then again how is he supposed to know unless he asked the question and someone offers a correction reply?
After all is that what this group is for, Helping one another?
If the chatter is too much use digest mode or the delete key.

Just my 2 cents...

back to my rabbit hole, I go ...





Re: SPAM

Bob Brown
 

Well, His posts have been a help to me, even with the revisions He & Cort has made.

I agree there are probably more messages than need be, and maybe till he gets it all sorted out and then make 1 post for an update.
But then again how is he supposed to know unless he asked the question and someone offers a correction reply?
After all is that what this group is for, Helping one another?
If the chatter is too much use digest mode or the delete key.

Just my 2 cents...

back to my rabbit hole, I go ...


Re: How to make your own "unofficial" Master server!

JJ Cummings
 

Please make it stop, just publish this to a blog post or something... the desire to assist is admirable but the exploding inbox is painful.

On Fri, Apr 27, 2018 at 9:59 AM, Jamie R. Cid <jay@...> wrote:

[Edited Message Follows]

Hello All,

I figured I would post this since people have asked for it. If this is violating anything please feel free to remove it.

Kudos to the developers for making such great apps!!!

Ok,

** This guide assumes you have IPSC_Bridge, HB_Bridge and all the other necessities installed. **
** This guide assumes you are using an XPR Repeater in MASTER mode. **
** This guide assumes you have requested and been given "Sysop Rights" from BM on your account. And have logged in and configured your TS's. **


Can you connect the XPR repeater directly to BM in client mode?? SURE! But what fun is that!? ;)

So what I was looking to do was create a kinda of master server to link all my sites and motorola repeaters together basically and give me a little more control of my systems. What I ended up building is a MASTER IPSC Server which listens for IPSC connections from raspberry pi's at the remote repeater sites and forwards them to BM. The raspberry pi is used because I didn't want the Motorola repeaters in CLIENT mode rather MASTER mode so I can still use my Motorola diagnostic tools and TRBONet software to connect to the repeater. (When the repeater is in client mode it wont accept any connections from diagnostic tools). Here's the thing to remember which I had to figure out, HB_Bridge and IPSC_Bridge BOTH run background programs that do the work so it really looks like (BM <---> hblink <---> HB_Bridge <---> UDP Sockets <--->  IPSC_Bridge <---> dmrlink <---> IPSC_Bridge <---> dmrlink <---> XPR Repeater). Something more like that *kinda. Still trying to dial that in exactly but I'm focused on the configs still :) I did have this all installed on a single RPI3B But was having audio trans-coding issues so I moved it to a master Server/Rpi setup since that's what I really wanted anyway ;)

Here's a basic layout:
Master Server:
BM <---> HB_Bridge (BM Peer) <---> IPSC_Bridge (Master)

Raspberry Pi:
IPSC_Bridge (Peer) <---> ConfBridge (Peer) <---> XPR Repeater (Master)

Well lets get on to what you really want... And remember just because this all works for me don't mean it for everyone or officially approved by anyone ;) I hold no responsibility for anything other than my own setup!

First thing you need to do!: (This project will not work properly until this is completed. This is to allow you to set static talk groups.)


Make sure your BM selfcare account is active
Send a e-mail to dmr-admins AT repeater.net
Include your call sign
The repeater DMR ID
What master are you connected to
The fact that you are requesting sysop access to your repeater.


Server Side:
dmrlink.cfg:

[IPSCBRIDGE]
# IPSC Virtual Master Server
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: False
CON_APP: True
XNL_CALL: False
XNL_MASTER: False
DATA_CALL: False
VOICE_CALL: True
MASTER_PEER: True
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309

IPSC_Bridge.cfg:

[DEFAULTS]
debug = True                                    # Debug output for each VOICE frame
outToFile = False                               # Write each AMBE frame to a file called ambe.bin
outToUDP = True                                 # Send each AMBE frame to the _sock object (turn on/off IPSC_Bridge operation)

gateway = 127.0.0.1                             # IP address of Partner Application (HB_Bridge, Analog_Bridge)
fromGatewayPort = 31010                         # Port IPSC_Bridge is listening on for data  IPSC_Bridge <--- Partner
toGatewayPort = 31013                           # Port used to send data to Partner IPSC_Bridge ---> Partner

gatewayDmrId = 12345                            # Deprecated no longer used. Required for now.

# remoteControlPort = 31002                     # Deprecated, no longer used. Will be removed IGNORE!
tgFilter = 1,3,9                              # Deprecated, no longer used. Will be removed IGNORE!
# txTg = 9                                      # Deprecated, no longer used. Will be removed IGNORE!
# txTs = 2


hblink.cfg:

[BRANDMEISTER]
MODE: CLIENT
ENABLED: True
EXPORT_AMBE: False
IP:
PORT: 54000
MASTER_IP: IP OF YOUR FRIENDLY BM SERVER
MASTER_PORT: 62031
PASSPHRASE: passw0rd
CALLSIGN: YOURCALL
RADIO_ID: 123456
RX_FREQ: 000000000
TX_FREQ: 000000000
TX_POWER: 45
COLORCODE: 1
SLOTS: 2
LATITUDE: 00.0000
LONGITUDE: -00.0000
HEIGHT: 75
LOCATION: Somewhere, USA
DESCRIPTION: DMR Repeater
URL: http://www.google.com
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 0
OPTIONS:

[DEFAULTS]
gateway = 127.0.0.1                             # IP address of Partner Application (IPSC_Bridge, Analog_Bridge)
fromGatewayPort = 31013                         # Port HB_Bridge is listening on for data  (HB_Bridge <--- Partner)
toGatewayPort = 31010                           # Port Partner is listening on for data  (HB_Bridge ---> Partner)

[RULES]
# Name = Old TG, New TG, New Slot
#TG_SE = 3174, 3174, 2
#TG_NA = 3,3,1
#TG_ATL = 8,8,1
#TG_WW = 1,1,1
#TG_CLUSTER = 2,2,2 (In theory your repeaters should already be clustered and TG2 shouldn't traverse out to BM with this setup. Haven't completely tested this yet. Anything with a # stays local to the system..

# List all your TG's at BM you want to access and filter. This is required per BM "When someone keys up on a static TG on the wrong TS it becomes a dynamic route and routes over both TS's".) You #will notice traffic for say TAC310 coming in on both TS's due to the way people use their hot-spot's and radios. If you don't filter then when traffic comes in on TS2 for TAC310 you wont hear it cause #your radio is programmed for TS1 ;)

TG_310 = 310,310,1
TG_311 = 311,311,1
TG_312 = 312,312,1

... etc...

/etc/rc.local

cd path to dmr link folder/dmrlink
/usr/bin/python IPSC_Bridge.py &

sleep 2

cd path to HBlink folder/HBlink-HB_Bridge
/usr/bin/python HB_Bridge.py &


Raspberry PI:
dmrlink.cfg

[XPR8300]
# XPR8300 Repeater
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 55000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: False
CON_APP: True
XNL_CALL: False
XNL_MASTER: False
DATA_CALL: False
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: False
AUTH_KEY: 8675309
MASTER_IP: 10.1.100.10 (ip of your local lan repeater)
MASTER_PORT: 50000


[IPSCBRIDGE]
# Virtual IPSC Client Connection To Master IPSC Server.
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51001
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: False
CON_APP: True
XNL_CALL: False
XNL_MASTER: False
DATA_CALL: False
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309
MASTER_IP: IP OF YOUR REMOTE MASTER IPSC SERVER YOU CREATED
MASTER_PORT: 51000

confbridge_rules.py:

TRUNKS = ['IPSCBRIDGE']

BRIDGES = {
    'TAC310': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [310,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC311': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [311,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC312': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [312,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC313': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [313,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC314': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [314,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC315': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [315,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC316': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [316,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
     'TAC317': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [317,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC318': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [318,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC319': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [319,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'WORLDWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [91,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NORTHAMERICA': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [93,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'UPSTATENY': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [31361,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NATIONWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3100,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'STATEWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3136,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],


/etc/rc.local

cd path to your dmr link
/usr/bin/python confbridge.py &



I think that's about it..... ;) (sorry for any typos or grammatically incorrect paragraphs ;) And remember, this is homebrew and a work in progress still..... ;)
Good luck!!



SPAM

Peter M0NWI
 

Jamie,

Can you please stop spamming the group! ~40 emails in the past couple of days, today the same one with slight diffs lots of times!! Most of us figured this stuff out from the well documented example ini files, and maybe a few questions!

Peter
M0NWI


Re: How to make your own "unofficial" Master server!

Jamie R. Cid <jay@...>
 

Ok, Thanks.


From: Cort N0MJS <n0mjs@...>
To: <main@DVSwitch.groups.io>
Sent: 4/27/2018 2:02 PM
Subject: Re: [DVSwitch] How to make your own "unofficial" Master server!

DMRlink doesn’t currently process data calls. Enabling it in the config means you signal to other IPSC devices in the system that you’re capable of processing them. They’re not going anywhere anyway.

On Apr 27, 2018, at 11:23 AM, Jamie R. Cid <jay@...> wrote:

Would "DATA_CALL" false block GPS/ARS traffic?


From: Cort N0MJS <n0mjs@...>
To: <main@DVSwitch.groups.io>
Sent: 4/27/2018 12:11 PM
Subject: Re: [DVSwitch] How to make your own "unofficial" Master server!


RCM: True

Only if you’re actually doing something with the RCM data, otherwise you’re generating unnecessary traffic that does nothing

XNL_CALL: True

NEVER TRUE – setting this true can actually break things

XNL_MASTER: True

NEVER TRUE – setting this true can actually break things

DATA_CALL: True

NOT SET TRUE when you’re using it for voice-only applications, such as confbridge.py, IPSC_Bridge, etc.



From the comments in the sample configuration file:


# RCM:              Repeater Call Monitoring - don't unable unless you plan to
#                   actually use it, this creates extra network traffic.

# XNL_CALL:         Can cause problems if not set to False, DMRlink does not
#                   process XCMP/XNL calls.
# XNL_MASTER:       Obviously, should also be False, see XNL_CALL.

# DATA_CALL:        Process data calls. True if you want to process data calls








On Apr 27, 2018, at 10:59 AM, Jamie R. Cid <jay@...> wrote:

Hello All,

I figured I would post this since people have asked for it. If this is violating anything please feel free to remove it.

Ok,

** This guide assumes you have IPSC_Bridge, HB_Bridge and all the other necessities installed. **
** This guide assumes you are using an XPR Repeater in MASTER mode. **

Can you connect the XPR repeater directly to BM in client mode?? SURE! But what fun is that!? ;)

So what I was looking to do was create a kinda of master server to link all my sites and motorola repeaters together basically and give me a little more control of my systems. What I ended up building is a MASTER IPSC Server which listens for IPSC connections from raspberry pi's at the remote repeater sites and forwards them to BM. The raspberry pi is used because I didn't want the Motorola repeaters in CLIENT mode rather MASTER mode so I can still use my Motorola diagnostic tools and TRBONet software to connect to the repeater. (When the repeater is in client mode it wont accept any connections from diagnostic tools). Here's the thing to remember which I had to figure out, HB_Bridge and IPSC_Bridge BOTH run background programs that do the work so it really looks like (BM <---> hblink <---> HB_Bridge <---> UDP Sockets <--->  IPSC_Bridge <---> dmrlink <---> IPSC_Bridge <---> dmrlink <---> XPR Repeater). Something more like that *kinda. Still trying to dial that in exactly but I'm focused on the configs still :) For this all to work you need to login to BM and statically forward any TG's you want to your repeater. You must do this for TS1 and TS2 as Brandmeister alternates TS's in their system based on traffic of some sort. What we will do is create a rule for any traffic coming into the system on TS1 or 2 and say TAC310 to redirect to the officially documented TS of 1 and transmit that on your repeater. I did have this all installed on a single RPI3B But was having audio trans-coding issues so I moved it to a master Server/Rpi setup since that's what I really wanted anyway ;)

Here's a basic layout:
Master Server:
BM <---> HB_Bridge (BM Peer) <---> IPSC_Bridge (Master)

Raspberry Pi:
IPSC_Bridge (Peer) <---> ConfBridge (Peer) <---> XPR Repeater (Master)

Well lets get on to what you really want... And remember just because this all works for me don't mean it for everyone or officially approved by anyone ;) I hold no responsibility for anything other than my own setup!

Server Side:
dmrlink.cfg:

[IPSCBRIDGE]
# IPSC Virtual Master Server
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: True
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309

IPSC_Bridge.cfg:

[DEFAULTS]
debug = True                                    # Debug output for each VOICE frame
outToFile = False                               # Write each AMBE frame to a file called ambe.bin
outToUDP = True                                 # Send each AMBE frame to the _sock object (turn on/off IPSC_Bridge operation)

gateway = 127.0.0.1                             # IP address of Partner Application (HB_Bridge, Analog_Bridge)
fromGatewayPort = 31010                         # Port IPSC_Bridge is listening on for data  IPSC_Bridge <--- Partner
toGatewayPort = 31013                           # Port used to send data to Partner IPSC_Bridge ---> Partner

gatewayDmrId = 12345                            # Deprecated no longer used. Required for now.

# remoteControlPort = 31002                     # Deprecated, no longer used. Will be removed IGNORE!
tgFilter = 1,3,9                              # Deprecated, no longer used. Will be removed IGNORE!
# txTg = 9                                      # Deprecated, no longer used. Will be removed IGNORE!
# txTs = 2


hblink.cfg:

[BRANDMEISTER]
MODE: CLIENT
ENABLED: True
EXPORT_AMBE: False
IP:
PORT: 54000
MASTER_IP: IP OF YOUR FRIENDLY BM SERVER
MASTER_PORT: 62031
PASSPHRASE: passw0rd
CALLSIGN: YOURCALL
RADIO_ID: 123456
RX_FREQ: 000000000
TX_FREQ: 000000000
TX_POWER: 45
COLORCODE: 1
SLOTS: 2
LATITUDE: 00.0000
LONGITUDE: -00.0000
HEIGHT: 75
LOCATION: Somewhere, USA
DESCRIPTION: DMR Repeater
URL: http://www.google.com
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 0
OPTIONS:

[DEFAULTS]
gateway = 127.0.0.1                             # IP address of Partner Application (IPSC_Bridge, Analog_Bridge)
fromGatewayPort = 31013                         # Port HB_Bridge is listening on for data  (HB_Bridge <--- Partner)
toGatewayPort = 31010                           # Port Partner is listening on for data  (HB_Bridge ---> Partner)

[RULES]
# Name = Old TG, New TG, New Slot
#TG_SE = 3174, 3174, 2
#TG_NA = 3,3,1
#TG_ATL = 8,8,1
#TG_WW = 1,1,1
TG_310 = 310,310,1 (This is our TAC310 rule to redirect TS1 and TS2 from BM to TS1 on our repeater.

/etc/rc.local

cd path to dmr link folder/dmrlink
/usr/bin/python IPSC_Bridge.py &

sleep 2

cd path to HBlink folder/HBlink-HB_Bridge
/usr/bin/python HB_Bridge.py &


Raspberry PI:
dmrlink.cfg

[XPR8300]
# XPR8300 Repeater
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 55000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: False
AUTH_KEY: 8675309
MASTER_IP: 10.1.100.10 (ip of your local lan repeater)
MASTER_PORT: 50000


[IPSCBRIDGE]
# Virtual IPSC Client Connection To Master IPSC Server.
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51001
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309
MASTER_IP: IP OF YOUR REMOTE MASTER IPSC SERVER YOU CREATED
MASTER_PORT: 51000

confbridge_rules.py:

TRUNKS = ['IPSCBRIDGE']

BRIDGES = {
    'TAC310': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [310,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC311': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [311,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC312': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [312,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC313': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [313,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC314': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [314,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC315': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [315,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC316': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [316,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
     'TAC317': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [317,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC318': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [318,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC319': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [319,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'WORLDWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [91,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NORTHAMERICA': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [93,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'UPSTATENY': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [31361,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NATIONWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3100,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'STATEWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3136,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],


/etc/rc.local

cd path to your dmr link
/usr/bin/python confbridge.py &


I think that's about it..... ;) (sorry for any typos or grammatically incorrect paragraphs ;)
Good luck!!

Cort Buffington
785-865-7206


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






Re: How to make your own "unofficial" Master server!

Cort N0MJS <n0mjs@...>
 

DMRlink doesn’t currently process data calls. Enabling it in the config means you signal to other IPSC devices in the system that you’re capable of processing them. They’re not going anywhere anyway.

On Apr 27, 2018, at 11:23 AM, Jamie R. Cid <jay@...> wrote:

Would "DATA_CALL" false block GPS/ARS traffic?


From: Cort N0MJS <n0mjs@...>
To: <main@DVSwitch.groups.io>
Sent: 4/27/2018 12:11 PM
Subject: Re: [DVSwitch] How to make your own "unofficial" Master server!


RCM: True

Only if you’re actually doing something with the RCM data, otherwise you’re generating unnecessary traffic that does nothing

XNL_CALL: True

NEVER TRUE – setting this true can actually break things

XNL_MASTER: True

NEVER TRUE – setting this true can actually break things

DATA_CALL: True

NOT SET TRUE when you’re using it for voice-only applications, such as confbridge.py, IPSC_Bridge, etc.



From the comments in the sample configuration file:


# RCM:              Repeater Call Monitoring - don't unable unless you plan to
#                   actually use it, this creates extra network traffic.

# XNL_CALL:         Can cause problems if not set to False, DMRlink does not
#                   process XCMP/XNL calls.
# XNL_MASTER:       Obviously, should also be False, see XNL_CALL.

# DATA_CALL:        Process data calls. True if you want to process data calls








On Apr 27, 2018, at 10:59 AM, Jamie R. Cid <jay@...> wrote:

Hello All,

I figured I would post this since people have asked for it. If this is violating anything please feel free to remove it.

Ok,

** This guide assumes you have IPSC_Bridge, HB_Bridge and all the other necessities installed. **
** This guide assumes you are using an XPR Repeater in MASTER mode. **

Can you connect the XPR repeater directly to BM in client mode?? SURE! But what fun is that!? ;)

So what I was looking to do was create a kinda of master server to link all my sites and motorola repeaters together basically and give me a little more control of my systems. What I ended up building is a MASTER IPSC Server which listens for IPSC connections from raspberry pi's at the remote repeater sites and forwards them to BM. The raspberry pi is used because I didn't want the Motorola repeaters in CLIENT mode rather MASTER mode so I can still use my Motorola diagnostic tools and TRBONet software to connect to the repeater. (When the repeater is in client mode it wont accept any connections from diagnostic tools). Here's the thing to remember which I had to figure out, HB_Bridge and IPSC_Bridge BOTH run background programs that do the work so it really looks like (BM <---> hblink <---> HB_Bridge <---> UDP Sockets <--->  IPSC_Bridge <---> dmrlink <---> IPSC_Bridge <---> dmrlink <---> XPR Repeater). Something more like that *kinda. Still trying to dial that in exactly but I'm focused on the configs still :) For this all to work you need to login to BM and statically forward any TG's you want to your repeater. You must do this for TS1 and TS2 as Brandmeister alternates TS's in their system based on traffic of some sort. What we will do is create a rule for any traffic coming into the system on TS1 or 2 and say TAC310 to redirect to the officially documented TS of 1 and transmit that on your repeater. I did have this all installed on a single RPI3B But was having audio trans-coding issues so I moved it to a master Server/Rpi setup since that's what I really wanted anyway ;)

Here's a basic layout:
Master Server:
BM <---> HB_Bridge (BM Peer) <---> IPSC_Bridge (Master)

Raspberry Pi:
IPSC_Bridge (Peer) <---> ConfBridge (Peer) <---> XPR Repeater (Master)

Well lets get on to what you really want... And remember just because this all works for me don't mean it for everyone or officially approved by anyone ;) I hold no responsibility for anything other than my own setup!

Server Side:
dmrlink.cfg:

[IPSCBRIDGE]
# IPSC Virtual Master Server
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: True
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309

IPSC_Bridge.cfg:

[DEFAULTS]
debug = True                                    # Debug output for each VOICE frame
outToFile = False                               # Write each AMBE frame to a file called ambe.bin
outToUDP = True                                 # Send each AMBE frame to the _sock object (turn on/off IPSC_Bridge operation)

gateway = 127.0.0.1                             # IP address of Partner Application (HB_Bridge, Analog_Bridge)
fromGatewayPort = 31010                         # Port IPSC_Bridge is listening on for data  IPSC_Bridge <--- Partner
toGatewayPort = 31013                           # Port used to send data to Partner IPSC_Bridge ---> Partner

gatewayDmrId = 12345                            # Deprecated no longer used. Required for now.

# remoteControlPort = 31002                     # Deprecated, no longer used. Will be removed IGNORE!
tgFilter = 1,3,9                              # Deprecated, no longer used. Will be removed IGNORE!
# txTg = 9                                      # Deprecated, no longer used. Will be removed IGNORE!
# txTs = 2


hblink.cfg:

[BRANDMEISTER]
MODE: CLIENT
ENABLED: True
EXPORT_AMBE: False
IP:
PORT: 54000
MASTER_IP: IP OF YOUR FRIENDLY BM SERVER
MASTER_PORT: 62031
PASSPHRASE: passw0rd
CALLSIGN: YOURCALL
RADIO_ID: 123456
RX_FREQ: 000000000
TX_FREQ: 000000000
TX_POWER: 45
COLORCODE: 1
SLOTS: 2
LATITUDE: 00.0000
LONGITUDE: -00.0000
HEIGHT: 75
LOCATION: Somewhere, USA
DESCRIPTION: DMR Repeater
URL: http://www.google.com
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 0
OPTIONS:

[DEFAULTS]
gateway = 127.0.0.1                             # IP address of Partner Application (IPSC_Bridge, Analog_Bridge)
fromGatewayPort = 31013                         # Port HB_Bridge is listening on for data  (HB_Bridge <--- Partner)
toGatewayPort = 31010                           # Port Partner is listening on for data  (HB_Bridge ---> Partner)

[RULES]
# Name = Old TG, New TG, New Slot
#TG_SE = 3174, 3174, 2
#TG_NA = 3,3,1
#TG_ATL = 8,8,1
#TG_WW = 1,1,1
TG_310 = 310,310,1 (This is our TAC310 rule to redirect TS1 and TS2 from BM to TS1 on our repeater.

/etc/rc.local

cd path to dmr link folder/dmrlink
/usr/bin/python IPSC_Bridge.py &

sleep 2

cd path to HBlink folder/HBlink-HB_Bridge
/usr/bin/python HB_Bridge.py &


Raspberry PI:
dmrlink.cfg

[XPR8300]
# XPR8300 Repeater
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 55000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: False
AUTH_KEY: 8675309
MASTER_IP: 10.1.100.10 (ip of your local lan repeater)
MASTER_PORT: 50000


[IPSCBRIDGE]
# Virtual IPSC Client Connection To Master IPSC Server.
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51001
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309
MASTER_IP: IP OF YOUR REMOTE MASTER IPSC SERVER YOU CREATED
MASTER_PORT: 51000

confbridge_rules.py:

TRUNKS = ['IPSCBRIDGE']

BRIDGES = {
    'TAC310': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [310,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC311': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [311,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC312': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [312,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC313': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [313,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC314': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [314,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC315': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [315,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC316': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [316,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
     'TAC317': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [317,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC318': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [318,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC319': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [319,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'WORLDWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [91,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NORTHAMERICA': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [93,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'UPSTATENY': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [31361,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NATIONWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3100,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'STATEWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3136,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],


/etc/rc.local

cd path to your dmr link
/usr/bin/python confbridge.py &


I think that's about it..... ;) (sorry for any typos or grammatically incorrect paragraphs ;)
Good luck!!

Cort Buffington
785-865-7206


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






Re: How to make your own "unofficial" Master server!

Steve N4IRS
 

Make sure your selfcare account is active
Send a e-mail to dmr-admins@...
Include your call sign
The repeater DMR ID
What master are you connected to
The fact that you are requesting sysop access to your repeater.

On 4/27/2018 12:52 PM, Jamie R. Cid wrote:
Hi Corey,

I was unaware that was even an option as do most. I think It would be great to add that to my post so people know and I can adjust my configs.

Can you write me a small howto on requesting that?


From: Corey Dean N3FE <n3fe@...>
To: <main@DVSwitch.groups.io>
Sent: 4/27/2018 12:28 PM
Subject: Re: [DVSwitch] How to make your own "unofficial" Master server!

One thing I do not see...  first you need to connect I bm using a 6 digit Repeater id.  Bm does NOT swap the time slots on you.  If you are using a Repeater id for the connection and we give you sysop rights you will be able to control things from the control panel.  If you haven’t done that then your system will think you are a hot spot and screw up your time slots and I don’t remember seeing a request to give you sysop rights to your Repeater id.

Corey n3fe


On Apr 27, 2018, at 11:59 AM, Jamie R. Cid <jay@...> wrote:

[Edited Message Follows]

Hello All,

I figured I would post this since people have asked for it. If this is violating anything please feel free to remove it.

Kudos to the developers for making such great apps!!!

Ok,

** This guide assumes you have IPSC_Bridge, HB_Bridge and all the other necessities installed. **
** This guide assumes you are using an XPR Repeater in MASTER mode. **

Can you connect the XPR repeater directly to BM in client mode?? SURE! But what fun is that!? ;)

So what I was looking to do was create a kinda of master server to link all my sites and motorola repeaters together basically and give me a little more control of my systems. What I ended up building is a MASTER IPSC Server which listens for IPSC connections from raspberry pi's at the remote repeater sites and forwards them to BM. The raspberry pi is used because I didn't want the Motorola repeaters in CLIENT mode rather MASTER mode so I can still use my Motorola diagnostic tools and TRBONet software to connect to the repeater. (When the repeater is in client mode it wont accept any connections from diagnostic tools). Here's the thing to remember which I had to figure out, HB_Bridge and IPSC_Bridge BOTH run background programs that do the work so it really looks like (BM <---> hblink <---> HB_Bridge <---> UDP Sockets <--->  IPSC_Bridge <---> dmrlink <---> IPSC_Bridge <---> dmrlink <---> XPR Repeater). Something more like that *kinda. Still trying to dial that in exactly but I'm focused on the configs still :) For this all to work you need to login to BM and statically forward any TG's you want to your repeater. You must do this for TS1 and TS2 as Brandmeister alternates TS's in their system based on traffic of some sort. What we will do is create a rule for any traffic coming into the system on TS1 or 2 and say TAC310 to redirect to the officially documented TS of 1 and transmit that on your repeater. I did have this all installed on a single RPI3B But was having audio trans-coding issues so I moved it to a master Server/Rpi setup since that's what I really wanted anyway ;)

Here's a basic layout:
Master Server:
BM <---> HB_Bridge (BM Peer) <---> IPSC_Bridge (Master)

Raspberry Pi:
IPSC_Bridge (Peer) <---> ConfBridge (Peer) <---> XPR Repeater (Master)

Well lets get on to what you really want... And remember just because this all works for me don't mean it for everyone or officially approved by anyone ;) I hold no responsibility for anything other than my own setup!

Server Side:
dmrlink.cfg:

[IPSCBRIDGE]
# IPSC Virtual Master Server
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: True
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309

IPSC_Bridge.cfg:

[DEFAULTS]
debug = True                                    # Debug output for each VOICE frame
outToFile = False                               # Write each AMBE frame to a file called ambe.bin
outToUDP = True                                 # Send each AMBE frame to the _sock object (turn on/off IPSC_Bridge operation)

gateway = 127.0.0.1                             # IP address of Partner Application (HB_Bridge, Analog_Bridge)
fromGatewayPort = 31010                         # Port IPSC_Bridge is listening on for data  IPSC_Bridge <--- Partner
toGatewayPort = 31013                           # Port used to send data to Partner IPSC_Bridge ---> Partner

gatewayDmrId = 12345                            # Deprecated no longer used. Required for now.

# remoteControlPort = 31002                     # Deprecated, no longer used. Will be removed IGNORE!
tgFilter = 1,3,9                              # Deprecated, no longer used. Will be removed IGNORE!
# txTg = 9                                      # Deprecated, no longer used. Will be removed IGNORE!
# txTs = 2


hblink.cfg:

[BRANDMEISTER]
MODE: CLIENT
ENABLED: True
EXPORT_AMBE: False
IP:
PORT: 54000
MASTER_IP: IP OF YOUR FRIENDLY BM SERVER
MASTER_PORT: 62031
PASSPHRASE: passw0rd
CALLSIGN: YOURCALL
RADIO_ID: 123456
RX_FREQ: 000000000
TX_FREQ: 000000000
TX_POWER: 45
COLORCODE: 1
SLOTS: 2
LATITUDE: 00.0000
LONGITUDE: -00.0000
HEIGHT: 75
LOCATION: Somewhere, USA
DESCRIPTION: DMR Repeater
URL: http://www.google.com
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 0
OPTIONS:

[DEFAULTS]
gateway = 127.0.0.1                             # IP address of Partner Application (IPSC_Bridge, Analog_Bridge)
fromGatewayPort = 31013                         # Port HB_Bridge is listening on for data  (HB_Bridge <--- Partner)
toGatewayPort = 31010                           # Port Partner is listening on for data  (HB_Bridge ---> Partner)

[RULES]
# Name = Old TG, New TG, New Slot
#TG_SE = 3174, 3174, 2
#TG_NA = 3,3,1
#TG_ATL = 8,8,1
#TG_WW = 1,1,1
TG_310 = 310,310,1 (This is our TAC310 rule to redirect TS1 and TS2 from BM to TS1 on our repeater.

/etc/rc.local

cd path to dmr link folder/dmrlink
/usr/bin/python IPSC_Bridge.py &

sleep 2

cd path to HBlink folder/HBlink-HB_Bridge
/usr/bin/python HB_Bridge.py &


Raspberry PI:
dmrlink.cfg

[XPR8300]
# XPR8300 Repeater
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 55000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: False
AUTH_KEY: 8675309
MASTER_IP: 10.1.100.10 (ip of your local lan repeater)
MASTER_PORT: 50000


[IPSCBRIDGE]
# Virtual IPSC Client Connection To Master IPSC Server.
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51001
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309
MASTER_IP: IP OF YOUR REMOTE MASTER IPSC SERVER YOU CREATED
MASTER_PORT: 51000

confbridge_rules.py:

TRUNKS = ['IPSCBRIDGE']

BRIDGES = {
    'TAC310': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [310,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC311': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [311,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC312': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [312,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC313': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [313,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC314': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [314,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC315': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [315,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC316': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [316,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
     'TAC317': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [317,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC318': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [318,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC319': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [319,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'WORLDWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [91,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NORTHAMERICA': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [93,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'UPSTATENY': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [31361,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NATIONWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3100,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'STATEWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3136,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],


/etc/rc.local

cd path to your dmr link
/usr/bin/python confbridge.py &


I think that's about it..... ;) (sorry for any typos or grammatically incorrect paragraphs ;)
Good luck!!


Re: How to make your own "unofficial" Master server!

Jamie R. Cid <jay@...>
 

Hi Corey,

I was unaware that was even an option as do most. I think It would be great to add that to my post so people know and I can adjust my configs.

Can you write me a small howto on requesting that?


From: Corey Dean N3FE <n3fe@...>
To: <main@DVSwitch.groups.io>
Sent: 4/27/2018 12:28 PM
Subject: Re: [DVSwitch] How to make your own "unofficial" Master server!

One thing I do not see...  first you need to connect I bm using a 6 digit Repeater id.  Bm does NOT swap the time slots on you.  If you are using a Repeater id for the connection and we give you sysop rights you will be able to control things from the control panel.  If you haven’t done that then your system will think you are a hot spot and screw up your time slots and I don’t remember seeing a request to give you sysop rights to your Repeater id.

Corey n3fe


On Apr 27, 2018, at 11:59 AM, Jamie R. Cid <jay@...> wrote:

[Edited Message Follows]

Hello All,

I figured I would post this since people have asked for it. If this is violating anything please feel free to remove it.

Kudos to the developers for making such great apps!!!

Ok,

** This guide assumes you have IPSC_Bridge, HB_Bridge and all the other necessities installed. **
** This guide assumes you are using an XPR Repeater in MASTER mode. **

Can you connect the XPR repeater directly to BM in client mode?? SURE! But what fun is that!? ;)

So what I was looking to do was create a kinda of master server to link all my sites and motorola repeaters together basically and give me a little more control of my systems. What I ended up building is a MASTER IPSC Server which listens for IPSC connections from raspberry pi's at the remote repeater sites and forwards them to BM. The raspberry pi is used because I didn't want the Motorola repeaters in CLIENT mode rather MASTER mode so I can still use my Motorola diagnostic tools and TRBONet software to connect to the repeater. (When the repeater is in client mode it wont accept any connections from diagnostic tools). Here's the thing to remember which I had to figure out, HB_Bridge and IPSC_Bridge BOTH run background programs that do the work so it really looks like (BM <---> hblink <---> HB_Bridge <---> UDP Sockets <--->  IPSC_Bridge <---> dmrlink <---> IPSC_Bridge <---> dmrlink <---> XPR Repeater). Something more like that *kinda. Still trying to dial that in exactly but I'm focused on the configs still :) For this all to work you need to login to BM and statically forward any TG's you want to your repeater. You must do this for TS1 and TS2 as Brandmeister alternates TS's in their system based on traffic of some sort. What we will do is create a rule for any traffic coming into the system on TS1 or 2 and say TAC310 to redirect to the officially documented TS of 1 and transmit that on your repeater. I did have this all installed on a single RPI3B But was having audio trans-coding issues so I moved it to a master Server/Rpi setup since that's what I really wanted anyway ;)

Here's a basic layout:
Master Server:
BM <---> HB_Bridge (BM Peer) <---> IPSC_Bridge (Master)

Raspberry Pi:
IPSC_Bridge (Peer) <---> ConfBridge (Peer) <---> XPR Repeater (Master)

Well lets get on to what you really want... And remember just because this all works for me don't mean it for everyone or officially approved by anyone ;) I hold no responsibility for anything other than my own setup!

Server Side:
dmrlink.cfg:

[IPSCBRIDGE]
# IPSC Virtual Master Server
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: True
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309

IPSC_Bridge.cfg:

[DEFAULTS]
debug = True                                    # Debug output for each VOICE frame
outToFile = False                               # Write each AMBE frame to a file called ambe.bin
outToUDP = True                                 # Send each AMBE frame to the _sock object (turn on/off IPSC_Bridge operation)

gateway = 127.0.0.1                             # IP address of Partner Application (HB_Bridge, Analog_Bridge)
fromGatewayPort = 31010                         # Port IPSC_Bridge is listening on for data  IPSC_Bridge <--- Partner
toGatewayPort = 31013                           # Port used to send data to Partner IPSC_Bridge ---> Partner

gatewayDmrId = 12345                            # Deprecated no longer used. Required for now.

# remoteControlPort = 31002                     # Deprecated, no longer used. Will be removed IGNORE!
tgFilter = 1,3,9                              # Deprecated, no longer used. Will be removed IGNORE!
# txTg = 9                                      # Deprecated, no longer used. Will be removed IGNORE!
# txTs = 2


hblink.cfg:

[BRANDMEISTER]
MODE: CLIENT
ENABLED: True
EXPORT_AMBE: False
IP:
PORT: 54000
MASTER_IP: IP OF YOUR FRIENDLY BM SERVER
MASTER_PORT: 62031
PASSPHRASE: passw0rd
CALLSIGN: YOURCALL
RADIO_ID: 123456
RX_FREQ: 000000000
TX_FREQ: 000000000
TX_POWER: 45
COLORCODE: 1
SLOTS: 2
LATITUDE: 00.0000
LONGITUDE: -00.0000
HEIGHT: 75
LOCATION: Somewhere, USA
DESCRIPTION: DMR Repeater
URL: http://www.google.com
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 0
OPTIONS:

[DEFAULTS]
gateway = 127.0.0.1                             # IP address of Partner Application (IPSC_Bridge, Analog_Bridge)
fromGatewayPort = 31013                         # Port HB_Bridge is listening on for data  (HB_Bridge <--- Partner)
toGatewayPort = 31010                           # Port Partner is listening on for data  (HB_Bridge ---> Partner)

[RULES]
# Name = Old TG, New TG, New Slot
#TG_SE = 3174, 3174, 2
#TG_NA = 3,3,1
#TG_ATL = 8,8,1
#TG_WW = 1,1,1
TG_310 = 310,310,1 (This is our TAC310 rule to redirect TS1 and TS2 from BM to TS1 on our repeater.

/etc/rc.local

cd path to dmr link folder/dmrlink
/usr/bin/python IPSC_Bridge.py &

sleep 2

cd path to HBlink folder/HBlink-HB_Bridge
/usr/bin/python HB_Bridge.py &


Raspberry PI:
dmrlink.cfg

[XPR8300]
# XPR8300 Repeater
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 55000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: False
AUTH_KEY: 8675309
MASTER_IP: 10.1.100.10 (ip of your local lan repeater)
MASTER_PORT: 50000


[IPSCBRIDGE]
# Virtual IPSC Client Connection To Master IPSC Server.
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51001
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309
MASTER_IP: IP OF YOUR REMOTE MASTER IPSC SERVER YOU CREATED
MASTER_PORT: 51000

confbridge_rules.py:

TRUNKS = ['IPSCBRIDGE']

BRIDGES = {
    'TAC310': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [310,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC311': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [311,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC312': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [312,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC313': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [313,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC314': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [314,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC315': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [315,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC316': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [316,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
     'TAC317': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [317,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC318': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [318,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC319': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [319,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'WORLDWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [91,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NORTHAMERICA': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [93,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'UPSTATENY': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [31361,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NATIONWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3100,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'STATEWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3136,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],


/etc/rc.local

cd path to your dmr link
/usr/bin/python confbridge.py &


I think that's about it..... ;) (sorry for any typos or grammatically incorrect paragraphs ;)
Good luck!!


Re: How to make your own "unofficial" Master server!

Corey Dean N3FE <n3fe@...>
 

One thing I do not see...  first you need to connect I bm using a 6 digit Repeater id.  Bm does NOT swap the time slots on you.  If you are using a Repeater id for the connection and we give you sysop rights you will be able to control things from the control panel.  If you haven’t done that then your system will think you are a hot spot and screw up your time slots and I don’t remember seeing a request to give you sysop rights to your Repeater id.

Corey n3fe


On Apr 27, 2018, at 11:59 AM, Jamie R. Cid <jay@...> wrote:

[Edited Message Follows]

Hello All,

I figured I would post this since people have asked for it. If this is violating anything please feel free to remove it.

Kudos to the developers for making such great apps!!!

Ok,

** This guide assumes you have IPSC_Bridge, HB_Bridge and all the other necessities installed. **
** This guide assumes you are using an XPR Repeater in MASTER mode. **

Can you connect the XPR repeater directly to BM in client mode?? SURE! But what fun is that!? ;)

So what I was looking to do was create a kinda of master server to link all my sites and motorola repeaters together basically and give me a little more control of my systems. What I ended up building is a MASTER IPSC Server which listens for IPSC connections from raspberry pi's at the remote repeater sites and forwards them to BM. The raspberry pi is used because I didn't want the Motorola repeaters in CLIENT mode rather MASTER mode so I can still use my Motorola diagnostic tools and TRBONet software to connect to the repeater. (When the repeater is in client mode it wont accept any connections from diagnostic tools). Here's the thing to remember which I had to figure out, HB_Bridge and IPSC_Bridge BOTH run background programs that do the work so it really looks like (BM <---> hblink <---> HB_Bridge <---> UDP Sockets <--->  IPSC_Bridge <---> dmrlink <---> IPSC_Bridge <---> dmrlink <---> XPR Repeater). Something more like that *kinda. Still trying to dial that in exactly but I'm focused on the configs still :) For this all to work you need to login to BM and statically forward any TG's you want to your repeater. You must do this for TS1 and TS2 as Brandmeister alternates TS's in their system based on traffic of some sort. What we will do is create a rule for any traffic coming into the system on TS1 or 2 and say TAC310 to redirect to the officially documented TS of 1 and transmit that on your repeater. I did have this all installed on a single RPI3B But was having audio trans-coding issues so I moved it to a master Server/Rpi setup since that's what I really wanted anyway ;)

Here's a basic layout:
Master Server:
BM <---> HB_Bridge (BM Peer) <---> IPSC_Bridge (Master)

Raspberry Pi:
IPSC_Bridge (Peer) <---> ConfBridge (Peer) <---> XPR Repeater (Master)

Well lets get on to what you really want... And remember just because this all works for me don't mean it for everyone or officially approved by anyone ;) I hold no responsibility for anything other than my own setup!

Server Side:
dmrlink.cfg:

[IPSCBRIDGE]
# IPSC Virtual Master Server
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: True
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309

IPSC_Bridge.cfg:

[DEFAULTS]
debug = True                                    # Debug output for each VOICE frame
outToFile = False                               # Write each AMBE frame to a file called ambe.bin
outToUDP = True                                 # Send each AMBE frame to the _sock object (turn on/off IPSC_Bridge operation)

gateway = 127.0.0.1                             # IP address of Partner Application (HB_Bridge, Analog_Bridge)
fromGatewayPort = 31010                         # Port IPSC_Bridge is listening on for data  IPSC_Bridge <--- Partner
toGatewayPort = 31013                           # Port used to send data to Partner IPSC_Bridge ---> Partner

gatewayDmrId = 12345                            # Deprecated no longer used. Required for now.

# remoteControlPort = 31002                     # Deprecated, no longer used. Will be removed IGNORE!
tgFilter = 1,3,9                              # Deprecated, no longer used. Will be removed IGNORE!
# txTg = 9                                      # Deprecated, no longer used. Will be removed IGNORE!
# txTs = 2


hblink.cfg:

[BRANDMEISTER]
MODE: CLIENT
ENABLED: True
EXPORT_AMBE: False
IP:
PORT: 54000
MASTER_IP: IP OF YOUR FRIENDLY BM SERVER
MASTER_PORT: 62031
PASSPHRASE: passw0rd
CALLSIGN: YOURCALL
RADIO_ID: 123456
RX_FREQ: 000000000
TX_FREQ: 000000000
TX_POWER: 45
COLORCODE: 1
SLOTS: 2
LATITUDE: 00.0000
LONGITUDE: -00.0000
HEIGHT: 75
LOCATION: Somewhere, USA
DESCRIPTION: DMR Repeater
URL: http://www.google.com
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 0
OPTIONS:

[DEFAULTS]
gateway = 127.0.0.1                             # IP address of Partner Application (IPSC_Bridge, Analog_Bridge)
fromGatewayPort = 31013                         # Port HB_Bridge is listening on for data  (HB_Bridge <--- Partner)
toGatewayPort = 31010                           # Port Partner is listening on for data  (HB_Bridge ---> Partner)

[RULES]
# Name = Old TG, New TG, New Slot
#TG_SE = 3174, 3174, 2
#TG_NA = 3,3,1
#TG_ATL = 8,8,1
#TG_WW = 1,1,1
TG_310 = 310,310,1 (This is our TAC310 rule to redirect TS1 and TS2 from BM to TS1 on our repeater.

/etc/rc.local

cd path to dmr link folder/dmrlink
/usr/bin/python IPSC_Bridge.py &

sleep 2

cd path to HBlink folder/HBlink-HB_Bridge
/usr/bin/python HB_Bridge.py &


Raspberry PI:
dmrlink.cfg

[XPR8300]
# XPR8300 Repeater
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 55000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: False
AUTH_KEY: 8675309
MASTER_IP: 10.1.100.10 (ip of your local lan repeater)
MASTER_PORT: 50000


[IPSCBRIDGE]
# Virtual IPSC Client Connection To Master IPSC Server.
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51001
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309
MASTER_IP: IP OF YOUR REMOTE MASTER IPSC SERVER YOU CREATED
MASTER_PORT: 51000

confbridge_rules.py:

TRUNKS = ['IPSCBRIDGE']

BRIDGES = {
    'TAC310': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [310,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC311': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [311,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC312': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [312,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC313': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [313,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC314': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [314,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC315': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [315,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC316': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [316,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
     'TAC317': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [317,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC318': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [318,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC319': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [319,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'WORLDWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [91,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NORTHAMERICA': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [93,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'UPSTATENY': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [31361,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NATIONWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3100,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'STATEWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3136,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],


/etc/rc.local

cd path to your dmr link
/usr/bin/python confbridge.py &


I think that's about it..... ;) (sorry for any typos or grammatically incorrect paragraphs ;)
Good luck!!


Re: How to make your own "unofficial" Master server!

Jamie R. Cid <jay@...>
 

Would "DATA_CALL" false block GPS/ARS traffic?


From: Cort N0MJS <n0mjs@...>
To: <main@DVSwitch.groups.io>
Sent: 4/27/2018 12:11 PM
Subject: Re: [DVSwitch] How to make your own "unofficial" Master server!


RCM: True

Only if you’re actually doing something with the RCM data, otherwise you’re generating unnecessary traffic that does nothing

XNL_CALL: True

NEVER TRUE – setting this true can actually break things

XNL_MASTER: True

NEVER TRUE – setting this true can actually break things

DATA_CALL: True

NOT SET TRUE when you’re using it for voice-only applications, such as confbridge.py, IPSC_Bridge, etc.



From the comments in the sample configuration file:


# RCM:              Repeater Call Monitoring - don't unable unless you plan to
#                   actually use it, this creates extra network traffic.

# XNL_CALL:         Can cause problems if not set to False, DMRlink does not
#                   process XCMP/XNL calls.
# XNL_MASTER:       Obviously, should also be False, see XNL_CALL.

# DATA_CALL:        Process data calls. True if you want to process data calls








On Apr 27, 2018, at 10:59 AM, Jamie R. Cid <jay@...> wrote:

Hello All,

I figured I would post this since people have asked for it. If this is violating anything please feel free to remove it.

Ok,

** This guide assumes you have IPSC_Bridge, HB_Bridge and all the other necessities installed. **
** This guide assumes you are using an XPR Repeater in MASTER mode. **

Can you connect the XPR repeater directly to BM in client mode?? SURE! But what fun is that!? ;)

So what I was looking to do was create a kinda of master server to link all my sites and motorola repeaters together basically and give me a little more control of my systems. What I ended up building is a MASTER IPSC Server which listens for IPSC connections from raspberry pi's at the remote repeater sites and forwards them to BM. The raspberry pi is used because I didn't want the Motorola repeaters in CLIENT mode rather MASTER mode so I can still use my Motorola diagnostic tools and TRBONet software to connect to the repeater. (When the repeater is in client mode it wont accept any connections from diagnostic tools). Here's the thing to remember which I had to figure out, HB_Bridge and IPSC_Bridge BOTH run background programs that do the work so it really looks like (BM <---> hblink <---> HB_Bridge <---> UDP Sockets <--->  IPSC_Bridge <---> dmrlink <---> IPSC_Bridge <---> dmrlink <---> XPR Repeater). Something more like that *kinda. Still trying to dial that in exactly but I'm focused on the configs still :) For this all to work you need to login to BM and statically forward any TG's you want to your repeater. You must do this for TS1 and TS2 as Brandmeister alternates TS's in their system based on traffic of some sort. What we will do is create a rule for any traffic coming into the system on TS1 or 2 and say TAC310 to redirect to the officially documented TS of 1 and transmit that on your repeater. I did have this all installed on a single RPI3B But was having audio trans-coding issues so I moved it to a master Server/Rpi setup since that's what I really wanted anyway ;)

Here's a basic layout:
Master Server:
BM <---> HB_Bridge (BM Peer) <---> IPSC_Bridge (Master)

Raspberry Pi:
IPSC_Bridge (Peer) <---> ConfBridge (Peer) <---> XPR Repeater (Master)

Well lets get on to what you really want... And remember just because this all works for me don't mean it for everyone or officially approved by anyone ;) I hold no responsibility for anything other than my own setup!

Server Side:
dmrlink.cfg:

[IPSCBRIDGE]
# IPSC Virtual Master Server
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: True
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309

IPSC_Bridge.cfg:

[DEFAULTS]
debug = True                                    # Debug output for each VOICE frame
outToFile = False                               # Write each AMBE frame to a file called ambe.bin
outToUDP = True                                 # Send each AMBE frame to the _sock object (turn on/off IPSC_Bridge operation)

gateway = 127.0.0.1                             # IP address of Partner Application (HB_Bridge, Analog_Bridge)
fromGatewayPort = 31010                         # Port IPSC_Bridge is listening on for data  IPSC_Bridge <--- Partner
toGatewayPort = 31013                           # Port used to send data to Partner IPSC_Bridge ---> Partner

gatewayDmrId = 12345                            # Deprecated no longer used. Required for now.

# remoteControlPort = 31002                     # Deprecated, no longer used. Will be removed IGNORE!
tgFilter = 1,3,9                              # Deprecated, no longer used. Will be removed IGNORE!
# txTg = 9                                      # Deprecated, no longer used. Will be removed IGNORE!
# txTs = 2


hblink.cfg:

[BRANDMEISTER]
MODE: CLIENT
ENABLED: True
EXPORT_AMBE: False
IP:
PORT: 54000
MASTER_IP: IP OF YOUR FRIENDLY BM SERVER
MASTER_PORT: 62031
PASSPHRASE: passw0rd
CALLSIGN: YOURCALL
RADIO_ID: 123456
RX_FREQ: 000000000
TX_FREQ: 000000000
TX_POWER: 45
COLORCODE: 1
SLOTS: 2
LATITUDE: 00.0000
LONGITUDE: -00.0000
HEIGHT: 75
LOCATION: Somewhere, USA
DESCRIPTION: DMR Repeater
URL: http://www.google.com
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 0
OPTIONS:

[DEFAULTS]
gateway = 127.0.0.1                             # IP address of Partner Application (IPSC_Bridge, Analog_Bridge)
fromGatewayPort = 31013                         # Port HB_Bridge is listening on for data  (HB_Bridge <--- Partner)
toGatewayPort = 31010                           # Port Partner is listening on for data  (HB_Bridge ---> Partner)

[RULES]
# Name = Old TG, New TG, New Slot
#TG_SE = 3174, 3174, 2
#TG_NA = 3,3,1
#TG_ATL = 8,8,1
#TG_WW = 1,1,1
TG_310 = 310,310,1 (This is our TAC310 rule to redirect TS1 and TS2 from BM to TS1 on our repeater.

/etc/rc.local

cd path to dmr link folder/dmrlink
/usr/bin/python IPSC_Bridge.py &

sleep 2

cd path to HBlink folder/HBlink-HB_Bridge
/usr/bin/python HB_Bridge.py &


Raspberry PI:
dmrlink.cfg

[XPR8300]
# XPR8300 Repeater
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 55000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: False
AUTH_KEY: 8675309
MASTER_IP: 10.1.100.10 (ip of your local lan repeater)
MASTER_PORT: 50000


[IPSCBRIDGE]
# Virtual IPSC Client Connection To Master IPSC Server.
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51001
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309
MASTER_IP: IP OF YOUR REMOTE MASTER IPSC SERVER YOU CREATED
MASTER_PORT: 51000

confbridge_rules.py:

TRUNKS = ['IPSCBRIDGE']

BRIDGES = {
    'TAC310': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [310,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC311': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [311,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC312': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [312,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC313': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [313,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC314': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [314,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC315': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [315,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC316': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [316,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
     'TAC317': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [317,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC318': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [318,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC319': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [319,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'WORLDWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [91,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NORTHAMERICA': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [93,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'UPSTATENY': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [31361,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NATIONWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3100,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'STATEWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3136,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],


/etc/rc.local

cd path to your dmr link
/usr/bin/python confbridge.py &


I think that's about it..... ;) (sorry for any typos or grammatically incorrect paragraphs ;)
Good luck!!

Cort Buffington
785-865-7206


Re: How to make your own "unofficial" Master server!

Jamie R. Cid <jay@...>
 

Updated. Thank You.


From: Cort N0MJS <n0mjs@...>
To: <main@DVSwitch.groups.io>
Sent: 4/27/2018 12:11 PM
Subject: Re: [DVSwitch] How to make your own "unofficial" Master server!


RCM: True

Only if you’re actually doing something with the RCM data, otherwise you’re generating unnecessary traffic that does nothing

XNL_CALL: True

NEVER TRUE – setting this true can actually break things

XNL_MASTER: True

NEVER TRUE – setting this true can actually break things

DATA_CALL: True

NOT SET TRUE when you’re using it for voice-only applications, such as confbridge.py, IPSC_Bridge, etc.



From the comments in the sample configuration file:


# RCM:              Repeater Call Monitoring - don't unable unless you plan to
#                   actually use it, this creates extra network traffic.

# XNL_CALL:         Can cause problems if not set to False, DMRlink does not
#                   process XCMP/XNL calls.
# XNL_MASTER:       Obviously, should also be False, see XNL_CALL.

# DATA_CALL:        Process data calls. True if you want to process data calls








On Apr 27, 2018, at 10:59 AM, Jamie R. Cid <jay@...> wrote:

Hello All,

I figured I would post this since people have asked for it. If this is violating anything please feel free to remove it.

Ok,

** This guide assumes you have IPSC_Bridge, HB_Bridge and all the other necessities installed. **
** This guide assumes you are using an XPR Repeater in MASTER mode. **

Can you connect the XPR repeater directly to BM in client mode?? SURE! But what fun is that!? ;)

So what I was looking to do was create a kinda of master server to link all my sites and motorola repeaters together basically and give me a little more control of my systems. What I ended up building is a MASTER IPSC Server which listens for IPSC connections from raspberry pi's at the remote repeater sites and forwards them to BM. The raspberry pi is used because I didn't want the Motorola repeaters in CLIENT mode rather MASTER mode so I can still use my Motorola diagnostic tools and TRBONet software to connect to the repeater. (When the repeater is in client mode it wont accept any connections from diagnostic tools). Here's the thing to remember which I had to figure out, HB_Bridge and IPSC_Bridge BOTH run background programs that do the work so it really looks like (BM <---> hblink <---> HB_Bridge <---> UDP Sockets <--->  IPSC_Bridge <---> dmrlink <---> IPSC_Bridge <---> dmrlink <---> XPR Repeater). Something more like that *kinda. Still trying to dial that in exactly but I'm focused on the configs still :) For this all to work you need to login to BM and statically forward any TG's you want to your repeater. You must do this for TS1 and TS2 as Brandmeister alternates TS's in their system based on traffic of some sort. What we will do is create a rule for any traffic coming into the system on TS1 or 2 and say TAC310 to redirect to the officially documented TS of 1 and transmit that on your repeater. I did have this all installed on a single RPI3B But was having audio trans-coding issues so I moved it to a master Server/Rpi setup since that's what I really wanted anyway ;)

Here's a basic layout:
Master Server:
BM <---> HB_Bridge (BM Peer) <---> IPSC_Bridge (Master)

Raspberry Pi:
IPSC_Bridge (Peer) <---> ConfBridge (Peer) <---> XPR Repeater (Master)

Well lets get on to what you really want... And remember just because this all works for me don't mean it for everyone or officially approved by anyone ;) I hold no responsibility for anything other than my own setup!

Server Side:
dmrlink.cfg:

[IPSCBRIDGE]
# IPSC Virtual Master Server
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: True
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309

IPSC_Bridge.cfg:

[DEFAULTS]
debug = True                                    # Debug output for each VOICE frame
outToFile = False                               # Write each AMBE frame to a file called ambe.bin
outToUDP = True                                 # Send each AMBE frame to the _sock object (turn on/off IPSC_Bridge operation)

gateway = 127.0.0.1                             # IP address of Partner Application (HB_Bridge, Analog_Bridge)
fromGatewayPort = 31010                         # Port IPSC_Bridge is listening on for data  IPSC_Bridge <--- Partner
toGatewayPort = 31013                           # Port used to send data to Partner IPSC_Bridge ---> Partner

gatewayDmrId = 12345                            # Deprecated no longer used. Required for now.

# remoteControlPort = 31002                     # Deprecated, no longer used. Will be removed IGNORE!
tgFilter = 1,3,9                              # Deprecated, no longer used. Will be removed IGNORE!
# txTg = 9                                      # Deprecated, no longer used. Will be removed IGNORE!
# txTs = 2


hblink.cfg:

[BRANDMEISTER]
MODE: CLIENT
ENABLED: True
EXPORT_AMBE: False
IP:
PORT: 54000
MASTER_IP: IP OF YOUR FRIENDLY BM SERVER
MASTER_PORT: 62031
PASSPHRASE: passw0rd
CALLSIGN: YOURCALL
RADIO_ID: 123456
RX_FREQ: 000000000
TX_FREQ: 000000000
TX_POWER: 45
COLORCODE: 1
SLOTS: 2
LATITUDE: 00.0000
LONGITUDE: -00.0000
HEIGHT: 75
LOCATION: Somewhere, USA
DESCRIPTION: DMR Repeater
URL: http://www.google.com
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 0
OPTIONS:

[DEFAULTS]
gateway = 127.0.0.1                             # IP address of Partner Application (IPSC_Bridge, Analog_Bridge)
fromGatewayPort = 31013                         # Port HB_Bridge is listening on for data  (HB_Bridge <--- Partner)
toGatewayPort = 31010                           # Port Partner is listening on for data  (HB_Bridge ---> Partner)

[RULES]
# Name = Old TG, New TG, New Slot
#TG_SE = 3174, 3174, 2
#TG_NA = 3,3,1
#TG_ATL = 8,8,1
#TG_WW = 1,1,1
TG_310 = 310,310,1 (This is our TAC310 rule to redirect TS1 and TS2 from BM to TS1 on our repeater.

/etc/rc.local

cd path to dmr link folder/dmrlink
/usr/bin/python IPSC_Bridge.py &

sleep 2

cd path to HBlink folder/HBlink-HB_Bridge
/usr/bin/python HB_Bridge.py &


Raspberry PI:
dmrlink.cfg

[XPR8300]
# XPR8300 Repeater
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 55000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: False
AUTH_KEY: 8675309
MASTER_IP: 10.1.100.10 (ip of your local lan repeater)
MASTER_PORT: 50000


[IPSCBRIDGE]
# Virtual IPSC Client Connection To Master IPSC Server.
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51001
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309
MASTER_IP: IP OF YOUR REMOTE MASTER IPSC SERVER YOU CREATED
MASTER_PORT: 51000

confbridge_rules.py:

TRUNKS = ['IPSCBRIDGE']

BRIDGES = {
    'TAC310': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [310,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC311': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [311,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC312': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [312,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC313': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [313,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC314': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [314,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC315': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [315,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC316': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [316,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
     'TAC317': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [317,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC318': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [318,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC319': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [319,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'WORLDWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [91,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NORTHAMERICA': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [93,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'UPSTATENY': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [31361,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NATIONWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3100,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'STATEWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3136,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],


/etc/rc.local

cd path to your dmr link
/usr/bin/python confbridge.py &


I think that's about it..... ;) (sorry for any typos or grammatically incorrect paragraphs ;)
Good luck!!

Cort Buffington
785-865-7206


Re: How to make your own "unofficial" Master server!

Cort N0MJS <n0mjs@...>
 


RCM: True

Only if you’re actually doing something with the RCM data, otherwise you’re generating unnecessary traffic that does nothing

XNL_CALL: True

NEVER TRUE – setting this true can actually break things

XNL_MASTER: True

NEVER TRUE – setting this true can actually break things

DATA_CALL: True

NOT SET TRUE when you’re using it for voice-only applications, such as confbridge.py, IPSC_Bridge, etc.



From the comments in the sample configuration file:


# RCM:              Repeater Call Monitoring - don't unable unless you plan to
#                   actually use it, this creates extra network traffic.

# XNL_CALL:         Can cause problems if not set to False, DMRlink does not
#                   process XCMP/XNL calls.
# XNL_MASTER:       Obviously, should also be False, see XNL_CALL.

# DATA_CALL:        Process data calls. True if you want to process data calls








On Apr 27, 2018, at 10:59 AM, Jamie R. Cid <jay@...> wrote:

Hello All,

I figured I would post this since people have asked for it. If this is violating anything please feel free to remove it.

Ok,

** This guide assumes you have IPSC_Bridge, HB_Bridge and all the other necessities installed. **
** This guide assumes you are using an XPR Repeater in MASTER mode. **

Can you connect the XPR repeater directly to BM in client mode?? SURE! But what fun is that!? ;)

So what I was looking to do was create a kinda of master server to link all my sites and motorola repeaters together basically and give me a little more control of my systems. What I ended up building is a MASTER IPSC Server which listens for IPSC connections from raspberry pi's at the remote repeater sites and forwards them to BM. The raspberry pi is used because I didn't want the Motorola repeaters in CLIENT mode rather MASTER mode so I can still use my Motorola diagnostic tools and TRBONet software to connect to the repeater. (When the repeater is in client mode it wont accept any connections from diagnostic tools). Here's the thing to remember which I had to figure out, HB_Bridge and IPSC_Bridge BOTH run background programs that do the work so it really looks like (BM <---> hblink <---> HB_Bridge <---> UDP Sockets <--->  IPSC_Bridge <---> dmrlink <---> IPSC_Bridge <---> dmrlink <---> XPR Repeater). Something more like that *kinda. Still trying to dial that in exactly but I'm focused on the configs still :) For this all to work you need to login to BM and statically forward any TG's you want to your repeater. You must do this for TS1 and TS2 as Brandmeister alternates TS's in their system based on traffic of some sort. What we will do is create a rule for any traffic coming into the system on TS1 or 2 and say TAC310 to redirect to the officially documented TS of 1 and transmit that on your repeater. I did have this all installed on a single RPI3B But was having audio trans-coding issues so I moved it to a master Server/Rpi setup since that's what I really wanted anyway ;)

Here's a basic layout:
Master Server:
BM <---> HB_Bridge (BM Peer) <---> IPSC_Bridge (Master)

Raspberry Pi:
IPSC_Bridge (Peer) <---> ConfBridge (Peer) <---> XPR Repeater (Master)

Well lets get on to what you really want... And remember just because this all works for me don't mean it for everyone or officially approved by anyone ;) I hold no responsibility for anything other than my own setup!

Server Side:
dmrlink.cfg:

[IPSCBRIDGE]
# IPSC Virtual Master Server
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: True
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309

IPSC_Bridge.cfg:

[DEFAULTS]
debug = True                                    # Debug output for each VOICE frame
outToFile = False                               # Write each AMBE frame to a file called ambe.bin
outToUDP = True                                 # Send each AMBE frame to the _sock object (turn on/off IPSC_Bridge operation)

gateway = 127.0.0.1                             # IP address of Partner Application (HB_Bridge, Analog_Bridge)
fromGatewayPort = 31010                         # Port IPSC_Bridge is listening on for data  IPSC_Bridge <--- Partner
toGatewayPort = 31013                           # Port used to send data to Partner IPSC_Bridge ---> Partner

gatewayDmrId = 12345                            # Deprecated no longer used. Required for now.

# remoteControlPort = 31002                     # Deprecated, no longer used. Will be removed IGNORE!
tgFilter = 1,3,9                              # Deprecated, no longer used. Will be removed IGNORE!
# txTg = 9                                      # Deprecated, no longer used. Will be removed IGNORE!
# txTs = 2


hblink.cfg:

[BRANDMEISTER]
MODE: CLIENT
ENABLED: True
EXPORT_AMBE: False
IP:
PORT: 54000
MASTER_IP: IP OF YOUR FRIENDLY BM SERVER
MASTER_PORT: 62031
PASSPHRASE: passw0rd
CALLSIGN: YOURCALL
RADIO_ID: 123456
RX_FREQ: 000000000
TX_FREQ: 000000000
TX_POWER: 45
COLORCODE: 1
SLOTS: 2
LATITUDE: 00.0000
LONGITUDE: -00.0000
HEIGHT: 75
LOCATION: Somewhere, USA
DESCRIPTION: DMR Repeater
URL: http://www.google.com
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 0
OPTIONS:

[DEFAULTS]
gateway = 127.0.0.1                             # IP address of Partner Application (IPSC_Bridge, Analog_Bridge)
fromGatewayPort = 31013                         # Port HB_Bridge is listening on for data  (HB_Bridge <--- Partner)
toGatewayPort = 31010                           # Port Partner is listening on for data  (HB_Bridge ---> Partner)

[RULES]
# Name = Old TG, New TG, New Slot
#TG_SE = 3174, 3174, 2
#TG_NA = 3,3,1
#TG_ATL = 8,8,1
#TG_WW = 1,1,1
TG_310 = 310,310,1 (This is our TAC310 rule to redirect TS1 and TS2 from BM to TS1 on our repeater.

/etc/rc.local

cd path to dmr link folder/dmrlink
/usr/bin/python IPSC_Bridge.py &

sleep 2

cd path to HBlink folder/HBlink-HB_Bridge
/usr/bin/python HB_Bridge.py &


Raspberry PI:
dmrlink.cfg

[XPR8300]
# XPR8300 Repeater
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 55000
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: False
AUTH_KEY: 8675309
MASTER_IP: 10.1.100.10 (ip of your local lan repeater)
MASTER_PORT: 50000


[IPSCBRIDGE]
# Virtual IPSC Client Connection To Master IPSC Server.
ENABLED: True
RADIO_ID: 8675309
IP:
PORT: 51001
ALIVE_TIMER: 5
MAX_MISSED: 20
PEER_OPER: True
IPSC_MODE: DIGITAL
TS1_LINK: True
TS2_LINK: True
CSBK_CALL: False
RCM: True
CON_APP: True
XNL_CALL: True
XNL_MASTER: True
DATA_CALL: True
VOICE_CALL: True
MASTER_PEER: False
GROUP_HANGTIME: 0
AUTH_ENABLED: True
AUTH_KEY: 8675309
MASTER_IP: IP OF YOUR REMOTE MASTER IPSC SERVER YOU CREATED
MASTER_PORT: 51000

confbridge_rules.py:

TRUNKS = ['IPSCBRIDGE']

BRIDGES = {
    'TAC310': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [310,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 310, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC311': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [311,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 311, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC312': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [312,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 312, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC313': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [313,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 313, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC314': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [314,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 314, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC315': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [315,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 315, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC316': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [316,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 316, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
     'TAC317': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [317,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 317, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC318': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [318,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 318, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'TAC319': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [319,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 319, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'WORLDWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [91,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 91, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NORTHAMERICA': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [93,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 93, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'UPSTATENY': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [31361,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 31361, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'NATIONWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3100,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],
    'STATEWIDE': [
            {'SYSTEM': 'XPR8300', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [3136,], 'OFF': [8080], 'RESET': []},
            {'SYSTEM': 'IPSCBRIDGE', 'TS': 2, 'TGID': 3136, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
        ],


/etc/rc.local

cd path to your dmr link
/usr/bin/python confbridge.py &


I think that's about it..... ;) (sorry for any typos or grammatically incorrect paragraphs ;)
Good luck!!

Cort Buffington
785-865-7206


Re: PTT Configuration

Jamie R. Cid <jay@...>
 

Thanks guys. I figured it out with confbridge. Added all my group PTT's and everything is working perfectly with redundant links to BM and CBridge.

Thanks again!

Feel free to close this thread or whatever ;)


Re: PTT Configuration

Cort N0MJS <n0mjs@...>
 


I’m out.

On Apr 26, 2018, at 10:10 AM, Jamie R. Cid <jay@...> wrote:

[Edited Message Follows]

Cort,
 
First off I have only sent a total of 7 messages today, 6 being replies to something that was said and 1 being my initial post. "Rapid Fire" is being a bit facetious i think. 

Cort Buffington
785-865-7206


Re: PTT Configuration

Jamie R. Cid <jay@...>
 

My hblink.cfg:

[BRANDMEISTER]
MODE: CLIENT
ENABLED: True
EXPORT_AMBE: False
IP:
PORT: 54000
MASTER_IP: 64.94.238.196
#MASTER_IP: 107.191.99.14
MASTER_PORT: 62031
PASSPHRASE: passw0rd
CALLSIGN: N2CID
RADIO_ID: 113647
RX_FREQ: 000000000
TX_FREQ: 000000000
TX_POWER: 45
COLORCODE: 1
SLOTS: 2
LATITUDE: 41.7333
LONGITUDE: -50.3999
HEIGHT: 75
LOCATION: NewYork, USA
DESCRIPTION: DMR Repeater
URL: http://www.cidcomm.com
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 5
OPTIONS:


From: Corey Dean N3FE <n3fe@...>
To: <main@DVSwitch.groups.io>
Sent: 4/26/2018 11:47 AM
Subject: Re: [DVSwitch] PTT Configuration

Wait wait wait...  we do not have any smart Ptt stuff defined for you on the master.  I thought you were using hblink or hbbridge to connect to bm as a client.


On Apr 26, 2018, at 9:45 AM, Jamie R. Cid <jay@...> wrote:

Thanks Corey,

I am using BM but PTT don't seem to work and "wakeup" the TG's on BM. Also I appear to get TG's that should be on TS1 coming in on TS2.. I figured it was related to this,

DMRlink looks to the BM server as a "SmartPTT" connection. This is not like a Motorola, Hytera or even MMDVM. SmartPTT connections must be setup by a BM server administrator. The TS/TG mapping is not available to the repeater sysop. The TS/TG mapping is ALWAYS static, it can not be User Activated (PTT). SmartPTT connections will not dynamically create a TS/TG map.

BM will send data to SmartPTT on a TS in a "first come first serve" basis. Example: You have 2 static TGs on TS1 mapped from BM to SmartPTT. TG1 and TG2. If the TS is quiet, traffic on TS1/TG1 will be sent to SmartPTT. Now while the TS1/TG1 traffic is "flowing" Traffic appears on TS1/TG2, The TS1/TG1 traffic will not be interrupted. Once the traffic on TS1/TG1 drops, BM will IMMEDIATELY send the TS1/TG2 traffic to SmartPTT. Thus "stealing" the TS. The user on TS1/TG1 will not hear traffic on TS1/TG1 until the traffic on TS1/TG2 stops.

Based on the information above, choose the TS/TG you request from any single BM server with care. DMRlink does have rules to control routing TS/TG from BM to DMRlink. If you have to have more then 1 TG on a given TS from BM, You should consider breaking up your requests to multiple BM servers. 





From: Corey Dean N3FE <n3fe@...>
To: <main@dvswitch.groups.io>
Sent: 4/26/2018 9:43 AM
Subject: Re: [DVSwitch] PTT Configuration

If you are using BM as your gateway it is already following the BM defaults.  IF you want to do something more then you need to use a conference bridge to accomplish what you want.

On Thu, Apr 26, 2018 at 9:34 AM, Jamie R. Cid <jay@...> wrote:
Hello All,

I am running dmrlink as follows,
BM <---> HB_Bridge <---> IPSC_Bridge <---> Motorola Repeater.

I have my talk groups statically trunked in and would like to setup a PTT method like on BM within this system. Is that possible? For example someone on my repeater keys up TG310 and it stays active for 5 minutes or whatever then closes again etc...

Ive looked through the wiki but it seems kinda slim ;)

Thanks!



Re: PTT Configuration

Corey Dean N3FE <n3fe@...>
 

Wait wait wait...  we do not have any smart Ptt stuff defined for you on the master.  I thought you were using hblink or hbbridge to connect to bm as a client.


On Apr 26, 2018, at 9:45 AM, Jamie R. Cid <jay@...> wrote:

Thanks Corey,

I am using BM but PTT don't seem to work and "wakeup" the TG's on BM. Also I appear to get TG's that should be on TS1 coming in on TS2.. I figured it was related to this,

DMRlink looks to the BM server as a "SmartPTT" connection. This is not like a Motorola, Hytera or even MMDVM. SmartPTT connections must be setup by a BM server administrator. The TS/TG mapping is not available to the repeater sysop. The TS/TG mapping is ALWAYS static, it can not be User Activated (PTT). SmartPTT connections will not dynamically create a TS/TG map.

BM will send data to SmartPTT on a TS in a "first come first serve" basis. Example: You have 2 static TGs on TS1 mapped from BM to SmartPTT. TG1 and TG2. If the TS is quiet, traffic on TS1/TG1 will be sent to SmartPTT. Now while the TS1/TG1 traffic is "flowing" Traffic appears on TS1/TG2, The TS1/TG1 traffic will not be interrupted. Once the traffic on TS1/TG1 drops, BM will IMMEDIATELY send the TS1/TG2 traffic to SmartPTT. Thus "stealing" the TS. The user on TS1/TG1 will not hear traffic on TS1/TG1 until the traffic on TS1/TG2 stops.

Based on the information above, choose the TS/TG you request from any single BM server with care. DMRlink does have rules to control routing TS/TG from BM to DMRlink. If you have to have more then 1 TG on a given TS from BM, You should consider breaking up your requests to multiple BM servers. 





From: Corey Dean N3FE <n3fe@...>
To: <main@dvswitch.groups.io>
Sent: 4/26/2018 9:43 AM
Subject: Re: [DVSwitch] PTT Configuration

If you are using BM as your gateway it is already following the BM defaults.  IF you want to do something more then you need to use a conference bridge to accomplish what you want.

On Thu, Apr 26, 2018 at 9:34 AM, Jamie R. Cid <jay@...> wrote:
Hello All,

I am running dmrlink as follows,
BM <---> HB_Bridge <---> IPSC_Bridge <---> Motorola Repeater.

I have my talk groups statically trunked in and would like to setup a PTT method like on BM within this system. Is that possible? For example someone on my repeater keys up TG310 and it stays active for 5 minutes or whatever then closes again etc...

Ive looked through the wiki but it seems kinda slim ;)

Thanks!



Re: PTT Configuration

Jamie R. Cid <jay@...>
 
Edited

Cort,
 
First off I have only sent a total of 7 messages today, 6 being replies to something that was said and 1 being my initial post. "Rapid Fire" is being a bit facetious i think. Additionally my comments about the software were intended to be against myself as I always find myself setting things up backwards traditionally for fun. I am also a working professional and there is no stopwatch saying how fast it should take you to  respond to my posts. No one is critiquing you. If it takes you four days to reply then it is what it is. Now moving on to a more professional manner, I really appreciate your software and what you have created as I'm sure many people do so great job! and again very appreciated!
 
Now as I mentioned I am running this system as follows,
 
BM <---> HB_Bridge <---> IPSC_Bridge (IPSC Client) <---> Motorola XPR TRBO Repeater in MASTER mode.
 
The problem I am having is that the TG's come in randomly from BM on TS1 or TS2 depending which one is the active one in BM, for example TAC310. Now if I key my radio on TS1 TAC310 it will open 310 however If TAC310 TS2 is the active one in BM then I get nothing back as were on TS1. SO untill BM moves the TAC310 traffic from TS2 back to TS1 we hear nothing..
 
See here...
"BM will send data to SmartPTT on a TS in a "first come first serve" basis. Example: You have 2 static TGs on TS1 mapped from BM to SmartPTT. TG1 and TG2. If the TS is quiet, traffic on TS1/TG1 will be sent to SmartPTT. Now while the TS1/TG1 traffic is "flowing" Traffic appears on TS1/TG2, The TS1/TG1 traffic will not be interrupted. Once the traffic on TS1/TG1 drops, BM will IMMEDIATELY send the TS1/TG2 traffic to SmartPTT. Thus "stealing" the TS. The user on TS1/TG1 will not hear traffic on TS1/TG1 until the traffic on TS1/TG2 stops."
 
In the rules I wrote a rule for 310,310,1 so any 310 TS1 or 2 will get redirected to TS1 on our radios. Now the problem is when BM's active 310 TS is 2 there's nothing we can do to activate it short of having both programmed in the radios... 
 
 
Follow?


From: Cort N0MJS <n0mjs@...>
To: <main@DVSwitch.groups.io>
Sent: 4/26/2018 10:44 AM
Subject: Re: [DVSwitch] PTT Configuration

That is the comment from hb_confbridge’s sample configuration file – which is why I thought you were maybe using it. The one from DMRlink says “dmrlink” not “hblink”.
 
Also, I wrote the software. Please stop with the conjecture about how it was intended. Really, dude, I wrote it. I know what was intended.
 
You really need to slow your roll a bit. All of us deeply involved in the project are working professionals with full-time jobs, families etc. You’re really hitting us hard here with a lot of rapid fire “this won’t work” kind of stuff. Please take a little more time to methodically work through things and give clean, clear explanations of what you’re trying to do, and then wait for help.
 
I’m not going to be able to continue trying to help when you send 6-10 e-mails an hour.
 
Let’s stop taking this on a line-by-line in the configuration file style. Take a step back, explain clearly what you’re trying to do. At your current rate of e-mail, I will not be able to keep up trying to help.


On Apr 26, 2018, at 9:34 AM, Jamie R. Cid <jay@...> wrote:


Right and per this I dont think it will work...
 
SYSTEM - The name of the sytem as listed in the main hblink configuration file

Cort Buffington
785-865-7206


Re: PTT Configuration

Cort N0MJS <n0mjs@...>
 

That is the comment from hb_confbridge’s sample configuration file – which is why I thought you were maybe using it. The one from DMRlink says “dmrlink” not “hblink”.

Also, I wrote the software. Please stop with the conjecture about how it was intended. Really, dude, I wrote it. I know what was intended.

You really need to slow your roll a bit. All of us deeply involved in the project are working professionals with full-time jobs, families etc. You’re really hitting us hard here with a lot of rapid fire “this won’t work” kind of stuff. Please take a little more time to methodically work through things and give clean, clear explanations of what you’re trying to do, and then wait for help.

I’m not going to be able to continue trying to help when you send 6-10 e-mails an hour.

Let’s stop taking this on a line-by-line in the configuration file style. Take a step back, explain clearly what you’re trying to do. At your current rate of e-mail, I will not be able to keep up trying to help.


On Apr 26, 2018, at 9:34 AM, Jamie R. Cid <jay@...> wrote:


Right and per this I dont think it will work...

SYSTEM - The name of the sytem as listed in the main hblink configuration file

Cort Buffington
785-865-7206

8721 - 8740 of 9797