Date   

Re: Trying to setup a basic 'Parrot', however hb_confbridge.py is not matching the RADIO_ID

Cort N0MJS <n0mjs@...>
 

Mathew,

Good point. I did it that way to obfuscate the origin of the traffic to an upstream Network.

Let's not just change it, but make it a configurable option to either masquerade or preserve the source ID.

Sent from my iPhone

On Jul 13, 2017, at 8:01 PM, Matthew 2E0SIP <groups.io@...> wrote:

Hi Both,
 
Richard - Thanks for sending your diagram, it helps to see things 'visually'

Cort - Thanks for the heads up. Now that you've mentioned it, its obvious that MMDVM clients could connect straight to hb_confbridge. Doh!
 
The code change adds about 5 lines, so not much is lost if it turns out to be unnecessary - although there may be a use case for my change.
 
We can pick this up when you get time - I'm in no huge rush.
 
Thanks again for your help,
 
Matthew
2E0SIP 


Re: Trying to setup a basic 'Parrot', however hb_confbridge.py is not matching the RADIO_ID

Matthew 2E0SIP
 

Hi Both,
 
Richard - Thanks for sending your diagram, it helps to see things 'visually'

Cort - Thanks for the heads up. Now that you've mentioned it, its obvious that MMDVM clients could connect straight to hb_confbridge. Doh!
 
The code change adds about 5 lines, so not much is lost if it turns out to be unnecessary - although there may be a use case for my change.
 
We can pick this up when you get time - I'm in no huge rush.
 
Thanks again for your help,
 
Matthew
2E0SIP 


Re: Trying to setup a basic 'Parrot', however hb_confbridge.py is not matching the RADIO_ID

Cort N0MJS <n0mjs@...>
 

Your configuration does not require running hblink.py at all. You only need parrot and hb_confbridge.py. I don’t have the time right now to write it all up, but as you’re modifying code and going to submit a PR based on not using the existing code correctly, I felt I should post something to stop you before you go to more unnecessary trouble.

hb_confbridge.py calls and uses everything hblink.py does and is…. it *adds* functionality, to hblink.py, so there’s no need to run a copy of each.




On Jul 13, 2017, at 7:37 PM, Matthew 2E0SIP <groups.io@...> wrote:

I switched to the HB_Bridge branch and it performed a little better, in that hb_confbridge was relaying the frames to the parrot, however the parrot was still ignoring them.

I did some digging and found this was due to the fact that hb_confbridge was relaying the frames with the Radio_ID of hblink, rather than that of the Parrots 'client', so they were dropped.

I've resolved it by re-writing the RADIO_ID of the frame is being relayed to a master. I will submit a PR in due course, however I think I must be missing something as I'm surprised this hasn't picked up in the past. 

Is it unusual / unsupported for conf_bridge to bridge two Masters? 

Thanks
Matthew
2E0SIP

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






Re: Trying to setup a basic 'Parrot', however hb_confbridge.py is not matching the RADIO_ID

Matthew 2E0SIP
 

I switched to the HB_Bridge branch and it performed a little better, in that hb_confbridge was relaying the frames to the parrot, however the parrot was still ignoring them.

I did some digging and found this was due to the fact that hb_confbridge was relaying the frames with the Radio_ID of hblink, rather than that of the Parrots 'client', so they were dropped.

I've resolved it by re-writing the RADIO_ID of the frame is being relayed to a master. I will submit a PR in due course, however I think I must be missing something as I'm surprised this hasn't picked up in the past. 

Is it unusual / unsupported for conf_bridge to bridge two Masters? 

Thanks
Matthew
2E0SIP


Trying to setup a basic 'Parrot', however hb_confbridge.py is not matching the RADIO_ID

Matthew 2E0SIP
 

Hi all,

I'm trying to setup a basic parrot, which consists of the following-

hb_parrot (Master) - Provides Parrot Service

hblink (Master) - Allows clients to connect to the service

hb_confbridge (Client) - Conferences the two masters together, bridging audio from 'clients' to the Parrot

My MMDVM based hotspot has successfully connected to hblink, and hblink is relaying DMR frames to hb_confbridge, however they are failing client_datagramReceived RADIO_ID validation, as they are being recieved with the ID of my handheld rather than a client. I have verified this by adding an additional line of logging to hblink.py

I feel like I'm missing something obvious, or I've got my understanding wrong.

Thanks in advance,
Matthew
2E0SIP

PARROT
[MASTER-1] MODE: MASTER ENABLED: True REPEAT: True EXPORT_AMBE: False IP: 127.0.0.1 PORT: 54001 PASSPHRASE: passw0rd GROUP_HANGTIME: 5

hblink

[MASTER-1]

MODE: MASTER
ENABLED: True
REPEAT: True
EXPORT_AMBE: False
IP:
PORT: 54000
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: 2E0SIP
RADIO_ID: 312001
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:

