And here’s the unbelievably cool Trabant from Pusztamarót:

Cross-compiling MySQL

MySQL is not very cross-compile friendly, but hey, let’s give it a try.
» …continue reading ‘Cross-compiling MySQL’

Here’s how to set up RADIUS authentication using FreeRADIUS and an Active Directory server. For example, this can be used for authenticating Wifi WPA Enterprise clients (when you connect to a WPA Enterprise Wifi network, you have to give your username and password, not only a password like when connecting to a WPA Personal network).
» …continue reading ‘FreeRADIUS AD authentication’

Here’s a quick guide on setting up 802.11n Wifi on a RouterBoard for a multi-user enviroment.

Wireless tab

You have to set the channel width to 20/40MHz HT above or below. 802.11g uses 20MHz wide channels, 802.11n uses two of these, and you have to specify where to expand the 20MHz channel (above or below). So if you are using channel 0, you have to make sure that it is set HT above, and if you are using channel 11, HT below. On channel 6 you can use both, use the freq. usage scanner tool to decide which portion of the channels are less used.

If you are using the 5GHz band, make sure DFS is turned on. WMM should be enabled, and if you want the clients to be able to see each other, turn on default forward.

Data rates tab

Basic rates should be set to the minimum, and supported rates should be set all the way up for 802.11b/g.

Advanced tab

Distance should be set to indoors, and periodic calibration should be disabled. Set Hw. retries to 4, and preable mode to short.

HT tab

All HT chains and AMPDU priorities should be enabled.

HT MCS tab

HT basic MCS should be set to MCS0, and all rates should be supported.

Other settings

If you are using more than three APs near each other (all spread evenly on channels 0, 6 and 11), then you should set the TX power to the minimum (typically 10-12dBm in an office enviroment), to make sure no APs are interfering on the same channel.

Here’s a short music video about our holiday trip.

Binary to hexadecimal

I wasn’t aware of this. I know, I know, it’s a shame… :)

source

My 30th birthday party

And with my colleagues in a McDonalds :)

Here’s a quick howto on installing FFP on Zyxel NSA325, which is a nice NAS.

  1. Create a text file called web_prefix and put this to the first line: ftp://ftp.zyxel-tech.de/2.new_mirror/
  2. Move the text file to the NAS, to directory /admin/zy-pkgs (zy-pkgs subdirectory in the admin share)
  3. Refresh the package list on the administrator web interface. FFP will show up, but you won’t be able to install it because the server only has FFP for the v4.40 firmware. Download that older FFP package from here. It’ll work nicely with newer firmwares too. Put this file to /admin/zy-pkgs also. Now you can install it on the web interface. It will create an install log file in /admin/zy-pkgs/ffp.
  4. Now you can telnet to the machine and add the other package sources using the guide here.
  5. Install zyxel_utils. After installing, run /ffp/start/zyxel_utils.sh start. It will fix admin and root users’ home directories automatically.

» …continue reading ‘Installing FFP on Zyxel NSA325′

Method #1

Situation: host A is the server which has a normal user added for us, and we want to connect our host B as a client.

Host A’s sip.conf has this entry for the normal user:

1
2
3
4
5
6
[testuser]
type=friend
secret=abcd
host=dynamic
context=foo
qualify=yes

Because the host is defined as dynamic, we have to register with our client. Add this to our host B’s sip.conf (to the [general] section):

1
register => testuser:abcd@hostAipaddress

And add this to the bottom of sip.conf:

1
2
3
4
5
6
7
8
[testuser]
type=peer
username=testuser
secret=abcd
host=hostAipaddress
context=incoming
callbackextension=cba ; this extension will be called on host B when host A calls testuser
qualify=yes

This way we can call any extension on host B (in host B’s foo context) like this:

1
exten => 123,1,Dial(SIP/${EXTEN}@testuser)

Note: ${EXTEN} will be replaced with 123.

We can only call host B’s cba extension from host A using this method.

Method #2

Situation: we want to call any extension on host B (in the specified context) from host A and vica versa.

Add this to host A’s sip.conf, to the [general] section:

1
register => testuser:abcd@hostBipaddress

And this to the bottom of host A’s sip.conf:

1
2
3
4
5
6
7
[hostA2hostB]
type=peer
username=hostA2hostB
secret=abcd
host=dynamic
context=foo
qualify=yes

Add this to host B’s sip.conf, to the [general] section:

1
register => testuser:abcd@hostAipaddress

And this to the bottom of host B’s sip.conf:

1
2
3
4
5
6
7
[hostA2hostB]
type=peer
username=hostA2hostB
secret=abcd
host=dynamic
context=bar
qualify=yes

This case we can call any extension in host B’s bar context from host A, and any extension in host A’s foo context from host B using a command like this:

1
exten => 123,1,Dial(SIP/${EXTEN}@hostA2hostB)

A weekend in Austria

Click for dp.nonoo.hu »

About me

Nonoo
I'm Nonoo. This is my blog about music, sounds, filmmaking, amateur radio, computers, programming, electronics and other things I'm obsessed with. ... »

Twitter

Listening now

My favorite artists

Facebook