Date   

Re: P25 to DMR troubles. error at MMDVM_Bridge - Cannot bind UDP address, err: 98 -and- Cannot open listener port 34103

Steve N4IRS
 

It's a single instance of MB

Sent via smoke signal (AT&T)


From: main@DVSwitch.groups.io <main@DVSwitch.groups.io> on behalf of Todd, KB7RQQ <toddholzman@...>
Sent: Thursday, September 16, 2021 10:16:02 AM
To: main@DVSwitch.groups.io <main@DVSwitch.groups.io>
Subject: Re: [DVSwitch] P25 to DMR troubles. error at MMDVM_Bridge - Cannot bind UDP address, err: 98 -and- Cannot open listener port 34103
 
Thanks Steve (again!)   Starting to make a little more sense now.  Was following some loose instructions that didn't mention two instances of MMDVM_Bridge being needed.  And I also don't remember getting into DVSwitch.ini.  

Here is my DVSwitch.ini.

; MMDVM_Bridge export / import configuration file.
;   This file should be placed along side of MMDVM_Bridge or you can supply
;   an absolute path in the DVSWITCH environment variable, e.g:
;   DVSWITCH=/etc/MMDVM_Bridge/DVSwitch.ini
;   before executing MMDVM_Bridge
;
; Another method to set the enviorment variable is to use the systemd unit file
; by adding:
; Environment=DVSWITCH=/etc/MMDVM_Bridge/DVSwitch.ini
; to /lib/systemd/system/mmdvm_bridge.service
 
; Configure the Quantar Repeater Partner
; Note that the TX and RX ports are already reversed for MMDVM_Bridge <--> Quantar_Bridge
[QUANTAR]
address = 0.0.0.0               ; Address to send IMBE TLV frames to (export)
txPort = 34103                  ; Port to send IMBE TLV frames to (export)
rxPort = 34100                  ; Port to listen for IMBE TLV frames on (import)
quantarPort = 1994              ; HDLC frames To/From the Quantar repeater
debug = 0                       ; Debug 0 = off, 1 = on (adds lots of additional messages)
logLevel = 2                    ; Logging levels, 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
logFilePath = /var/log/dvswitch/Quantar_Bridge.log
 
; Configure the DMR Partner
; Audio format is AMBE 72 bit
[DMR]
address = 127.0.0.1             ; Address to send AMBE TLV frames to (export)
txPort = 31100                  ; Port to send AMBE TLV frames to (export)
rxPort = 31103                  ; Port to listen on (import)
slot = 2                        ; Export slot
exportTG = 0                    ; Which TG to export 
hangTimerInFrames = 0 ; Use 50 for 3 seconds of hang time (3000 / 60) 
talkerAlias = %callsign %location %description ; Get callsign location and description from MMDVM_Bridge.ini
 
; Configure the D-Star Partner
; Audio format is AMBE 48 bit (DSAMBE)
[DSTAR]
address = 127.0.0.1             ; Address to send AMBE TLV frames to (export)
txPort = 32100                  ; Port to send AMBE TLV frames to (export)
rxPort = 32103                  ; Port to listen on (import)
fallbackID = 1234567            ; In case we can not find a valid DMR id in the database, export this one
exportTG = 9                    ; Which TG to export
slot = 2                        ; Export slot
RemotePort = 54321 ; Port to send Gateway commands to
message = %location %description ; Get location and description from MMDVM_Bridge.ini
 
; Configure the NXDN Partner
; Audio format is AMBE 72 bit
[NXDN]
address = 127.0.0.1             ; Address to send AMBE TLV frames to (export)
txPort = 33100                  ; Port to send AMBE TLV frames to (export)
rxPort = 33103                  ; Port to listen on (import)
fallbackID = 1234567            ; In case we can not find a valid DMR id in the database, export this one
nxdnFallbackID  = 12345         ; Use this ID when the input DMR ID is not found in the database
translate = 1234=4321           ; Translate NXDN TG < -- > DMR TG (bidirectional)
slot = 2                        ; Export slot
RemotePort = 6075 ; Port to send Gateway commands to
 
; Configure the P25 Partner
; Audio format is IMBE 88 bit
[P25]
address = 127.0.0.1             ; Address to send AMBE TLV frames to (export)
txPort = 34100                  ; Port to send AMBE TLV frames to (export)
rxPort = 34103                  ; Port to listen on (import)
slot = 2                        ; Export slot
RemotePort = 6074 ; Port to send Gateway commands to
 
; Configure the Yaesu Fusion Partner
; Audio format is AMBE 72 bit
; Audio format is IMBE 88 bit
[YSF]
address = 127.0.0.1             ; Address to send AMBE TLV frames to (export)
txPort = 35100                  ; Port to send AMBE TLV frames to (export)
rxPort = 35103                  ; Port to listen on (import)
txWidePort = 35105 ; Port to send IMBE TLV frames to for YSFw (export)
fallbackID = 1234567            ; In case we can not find a valid DMR id in the database, export this one
exportTG = 9                    ; Which TG to export
slot = 2                        ; Export slot
RemotePort = 6073 ; Port to send Gateway commands to
 
; Configure the BrandMeister connection
; Simple Terminal Feature Update
; Audio format is AMBE 72 bit
[STFU]                          ; Brandmeister Open DMR Terminal (ODMRT) Protocol
BMAddress = 3102.repeater.net   ; Brandmeister ODMRT server address
BMPort = 54006                  ; Brandmeister ODMRT port
BMPassword = passw0rd           ; Your Brandmeister password
Address = 127.0.0.1             ; Address to send AMBE TLV frames to (export)
txPort  = 36100                 ; Port to send AMBE TLV frames to (export)
rxPort  = 36103                 ; Port to listen on (import)
UserID  = 123456789             ; Your DMR ID + SSID
TalkerAlias = N0CALL Name City  ; Max 27 characters
StartTG = 3166                  ; Startup talk group
LogLevel = 3                    ; STFU log level (0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error)
 
[ASL]
address = 127.0.0.1
txPort = 30100
rxPort = 30103
 


Re: P25 to DMR troubles. error at MMDVM_Bridge - Cannot bind UDP address, err: 98 -and- Cannot open listener port 34103

Todd, KB7RQQ
 

Thanks Steve (again!)   Starting to make a little more sense now.  Was following some loose instructions that didn't mention two instances of MMDVM_Bridge being needed.  And I also don't remember getting into DVSwitch.ini.  

Here is my DVSwitch.ini.

; MMDVM_Bridge export / import configuration file.
;   This file should be placed along side of MMDVM_Bridge or you can supply
;   an absolute path in the DVSWITCH environment variable, e.g:
;   DVSWITCH=/etc/MMDVM_Bridge/DVSwitch.ini
;   before executing MMDVM_Bridge
;
; Another method to set the enviorment variable is to use the systemd unit file
; by adding:
; Environment=DVSWITCH=/etc/MMDVM_Bridge/DVSwitch.ini
; to /lib/systemd/system/mmdvm_bridge.service
 
