Tuesday, December 8, 2009

Bug found by VE7LTD squashed

Dave reported a bug to me this morning, which caused sfreflect to start on the wrong ports under certain conditions. The fix proved to be simple. The cause of the problem was a conflict between one of the variables used in the startreflect script, and one in the local environment of the tbd/tlb channels. Renaming the variable in startreflect fixed the problem.

Monday, October 12, 2009

More bug fixes!

Installed the new reflector code on reflector 9500 (with the blessing of the administrator). I had intended to wait until after Dave had a chance to review the code, but the upgrade was brought forward due to issues at the site. Anyway, this gave me a chance to test the reflector startup properly, and I found a few bugs which have now been fixed.

The bugs found were:

Fixed a bug in the reflector startup that prevented integrated conferences from being started. This was a stupid typo (one missing character!). Ths bug prevented the next bug from being detected earlier.

Check that channels configured to run tbd or tlb are not already running, before attempting to start them.

Modified one of the maintenance scripts to correctly count the new integrated channels, and subtract them from the total number of reflector channels, to determine whether the correct number of sfreflect copies are running.

Monday, September 28, 2009

Minor bugfixes and the new Back Bar!

Just sorted out a couple of minor bugs on the integrated conference. As it turns out, these weren't bugs in the code, but instead were due to a subtle configuration error in tbd.conf, which caused some issues with the security on some connections. Reconfiguring tbd for the offending channel resolved the issue, after quite a bit of head scratching.

The Virtual Pub now has a new "back bar" - reflector 9550 is now permanently linked to reflector 9500, so the Virtual Pub can be found at either location. For efficiency reasons, some internal links were reconfigured to suit the new layout.

Currently, there are now 4 tlb or tbd channels on the new reflector, and two of these are integrated channels. The current configuration of the reflector is:

ref9550 - Virtual Pub "back bar", running tlb, but using the packet reflector (not transcoding) and ADPCM codec. No Echolink support (but linked to an external transcoder outside of virtual pub hours).
ref9551 - Running sfreflect
ref9552 - Running sfreflect
ref9553 - Running sfreflect
ref9554 - Running sfreflect
ref9555 - Running tlb as a transcoding reflector. No Echolink support yet (need another IP address).
ref9556 - Running sfreflect
ref9557 - Running sfreflect
ref9558 - Running tbd as an integrated conference (GSM only). Echolink *VK3JED*
ref9559 - Running tbd as an integrated conference (GSM only). Echolink *AUSSIE*

ref9559 is handling fairly heavy traffic with around a dozen connections most of the time.

Monday, September 21, 2009

Minor tweak

Connected to reflector 9559 today, and after a while, thought things were a bit quiet. Discovered that the audio path had become disconnected at the reflector end, and the security system had blocked the node's attempts to reestablish audio.

Worked around this by calling the "kicknode" script to disconnect the control side of the IRLP node, if the audio connection ends with an "rtcp_timeout" (which means either a network problem, or the reflector initiated a disconnection). This also means that if a sysop or admin accidentally uses .disconnect or .kick instead .ikick, the node will eventually be disconnected completely.

However, I'm not 100% satisfied with this solution, because it means that connections with transient minor packet loss may disconnect, rather than recover gracefully. I will monitor and see how important this issue is. At least the node will be completely kicked if the audio path dies, which is better than before.

Wednesday, September 16, 2009

Integrated Reflector status Sep 16

Completed the EchoLink commands for controlling connected IRLP nodes and tested them. All the commands work on both EchoLink and IRLP nodes, with the scripts responding appropriately for each node type.

Commands supported are:

.ikick - disconnects the specified node

.imute - mutes the specified node and adds that node to the reflector channel's mute list.

.iunmute - unmutes the specified node and removes that node from the reflector channel's mute list.

.iban - allows nodes to be banned (blocked) and unbanned (unblocked).

.ikick, .imute and .iunmute are sysop level commands, .iban is an admin level command. This is in line with their inbuilt equivalents.

Upgraded tlb on the system to the latest beta (0.44). Waiting on the new beta of tbd to upgrade this software as well.

