Open najdanovicivan opened 9 years ago
Unfortunately I think that there is a bug in the EchoLink protocol implementation in SvxLink that make the station list overwrite the description. The EchoLink protocols are not documented and the source code is not available so some work is required to analyze the protocols. Help with this would be very welcome. Wireshark would probably be the tool to use to analyze the protocol.
Another approch is to simply contact the EchoLink developer and ask for documentation or release of the source code for the protocol implementation.
I've sent an email to the EchoLink developers, and I still got no response. I find where the "SvxLink 1.4.0 - YU1INO-R (1)" is generated in code, I'll am currently recompiling the source, I'll post again once I check it out.
I've managed to create a fix for this. I've changed the line 1448 inside ModuleEchoLink.cpp inside void ModuleEchoLink::broadcastTalkerStatus(void) function to:
msg << description << "\n" << "SvxLink " << SVXLINK_VERSION << " - " << mycall << " (" << numConnectedStations() << ")\n\n";
Looking here the branding can also be removed or changed to anything. In my case I've changed it to msg << description << "\n" << "Powered by SvxLink " << "\n" << "Connected Stations:" << numConnectedStations() << "\n";
I've noticed another bug inside the ModuleEchoLink.cpp. There is problem with the connected stations counter when Location info is generated. Not needed blank space is added in between the Location and Count. I have modified the following method:
void ModuleEchoLink::updateDescription(void) { if (max_qsos < 2) { return; }
string desc(location); if (numConnectedStations() > 0) { stringstream sstr; sstr << " (" << numConnectedStations() << ")";
This if is added to check if size is bigger than max value, so that blank chars are not added in bettween
if ((sstr.str().size() + desc.size()) > Directory::MAX_DESCRIPTION_SIZE)
{
desc.resize(Directory::MAX_DESCRIPTION_SIZE - sstr.str().size(), ' ');
}
desc += sstr.str();
}
dir->setDescription(desc); dir->refreshRegistration();
} /* ModuleEchoLink::updateDescription */
I think more analysis is needed for what the correct way to handle this is. We may just change one misbehaviour to another.
Of course it should be analyzed. I needed a quick fix so I modified it that way. I've been using the SvxLink application with this modification for a couple of days. I haven't noticed any misbehavior for now. I'll keep you posted if something strange start happening.
Hello, can you please provide the path to ModuleEchoLink.cpp ?? can't find it anywhere... Is there also another fix available for this issue? any updates or something?
File is located here: https://github.com/sm0svx/svxlink/tree/master/src/svxlink/modules/echolink You will have to compile svxlink from source after the modification
"You will have to compile svxlink from source after the modification" can you please provide details of how to do that? i thought the file was located somewhere inside the current setup... i 'm not sure how to do what you propose... if it's no big deal please let me know with some steps in detail. Thanks in advance! and sorry to bother you!
https://github.com/sm0svx/svxlink/wiki/InstallationInstructions Take a look at section "Installation from source"
thanks for fast reply! I think i remember the procedure now, just one last question... when the same steps and recompile will be done, will the current setup of svxlink be lost? I'm saying this because it will use the same folders to recompile...
It shoud not overwrite config files, but you should make backup in order to be safe
@sm0svx , if you are interested, I have a capture file from Wireshark from a PC running Echolink in Sysop mode with a client (Me on a phone on LTE). I have apply a filter to have only the EchoLink Ports (5198, 5199 and 5200) and I can see my station description in few raw data
That would be the way to go but couldn't you make a recording of a session between SvxLink and your phone then compare them to see what differs?
Is there any solution for the missing description at the moment?
No matter what I set in ModuleEchoLink.conf I cannot get description to display properly. I noticed that if I am connected from my iPhone and restart the SvxLink server the description appear for a couple of seconds. After that it changes to the following with list of connected stations:
SvxLink 1.4.0 - YU1INO-R (1)
YU1INO-R Radio Klub Pirot .......
Is there any way to add config that will disable this feature or even better concatenate the text with the description inside the config file ?