; Configure the Quantar Repeater Partner
; Note that the TX and RX ports are already reversed for MMDVM_Bridge <--> Quantar_Bridge
[QUANTAR]
address = 0.0.0.0               ; Address to send IMBE TLV frames to (export)
txPort = 34103                  ; Port to send IMBE TLV frames to (export)
rxPort = 34100                  ; Port to listen for IMBE TLV frames on (import)
quantarPort = 1994              ; HDLC frames To/From the Quantar repeater
debug = 0                       ; Debug 0 = off, 1 = on (adds lots of additional messages)
logLevel = 2                    ; Logging levels, 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
logFilePath = /var/log/dvswitch/Quantar_Bridge.log
 
; Configure the DMR Partner
; Audio format is AMBE 72 bit
[DMR]
address = 127.0.0.1             ; Address to send AMBE TLV frames to (export)
txPort = 31100                  ; Port to send AMBE TLV frames to (export)
rxPort = 31103                  ; Port to listen on (import)
slot = 2                        ; Export slot
exportTG = 0                    ; Which TG to export 
hangTimerInFrames = 0 ; Use 50 for 3 seconds of hang time (3000 / 60) 
talkerAlias = %callsign %location %description ; Get callsign location and description from MMDVM_Bridge.ini
 
; Configure the D-Star Partner
; Audio format is AMBE 48 bit (DSAMBE)
[DSTAR]
address = 127.0.0.1             ; Address to send AMBE TLV frames to (export)
txPort = 32100                  ; Port to send AMBE TLV frames to (export)
rxPort = 32103                  ; Port to listen on (import)
fallbackID = 1234567            ; In case we can not find a valid DMR id in the database, export this one
exportTG = 9                    ; Which TG to export
slot = 2                        ; Export slot
RemotePort = 54321 ; Port to send Gateway commands to
message = %location %description ; Get location and description from MMDVM_Bridge.ini
 
; Configure the NXDN Partner
; Audio format is AMBE 72 bit
[NXDN]
address = 127.0.0.1             ; Address to send AMBE TLV frames to (export)
txPort = 33100                  ; Port to send AMBE TLV frames to (export)
rxPort = 33103                  ; Port to listen on (import)
fallbackID = 1234567            ; In case we can not find a valid DMR id in the database, export this one
nxdnFallbackID  = 12345         ; Use this ID when the input DMR ID is not found in the database
translate = 1234=4321           ; Translate NXDN TG < -- > DMR TG (bidirectional)
slot = 2                        ; Export slot
RemotePort = 6075 ; Port to send Gateway commands to
 
; Configure the P25 Partner
; Audio format is IMBE 88 bit
[P25]
address = 127.0.0.1             ; Address to send AMBE TLV frames to (export)
txPort = 34100                  ; Port to send AMBE TLV frames to (export)
rxPort = 34103                  ; Port to listen on (import)
slot = 2                        ; Export slot
RemotePort = 6074 ; Port to send Gateway commands to
 
; Configure the Yaesu Fusion Partner
; Audio format is AMBE 72 bit
; Audio format is IMBE 88 bit
[YSF]
address = 127.0.0.1             ; Address to send AMBE TLV frames to (export)
txPort = 35100                  ; Port to send AMBE TLV frames to (export)
rxPort = 35103                  ; Port to listen on (import)
txWidePort = 35105 ; Port to send IMBE TLV frames to for YSFw (export)
fallbackID = 1234567            ; In case we can not find a valid DMR id in the database, export this one
exportTG = 9                    ; Which TG to export
slot = 2                        ; Export slot
RemotePort = 6073 ; Port to send Gateway commands to
 
; Configure the BrandMeister connection
; Simple Terminal Feature Update
; Audio format is AMBE 72 bit
[STFU]                          ; Brandmeister Open DMR Terminal (ODMRT) Protocol
BMAddress = 3102.repeater.net   ; Brandmeister ODMRT server address
BMPort = 54006                  ; Brandmeister ODMRT port
BMPassword = passw0rd           ; Your Brandmeister password
Address = 127.0.0.1             ; Address to send AMBE TLV frames to (export)
txPort  = 36100                 ; Port to send AMBE TLV frames to (export)
rxPort  = 36103                 ; Port to listen on (import)
UserID  = 123456789             ; Your DMR ID + SSID
TalkerAlias = N0CALL Name City  ; Max 27 characters
StartTG = 3166                  ; Startup talk group
LogLevel = 3                    ; STFU log level (0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error)
 
[ASL]
address = 127.0.0.1
txPort = 30100
rxPort = 30103
 


Re: Macro result was 512 #analog_bridge

Steve N4IRS
 

OK,
So we know the macro is firing the script. Macros A B and C run
The MMDVM_Bridge install moved  dvswitch.sh from /opt/Analog_Bridge to /opt/MMDVM_Bridge Do you have it in both locations? What is the version of dvswitch you are executing?

On 9/16/2021 8:09 AM, Geoff wrote:
It created an out.txt file in /tmp containing a text "version"


Re: Macro result was 512 #analog_bridge

Geoff
 

It created an out.txt file in /tmp containing a text "version"


Re: Macro result was 512 #analog_bridge

Steve N4IRS
 

OK,
Try this:
D=sudo echo version >/tmp/out.txt

On 9/16/2021 7:21 AM, Geoff wrote:
I have attached two copies of dvsm.macro files.
One is mine and the other is for one of the user's


Re: Macro result was 512 #analog_bridge

Geoff
 

I have attached two copies of dvsm.macro files.
One is mine and the other is for one of the user's


Re: Macro result was 512 #analog_bridge

Steve N4IRS
 

Show your dvsm.macro

On 9/16/21 7:00 AM, Geoff wrote:
Steve,

I am running a multi user server (DVLink). I have no problems using the macro to change DMR servers using other user's account.
To give you an insight of what I have done to my server, I have recently updated dvswitch.sh to v1.6.1 from v1.5.9 and also updated MMDVM_Bridge to the latest v.1.6.8.
I have not updated  other users' dvswitch.sh but updated MMDVM_Bridge to the latest.
So only difference is that as a main user myself I am using dvswitch v1.6.1 and the rest of the users are still using dvswitch.sh v 1.5.9
I wonder if I need to revert to dvswitch v1.5.9.
Hope that helps.


Re: Macro result was 512 #analog_bridge

Geoff
 

Steve,

I am running a multi user server (DVLink). I have no problems using the macro to change DMR servers using other user's account.
To give you an insight of what I have done to my server, I have recently updated dvswitch.sh to v1.6.1 from v1.5.9 and also updated MMDVM_Bridge to the latest v.1.6.8.
I have not updated  other users' dvswitch.sh but updated MMDVM_Bridge to the latest.
So only difference is that as a main user myself I am using dvswitch v1.6.1 and the rest of the users are still using dvswitch.sh v 1.5.9
I wonder if I need to revert to dvswitch v1.5.9.
Hope that helps.


Re: Macro result was 512 #analog_bridge

Geoff
 

Steve,

I ran and got "macro result was 256".
There was no file named out.txt  in /tmp.


Re: Macro result was 512 #analog_bridge

Steve N4IRS
 

Geff,
Let's verify that D is executing what you think it is.
in dvsm.macro change D to:
D=sudo /opt/Analog_Bridge/dvswitch.sh "version ALL >/tmp/out.txt"

Run the macro and see if you get the 512 result. If not, what is the contents of /tmp/out.txt

On 9/16/21 6:12 AM, Geoff wrote:
Thank you for coming back to me.
The following are my macro settings in dvsm.macro