I also observed that the conference killer seems to be working perfectly on the new system. :D

Tuesday, September 15, 2009

Reflector update Sep 15

Tested and debugged the transcoding conference support. This is now working on ref9555.

Implemented the first of the administrative commands, a sysop level command called "ikick", which will kick the IRLP or Echolink node specified. Getting the code right was a pain!

Monday, September 14, 2009

More features and bugfixes!

Today, I implemented full duplex/transcoding reflector channels. The port from exp0018 was pretty straightforward. Just have to test it at some stage.

Support for persistent mute lists and unmute lists is now in place. During the development of this feature, I discovered a couple of serious bugs in the listen only channel support code, which have now been fixed. Mute support has been tested and is working.

Progress with new IRLP/EchoLink Integration.

Spent yesterday working on the new reflector, adding EchoLink integration to the system. These modifications will bring integrated conferences in line with the current IRLP reflector design. The changes that are being implemented are:

New security model. The new reflector handles security differently, so the integration scripts need to work with the new security subsystem. This work is complete and in beta testing. The integrated conferences may be even more secure than regular IRLP reflector channels. They are more particular about the correct node ID being used on a link.

Multiple integrated conferences per reflector host. The new system uses a set of common scripts to implement multiple integrated conferences. The scripts detect whether a channel uses tlb or tbd, instead of the normal sfreflect, then by loading a local environment, they tailor their behaviour for each integrated conference. The only constraint is that there must be an IP address available for each integrated conference. This support is working and is in final beta testing, with two tbd channels running, and plans for a tlb transcoding channel for future tests.

Integrated multiconference control scripts. The "conference killer" scripts, which have featured on some reflectors and EchoLink conferences have been modified to work under the common script model, and manage multiple integrated conferences. This feature can be enabled or disabled on a per channel basis. The conference killer is running, and is under beta test.

Management of IRLP nodes from EchoLink - EchoLink users with sysop and admin privileges will be able to kick, ban and unban IRLP nodes from their EchoLink client, using commands similar to the ones they already know. The scripts to manage IRLP nodes have been written, but the EchoLink event handling has to be added, so that the new commands will be recognised and the scripts triggered.

Support for listen only channels. The new reflector code from VE7LTD supports listen only channels. The new integration code supports this feature, so that integrated channels will become listen only, if the listen only flag is set. Both IRLP and EchoLink nodes will be muted on connection, when listen only is activated for an integrated conference. This feature has been implemented, but needs to be tested. I would also like to add mute list and unmute list features, so specific nodes can be listed as muted on a regular channel, or unmuted on a muted channel. These extra features will be specific to integrated conferences.

Transcoding and full duplex conferences. The new integrated conferences can be configured to support both transcoding between codecs and full duplex. This feature requires tlb to be used in a specific configuration, and support is activated by a symbolic link to the port linking scripts in the conference's channel directory. Support is yet to be implemented. The port linking scripts will be ported from the exp0018/VK3JED-R experimental node. Transcoding conferences are inherently full duplex (this has been proven through testing on exp0018).

New IRLP Reflector

On Friday, Dave Cameron VE7LTD installed IRLP Reflector 9550 on the Adelaide server. Still got some technical hitches, which I've managed to work around for development purposes.

The new reflector is reflector 9550 - 9559, and it will be integrated into the national network.

Wednesday, September 2, 2009

New infrastructure for VK

With WICEN Victoria showing some interest in IRLP and EchoLink, I've started a programme of creating some redundant infrastructure within Australia for the VoIP based modes. I had been running a number of EchoLink conferences for some time, and decided it was time to setup a second complete set of reflectors for IRLP and D-STAR as well. This provides redundancy, in case one of the Australian reflectors fails for some reason.

The new D-STAR reflector is REF023. Information about the new system is at http://dstar.vkradio.com .

The new IRLP reflector is coming soon. Details will be provided as soon as they are known. The IRLP reflector will also be used for developing a new set of IRLP-Echolink integration scripts, to streamline installation of such systems, and to make them compatible with the latest IRLP reflector code. The existing EchoLink conferences will be integrated into the new reflector, which will streamline the Australian/Irish "EchoCloud" network.