HBLink: Adhoc clients with routing rules, conferences etc


Matthew 2E0SIP
 

Hi Cort,

Thanks for the advice.  I consider myself a 'novice' python user, but the current code is very clear so I'm sure I can follow your current methodology.

I will have a play in my own private fork and see where I get to.


Thanks again

Matthew

2E0SIP


Matthew Pitts N8OHU
 

Works fine. Now to do some experiments.

Matthew Pitts
N8OHU


On May 30, 2017 7:26:26 PM EDT, Steve N4IRS <szingman@...> wrote:
[HBlink]
MODE: MASTER
ENABLED: True
REPEAT: True
EXPORT_AMBE: False
IP:
PORT: 62031
PASSPHRASE: passw0rd
GROUP_HANGTIME: 5

[Parrot]
MODE: MASTER
ENABLED: True
REPEAT: True
EXPORT_AMBE: False
IP: 127.0.0.1
PORT: 62034
PASSPHRASE: passw0rd
GROUP_HANGTIME: 5

Above are 2 of the Masters from the hblink.cfg To have 2 Masters talk to each other, you have to bridge them. Like the Parrot bridge below.

On 05/30/2017 07:18 PM, Matthew Pitts via Groups.Io wrote:

Okay, I think I have it, but to clarify; each system listed in the rules in the hb_confbridge._rules.py needs to be listed as a Master in the hblink.cfg file? How are the ports and IP addresses handled for each defined master? And how does one configure a master as a peer of another master?

Matthew Pitts

N8OHU


On 5/30/2017 2:59 PM, Steve N4IRS wrote:
Let's see if this helps. Below is the confbridge rules used for the simple demo running on reflector.dvswitch.org