A=sudo /opt/Analog_Bridge/dvswitch.sh tune "1961@...:62031"
B=sudo /opt/Analog_Bridge/dvswitch.sh tune "1961@...:62031"
C=sudo /opt/Analog_Bridge/dvswitch.sh tune "PASSWORD@...:55555:StartRef=4570;RelinkTime=120;UserLink=1;TS2_1=450;TS2_2=518"
D=sudo /opt/Analog_Bridge/dvswitch.sh tune "PASSWORD@...:55555:StartRef=4570;RelinkTime=120;UserLink=1;TS1_1=5;TS2_1=505;TS2_2=3802"

If I issue the command at the prompt, it connects to the desired DMR+ server as shown below :-
~$ sudo /opt/Analog_Bridge/dvswitch.sh tune "1961@...:55555:StartRef=4570;RelinkTime=120;UserLink=1;TS1_1=5;TS2_1=505;TS2_2=3802"

However, when I issue macro "*D", I get "macro result was 512" and can not connect to the server.

Thank you.


Re: Macro result was 512 #analog_bridge

Geoff
 

On Thu, Sep 16, 2021 at 08:12 PM, Geoff wrote:
~$ sudo /opt/Analog_Bridge/dvswitch.sh tune "1961@...:55555:StartRef=4570;RelinkTime=120;UserLink=1;TS1_1=5;TS2_1=505;TS2_2=3802"
Correction :-

~$ sudo /opt/Analog_Bridge/dvswitch.sh tune "PASSWORD@...:55555:StartRef=4570;RelinkTime=120;UserLink=1;TS1_1=5;TS2_1=505;TS2_2=3802"


Re: Macro result was 512 #analog_bridge

Geoff
 

Thank you for coming back to me.
The following are my macro settings in dvsm.macro

A=sudo /opt/Analog_Bridge/dvswitch.sh tune "1961@...:62031"
B=sudo /opt/Analog_Bridge/dvswitch.sh tune "1961@...:62031"
C=sudo /opt/Analog_Bridge/dvswitch.sh tune "PASSWORD@...:55555:StartRef=4570;RelinkTime=120;UserLink=1;TS2_1=450;TS2_2=518"
D=sudo /opt/Analog_Bridge/dvswitch.sh tune "PASSWORD@...:55555:StartRef=4570;RelinkTime=120;UserLink=1;TS1_1=5;TS2_1=505;TS2_2=3802"

If I issue the command at the prompt, it connects to the desired DMR+ server as shown below :-
~$ sudo /opt/Analog_Bridge/dvswitch.sh tune "1961@...:55555:StartRef=4570;RelinkTime=120;UserLink=1;TS1_1=5;TS2_1=505;TS2_2=3802"

However, when I issue macro "*D", I get "macro result was 512" and can not connect to the server.

Thank you.


Re: P25 to DMR troubles. error at MMDVM_Bridge - Cannot bind UDP address, err: 98 -and- Cannot open listener port 34103

Steve N4IRS
 

The path would be:
P25Reflector <-> P25Gateway <-> MMDVM_Bridge <->Analog_Bridge_P25 <-> Analog_Bridge_DMR <-> MMDVM_Bridge <-> DMR network This would use a single instance of MMDVM_Bridge.
Analog_Bridge_P25 [AMBE_AUDIO] should point to the UDP ports defined in DVSwitch.ini for P25 and Analog_Bridge_DMR [AMBE_AUDIO] should point to the UDP ports defined in DVSwitch.ini for DMR.

Show your DVSwitch.ini

On 9/15/21 10:06 PM, Todd, KB7RQQ wrote:
I have a P25 reflector running and it works great.  Decided to bridge to our DMR talk group. so I have P25Reflector --> P25Gateway --> Analog_Bridge_DMR --> Analog_Bridge_P25 --> MMDVM_Bridge.  Reflector is working fine, checked both AB's for port accuracy.  When I fire them up in that order, I get an error on MMDVM_Bridge.

This is cut down to the end....

M: 2021-09-16 01:32:00.439 P25, Opening INI file: DVSwitch.ini
M: 2021-09-16 01:32:00.440 P25, Setting [P25] address -> 127.0.0.1
M: 2021-09-16 01:32:00.440 P25, Setting [P25] txPort -> 34100
M: 2021-09-16 01:32:00.440 P25, Setting [P25] rxPort -> 34103
M: 2021-09-16 01:32:00.440 P25, Setting [P25] slot -> 2
M: 2021-09-16 01:32:00.440 P25, Setting [P25] RemotePort -> 6074
E: 2021-09-16 01:32:00.440 Cannot bind the UDP address, err: 98
F: 2021-09-16 01:32:00.440 P25, Can not open listener port 34103

34103 would be the rxPort of P25 side of Analog_Bridge_P25.ini    Not sure what configs would be helpful so I'll start with P25Bridge/AB_DMR/ABP25

Anyone see anything that stands out as whacky?

--P25Bridge.ini
[General]
Callsign=KB7RQQ
RptAddress=127.0.0.1
RptPort=32010
LocalPort=42020
Daemon=0
 
[Id Lookup]
Name=/var/lib/mmdvm/DMRIds.dat
Time=24
 
[Voice]
Enabled=1
Language=en_US
Directory=./Audio
 
[Log]
# Logging levels, 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
DisplayLevel=1
FileLevel=2
FilePath=/var/log/mmdvm
FileRoot=P25Gateway
 
[Network]
Port=42010
HostsFile1=/etc/P25Hosts.txt
HostsFile2=./private/P25Hosts.txt
ReloadTime=60
ParrotAddress=127.0.0.1
ParrotPort=42011
Startup=31655
InactivityTimeout=10
Debug=0
 
[Remote Commands]
Enable=0
Port=6074



--Analog_Bridge_DMR.ini

; Analog_Bridge configuration file.
;   This file should be placed in either /etc or it can be
;   supplied as a path on the Analog_Bridge command line.
 
; The best way to think of this file is that there are two main sections, the USRP (analog audio) and
; AMBE_AUDIO (compressed audio).  Analog_Bridge will take everything sent to the USRP port and
; encode it for transmission on the AMBE_AUDIO port.  The encoder will use the format defined in ambeMode.
; As you might expect, the reverse direction is defined too.
 
; Analog_Bridge supports include files. More on this later...
include = dvsm.macro
; include = asl.macro
 
; General Section describes settings for Analog_Bridge itself.
[GENERAL]
logLevel = 2                            ; Show messages and above 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
 
; Metadata management
exportMetadata = true                   ; Export metadata to USRP partner (transcode setups require this)
transferRootDir = /tmp ; Export database files to USRP partner
subscriberFile = /var/lib/dvswitch/subscriber_ids.csv   ; DMR ID to callsign lookup data
 
; General vocoder setup information
decoderFallBack = true                  ; Allow software AMBE decoding if a hardware decoder is not found
useEmulator = false                     ; Use the MD380 AMBE emulator for AMBE72 (DMR/YSFN/NXDN)
emulatorAddress = 127.0.0.1:2470        ; IP address and port of the md380 server
 
pcmPort = 2222                          ; UDP port to send to the WebProxy
 
