Date   

HBLink timeout crash?

Kim-Benjamin Lütkemeier
 

Hello,

maybe its a bug.

When I disconnect my Pi-Star from HBLink (Disconnect the power supply)

I get the message: Client Do1kbl has timed out.

But when I connect back and disconnect again. I received not this message.
I think its an Error in this lines:

            # Check to see if any of the clients have been quiet (no ping) longer than allowed
            if _this_client['LAST_PING']+self._CONFIG['GLOBAL']['PING_TIME']*self._CONFIG['GLOBAL']['MAX_MISSED'] < time():
                self._logger.info('(%s) Client %s (%s) has timed out', self._system, _this_client['CALLSIGN'], _this_client['RADIO_ID'])
                # Remove any timed out clients from the configuration
                del self._CONFIG['SYSTEMS'][self._system]['CLIENTS'][client]


Maybe you have any Idea to fixit?

73
Do1KBL, Kim


Re: P25 Integration via AllStar Link

Steve N4IRS
 

JP,
I have setup a sub group for Quantar_Bridge. Everyone is welcome and I'm not limiting Quantar messages here. I just think QB is specialized enough to have it's own sub group. The sub group is at <https://dvswitch.groups.io/g/Quantar-Bridge>

On 04/29/2018 01:33 PM, J P Watters KC9KKO wrote:
Steve,

Going to order a Cisco 1841 from Ebay. 

Are there any particular requirements or features for the Cisco 1841. ie IOS or Featurses?

..jpw
KC9KKO


Re: P25 Integration via AllStar Link

Mike AE4ML
 

I have been working on a router configuration build out using 15.1 advanced Enterprise code. This is what I have used to link my Quantars repeaters without placing them on the P25NX system.

Mike
AE4ML


Re: P25 Integration via AllStar Link

J P Watters KC9KKO <kc9kko@...>
 

Steve,

Going to order a Cisco 1841 from Ebay. 

Are there any particular requirements or features for the Cisco 1841. ie IOS or Featurses?

..jpw
KC9KKO


Re: TAPR Sept 2018

C Davis
 

Thanks Steve.  Yes, I was thinking more along the lines of presentations for Servers, Switches and the components of linking DMRLink, HB Bridge, IPSC_Bridge etc for admins and not so much user devices like the HotSpots.  So many great advances occurring so rapidly in this field, a group presentation/discussion would be a great opportunity to get caught up.  I will inquire with some of the other groups as well.  As short as it was, I enjoyed the presentation and discussions that occurring with the MMDVM group that at PACFICON and the digital diner last year.  Just attempting to find out if more live discussions are occurring at any of the national/regional conferences. 

Carter, KH6FV


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 ;)

8801 - 8820 of 9882