[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: 2E0SIP
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:


Re: DMRlink <-> HBlink communication

Peter M0NWI
 

Mike,

Can I ask about the template file.  Back in time chatting to Cort, we discussed DMRlink having a template based system so adding more repeater manufacturers would be a simpler task, identify the strings required for each type got the template, group voice etc, and hopefully the Ambe data will fit into another manufacturers frame type.

The reason I ask is that I've gotten hold of a Hytera DMR repeater, and wondered if there might be some mileage in adding this to the types offered by DVSwitch?

73,
Peter

Sent from Outlook
From: DVSwitch@groups.io <DVSwitch@groups.io> on behalf of Mike Zingman - N4IRR <mike.zingman@...>
Sent: 13 July 2017 18:55:29
To: DVSwitch@groups.io
Subject: Re: [DVSwitch] DMRlink <-> HBlink communication
 
The template file is a requirement for creating IPSC frames from the bridge.  


Re: DMRlink <-> HBlink communication

Vance, W6SS
 

All appears to be working, THANK YOU very much for all your help.  I have been looking for this functionality for a long time.  It beats putting a repeater in your car when you travel.
--
Vance W6SS


Re: DMRlink <-> HBlink communication

Steve N4IRS
 
Edited

IPSC_Bridge:
-rw-r--r--  1 root root  6543 Jul 13 13:05 dmrlink.cfg
-rwxr-xr-x  1 root root 52232 Jul 13 10:02 dmrlink.py
drwxr-xr-x  2 root root  4096 Jul 13 13:05 ipsc
-rw-r--r--  1 root root   581 Jul 13 10:02 IPSC_Bridge.cfg
-rw-r--r--  1 root root 14482 Jul 13 10:02 IPSC_Bridge.py
-rw-r--r--  1 root root 54622 Jul 13 10:02 template.bin

HB_Bridge:
-rw-r--r--  1 root root   593 Jul 13 10:03 HB_Bridge.cfg
-rw-r--r--  1 root root 10874 Jul 13 10:03 HB_Bridge.py
-rwxr-xr-x  1 root root  8414 Jul 13 10:03 hb_config.py
-rwxr-xr-x  1 root root  1650 Jul 13 10:03 hb_const.py
-rw-r--r--  1 root root  3486 Jul 13 11:17 hblink.cfg
-rwxr-xr-x  1 root root 29037 Jul 13 10:03 hblink.py
-rwxr-xr-x  1 root root  3479 Jul 13 10:03 hb_log.py



On 7/13/2017 1:53 PM, w6ss@... wrote:
Do I need the template.py file?  I can now transmit to the C-Bridge but not getting any audio.

Probably what I need is a listing of files for /opt/dmrlink/bridge and /opt/HBlink
--
Vance W6SS


Re: DMRlink <-> HBlink communication

Mike Zingman - N4IRR
 

The template file is a requirement for creating IPSC frames from the bridge.  


Re: DMRlink <-> HBlink communication

Vance, W6SS
 

Do I need the template.py file?  I can now transmit to the C-Bridge but not getting any audio.

Probably what I need is a listing of files for /opt/dmrlink/bridge and /opt/HBlink
--
Vance W6SS


Re: DMRlink <-> HBlink communication

Mike Zingman - N4IRR
 

In the short term I will make this a fatal error.  In the longer term, I will convert over to use the static values Cort was so kind to convert for me.
HB will not have the same problem since it does not use templates.


Re: DMRlink <-> HBlink communication

Steve N4IRS
 

It goes in the same directory as IPSC_Bridge.py

Mike called it (what a surprise)

Without template.bin
INFO 2017-07-13 13:17:33,862 DMRlink 'IPSC_Bridge.py' (c) 2015 N0MJS & the K0USY Group - SYSTEM STARTING...
INFO 2017-07-13 13:17:33,863 Version 20170620
INFO 2017-07-13 13:17:33,864 ID ALIAS MAPPER: 'peer_ids.csv' is current, not downloaded
INFO 2017-07-13 13:17:33,865 ID ALIAS MAPPER: 'subscriber_ids.csv' is current, not downloaded
INFO 2017-07-13 13:17:33,932 ID ALIAS MAPPER: peer_ids dictionary is available
INFO 2017-07-13 13:17:34,563 ID ALIAS MAPPER: subscriber_ids dictionary is available
INFO 2017-07-13 13:17:34,564 (DMR-MARC) IPSC Instance Created: 311246, 0.0.0.0:50022
INFO 2017-07-13 13:17:34,566 section = DMR-MARC
INFO 2017-07-13 13:17:34,567 Section DMR-MARC was not found, using DEFAULTS
INFO 2017-07-13 13:17:34,568 gateway = 127.0.0.1
INFO 2017-07-13 13:17:34,568 toGatewayPort = 31003
INFO 2017-07-13 13:17:34,569 fromGatewayPort = 31000
INFO 2017-07-13 13:17:34,570 DMRLink IPSC Bridge
ERROR 2017-07-13 13:17:34,572 Can not open template.bin file

Unhandled Error
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 73, in callWithContext
    return context.call({ILogContext: newCtx}, func, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext
    return func(*args,**kw)
  File "/usr/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 614, in _doReadOrWrite
    why = selectable.doRead()
--- <exception caught here> ---
  File "/usr/lib/python2.7/dist-packages/twisted/internet/udp.py", line 246, in doRead
    self.protocol.datagramReceived(data, addr)
  File "/usr/local/lib/python2.7/dist-packages/dmr_utils/ambe_bridge.py", line 184, in datagramReceived
    self.func(_data, (_host, _port))
  File "/usr/local/lib/python2.7/dist-packages/dmr_utils/ambe_bridge.py", line 261, in import_datagramReceived
    self.send_voice_header(_rx_slot)
  File "/usr/local/lib/python2.7/dist-packages/dmr_utils/ambe_bridge.py", line 526, in send_voice_header
    self.rewriteFrame(self._tempHead[i], _rx_slot.slot, _rx_slot.dst_id, _rx_slot.rf_src, _rx_slot.repeater_id)
  File "/usr/local/lib/python2.7/dist-packages/dmr_utils/ambe_bridge.py", line 562, in rewriteFrame
    _peerid         = _frame[1:5]                 # int32 peer who is sending us a packet
exceptions.TypeError: 'int' object has no attribute '__getitem__'

With template.bin
It works!

Steve N4IRS


On 7/13/2017 1:16 PM, Corey Dean N3FE wrote:
It goes directly in the dmrlink folder.

On Thu, Jul 13, 2017 at 1:14 PM, <w6ss@...> wrote:
I found template.bin, does it go in the /opt/dmrlink/bridge directory?
--
Vance W6SS



Re: DMRlink <-> HBlink communication

Corey Dean N3FE <n3fe@...>
 

It goes directly in the dmrlink folder.

On Thu, Jul 13, 2017 at 1:14 PM, <w6ss@...> wrote:
I found template.bin, does it go in the /opt/dmrlink/bridge directory?
--
Vance W6SS



Re: DMRlink <-> HBlink communication

Vance, W6SS
 

I found template.bin, does it go in the /opt/dmrlink/bridge directory?
--
Vance W6SS


Re: DMRlink <-> HBlink communication

Steve N4IRS
 

On 7/13/2017 1:07 PM, w6ss@... wrote:
I do not have template.bin, where do I find it?
--
Vance W6SS


Re: DMRlink <-> HBlink communication

Vance, W6SS
 

I do not have template.bin, where do I find it?
--
Vance W6SS


Re: Beta testing of DummyRepeater for ASL

Mike Zingman - N4IRR
 

Coming to a screen near you

I have done some work on Analog_Bridge and DummyRepeater (AB and DR) that allow the passing of limited metadata between the two networks.  
On the AB side DMR IDs are looked up in the subscriberids.csv.  The call sign is then transferred over to DR along with the talk group and slot.  This information is placed in the DStar message field for the transmission so you can see the source call/tg and slot on your dstar radio.
On the DR side, the call is passed over the bridge to AB where it is looked up in the subscriber_ids.csv file.  If found, it is used as the source ID of the transmission for the DMR network.  If the call is not found (no cc7 id) then the gateway call is used instead.

I will make the changes available in the next day or so.

Mike


Re: DMRlink <-> HBlink communication

Vance, W6SS
 

Than you, not having the rules files make it much easier.  Will wait what to find out from your testing.
--
Vance W6SS


Re: DMRlink <-> HBlink communication

Mike Zingman - N4IRR
 

Just to make sure, you *do* have template.bin in the dmrlink directory, right?
Can you look back at the start of your log for any error message like:
Can not open template.bin file

Mike


Re: DMRlink <-> HBlink communication

Steve N4IRS
 

Vance,
I am chasing it now. Just to be clear:
hb_routing_rules are not used by basic HB to IPSC. Just HB_Bridge and IPSC_Bridge
It looks like this:
MMDVM <---> HB_Bridge <---> IPSC_Bridge <---> C-bridge

The only configuration files involved are:
HB_Bridge.cfg
hblink.cfg

IPSC_Bridge.cfg
dmrlink.cfg

You start HB_Bridge with "python HB_Bridge.py"
You start IPSC_Bridge with python IPSC_Bridge.py"

I am retesting the configuration now.


73, Steve N4IRS


On 7/13/2017 12:34 PM, w6ss@... wrote:
I am running HB_Bridge and IPSC_Bridge and have upgraded the dmr_utils.  I have one TG routed both ways in hb_routing_rules.py and hb_routing_rules.py.   HB_Bridge.cfg the TG has been added.

I can hear the traffic coming from the C-Bridge on the OpenSpot connected to the HB Master.  When I transmit back from the OpenSpot I get the error messages that NZ6D gets.

Any ideas?
--
Vance W6SS

10301 - 10320 of 10637