; Information for xx_Bridge (Where xx is MMDVM, Quantar, HB, IPSC)
[AMBE_AUDIO]
address = 127.0.0.1                     ; IP address of xx_Bridge
txPort = 31100                          ; Transmit TLV frames to partner on this port
rxPort = 31103                          ; Listen for TLV frames from partner on this port
ambeMode = DMR                          ; DMR, DMR_IPSC, DSTAR, NXDN, P25, YSFN, YSFW (encode PCM to this format)
minTxTimeMS = 2000                      ; Analog -> Digital Minimum time in MS for hang delay (0-10000)
 
; The metadata below is used when ASL is the source since it does not have any concept of digital modes
gatewayDmrId = 3153376                  ; ID to use when transmitting from Analog_Bridge 7 digit ID
repeaterID = 315337613                  ; ID of source repeater 7 digit ID plus 2 digit SSID 
txTg = 31655                                ; TG to use for all frames sent from Analog_Bridge -> xx_Bridge
txTs = 1                                ; Slot to use for frames sent from Analog_Bridge -> xx_Bridge
colorCode = 1                           ; Color Code to assign DMR frames
 
; Information for USRP channel driver.  This interface uses PCM to transfer audio information
; There are two typical configurations, ASL and Transcode.  ASL (AllstarLink) is for analog clients connected
; to a digital network.  Transcode is when Analog_Bridge actually points its PCM interfaces back at itself, 
; causing a TLV <-- (pcm <--> pcm) --> TLV type of architecture.
;   When using ASL, this matches the rpt.conf ASL file with a setting like:
;   rxchannel = usrp/127.0.0.1:34001:32001
;   When Transcoding, make two ini files and set txPort equal to the other instance rxPort (crossover).  Launch
;   each instance with its own ini file.
[USRP]
address = 127.0.0.1                     ; IP address of USRP partner (Analog_Reflector, Allstar/Asterisk or another Analog_Bridge)
txPort = 32001                          ; Transmit USRP frames on this port
rxPort = 34001                          ; Listen for USRP frames on this port
usrpAudio = AUDIO_UNITY                 ; Digital -> Analog (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_USE_AGC)
usrpGain = 1.10                         ; Gain factor when usrpAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY)
usrpAGC = -20,10,100                    ; Set the agc threshold (db), slope (db) and decay (ms)
tlvAudio = AUDIO_UNITY                  ; Analog -> Digital (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_BPF)
tlvGain = 0.35                          ; Gain factor when tlvAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY)
 
[MACROS]
 
; Where the macros are
; xxxx=yyyy
; xxxx is the dial string to match
; yyyy is the command line to execute
 
; xxxx must be preceded by a *
; xxxx can be any string (alphanumeric)
; yyyy is the command to execute
; yyyy will replace xxxx in the dial string
; arguments follow the macro name with a # delimiter
 
; For example using macro "5678" above would look like:
; *5678#9876
 
; Which would invoke:
; echo 9876
 
; Information for DV3000 hardware decoder
;   There are two configuration modes: IP (AMBEServer) and serial (direct connect hardware)
;   Use top server and port if using AMBEServer
;   Use bottom server/port and serial = true if using the DV3000u (thumbdv)
;   Did you run AMBETest4.py before using this?
[DV3000]
address = 127.0.0.1                   ; IP address of AMBEServer
rxPort = 2460                         ; Port of AMBEServer
; address = /dev/ttyUSB0              ; Device of DV3000U on this machine
; baud = 460800                       ; Baud rate of the dongle (230400 or 460800)
; serial = true                       ; Use serial=true for direct connect or serial=false for AMBEServer




--Analog_Bridge_P25

; Analog_Bridge configuration file.
;   This file should be placed in either /etc or it can be
;   supplied as a path on the Analog_Bridge command line.
 
; The best way to think of this file is that there are two main sections, the USRP (analog audio) and
; AMBE_AUDIO (compressed audio).  Analog_Bridge will take everything sent to the USRP port and
; encode it for transmission on the AMBE_AUDIO port.  The encoder will use the format defined in ambeMode.
; As you might expect, the reverse direction is defined too.
 
; Analog_Bridge supports include files. More on this later...
include = dvsm.macro
; include = asl.macro
 
; General Section describes settings for Analog_Bridge itself.
[GENERAL]
logLevel = 2                            ; Show messages and above 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
 
; Metadata management
exportMetadata = true                   ; Export metadata to USRP partner (transcode setups require this)
transferRootDir = /tmp ; Export database files to USRP partner
subscriberFile = /var/lib/dvswitch/subscriber_ids.csv   ; DMR ID to callsign lookup data
 
; General vocoder setup information
decoderFallBack = true                  ; Allow software AMBE decoding if a hardware decoder is not found
useEmulator = false                     ; Use the MD380 AMBE emulator for AMBE72 (DMR/YSFN/NXDN)
emulatorAddress = 127.0.0.1:2470        ; IP address and port of the md380 server
 
pcmPort = 2222                          ; UDP port to send to the WebProxy
 
; Information for xx_Bridge (Where xx is MMDVM, Quantar, HB, IPSC)
[AMBE_AUDIO]
address = 127.0.0.1                     ; IP address of xx_Bridge
txPort = 34100                          ; Transmit TLV frames to partner on this port
rxPort = 34103                          ; Listen for TLV frames from partner on this port
ambeMode = P25                          ; DMR, DMR_IPSC, DSTAR, NXDN, P25, YSFN, YSFW (encode PCM to this format)
minTxTimeMS = 2000                      ; Analog -> Digital Minimum time in MS for hang delay (0-10000)
 
; The metadata below is used when ASL is the source since it does not have any concept of digital modes
gatewayDmrId = 3153376                  ; ID to use when transmitting from Analog_Bridge 7 digit ID
repeaterID = 315337613                  ; ID of source repeater 7 digit ID plus 2 digit SSID 
txTg = 31655                            ; TG to use for all frames sent from Analog_Bridge -> xx_Bridge
txTs = 1                                ; Slot to use for frames sent from Analog_Bridge -> xx_Bridge
colorCode = 1                           ; Color Code to assign DMR frames
 
; Information for USRP channel driver.  This interface uses PCM to transfer audio information
; There are two typical configurations, ASL and Transcode.  ASL (AllstarLink) is for analog clients connected
; to a digital network.  Transcode is when Analog_Bridge actually points its PCM interfaces back at itself, 
; causing a TLV <-- (pcm <--> pcm) --> TLV type of architecture.
;   When using ASL, this matches the rpt.conf ASL file with a setting like:
;   rxchannel = usrp/127.0.0.1:34001:32001
;   When Transcoding, make two ini files and set txPort equal to the other instance rxPort (crossover).  Launch
;   each instance with its own ini file.
[USRP]
address = 127.0.0.1                     ; IP address of USRP partner (Analog_Reflector, Allstar/Asterisk or another Analog_Bridge)
txPort = 34001                          ; Transmit USRP frames on this port
rxPort = 32001                          ; Listen for USRP frames on this port
usrpAudio = AUDIO_UNITY                 ; Digital -> Analog (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_USE_AGC)
usrpGain = 1.10                         ; Gain factor when usrpAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY)
usrpAGC = -20,10,100                    ; Set the agc threshold (db), slope (db) and decay (ms)
tlvAudio = AUDIO_UNITY                  ; Analog -> Digital (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_BPF)
tlvGain = 0.35                          ; Gain factor when tlvAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY)
 
[MACROS]
 
; Where the macros are
; xxxx=yyyy
; xxxx is the dial string to match
; yyyy is the command line to execute
 
