Call routing cluster


Petr Frank, OK2ZAR
 

Hi guys,

i've test HBlink approx 3 months ago and it really worked. ;-) Fantastic work. I used modified config sample a bit during my testing. I've some questions based on my experiences.

Is possible to create some clusters? It means to have group of repeaters assigned to specified talk group and when somebody talks on the TG then all assigned repeaters are transmitting but non-assigned repeaters are idle.
How i can define permanent linked group(s) for each repeater? Is possible to have on-demand groups?
Are DMR private calls supported? I haven't been able to establish private call via HBlink.

73 de Petr, OK2ZAR.


Corey Dean N3FE <n3fe@...>
 

I know using dmrlink you define it in the confbrdge and each connection has its own login.  I haven't looked to see if there is a hb conference bridge but I am assuming it would work the same way if there is such a thing.

Corey  N3FE

On Wed, Mar 28, 2018 at 1:27 PM, Petr Frank <iogroups@...> wrote:
Hi guys,

i've test HBlink approx 3 months ago and it really worked. ;-) Fantastic work. I used modified config sample a bit during my testing. I've some questions based on my experiences.

Is possible to create some clusters? It means to have group of repeaters assigned to specified talk group and when somebody talks on the TG then all assigned repeaters are transmitting but non-assigned repeaters are idle.
How i can define permanent linked group(s) for each repeater? Is possible to have on-demand groups?
Are DMR private calls supported? I haven't been able to establish private call via HBlink.

73 de Petr, OK2ZAR.



Corey Dean N3FE <n3fe@...>
 

I should have done my homework before responding...  You can run the hb confbridge and do that.  Here is the sample config.

https://github.com/n0mjs710/HBlink/blob/master/hb_confbridge_rules-SAMPLE.py

Corey N3FE

On Wed, Mar 28, 2018 at 1:27 PM, Petr Frank <iogroups@...> wrote:
Hi guys,

i've test HBlink approx 3 months ago and it really worked. ;-) Fantastic work. I used modified config sample a bit during my testing. I've some questions based on my experiences.

Is possible to create some clusters? It means to have group of repeaters assigned to specified talk group and when somebody talks on the TG then all assigned repeaters are transmitting but non-assigned repeaters are idle.
How i can define permanent linked group(s) for each repeater? Is possible to have on-demand groups?
Are DMR private calls supported? I haven't been able to establish private call via HBlink.

73 de Petr, OK2ZAR.



Petr Frank, OK2ZAR
 

Thanks Corey. I'll test it and maybe come back with another question ;-)


Peter M0NWI
 

Petr,

I do exactly that using using bridge.py and define all the slots / TG / repeaters' in the bridge_rules.py, you can define them as always on, it user activated, UA can be made to switch on a specific transmission group or time.

Have a look at bridge_rules sample, its super flexible!

73,
Peter

Sent from Outlook
From: main@DVSwitch.groups.io <main@DVSwitch.groups.io> on behalf of Petr Frank <iogroups@...>
Sent: 28 March 2018 18:49:51
To: main@DVSwitch.groups.io
Subject: Re: [DVSwitch] Call routing cluster
 
Thanks Corey. I'll test it and maybe come back with another question ;-)


Petr Frank, OK2ZAR
 

Hi guys,

i've tried to play a bit and have some questions. It means dummy questions and I'd like to ask like an idiot :-)

  • I guess each *.PY script is a module so in case i want to use hb_confbridge do i have to start hblink.py + hb_confbridge.py or is particular module called/load by main script hblink.py?
  • Where and how i can define repeaters (including repeater ID, etc...) able to connect to the master
  • What's about requirements to connect hblink to DMR+ or BrandMeister as a repeater? I've tried but it ended in logging loop without success login.


Lets see my configuration

hblink.cfg:
[MASTER-1]
MODE: MASTER
ENABLED: True
REPEAT: True
EXPORT_AMBE: False
IP:
PORT: 62031
PASSPHRASE: passw0rd
GROUP_HANGTIME: 5

[REPEATER-1]
MODE: CLIENT
ENABLED: False
EXPORT_AMBE: False
IP:
PORT: 54001
MASTER_IP: 92.43.29.198
MASTER_PORT: 62031
PASSPHRASE: passw0rd
CALLSIGN: OK0TEST
RADIO_ID: 230116
RX_FREQ: 439000000
TX_FREQ: 431000000
TX_POWER: 25
COLORCODE: 1
SLOTS: 1
LATITUDE: 38.0000
LONGITUDE: -095.0000
HEIGHT: 75
LOCATION: Anywhere, EU
DESCRIPTION: This is a cool repeater
URL: www.w1abc.org
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 5
OPTIONS:

hb_confbridge_rules.py:

