Last edited · 5 revisions   


HELP !!!!!!!!!!!!!!!!!!!!

No one expects you to be a "Linux Expert" but understand this, you have chosen to build a bridge. You have to use the tools available. All of the DVSwitch programs run on Linux. You should put in the effort to at least be aware of how to do things in Linux. If you are posting on the discussion board then you have access to the internet. I doubt you can not find every Linux command and how to use it somewhere on the net.

Learn how to copy and paste from a window to e-mail or other program. For people to help you, they need to see the error. PLEASE don't post a screenshot or take a picture of the screen. Many people use PuTTY to login to a remote host via SSH. it is very easy to copy text from PuTTY. Simply put the mouse at the start of the text you want to copy and while holding down the right mouse button, drag the cursor across the text you want to copy. Now go to the e-mail you want to paste into. You can usually just go to the edit menu at the top of the screen and select paste. There is no way I can tell you how to paste into every program you could be running. I strongly suggest you practice this so when you need it, you know how to do it.

Start with a flow diagram of what you are trying to do. For example, if you are trying to build a bridge between AllStarLink and BrandMeister DMR, your diagram will look like this: BM <-> MMDVM_Bridge <-> Analog_Bridge <-> AllStarLink. The <-> indicates traffic or data will flow in both directions. Traffic flows from BM to MMDVM_Bridge which flows to Analog_Bridge and on to AllStarLink. Traffic also flows in the opposite direction from AllStarLink to BM. If you are unsure of the programs you will need to accomplish the task, ask in the discussion area. Post what you think the flow diagram should look like. Don't just ask someone else to create one for you.    

While setting up and running the programs you should have root privileges.
You can do this in multiple ways: sudo ./myprogram or login to the machine as root (if possible) or sudo -s This will give you root privileges as long as you are logged in. This is easier then remembering to start each program with sudo.

Run the program(s) in the foreground to look for errors.
Running the program in the foreground simply means starting the program from the command prompt.
Example: root@myhost:/opt/MMDVM_Bridge# ./MMDVM_Host MMDVM.ini This runs the program from the prompt. Notice the ./ in front of the program name. This means run the program in this directory.

Run each program in a separate session (window). Most, if not all of the DVSwitch programs are built for only one purpose. Almost any bridge you build will require multiple programs. These programs talk to each other. You can watch the data "flow" from one program to the other if you are running all of the programs in windows so you can see the output. This is your first chance to catch errors. Don't understand the error? Read from the bottom up. Look for key words like, error, can't, fail etc. In the line containing errors look for things like a directory name or file name. When asking for help you should copy and paste the error into the e-mail. PLEASE don't just post a message that "it does not work" or my personal favorite "Broke! no good!" (Yes, I get that at work all the time.)

Build from the outside in. That way you can see the traffic flow. If you don't see the traffic, stop and fix the issue before going on to the next step. If the program on the outside of the flow diagram does not see the traffic from the external network, the next program in the flow diagram won't either. It's a heck of a lot easier to fix one program at a time then it is to troubleshoot 4 programs all at once. (It does not work!)

Change as little as possible in a configuration file. We have tried to set the parameters to usable values. There are comments in the configuration files. Read them! If you don't understand the comment, ask. Your question may spark an idea about how we can word the comment better. Some parameters are set to what should be obvious "place holder" values. A call sign like W1AW a DMR ID like 1234567 or 0. These things you will need to change.  Keep a backup of the default configuration files so you can start over if need be. Some program have more then one configuration file. MMDVM_Bridge is this way. For MMDVM_Bridge, the file MMDVM_Bridge.ini enables and disables the mode (D-Star, DMR, P25 etc) it also controls the connection to the external network (BM, P25Reflector etc) This is CLOSELY modeled after MMDVM. DVSwitch.ini is used to define how MMDVM_Bridge communicates with other programs that make up the bridge (Analog_Bridge, Quantar_Bridge etc)