; xxxx must be preceded by a *
; xxxx can be any string (alphanumeric)
; yyyy is the command to execute
; yyyy will replace xxxx in the dial string
; arguments follow the macro name with a # delimiter
 
; For example using macro "5678" above would look like:
; *5678#9876
 
; Which would invoke:
; echo 9876
 
; Information for DV3000 hardware decoder
;   There are two configuration modes: IP (AMBEServer) and serial (direct connect hardware)
;   Use top server and port if using AMBEServer
;   Use bottom server/port and serial = true if using the DV3000u (thumbdv)
;   Did you run AMBETest4.py before using this?
[DV3000]
address = 127.0.0.1                   ; IP address of AMBEServer
rxPort = 2460                         ; Port of AMBEServer
; address = /dev/ttyUSB0              ; Device of DV3000U on this machine
; baud = 460800                       ; Baud rate of the dongle (230400 or 460800)
; serial = true                       ; Use serial=true for direct connect or serial=false for AMBEServer
 
 


Re: Macro result was 512 #analog_bridge

Steve N4IRS
 

Please post your A, B, C and D macros.

On 9/15/21 10:41 PM, Geoff wrote:
I have modified dvsm.macro file so I can switch from one DMR server to another.
There are 4 servers that I was able to switch at will and the setup has been working quite well until lately.
By pressing macro key A, B, C or D I was able to switch from a DMR server to another and so forth.
However, recently when I press D to change to another DMR server, I get "Macro result was 512".
I don't know what it means and how to go about fixing it.
Can anyone shed some light on this matter, please?

Thank you.


Re: P25 to DMR troubles. error at MMDVM_Bridge - Cannot bind UDP address, err: 98 -and- Cannot open listener port 34103

Steve N4IRS
 



On 9/15/21 10:06 PM, Todd, KB7RQQ wrote:
I have a P25 reflector running and it works great.  Decided to bridge to our DMR talk group. so I have P25Reflector --> P25Gateway --> Analog_Bridge_DMR --> Analog_Bridge_P25 --> MMDVM_Bridge.  Reflector is working fine, checked both AB's for port accuracy.  When I fire them up in that order, I get an error on MMDVM_Bridge.

This is cut down to the end....

M: 2021-09-16 01:32:00.439 P25, Opening INI file: DVSwitch.ini
M: 2021-09-16 01:32:00.440 P25, Setting [P25] address -> 127.0.0.1
M: 2021-09-16 01:32:00.440 P25, Setting [P25] txPort -> 34100
M: 2021-09-16 01:32:00.440 P25, Setting [P25] rxPort -> 34103
M: 2021-09-16 01:32:00.440 P25, Setting [P25] slot -> 2
M: 2021-09-16 01:32:00.440 P25, Setting [P25] RemotePort -> 6074
E: 2021-09-16 01:32:00.440 Cannot bind the UDP address, err: 98
F: 2021-09-16 01:32:00.440 P25, Can not open listener port 34103

34103 would be the rxPort of P25 side of Analog_Bridge_P25.ini    Not sure what configs would be helpful so I'll start with P25Bridge/AB_DMR/ABP25

Anyone see anything that stands out as whacky?

--P25Bridge.ini
[General]
Callsign=KB7RQQ
RptAddress=127.0.0.1
RptPort=32010
LocalPort=42020
Daemon=0
 
[Id Lookup]
Name=/var/lib/mmdvm/DMRIds.dat
Time=24
 
[Voice]
Enabled=1
Language=en_US
Directory=./Audio
 
[Log]
# Logging levels, 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
DisplayLevel=1
FileLevel=2
FilePath=/var/log/mmdvm
FileRoot=P25Gateway
 
[Network]
Port=42010
HostsFile1=/etc/P25Hosts.txt
HostsFile2=./private/P25Hosts.txt
ReloadTime=60
ParrotAddress=127.0.0.1
ParrotPort=42011
Startup=31655
InactivityTimeout=10
Debug=0
 
[Remote Commands]
Enable=0
Port=6074



--Analog_Bridge_DMR.ini

; Analog_Bridge configuration file.
;   This file should be placed in either /etc or it can be
;   supplied as a path on the Analog_Bridge command line.
 
; The best way to think of this file is that there are two main sections, the USRP (analog audio) and
; AMBE_AUDIO (compressed audio).  Analog_Bridge will take everything sent to the USRP port and
; encode it for transmission on the AMBE_AUDIO port.  The encoder will use the format defined in ambeMode.
; As you might expect, the reverse direction is defined too.
 
; Analog_Bridge supports include files. More on this later...
include = dvsm.macro
; include = asl.macro
 
; General Section describes settings for Analog_Bridge itself.
[GENERAL]
logLevel = 2                            ; Show messages and above 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
 
; Metadata management
exportMetadata = true                   ; Export metadata to USRP partner (transcode setups require this)
transferRootDir = /tmp ; Export database files to USRP partner
subscriberFile = /var/lib/dvswitch/subscriber_ids.csv   ; DMR ID to callsign lookup data
 
; General vocoder setup information
decoderFallBack = true                  ; Allow software AMBE decoding if a hardware decoder is not found
useEmulator = false                     ; Use the MD380 AMBE emulator for AMBE72 (DMR/YSFN/NXDN)
emulatorAddress = 127.0.0.1:2470        ; IP address and port of the md380 server
 
pcmPort = 2222                          ; UDP port to send to the WebProxy
 
; Information for xx_Bridge (Where xx is MMDVM, Quantar, HB, IPSC)
[AMBE_AUDIO]
address = 127.0.0.1                     ; IP address of xx_Bridge
txPort = 31100                          ; Transmit TLV frames to partner on this port
rxPort = 31103                          ; Listen for TLV frames from partner on this port
ambeMode = DMR                          ; DMR, DMR_IPSC, DSTAR, NXDN, P25, YSFN, YSFW (encode PCM to this format)
minTxTimeMS = 2000                      ; Analog -> Digital Minimum time in MS for hang delay (0-10000)
 
; The metadata below is used when ASL is the source since it does not have any concept of digital modes
gatewayDmrId = 3153376                  ; ID to use when transmitting from Analog_Bridge 7 digit ID
repeaterID = 315337613                  ; ID of source repeater 7 digit ID plus 2 digit SSID 
txTg = 31655                                ; TG to use for all frames sent from Analog_Bridge -> xx_Bridge
txTs = 1                                ; Slot to use for frames sent from Analog_Bridge -> xx_Bridge
colorCode = 1                           ; Color Code to assign DMR frames
 
; Information for USRP channel driver.  This interface uses PCM to transfer audio information
; There are two typical configurations, ASL and Transcode.  ASL (AllstarLink) is for analog clients connected
; to a digital network.  Transcode is when Analog_Bridge actually points its PCM interfaces back at itself, 
; causing a TLV <-- (pcm <--> pcm) --> TLV type of architecture.
;   When using ASL, this matches the rpt.conf ASL file with a setting like:
;   rxchannel = usrp/127.0.0.1:34001:32001
;   When Transcoding, make two ini files and set txPort equal to the other instance rxPort (crossover).  Launch
;   each instance with its own ini file.
[USRP]
address = 127.0.0.1                     ; IP address of USRP partner (Analog_Reflector, Allstar/Asterisk or another Analog_Bridge)
txPort = 32001                          ; Transmit USRP frames on this port
rxPort = 34001                          ; Listen for USRP frames on this port
usrpAudio = AUDIO_UNITY                 ; Digital -> Analog (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_USE_AGC)
usrpGain = 1.10                         ; Gain factor when usrpAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY)
usrpAGC = -20,10,100                    ; Set the agc threshold (db), slope (db) and decay (ms)
tlvAudio = AUDIO_UNITY                  ; Analog -> Digital (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_BPF)
tlvGain = 0.35                          ; Gain factor when tlvAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY)
 