BRIDGES = {
    'WORLDWIDE': [
            {'SYSTEM': 'MASTER-1',    'TS': 1, 'TGID': 1,    'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'ON',  'ON': [2,], 'OFF': [9,10]},
            {'SYSTEM': 'REPEATER-1',    'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'ON',  'ON': [2,], 'OFF': [9,10]},
        ],
    'ENGLISH': [
            {'SYSTEM': 'MASTER-1',    'TS': 1, 'TGID': 13,   'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [3,], 'OFF': [8,10]},
            {'SYSTEM': 'REPEATER-1',    'TS': 1, 'TGID': 13,   'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [3,], 'OFF': [8,10]},
        ],
    'STATEWIDE': [
            {'SYSTEM': 'MASTER-1',    'TS': 2, 'TGID': 3129, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [4,], 'OFF': [7,10]},
            {'SYSTEM': 'REPEATER-1',    'TS': 2, 'TGID': 3129, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [4,], 'OFF': [7,10]},
        ],
    'PRAHA': [
            {'SYSTEM': 'MASTER-1',    'TS': 1, 'TGID': 111, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [5,], 'OFF': [6,10]},
            {'SYSTEM': 'REPEATER-1',    'TS': 1, 'TGID': 111, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [5,], 'OFF': [6,10]},
        ]
}

talkgroup_ids.csv:

1,MARC Wordlwide
2,Local 2
3,MARC North America
111,Praha

talkgroup_ids.json is deleted once hb_confbridge.py starts and it returns:
DEBUG 2018-04-06 09:58:41,802 Logging system started, anything from here on gets logged
INFO 2018-04-06 09:58:41,803 Routing bridges file found and bridges imported
ERROR: Conference bridges found for system not configured main configuration

Unfortunately i don't know what else i can check and modify.

Sorry for dummy questions but i was unable to find-out answers in wiki.

Petr, OK2ZAR.


Steve N4IRS
 

Petr,
Questions are no problem. We need to do a better job with the Wiki.
The short answers to your example: You will start hb_confbridge.py, it will start hblink for you.

hblink.py is the lowest level log the HB "stack" it handles connecting to servers and accepting connections from clients. It defines logging and table lookups for subscriber IDs etc. On it's own it does vary little BUT is is required. The first step in setting up a hblink application is to make sure hblink.py is properly configured. hb_confbridge will sub-class hblink.py Think of it as hb_confbridge calls hblink when it needs to communicate with Servers and Clients. (Don't shoot me guys)

You do not define repeaters or client s that can connect to the Master (Server). You define a a "place" where the repeater can connect to. in the sample config, that is [MASTER-1] Multiple clients can connect to that Master or you can define multiple Master sections.

To connect hblink to a BM master, you connect as a client. Setup the client the same way you would in MMDVMHost.

Hope this helps.

73, Steve N4IRS    

On 4/6/2018 4:20 AM, Petr Frank wrote:
Hi guys,

i've tried to play a bit and have some questions. It means dummy questions and I'd like to ask like an idiot :-)

  • I guess each *.PY script is a module so in case i want to use hb_confbridge do i have to start hblink.py + hb_confbridge.py or is particular module called/load by main script hblink.py?
  • Where and how i can define repeaters (including repeater ID, etc...) able to connect to the master
  • What's about requirements to connect hblink to DMR+ or BrandMeister as a repeater? I've tried but it ended in logging loop without success login.


Lets see my configuration

hblink.cfg:
[MASTER-1]
MODE: MASTER
ENABLED: True
REPEAT: True
EXPORT_AMBE: False
IP:
PORT: 62031
PASSPHRASE: passw0rd
GROUP_HANGTIME: 5

[REPEATER-1]
MODE: CLIENT
ENABLED: False
EXPORT_AMBE: False
IP:
PORT: 54001
MASTER_IP: 92.43.29.198
MASTER_PORT: 62031
PASSPHRASE: passw0rd
CALLSIGN: OK0TEST
RADIO_ID: 230116
RX_FREQ: 439000000
TX_FREQ: 431000000
TX_POWER: 25
COLORCODE: 1
SLOTS: 1
LATITUDE: 38.0000
LONGITUDE: -095.0000
HEIGHT: 75
LOCATION: Anywhere, EU
DESCRIPTION: This is a cool repeater
URL: www.w1abc.org
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 5
OPTIONS:

hb_confbridge_rules.py:

BRIDGES = {
    'WORLDWIDE': [
            {'SYSTEM': 'MASTER-1',    'TS': 1, 'TGID': 1,    'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'ON',  'ON': [2,], 'OFF': [9,10]},
            {'SYSTEM': 'REPEATER-1',    'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'ON',  'ON': [2,], 'OFF': [9,10]},
        ],
    'ENGLISH': [
            {'SYSTEM': 'MASTER-1',    'TS': 1, 'TGID': 13,   'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [3,], 'OFF': [8,10]},
            {'SYSTEM': 'REPEATER-1',    'TS': 1, 'TGID': 13,   'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [3,], 'OFF': [8,10]},
        ],
    'STATEWIDE': [
            {'SYSTEM': 'MASTER-1',    'TS': 2, 'TGID': 3129, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [4,], 'OFF': [7,10]},
            {'SYSTEM': 'REPEATER-1',    'TS': 2, 'TGID': 3129, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [4,], 'OFF': [7,10]},
        ],
    'PRAHA': [
            {'SYSTEM': 'MASTER-1',    'TS': 1, 'TGID': 111, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [5,], 'OFF': [6,10]},
            {'SYSTEM': 'REPEATER-1',    'TS': 1, 'TGID': 111, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [5,], 'OFF': [6,10]},
        ]
}

talkgroup_ids.csv:

1,MARC Wordlwide
2,Local 2
3,MARC North America
111,Praha

talkgroup_ids.json is deleted once hb_confbridge.py starts and it returns:
DEBUG 2018-04-06 09:58:41,802 Logging system started, anything from here on gets logged
INFO 2018-04-06 09:58:41,803 Routing bridges file found and bridges imported
ERROR: Conference bridges found for system not configured main configuration

Unfortunately i don't know what else i can check and modify.

Sorry for dummy questions but i was unable to find-out answers in wiki.

Petr, OK2ZAR.


Petr Frank, OK2ZAR
 

Hi Steve,

Thanks for explanation.

I finally won the battle some couple minutes ago so i'm very excited to play more during the weekend ;-)

73, Petr OK2ZAR.


Petr Frank, OK2ZAR
 
Edited

Hi guys,

some time passed and i'm back with questions :-) I spent some time, played a lot and had a lot of fun. But still don't know how to assign repeater to particular "cluster". I've done a diagram since one picture says more than thousand words.
It means that when somebody is using TG 11 then just repeaters 2301, 2302, 2306 are active and transmitting. Rest of repeaters are in idle. The same scenario for another groups - TG 12 activates just 2304, 2305, 2306; TG 14 activates 2302, 2305, 2308 and TG 1 activates all repeaters.

73 de Petr, OK2ZAR.


Corey Dean N3FE <n3fe@...>
 

I am assuming the confbridge.  Is this dmrlink or hblink?


On May 10, 2018, at 11:35 AM, Petr Frank, OK2ZAR <iogroups@...> wrote:

[Edited Message Follows]

Hi guys,

some time passed and i'm back with questions :-) I spent some time, played a lot and had a lot of fun. But still don't know how to assign repeater to particular "cluster". I've done a diagram since one picture says more than thousand words.<TG_routing.png>
It means that when somebody is using TG 11 then just repeaters 2301, 2302, 2306 are active and transmitting. Rest of repeaters are in idle. The same scenario for another groups - TG 12 activates just 2304, 2305, 2306; TG 14 activates 2302, 2305, 2308 and TG 1 activates all repeaters.

73 de Petr, OK2ZAR.


Petr Frank, OK2ZAR
 

It's HBlink.


Petr Frank, OK2ZAR
 

Hi guys,
as i can see current point of development is about cross-connection but I'd like to ask if you have call routing (like in diagram above) adding in pipe-line. From my point of view it's significant mile-stone. I'm not too much python familiar and it takes much more time to develop it myself than some "python master". But in case that your power is heading different topic then I'd like to try it. So my question is what's your plane since i don't want to do the same thing in parallel.


Peter M0NWI
 

Petr,

Have you looked at the conf bridge in MMDVM, that will allow you to do touring in the middle of a mode crossover?

73,
Peter


From: main@DVSwitch.groups.io <main@DVSwitch.groups.io> on behalf of Petr Frank, OK2ZAR <iogroups@...>
Sent: 24 May 2018 17:04:50
To: main@DVSwitch.groups.io
Subject: Re: [DVSwitch] Call routing cluster
 
Hi guys,
as i can see current point of development is about cross-connection but I'd like to ask if you have call routing (like in diagram above) adding in pipe-line. From my point of view it's significant mile-stone. I'm not too much python familiar and it takes much more time to develop it myself than some "python master". But in case that your power is heading different topic then I'd like to try it. So my question is what's your plane since i don't want to do the same thing in parallel.


Peter M0NWI
 

Sorry, for MMDVM read HBLink for the MMDVM homebrew protocol!


From: main@DVSwitch.groups.io <main@DVSwitch.groups.io> on behalf of Peter M0NWI <peter-martin@...>
Sent: 24 May 2018 19:58:53
To: main@DVSwitch.groups.io
Subject: Re: [DVSwitch] Call routing cluster
 
Petr,

Have you looked at the conf bridge in MMDVM, that will allow you to do touring in the middle of a mode crossover?

73,
Peter

From: main@DVSwitch.groups.io <main@DVSwitch.groups.io> on behalf of Petr Frank, OK2ZAR <iogroups@...>
Sent: 24 May 2018 17:04:50
To: main@DVSwitch.groups.io
Subject: Re: [DVSwitch] Call routing cluster
 
Hi guys,
as i can see current point of development is about cross-connection but I'd like to ask if you have call routing (like in diagram above) adding in pipe-line. From my point of view it's significant mile-stone. I'm not too much python familiar and it takes much more time to develop it myself than some "python master". But in case that your power is heading different topic then I'd like to try it. So my question is what's your plane since i don't want to do the same thing in parallel.