The DVSwitch programs use UDP ports to communicate or transfer traffic. You can not use the same port number twice. Below is a example of a port map you can use to visualize the port numbers in use and what they talk to and listen to.  In the map below we are bridging from DMR to P25. Before you skip over this and say "that is not what I want to build" look at the map. It is a good example of how things go together. From left to right we start with BM. MMDVM_Bridge is used to communicate with BM. That communication is defined in MMDVM_Bridge.ini in the [DMR Network] stanza. A stanza is a group of variables and their values. The map does not show every entry in MMDVM_Bridge.ini just those variables needed to communicate. Below the MMDVM_Bridge.ini is the DVSwitch.ini file stanzas used. In this case, [DMR] This stanza defines how MMDVM_Bridge communicates with Analog_Bridge. The address is the IP address of the host running Analog_Bridge. In this case (localhost) When MMDVM_Bridge wants to send traffic to Analog_Bridge it transmits the traffic on UDP port number 31100. MMDVM_Bridge listens for traffic from Analog_Bridge on UDP port 31103. The arrows (<- and ->) indicates the direction of the traffic flow. These port number are now in use. You can NOT use them anywhere else in the bridge. For the bridge we are building below we need a second instance of Analog_Bridge running. That is why there are 2 in the flow diagram and the port map. The first Analog_Bridge needs to communicate with the second Analog_Bridge. This is done in the [USRP] stanza. Analog_Bridge DMR sends traffic on UDP port 32001 to Analog_Bridge P25. Analog_Bridge P25 sends traffic to Analog_Bridge DMR on UDP port 34001. and so on. That is a whole lot of words to describe what can be visualized in the port map below.

BrandMeister <-> MMDVM_Bridge <-> Analog_Bridge <-> Analog_Bridge <-> MMDVM_Bridge <-> P25Gateway   

         MMDVM_Bridge.ini       Analog_Bridge.ini DMR   Analog_Bridge.ini P25   MMDVM_Bridge.ini             P25Gateway.ini
         [DMR Network]          [USRP]                  [USRP]                  [P25 Network]                [General]
BM <---> Address=        address = <-> address =     GatewayAddress= <-> RptAddress=
         Port=62031             txPort = 32001 -------> rxPort = 32001          GatewayPort=42020 ---------> LocalPort=42020
         Local=62032            rxPort = 34001 <------- txPort = 34001          LocalPort=32010 <----------- RptPort=32010

         DVSwitch.ini                                                           DVSwitch.ini  
         [DMR]                   [AMBE_AUDIO]            [AMBE_AUDIO]            [P25]
         Address = <-> address =     address = <-> Address =
         TXPort = 31100 -------> rxPort = 31100          rxPort = 34100 <------- TXPort = 34100
         RXPort = 31103 <------- txPort = 31103          txPort = 34103 -------> RXPort = 34103
         ambeMode = DMR          ambeMode = P25

One of the other great lines we have seen from people building bridges. "I have been banging my head against this for over a month and I don't know what's wrong" It should not take you more then an evening to bring up a bridge. If you have been trying for a month, you are now frustrated cross eyed and confused. Do not wait a month to ask for help. Again, "Broke! no good!" does not tell us much. What are you trying to do? Please show us your flow diagram at least. Where does the traffic stop? Posting the complete ini file or the log for 10 days does no one any good. Listen to what we ask for. Like in the flow diagram above and the port map, if you tell me MMDVM_Bridge does not see any traffic from BrandMeister, I'll want to see the [DMR] Stanza and the [DMR Network] stanza in MMDVM_Bridge.ini We will also want to see the section of the log where MMDVM_Bridge logs into BM. Showing us your DVSwitch.ini file does no good. The less extraneous information I have to pick through The quicker I can help you solve your problem.

Something that is pretty common: "I key my portable (HT) and nothing happens" The causes me to ask what mode is the HT? does BrandMeister or AllStarLink or the NXDN reflector see the traffic? Where does the traffic stop? We are not in the shack with you. We have to understand what is the environment you are working in. It does not help me if you tell me Jimmy's brother Tom key his new radio and I don't hear him on the bridge.

This document may come across to some as a gripe session. Well, to some extent it is. I have been doing remote support for 40 years. (Yes, I'm that old) I've supported everywhere from guys running a paper machine in a paper mill to PHDs in Computer Science. I don't care. It's been my job to help them solve their problem. In some cases if I did not solve it over the phone or via e-mail I had to drive 60 mile on Christmas eve in Michigan to fix it myself. (that really happened) All I'm saying here is please help us help you.