[MACROS]
 
; Where the macros are
; xxxx=yyyy
; xxxx is the dial string to match
; yyyy is the command line to execute
 
; xxxx must be preceded by a *
; xxxx can be any string (alphanumeric)
; yyyy is the command to execute
; yyyy will replace xxxx in the dial string
; arguments follow the macro name with a # delimiter
 
; For example using macro "5678" above would look like:
; *5678#9876
 
; Which would invoke:
; echo 9876
 
; Information for DV3000 hardware decoder
;   There are two configuration modes: IP (AMBEServer) and serial (direct connect hardware)
;   Use top server and port if using AMBEServer
;   Use bottom server/port and serial = true if using the DV3000u (thumbdv)
;   Did you run AMBETest4.py before using this?
[DV3000]
address = 127.0.0.1                   ; IP address of AMBEServer
rxPort = 2460                         ; Port of AMBEServer
; address = /dev/ttyUSB0              ; Device of DV3000U on this machine
; baud = 460800                       ; Baud rate of the dongle (230400 or 460800)
; serial = true                       ; Use serial=true for direct connect or serial=false for AMBEServer




--Analog_Bridge_P25

; Analog_Bridge configuration file.
;   This file should be placed in either /etc or it can be
;   supplied as a path on the Analog_Bridge command line.
 
; The best way to think of this file is that there are two main sections, the USRP (analog audio) and
; AMBE_AUDIO (compressed audio).  Analog_Bridge will take everything sent to the USRP port and
; encode it for transmission on the AMBE_AUDIO port.  The encoder will use the format defined in ambeMode.
; As you might expect, the reverse direction is defined too.
 
; Analog_Bridge supports include files. More on this later...
include = dvsm.macro
; include = asl.macro
 
; General Section describes settings for Analog_Bridge itself.
[GENERAL]
logLevel = 2                            ; Show messages and above 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
 
; Metadata management
exportMetadata = true                   ; Export metadata to USRP partner (transcode setups require this)
transferRootDir = /tmp ; Export database files to USRP partner
subscriberFile = /var/lib/dvswitch/subscriber_ids.csv   ; DMR ID to callsign lookup data
 
; General vocoder setup information
decoderFallBack = true                  ; Allow software AMBE decoding if a hardware decoder is not found
useEmulator = false                     ; Use the MD380 AMBE emulator for AMBE72 (DMR/YSFN/NXDN)
emulatorAddress = 127.0.0.1:2470        ; IP address and port of the md380 server
 
pcmPort = 2222                          ; UDP port to send to the WebProxy
 
; Information for xx_Bridge (Where xx is MMDVM, Quantar, HB, IPSC)
[AMBE_AUDIO]
address = 127.0.0.1                     ; IP address of xx_Bridge
txPort = 34100                          ; Transmit TLV frames to partner on this port
rxPort = 34103                          ; Listen for TLV frames from partner on this port
ambeMode = P25                          ; DMR, DMR_IPSC, DSTAR, NXDN, P25, YSFN, YSFW (encode PCM to this format)
minTxTimeMS = 2000                      ; Analog -> Digital Minimum time in MS for hang delay (0-10000)
 
; The metadata below is used when ASL is the source since it does not have any concept of digital modes
gatewayDmrId = 3153376                  ; ID to use when transmitting from Analog_Bridge 7 digit ID
repeaterID = 315337613                  ; ID of source repeater 7 digit ID plus 2 digit SSID 
txTg = 31655                            ; TG to use for all frames sent from Analog_Bridge -> xx_Bridge
txTs = 1                                ; Slot to use for frames sent from Analog_Bridge -> xx_Bridge
colorCode = 1                           ; Color Code to assign DMR frames
 
; Information for USRP channel driver.  This interface uses PCM to transfer audio information
; There are two typical configurations, ASL and Transcode.  ASL (AllstarLink) is for analog clients connected
; to a digital network.  Transcode is when Analog_Bridge actually points its PCM interfaces back at itself, 
; causing a TLV <-- (pcm <--> pcm) --> TLV type of architecture.
;   When using ASL, this matches the rpt.conf ASL file with a setting like:
;   rxchannel = usrp/127.0.0.1:34001:32001
;   When Transcoding, make two ini files and set txPort equal to the other instance rxPort (crossover).  Launch
;   each instance with its own ini file.
[USRP]
address = 127.0.0.1                     ; IP address of USRP partner (Analog_Reflector, Allstar/Asterisk or another Analog_Bridge)
txPort = 34001                          ; Transmit USRP frames on this port
rxPort = 32001                          ; Listen for USRP frames on this port
usrpAudio = AUDIO_UNITY                 ; Digital -> Analog (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_USE_AGC)
usrpGain = 1.10                         ; Gain factor when usrpAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY)
usrpAGC = -20,10,100                    ; Set the agc threshold (db), slope (db) and decay (ms)
tlvAudio = AUDIO_UNITY                  ; Analog -> Digital (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_BPF)
tlvGain = 0.35                          ; Gain factor when tlvAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY)
 
[MACROS]
 
; Where the macros are
; xxxx=yyyy
; xxxx is the dial string to match
; yyyy is the command line to execute
 
; xxxx must be preceded by a *
; xxxx can be any string (alphanumeric)
; yyyy is the command to execute
; yyyy will replace xxxx in the dial string
; arguments follow the macro name with a # delimiter
 
; For example using macro "5678" above would look like:
; *5678#9876
 
; Which would invoke:
; echo 9876
 
; Information for DV3000 hardware decoder
;   There are two configuration modes: IP (AMBEServer) and serial (direct connect hardware)
;   Use top server and port if using AMBEServer
;   Use bottom server/port and serial = true if using the DV3000u (thumbdv)
;   Did you run AMBETest4.py before using this?
[DV3000]
address = 127.0.0.1                   ; IP address of AMBEServer
rxPort = 2460                         ; Port of AMBEServer
; address = /dev/ttyUSB0              ; Device of DV3000U on this machine
; baud = 460800                       ; Baud rate of the dongle (230400 or 460800)
; serial = true                       ; Use serial=true for direct connect or serial=false for AMBEServer
 
 


Macro result was 512 #analog_bridge

Geoff
 

I have modified dvsm.macro file so I can switch from one DMR server to another.
There are 4 servers that I was able to switch at will and the setup has been working quite well until lately.
By pressing macro key A, B, C or D I was able to switch from a DMR server to another and so forth.
However, recently when I press D to change to another DMR server, I get "Macro result was 512".
I don't know what it means and how to go about fixing it.
Can anyone shed some light on this matter, please?

Thank you.


P25 to DMR troubles. error at MMDVM_Bridge - Cannot bind UDP address, err: 98 -and- Cannot open listener port 34103

Todd, KB7RQQ
 

