Git Product home page Git Product logo

hblink3's People

Contributors

andytaylortweet avatar brianjester avatar k2ie avatar kc1awv avatar kf7eel avatar m0vub avatar michaelalink avatar millaguie avatar mreckhof avatar mw0mwz avatar n0mjs710 avatar n4irs avatar shaymez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hblink3's Issues

OVCM Support

Hello,
It’s possible to implement the ovcm bit inside the code ?

like mmdvm?
I used the openspot and there is not possible.

maybe it’s possible only the OVCM to the hotspot

thx
Do1kbl

Talker Alias causes an Exception

Hi,

I am using hblink in a bridged configuration and have noticed DMRA frames cause an exception in the logs:

Unhandled Error
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/twisted/python/log.py", line 86, in callWithContext
    return context.call({ILogContext: newCtx}, func, *args, **kw)
  File "/usr/local/lib/python3.7/dist-packages/twisted/python/context.py", line 122, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "/usr/local/lib/python3.7/dist-packages/twisted/python/context.py", line 85, in callWithContext
    return func(*args,**kw)
  File "/usr/local/lib/python3.7/dist-packages/twisted/internet/posixbase.py", line 614, in _doReadOrWrite
    why = selectable.doRead()
--- <exception caught here> ---
  File "/usr/local/lib/python3.7/dist-packages/twisted/internet/udp.py", line 249, in doRead
    self.protocol.datagramReceived(data, addr)
  File "/opt/hblink3/hblink.py", line 532, in master_datagramReceived
    logger.info('(%s) Recieved DMR Talker Alias from peer %s, subscriber %s', self._system, self._peers[_peer_id]['CALLSIGN'], int_id(_rf_src))
builtins.UnboundLocalError: local variable '_rf_src' referenced before assignment

Looking at the code, _rf_src is indeed referenced before assignment. A quick fix would be to just pass DMRA frames but it would be nice to extract the info I guess.

Thanks
Matthew
2E0SIP

how run without docker

i have dedicated vm cloud, do you have clue or tutorial making this hblink3 running without docker

HBlink crash (memory leak)?

2nd time in one week.

ERROR 2020-11-02 09:49:48,212 (GLOBAL) STOPPING REACTOR TO AVOID MEMORY LEAK: Unhandled error in timed loop.
[Failure instance: Traceback: <class 'KeyError'>: 'LAST'
/usr/local/lib/python3.7/dist-packages/twisted/internet/base.py:1283:run
/usr/local/lib/python3.7/dist-packages/twisted/internet/base.py:1292:mainLoop
/usr/local/lib/python3.7/dist-packages/twisted/internet/base.py:913:runUntilCurrent
/usr/local/lib/python3.7/dist-packages/twisted/internet/task.py:239:call
--- ---
/usr/local/lib/python3.7/dist-packages/twisted/internet/defer.py:151:maybeDeferred
/opt/hblink3/bridge.py:203:stream_trimmer_loop
]
INFO 2020-11-02 09:49:48,219 (REPORT) HBlink reporting client disconnected: IPv4Address(type='TCP', host='127.0.0.1', port=51548)

Talker Alias causes an Exception

Hi,

I am using hblink in a bridged configuration and have noticed DMRA frames cause an exception in the logs:

Unhandled Error
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/twisted/python/log.py", line 86, in callWithContext
    return context.call({ILogContext: newCtx}, func, *args, **kw)
  File "/usr/local/lib/python3.7/dist-packages/twisted/python/context.py", line 122, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "/usr/local/lib/python3.7/dist-packages/twisted/python/context.py", line 85, in callWithContext
    return func(*args,**kw)
  File "/usr/local/lib/python3.7/dist-packages/twisted/internet/posixbase.py", line 614, in _doReadOrWrite
    why = selectable.doRead()
--- <exception caught here> ---
  File "/usr/local/lib/python3.7/dist-packages/twisted/internet/udp.py", line 249, in doRead
    self.protocol.datagramReceived(data, addr)
  File "/opt/hblink3/hblink.py", line 532, in master_datagramReceived
    logger.info('(%s) Recieved DMR Talker Alias from peer %s, subscriber %s', self._system, self._peers[_peer_id]['CALLSIGN'], int_id(_rf_src))
builtins.UnboundLocalError: local variable '_rf_src' referenced before assignment

Looking at the code, _rf_src is indeed referenced before assignment. A quick fix would be to just pass DMRA frames but it would be nice to extract the info I guess.

Thanks
Matthew
2E0SIP

XLX Support Vanished

Sometme after commit 08f6669, XLX support has vanished. Confirmed locally by a hard reset and XLX support is there.

Byte field arithmetic fails with "TypeError: can't concat int to bytes"

Per https://dvswitch.groups.io/g/HBlink/message/2616