BRIDGES = {
    'AllStarLink': [
            {'SYSTEM': 'BrandMeister', 'TS': 2, 'TGID': 3167, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': []},
            {'SYSTEM': 'HBlink',       'TS': 2, 'TGID': 3167, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': []},
        ],
    'Talker': [
            {'SYSTEM': 'Talker',       'TS': 1, 'TGID': 9999, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': []},
            {'SYSTEM': 'HBlink',       'TS': 1, 'TGID': 9999, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': []},
            {'SYSTEM': 'IPSC_bridge',  'TS': 1, 'TGID': 9999, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': []},
        ],
    'Parrot': [
            {'SYSTEM': 'Parrot',       'TS': 2, 'TGID': 9990, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': []},
            {'SYSTEM': 'HBlink',       'TS': 2, 'TGID': 9990, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': []},
        ]
}

The SYSTEM is a Master or Peer defined in hblink.cfg
BrandMeister is a Peer to BM 3108
HBlink is a Master running on reflector.dvswitch.org
Talker is a Master running on reflector.dvswitch.org
IPSC_bridge is a Master running on reflector.dvswitch.org
Parrot is a Master running on reflector.dvswitch.org

Traffic to and from BM on TS2/TG3167 is bridged to any Peer connected to the Master HBlink 
Traffic is bridged between Talker, HBlink and IPSC_bridge on TS1/TG9999
Traffic is bridged between Parrot and HBlink on TS2/9990


On 5/30/2017 2:38 PM, marrold.co.uk wrote:
Hi,

Please forgive me if this is an elementary question, but reading the example code hasnt made things any clearer.

From what I gather, The majority of the code covers routing between pre-defined networks. Does the functionality exist to route between adhoc clients connected to a HBLink master, or is it assumed this takes place "upstream"?

Thanks 




Nicola IT9FXF <onetechct@...>
 

Must edit rules inside hb_routing_rules-SAMPLE.py ? Or inside hblink.cfg with SYSTEM  ?
 


Steve N4IRS
 

Copy hb_routing_rules-SAMPLE.py to hb_routing_rules.py and then edit hb_routing_rules.py

On 12/23/2017 03:56 PM, Nicola IT9FXF via Groups.Io wrote:
Must edit rules inside hb_routing_rules-SAMPLE.py ? Or inside hblink.cfg with SYSTEM  ?
 


Nicola IT9FXF <onetechct@...>
 

I give up! Parrot work  when I use my talker group) it work at reverse, in the 9990 parrot is off and can talk ))
I need just a simple rule, open all tg and just 9990 por the parrot.
Can help me ?


Nicola IT9FXF <onetechct@...>
 

Can explain more examples of confbridge rules ?
Thanks !


Steve N4IRS
 

I have posted a example from my running ConfBridge https://groups.io/g/DVSwitch/files/N4IRS_confbridge_rules.py


Nicola IT9FXF <onetechct@...>
 

Hello Steve, thanks!
Must I put same name on hblink.cfg for the hblink side?
I used this cfg :

PARROT
[MASTER-1] 
MODE: MASTER ENABLED: True 
REPEAT: True EXPORT_AMBE: False 
IP: 127.0.0.1 PORT: 54001 P
ASSPHRASE: passw0rd 
GROUP_HANGTIME: 5
 
hblink receive from repeaters
 
[MASTER-1]
MODE: MASTER
ENABLED: True
REPEAT: True
EXPORT_AMBE: False
IP:
PORT: 62031
PASSPHRASE: passw0rd
GROUP_HANGTIME: 5
 
hb_confbridge
 
[PARROT]
MODE: CLIENT
ENABLED: True
EXPORT_AMBE: False
IP: 127.0.0.1
PORT: 54011
MASTER_IP: 127.0.0.1
MASTER_PORT: 54001
PASSPHRASE: passw0rd
CALLSIGN: XXXXX
RADIO_ID: 312001
RX_FREQ: 449000000
TX_FREQ: 444000000
TX_POWER: 25
COLORCODE: 8
SLOTS: 2
LATITUDE: 38.0000
LONGITUDE: -095.0000
HEIGHT: 75
LOCATION: Anywhere, USA
DESCRIPTION: This is a cool repeater
URL: www.w1abc.org
SOFTWARE_ID: HBlink
PACKAGE_ID: v0.1
GROUP_HANGTIME: 5
OPTIONS:
 
[MASTER]
MODE: CLIENT
ENABLED: True
EXPORT_AMBE: False
IP: 127.0.0.1
PORT: 54010
MASTER_IP: 127.0.0.1
MASTER_PORT: 54000
PASSPHRASE: passw0rd
CALLSIGN: XXXXX
RADIO_ID: 312002
RX_FREQ: 449000000
TX_FREQ: 444000000
TX_POWER: 25
COLORCODE: 1
SLOTS: 2
LATITUDE: 38.0000
LONGITUDE: -095.0000
HEIGHT: 75
LOCATION: Anywhere, USA
DESCRIPTION: This is a cool repeater
URL: www.w1abc.org
SOFTWARE_ID: HBlink
PACKAGE_ID: v0.1
GROUP_HANGTIME: 5
OPTIONS:
 


Steve N4IRS
 

The system in hb_confbridge_rules must match the stanza name in hblink.cfg in the example:
'WORLDWIDE': [
            {'SYSTEM': 'LSMFT-1',    'TS': 1, 'TGID': 1,    'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'ON',  'ON': [2,], 'OFF': [9,10]},
            {'SYSTEM': 'ABCDE-1',    'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'ON',  'ON': [2,], 'OFF': [9,10]},
        ],
You must have a stanza LSMFT-1 and a stanza ABCDE-1

Steve


On 12/24/2017 07:57 AM, Nicola IT9FXF via Groups.Io wrote:
Hello Steve, thanks!
Must I put same name on hblink.cfg for the hblink side?
I used this cfg :

PARROT
[MASTER-1] 
MODE: MASTER ENABLED: True 
REPEAT: True EXPORT_AMBE: False 
IP: 127.0.0.1 PORT: 54001 P
ASSPHRASE: passw0rd 
GROUP_HANGTIME: 5
 
hblink receive from repeaters
 
[MASTER-1]
MODE: MASTER
ENABLED: True
REPEAT: True
EXPORT_AMBE: False
IP:
PORT: 62031
PASSPHRASE: passw0rd
GROUP_HANGTIME: 5
 
hb_confbridge
 
[PARROT]
MODE: CLIENT
ENABLED: True
EXPORT_AMBE: False
IP: 127.0.0.1
PORT: 54011
MASTER_IP: 127.0.0.1
MASTER_PORT: 54001
PASSPHRASE: passw0rd
CALLSIGN: XXXXX
RADIO_ID: 312001
RX_FREQ: 449000000
TX_FREQ: 444000000
TX_POWER: 25
COLORCODE: 8
SLOTS: 2
LATITUDE: 38.0000
LONGITUDE: -095.0000
HEIGHT: 75
LOCATION: Anywhere, USA
DESCRIPTION: This is a cool repeater
SOFTWARE_ID: HBlink
PACKAGE_ID: v0.1
GROUP_HANGTIME: 5
OPTIONS:
 
[MASTER]
MODE: CLIENT
ENABLED: True
EXPORT_AMBE: False
IP: 127.0.0.1
PORT: 54010
MASTER_IP: 127.0.0.1
MASTER_PORT: 54000
PASSPHRASE: passw0rd
CALLSIGN: XXXXX
RADIO_ID: 312002
RX_FREQ: 449000000
TX_FREQ: 444000000
TX_POWER: 25
COLORCODE: 1
SLOTS: 2
LATITUDE: 38.0000
LONGITUDE: -095.0000
HEIGHT: 75
LOCATION: Anywhere, USA
DESCRIPTION: This is a cool repeater
SOFTWARE_ID: HBlink
PACKAGE_ID: v0.1
GROUP_HANGTIME: 5
OPTIONS:
 


Nicola IT9FXF <onetechct@...>
 

When active confbride take configuration ip from hblink.cfg and all traffic pass trought confbridge ?
For parrot need to start also the service ? Or if start parrot, confbridge and hblink are active togheter ?
Tomorrow I will test better. I need a very simple configuration, just for a working parrot. I have 3 xmmdvm  repeaters clients in the master but want open just 9990 por the parrot.
Thank you !
merry christmas


Nicola IT9FXF <onetechct@...>
 

Hi Steve,
I read in this post that you were thinking of integrating a whitelist when using hblink as a simple master. It would be interesting.
Have you planned something?


Nicola


Cort N0MJS <n0mjs@...>
 

That would be in my part of the project, most likely.

I’d like to have the whole thing worked out first though… whitelists imply someone else will want a blacklist. For the whole system (most of you would call that a “master”)? Or based on a per-client connection? Do we just whitelist destination TGIDs? What about source subscriber IDs?

When we have general consensus, and it doesn’t extend hblink.py too far (it was intended to be a protocol stack, not a full-blown application), I’ll add it.

0x49 DE N0MJS

On Jan 24, 2018, at 3:08 PM, Nicola IT9FXF via Groups.Io <onetechct@...> wrote:

Hi Steve,
I read in this post that you were thinking of integrating a whitelist when using hblink as a simple master. It would be interesting.
Have you planned something?


Nicola

Cort Buffington
785-865-7206


Steve N4IRS
 

I agree with Cort, Getting to far afield of the basic premise of hblink would be a problem. In my opinion that type of traffic control would best be included in the bridge. That might make it a little more complex for HB_Bridge if a user wanted to control traffic through HB_Link and on to a Partner. As long as a simple pass everything config would just be hblink and HB_Bridge, I'm good.

Steve, N4IRS 


Cort N0MJS <n0mjs@...>
 

I don’t see it going beyond the ACL logic from the bridging apps: An  (allow | deny) a list of subscriber IDs (list meaning multiple entries, including ranges) and the same for destination TGIDs… with the allow/drop action on ingress.

Those are basic sanity and security filters… really beyond that and we’re starting to talk more about selective call routing… which belongs elsewhere.

0x49 DE N0MJS

On Jan 24, 2018, at 5:00 PM, Steve N4IRS <szingman@...> wrote:

I agree with Cort, Getting to far afield of the basic premise of hblink would be a problem. In my opinion that type of traffic control would best be included in the bridge. That might make it a little more complex for HB_Bridge if a user wanted to control traffic through HB_Link and on to a Partner. As long as a simple pass everything config would just be hblink and HB_Bridge, I'm good.

Steve, N4IRS 

Cort Buffington
785-865-7206