I have a P25 reflector running and it works great.  Decided to bridge to our DMR talk group. so I have P25Reflector --> P25Gateway --> Analog_Bridge_DMR --> Analog_Bridge_P25 --> MMDVM_Bridge.  Reflector is working fine, checked both AB's for port accuracy.  When I fire them up in that order, I get an error on MMDVM_Bridge.

This is cut down to the end....

M: 2021-09-16 01:32:00.439 P25, Opening INI file: DVSwitch.ini
M: 2021-09-16 01:32:00.440 P25, Setting [P25] address -> 127.0.0.1
M: 2021-09-16 01:32:00.440 P25, Setting [P25] txPort -> 34100
M: 2021-09-16 01:32:00.440 P25, Setting [P25] rxPort -> 34103
M: 2021-09-16 01:32:00.440 P25, Setting [P25] slot -> 2
M: 2021-09-16 01:32:00.440 P25, Setting [P25] RemotePort -> 6074
E: 2021-09-16 01:32:00.440 Cannot bind the UDP address, err: 98
F: 2021-09-16 01:32:00.440 P25, Can not open listener port 34103

34103 would be the rxPort of P25 side of Analog_Bridge_P25.ini    Not sure what configs would be helpful so I'll start with P25Bridge/AB_DMR/ABP25

Anyone see anything that stands out as whacky?

--P25Bridge.ini
[General]
Callsign=KB7RQQ
RptAddress=127.0.0.1
RptPort=32010
LocalPort=42020
Daemon=0
 
[Id Lookup]
Name=/var/lib/mmdvm/DMRIds.dat
Time=24
 
[Voice]
Enabled=1
Language=en_US
Directory=./Audio
 
[Log]
# Logging levels, 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
DisplayLevel=1
FileLevel=2
FilePath=/var/log/mmdvm
FileRoot=P25Gateway
 
[Network]
Port=42010
HostsFile1=/etc/P25Hosts.txt
HostsFile2=./private/P25Hosts.txt
ReloadTime=60
ParrotAddress=127.0.0.1
ParrotPort=42011
Startup=31655
InactivityTimeout=10
Debug=0
 
[Remote Commands]
Enable=0
Port=6074



--Analog_Bridge_DMR.ini

; Analog_Bridge configuration file.
;   This file should be placed in either /etc or it can be
;   supplied as a path on the Analog_Bridge command line.
 
; The best way to think of this file is that there are two main sections, the USRP (analog audio) and
; AMBE_AUDIO (compressed audio).  Analog_Bridge will take everything sent to the USRP port and
; encode it for transmission on the AMBE_AUDIO port.  The encoder will use the format defined in ambeMode.
; As you might expect, the reverse direction is defined too.
 
; Analog_Bridge supports include files. More on this later...
include = dvsm.macro
; include = asl.macro
 
; General Section describes settings for Analog_Bridge itself.
[GENERAL]
logLevel = 2                            ; Show messages and above 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
 
; Metadata management
exportMetadata = true                   ; Export metadata to USRP partner (transcode setups require this)
transferRootDir = /tmp ; Export database files to USRP partner
subscriberFile = /var/lib/dvswitch/subscriber_ids.csv   ; DMR ID to callsign lookup data
 
; General vocoder setup information
decoderFallBack = true                  ; Allow software AMBE decoding if a hardware decoder is not found
useEmulator = false                     ; Use the MD380 AMBE emulator for AMBE72 (DMR/YSFN/NXDN)
emulatorAddress = 127.0.0.1:2470        ; IP address and port of the md380 server
 
pcmPort = 2222                          ; UDP port to send to the WebProxy
 
; Information for xx_Bridge (Where xx is MMDVM, Quantar, HB, IPSC)
[AMBE_AUDIO]
address = 127.0.0.1                     ; IP address of xx_Bridge
txPort = 31100                          ; Transmit TLV frames to partner on this port
rxPort = 31103                          ; Listen for TLV frames from partner on this port
ambeMode = DMR                          ; DMR, DMR_IPSC, DSTAR, NXDN, P25, YSFN, YSFW (encode PCM to this format)
minTxTimeMS = 2000                      ; Analog -> Digital Minimum time in MS for hang delay (0-10000)
 
; The metadata below is used when ASL is the source since it does not have any concept of digital modes
gatewayDmrId = 3153376                  ; ID to use when transmitting from Analog_Bridge 7 digit ID
repeaterID = 315337613                  ; ID of source repeater 7 digit ID plus 2 digit SSID 
txTg = 31655                                ; TG to use for all frames sent from Analog_Bridge -> xx_Bridge
txTs = 1                                ; Slot to use for frames sent from Analog_Bridge -> xx_Bridge
colorCode = 1                           ; Color Code to assign DMR frames
 
; Information for USRP channel driver.  This interface uses PCM to transfer audio information
; There are two typical configurations, ASL and Transcode.  ASL (AllstarLink) is for analog clients connected
; to a digital network.  Transcode is when Analog_Bridge actually points its PCM interfaces back at itself, 
; causing a TLV <-- (pcm <--> pcm) --> TLV type of architecture.
;   When using ASL, this matches the rpt.conf ASL file with a setting like:
;   rxchannel = usrp/127.0.0.1:34001:32001
;   When Transcoding, make two ini files and set txPort equal to the other instance rxPort (crossover).  Launch
;   each instance with its own ini file.
[USRP]
address = 127.0.0.1                     ; IP address of USRP partner (Analog_Reflector, Allstar/Asterisk or another Analog_Bridge)
txPort = 32001                          ; Transmit USRP frames on this port
rxPort = 34001                          ; Listen for USRP frames on this port
usrpAudio = AUDIO_UNITY                 ; Digital -> Analog (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_USE_AGC)
usrpGain = 1.10                         ; Gain factor when usrpAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY)
usrpAGC = -20,10,100                    ; Set the agc threshold (db), slope (db) and decay (ms)
tlvAudio = AUDIO_UNITY                  ; Analog -> Digital (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_BPF)
tlvGain = 0.35                          ; Gain factor when tlvAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY)
 
[MACROS]
 
; Where the macros are
; xxxx=yyyy
; xxxx is the dial string to match
; yyyy is the command line to execute
 
; xxxx must be preceded by a *
; xxxx can be any string (alphanumeric)
; yyyy is the command to execute
; yyyy will replace xxxx in the dial string
; arguments follow the macro name with a # delimiter
 
; For example using macro "5678" above would look like:
; *5678#9876
 
; Which would invoke:
; echo 9876
 
; Information for DV3000 hardware decoder
;   There are two configuration modes: IP (AMBEServer) and serial (direct connect hardware)
;   Use top server and port if using AMBEServer
;   Use bottom server/port and serial = true if using the DV3000u (thumbdv)
;   Did you run AMBETest4.py before using this?
[DV3000]
address = 127.0.0.1                   ; IP address of AMBEServer
rxPort = 2460                         ; Port of AMBEServer
; address = /dev/ttyUSB0              ; Device of DV3000U on this machine
; baud = 460800                       ; Baud rate of the dongle (230400 or 460800)
; serial = true                       ; Use serial=true for direct connect or serial=false for AMBEServer




--Analog_Bridge_P25

; Analog_Bridge configuration file.
;   This file should be placed in either /etc or it can be
;   supplied as a path on the Analog_Bridge command line.
 