Unhandled Error
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/twisted/python/log.py", line 86, in callWithContext
return context.call({ILogContext: newCtx}, func, *args, **kw)
File "/usr/lib/python3/dist-packages/twisted/python/context.py", line 122, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "/usr/lib/python3/dist-packages/twisted/python/context.py", line 85, in callWithContext
return func(*args,**kw)
File "/usr/lib/python3/dist-packages/twisted/internet/posixbase.py", line 614, in _doReadOrWrite
why = selectable.doRead()
--- <exception caught here> ---
File "/usr/lib/python3/dist-packages/twisted/internet/udp.py", line 249, in doRead
self.protocol.datagramReceived(data, addr)
File "/opt/hblink3/hblink.py", line 603, in peer_datagramReceived
self.dmrd_received(_peer_id, _rf_src, _dst_id, _seq, _slot, _call_type, _frame_type, _dtype_vseq, _stream_id, _data)
File "./bridge_all.py", line 130, in dmrd_received
if _seq > (self.STATUS[_slot]['RX_SEQ'] + 1):
builtins.TypeError: can't concat int to bytes

There's a need for int.from_bytes() here, but we should look at the entirety of the code to make sure we're not just throwing duct tape on the problem.

Python3 error: builtins.TypeError: cannot extend bitarray with

I get his error running hblink3

Unhandled Error
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/dist-packages/twisted/python/log.py", line 80, in callWithContext
    return context.call({ILogContext: newCtx}, func, *args, **kw)
  File "/usr/local/lib/python3.9/dist-packages/twisted/python/context.py", line 117, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "/usr/local/lib/python3.9/dist-packages/twisted/python/context.py", line 82, in callWithContext
    return func(*args, **kw)
  File "/usr/local/lib/python3.9/dist-packages/twisted/internet/posixbase.py", line 487, in _doReadOrWrite
    why = selectable.doRead()
--- <exception caught here> ---
  File "/usr/local/lib/python3.9/dist-packages/twisted/internet/udp.py", line 254, in doRead
    self.protocol.datagramReceived(data, addr)
  File "/opt/HBlink3/hblink.py", line 603, in peer_datagramReceived
    self.dmrd_received(_peer_id, _rf_src, _dst_id, _seq, _slot, _call_type, _frame_type, _dtype_vseq, _stream_id, _data)
  File "/opt/HBlink3/./bridge.py", line 1047, in dmrd_received
    self.group_received(_peer_id, _rf_src, _dst_id, _seq, _slot, _frame_type, _dtype_vseq, _stream_id, _data)
  File "/opt/HBlink3/./bridge.py", line 817, in group_received
    dmrbits = dmrbits[0:116] + _target_status[_target['TS']]['TX_EMB_LC'][_dtype_vseq] + dmrbits[148:264]
builtins.TypeError: cannot extend bitarray with 'bytes', use .pack() or .frombytes() instead

I'm using python3 on linux debian

Problem connectig to hblink

Hello;I have problems connecting to another Hblink server, the server restarts the authentication very 1S connection is working and I get the QSO.

http://137.74.195.150:8080

COFIG:

[DMR-FRANCOPHONE]
MODE: PEER
ENABLED: True
LOOSE: False
EXPORT_AMBE: False
IP:
PORT: 54004
MASTER_IP: 137.74.195.150
MASTER_PORT: 62030
PASSPHRASE: passw0rd
CALLSIGN: FXXXX
RADIO_ID: 2080XXX99
RX_FREQ: 443900000
TX_FREQ: 443900000
TX_POWER: 25
COLORCODE: 1
SLOTS: 1
LATITUDE: XX.XXXX
LONGITUDE: X.XXXX
HEIGHT: 75
LOCATION: XXXXXX,XXXXx
DESCRIPTION: HBlink
URL: XXXXXXXXXXXXXXX
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 5
OPTIONS:
USE_ACL: True
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL

LOGS:

INFO 2020-10-31 11:35:32,445 (DMR-FRANCOPHONE) Repeater Authentication Accepted
INFO 2020-10-31 11:35:32,446 (DMR-FRANCOPHONE) Repeater Configuration Sent
INFO 2020-10-31 11:35:32,459 (DMR-FRANCOPHONE) Repeater Configuration Accepted
INFO 2020-10-31 11:35:32,460 (DMR-FRANCOPHONE) Sent options: (b'Type=HBlink;')
INFO 2020-10-31 11:35:37,414 (DMR-FRANCOPHONE) Sending login request to master 137.74.195.150:62030
INFO 2020-10-31 11:35:37,429 (DMR-FRANCOPHONE) Repeater Login ACK Received with 32bit ID: 4084617675
INFO 2020-10-31 11:35:37,443 (DMR-FRANCOPHONE) Repeater Authentication Accepted
INFO 2020-10-31 11:35:37,443 (DMR-FRANCOPHONE) Repeater Configuration Sent
INFO 2020-10-31 11:35:37,457 (DMR-FRANCOPHONE) Repeater Configuration Accepted
INFO 2020-10-31 11:35:37,458 (DMR-FRANCOPHONE) Sent options: (b'Type=HBlink;')
INFO 2020-10-31 11:35:42,416 (DMR-FRANCOPHONE) Sending login request to master 137.74.195.150:62030
INFO 2020-10-31 11:35:42,431 (DMR-FRANCOPHONE) Repeater Login ACK Received with 32bit ID: 2731809743
INFO 2020-10-31 11:35:42,445 (DMR-FRANCOPHONE) Repeater Authentication Accepted
INFO 2020-10-31 11:35:42,446 (DMR-FRANCOPHONE) Repeater Configuration Sent
INFO 2020-10-31 11:35:42,460 (DMR-FRANCOPHONE) Repeater Configuration Accepted
INFO 2020-10-31 11:35:42,462 (DMR-FRANCOPHONE) Sent options: (b'Type=HBlink;')
INFO 2020-10-31 11:35:47,415 (DMR-FRANCOPHONE) Sending login request to master 137.74.195.150:62030
INFO 2020-10-31 11:35:47,430 (DMR-FRANCOPHONE) Repeater Login ACK Received with 32bit ID: 859213554
INFO 2020-10-31 11:35:47,444 (DMR-FRANCOPHONE) Repeater Authentication Accepted
INFO 2020-10-31 11:35:47,445 (DMR-FRANCOPHONE) Repeater Configuration Sent
INFO 2020-10-31 11:35:47,459 (DMR-FRANCOPHONE) Repeater Configuration Accepted
INFO 2020-10-31 11:35:47,461 (DMR-FRANCOPHONE) Sent options: (b'Type=HBlink;')

Regards,
F4IRF

HBlink incorrecly sees data as new group call from XLX when none sent

As discussed on the groups.io mailing list and submitted with some additional data.

At the end of any transmission to a bridge group in which an XLXPEER participates, HBlink thinks the XLX is sending a brief new group call in response to the end of the original stream. I am fairly certain (through packet capture) that there are no out of sequence packets being sent back from the XLX.

HBlink is somehow confused by what it thinks it sees. This results in artifacts of a new transmission in the log when none was went. It gets in the way of private calls working properly, as calls get forwarded to the XLX (where the desired recpient is not).

Configs and other data follow:

Log evidence:

INFO 2020-10-27 09:40:24,091 (HOTSPOTS) GROUP CALL START STREAM ID: 3158937644 SUB: K2IE (3134090) PEER: 313409002 (313409002) TGID 2 (2), TS 2
INFO 2020-10-27 09:40:24,095 (HOTSPOTS) Conference Bridge: TEST BRIDGE, Call Bridged to HBP System: XLX020E TS: 2, TGID: 2
INFO 2020-10-27 09:40:29,990 (HOTSPOTS) GROUP CALL END STREAM ID: 3158937644 SUB: K2IE (3134090) PEER: 313409002 (313409002) TGID 2 (2), TS 2, Duration: 5.90
INFO 2020-10-27 09:40:30,021 (XLX020E) GROUP CALL START STREAM ID: 3158900736 SUB: K2IE (3134090) PEER: 3163081 (3163081) TGID 9 (9), TS 2

Config:

[HOTSPOTS]
MODE: MASTER
ENABLED: True
REPEAT: True
MAX_PEERS: 10
EXPORT_AMBE: False
IP:
PORT: 54100
PASSPHRASE: passw0rd
GROUP_HANGTIME: 5
USE_ACL: True
REG_ACL: DENY:1
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL

Ok to test against XLX020E for this issue

[XLX020E]
MODE: XLXPEER
ENABLED: True
LOOSE: True
EXPORT_AMBE: False
IP:
PORT: 54002
MASTER_IP: 66.175.215.217
MASTER_PORT: 62030
PASSPHRASE: passw0rd
CALLSIGN: YOUR_VALID_CALL
RADIO_ID: YOUR_VALID_RID
RX_FREQ: 449000000
TX_FREQ: 444000000
TX_POWER: 25
COLORCODE: 1
SLOTS: 1
LATITUDE: 38.0000
LONGITUDE: -095.0000
HEIGHT: 75
LOCATION: Anywhere, USA
DESCRIPTION: Test config
URL: www.w1abc.org
SOFTWARE_ID: 20170620
PACKAGE_ID: MMDVM_HBlink
GROUP_HANGTIME: 5
XLXMODULE: 4005
USE_ACL: True
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL

Rules:

BRIDGES = {
'TEST BRIDGE': [
{'SYSTEM': 'HOTSPOTS', 'TS': 2, 'TGID': 2, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []},

xlxd.zip
{'SYSTEM': 'XLX020E', 'TS': 2, 'TGID': 2, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []},
]
}

UNIT = ['HOTSPOTS', 'XLX020E']

Wireshark capture done on the XLX attached so show how the sequence numbers are being properly incremented from the XLX end. See xlxd.zip.

TOTP/AirSecurity Support

Recently, BM servers bring TOTP/AirSecurity service online,(Different Ids)users need to dial TOTP codes to confirm their identity by private call before group calling。It seems hblink3 won’t transmit the private call with TOTP codes to BM servers when local repeater is bridged to BM servers。Are there any plans to adapt to this function in the near future?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.