; The best way to think of this file is that there are two main sections, the USRP (analog audio) and
; AMBE_AUDIO (compressed audio).  Analog_Bridge will take everything sent to the USRP port and
; encode it for transmission on the AMBE_AUDIO port.  The encoder will use the format defined in ambeMode.
; As you might expect, the reverse direction is defined too.
 
; Analog_Bridge supports include files. More on this later...
include = dvsm.macro
; include = asl.macro
 
; General Section describes settings for Analog_Bridge itself.
[GENERAL]
logLevel = 2                            ; Show messages and above 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
 
; Metadata management
exportMetadata = true                   ; Export metadata to USRP partner (transcode setups require this)
transferRootDir = /tmp ; Export database files to USRP partner
subscriberFile = /var/lib/dvswitch/subscriber_ids.csv   ; DMR ID to callsign lookup data
 
; General vocoder setup information
decoderFallBack = true                  ; Allow software AMBE decoding if a hardware decoder is not found
useEmulator = false                     ; Use the MD380 AMBE emulator for AMBE72 (DMR/YSFN/NXDN)
emulatorAddress = 127.0.0.1:2470        ; IP address and port of the md380 server
 
pcmPort = 2222                          ; UDP port to send to the WebProxy
 
; Information for xx_Bridge (Where xx is MMDVM, Quantar, HB, IPSC)
[AMBE_AUDIO]
address = 127.0.0.1                     ; IP address of xx_Bridge
txPort = 34100                          ; Transmit TLV frames to partner on this port
rxPort = 34103                          ; Listen for TLV frames from partner on this port
ambeMode = P25                          ; DMR, DMR_IPSC, DSTAR, NXDN, P25, YSFN, YSFW (encode PCM to this format)
minTxTimeMS = 2000                      ; Analog -> Digital Minimum time in MS for hang delay (0-10000)
 
; The metadata below is used when ASL is the source since it does not have any concept of digital modes
gatewayDmrId = 3153376                  ; ID to use when transmitting from Analog_Bridge 7 digit ID
repeaterID = 315337613                  ; ID of source repeater 7 digit ID plus 2 digit SSID 
txTg = 31655                            ; TG to use for all frames sent from Analog_Bridge -> xx_Bridge
txTs = 1                                ; Slot to use for frames sent from Analog_Bridge -> xx_Bridge
colorCode = 1                           ; Color Code to assign DMR frames
 
; Information for USRP channel driver.  This interface uses PCM to transfer audio information
; There are two typical configurations, ASL and Transcode.  ASL (AllstarLink) is for analog clients connected
; to a digital network.  Transcode is when Analog_Bridge actually points its PCM interfaces back at itself, 
; causing a TLV <-- (pcm <--> pcm) --> TLV type of architecture.
;   When using ASL, this matches the rpt.conf ASL file with a setting like:
;   rxchannel = usrp/127.0.0.1:34001:32001
;   When Transcoding, make two ini files and set txPort equal to the other instance rxPort (crossover).  Launch
;   each instance with its own ini file.
[USRP]
address = 127.0.0.1                     ; IP address of USRP partner (Analog_Reflector, Allstar/Asterisk or another Analog_Bridge)
txPort = 34001                          ; Transmit USRP frames on this port
rxPort = 32001                          ; Listen for USRP frames on this port
usrpAudio = AUDIO_UNITY                 ; Digital -> Analog (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_USE_AGC)
usrpGain = 1.10                         ; Gain factor when usrpAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY)
usrpAGC = -20,10,100                    ; Set the agc threshold (db), slope (db) and decay (ms)
tlvAudio = AUDIO_UNITY                  ; Analog -> Digital (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_BPF)
tlvGain = 0.35                          ; Gain factor when tlvAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY)
 
[MACROS]
 
; Where the macros are
; xxxx=yyyy
; xxxx is the dial string to match
; yyyy is the command line to execute
 
; xxxx must be preceded by a *
; xxxx can be any string (alphanumeric)
; yyyy is the command to execute
; yyyy will replace xxxx in the dial string
; arguments follow the macro name with a # delimiter
 
; For example using macro "5678" above would look like:
; *5678#9876
 
; Which would invoke:
; echo 9876
 
; Information for DV3000 hardware decoder
;   There are two configuration modes: IP (AMBEServer) and serial (direct connect hardware)
;   Use top server and port if using AMBEServer
;   Use bottom server/port and serial = true if using the DV3000u (thumbdv)
;   Did you run AMBETest4.py before using this?
[DV3000]
address = 127.0.0.1                   ; IP address of AMBEServer
rxPort = 2460                         ; Port of AMBEServer
; address = /dev/ttyUSB0              ; Device of DV3000U on this machine
; baud = 460800                       ; Baud rate of the dongle (230400 or 460800)
; serial = true                       ; Use serial=true for direct connect or serial=false for AMBEServer
 
 


Re: DVSwitch.ini was not found #mmdvm_bridge

Komkit Listisard
 

Steve,

Got it working somehow.

I deleted the mmdvm_bridge4.service and re-entered again from scratch exactly as it was.   This time it work no issue.

I have no idea what was the problem!!!

The only thing I can think of was my editor "nona" must have inserted some strange hidden characters or something.  I have no clue.

root@xlx1:/lib/systemd/system# systemctl start mmdvm_bridge4
root@xlx1:/lib/systemd/system# systemctl status mmdvm_bridge4
● mmdvm_bridge4.service - MMDVM_Bridge Service 4
   Loaded: loaded (/lib/systemd/system/mmdvm_bridge4.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-09-15 09:50:08 EDT; 3s ago
  Process: 8955 ExecStartPre=/bin/sh -c echo "Starting MMDVM_Bridge: [`date +%T.%3N`]" >> /var/log/netcheck (code=exited, status=0/SUCCESS)
 Main PID: 8959 (MMDVM_Bridge4)
    Tasks: 2 (limit: 1148)
   Memory: 27.4M
   CGroup: /system.slice/mmdvm_bridge4.service
           └─8959 /opt/MMDVM_Bridge4/MMDVM_Bridge4 /opt/MMDVM_Bridge4/MMDVM_Bridge4.ini
 
Sep 15 09:50:08 w3kit-xlx1 systemd[1]: Starting MMDVM_Bridge Service 4...
Sep 15 09:50:08 w3kit-xlx1 systemd[1]: Started MMDVM_Bridge Service 4.

73, Kit
 


Re: DVSwitch.ini was not found #mmdvm_bridge

Komkit Listisard
 

Steve,

Not sure,  haven't there  (yet).

For now, I will just use DVSwitch.ini in the /opt/MMDMV_Bridge4/ since DVSwitch.ini does not show up on the UDP ports listing anyway.   As long as MMDVM_bridge4 show up,  since I like to documenting things as I go, much easier for the house keeping.

I will try 5 when I have the need :)

Thank you for your help as always.

73, Kit


Re: DVSwitch.ini was not found #mmdvm_bridge

Steve N4IRS
 

OK,
And if you number it as 5, what happens?

On 9/15/2021 9:20 AM, Komkit Listisard via groups.io wrote:
Steve,

Since this is my 4th instance of MMDMV_Bridge. I just renamed them so it would be easier for me to chasing them down when I have an issue and much easier when I list the UDP ports, so I know who is who and who is using what port.

Not sure why with other three instances I do not have an issue.

73, Kit

141 - 160 of 9882