<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>TXLAB</title>
	<atom:link href="http://txlab.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://txlab.wordpress.com</link>
	<description>Just another hacking blog</description>
	<lastBuildDate>Wed, 25 Jan 2012 16:03:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='txlab.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>TXLAB</title>
		<link>http://txlab.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://txlab.wordpress.com/osd.xml" title="TXLAB" />
	<atom:link rel='hub' href='http://txlab.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Cleaning up default services in CentOS/RHEL</title>
		<link>http://txlab.wordpress.com/2012/01/25/cleaning-up-default-services-in-centosrhel/</link>
		<comments>http://txlab.wordpress.com/2012/01/25/cleaning-up-default-services-in-centosrhel/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 16:03:07 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=319</guid>
		<description><![CDATA[A freshly installed CentOS or RHEL runs many daemons which you don&#8217;t really want on a server, especially on a VPS where memory and CPU are usually more valuable resources. Here&#8217;s what I usually do on a fresh server (tested with CentOS 5.x): # stop unneeded services chkconfig gpm off chkconfig yum-updatesd off chkconfig xfs [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=319&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A freshly installed CentOS or RHEL runs many daemons which you don&#8217;t really want on a server, especially on a VPS where memory and CPU are usually more valuable resources.</p>
<p>Here&#8217;s what I usually do on a fresh server (tested with CentOS 5.x):</p>
<pre># stop unneeded services
chkconfig gpm off
chkconfig yum-updatesd off
chkconfig xfs off
chkconfig autofs off
chkconfig portmap off
chkconfig nfslock off
chkconfig rpcidmapd off
chkconfig hidd off
chkconfig bluetooth off
chkconfig netfs off
chkconfig pcscd off
chkconfig cups off
chkconfig smartd off
chkconfig avahi-daemon off
chkconfig hplip off
chkconfig messagebus off
chkconfig iscsi off
chkconfig iscsid off

# disable graphical login screen
vi /etc/inittab
id:3:initdefault:

# disable SE Linux if necessary
vi /etc/selinux/config
SELINUX=disabled

reboot
</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/uncategorized/'>Uncategorized</a> Tagged: <a href='http://txlab.wordpress.com/tag/linux/'>linux</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/319/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/319/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/319/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/319/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/319/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/319/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/319/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/319/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/319/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/319/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/319/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/319/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/319/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/319/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=319&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2012/01/25/cleaning-up-default-services-in-centosrhel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Starting as an Independent IT Contractor</title>
		<link>http://txlab.wordpress.com/2012/01/25/starting-as-an-independent-it-contractor/</link>
		<comments>http://txlab.wordpress.com/2012/01/25/starting-as-an-independent-it-contractor/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 12:57:23 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[contracting]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=316</guid>
		<description><![CDATA[here&#8217;s a slideshow for a presentation that I made a couple of years ago. It&#8217;s still relevant, with only minor changes so far: now a single person can start an AG company in Switzerland (previously 3 persons were required) GoDaddy.com is not any more a recommended domain hosting (the SOPA thing) Filed under: Uncategorized Tagged: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=316&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>here&#8217;s a <a href="http://www.swinog.ch/meetings/swinog20/p/Swinog20_Starting_as_IT_Contractor.pdf">slideshow</a> for a presentation that I made a couple of years ago. It&#8217;s still relevant, with only minor changes so far:</p>
<ul>
<li>now a single person can start an AG company in Switzerland (previously 3 persons were required)</li>
<li>GoDaddy.com is not any more a recommended domain hosting (the SOPA thing)</li>
</ul>
<br />Filed under: <a href='http://txlab.wordpress.com/category/uncategorized/'>Uncategorized</a> Tagged: <a href='http://txlab.wordpress.com/tag/contracting/'>contracting</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/316/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=316&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2012/01/25/starting-as-an-independent-it-contractor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Call-home SSH scripts</title>
		<link>http://txlab.wordpress.com/2012/01/25/call-home-ssh-scripts/</link>
		<comments>http://txlab.wordpress.com/2012/01/25/call-home-ssh-scripts/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 10:27:54 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[network monitoring]]></category>
		<category><![CDATA[network management]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=306</guid>
		<description><![CDATA[Sometimes I need to set up quickly some presence in a customer network: to be able to access it remotely, or to run some network management scripts, and so on. Most of such networks are behind NAT or at least a firewall, and incoming connections from outside aren&#8217;t always easy. But outgoing connections from a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=306&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sometimes I need to set up quickly some presence in a customer network: to be able to access it remotely, or to run some network management scripts, and so on. Most of such networks are behind NAT or at least a firewall, and incoming connections from outside aren&#8217;t always easy.</p>
<p>But outgoing connections from a customer LAN are mostly not a problem at all. So, I bring my own small netbook and place it in the customer LAN. This netbook automatically makes an outgoing SSH connection to my central server (a VPS) and pulls an SSH tunnel so that I can access the netbook from outside.</p>
<p>This is a kind of a backdoor, and it makes sense to make your customer <em>completely aware of what you&#8217;re doing</em>.</p>
<p>For such purposes, I have a couple of cheapest 10&#8243; netbooks. I&#8217;m using Acer AspireOne and some older eMachines netbooks because they were sold cheaply. Most other netbooks would fit too, but one should be careful about Linux compatibility (especially the video drivers might be a problem). They come with 1GB RAM and 160 or 250 GB hard drives. It&#8217;s quite trivial to upgrade them to 2GB RAM, although it&#8217;s not really necessary. You must only be careful about buying a new SODIMM with exactly the same clocking as the original one.</p>
<p>The netbooks run standard Ubuntu Linux, with SSH daemon enabled. If the user home directory is encrypted, you won&#8217;t be able to login with your public SSH keys, so better not encrypt it.</p>
<p><span id="more-306"></span></p>
<p>1. On my central VPS, in <strong>/etc/ssh/sshd_config</strong> I enabled the keepalives. This turns down a connection which is stalled because of network problems. As we&#8217;re setting up SSH tunnels with port mapping, the new tunnel will not be set up until the TCP socket is free. With keepalives, SSH daemon will automatically break the connection and free up the socket. Also I enable remote clients to open a listening socket on my central VPS:</p>
<pre>ClientAliveInterval 5
ClientAliveCountMax 3
GatewayPorts yes</pre>
<p>2. Create a user on the central VPS. &#8220;micro02&#8243; is the host name for my micro-agent netbook. The user has /bin/false as a shell, because we don&#8217;t want it to do anything on the VPS:</p>
<pre>$ grep micro02 /etc/passwd
micro02:x:1002:1003::/home/micro02:/bin/false</pre>
<p>3. On micro02, generate the SSH keys for root, and add the public key to the autorized keys for the user &#8220;micro02&#8243; on the VPS.</p>
<p>4. Create a DNS entry for callhome purpose. If your central server moves, you won&#8217;t have to reconfigure all your agents.</p>
<p>5. Here&#8217;s the script <strong>/root/ssh_tunnel.sh</strong> on the netbook. The infinite loop sets up an SSH connection with port forwarding. There&#8217;s a sleep command on purpose: if there&#8217;s no routing to the destination, SSH would exit immediately, and we don&#8217;t want the loop to hog all our CPU power. Server key checking is disabled, as the server may eventually change, and we don&#8217;t want to lose control of our agent.</p>
<pre>#!/bin/sh
while true; do
  ssh -NC -o ServerAliveInterval=5 \
    -o UserKnownHostsFile=/dev/null \
    -o StrictHostKeyChecking=no \
    -R '*:2022:127.0.0.1:22' micro02@callhome.mydomain.net
  sleep 5
done</pre>
<p>6. Here&#8217;s the startup script <strong>/etc/init.d/callhome_ssh_tunnel</strong> which brings up the tunnel at the computer boot:</p>
<pre>#! /bin/sh
#
### BEGIN INIT INFO
# Provides:          k-open_ssh_tunnel
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      
# Short-Description: SSH tunnel to support.mydomain.com
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON="/bin/sh /root/ssh_tunnel.sh"
DESC="SSH tunnel to callhome.mydomain.net"
VERBOSE=yes

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
. /lib/lsb/init-functions

OPTIONS=""
#
# Function that starts the daemon/service
#
do_start()
{
        start-stop-daemon --start --background \
                --name ssh_tunnel.sh --exec $DAEMON \
                || return 1
}

case "$1" in
  start)
        [ "$VERBOSE" != no ] &amp;&amp; log_daemon_msg "Starting $DESC" "$NAME"
        do_start
        case "$?" in
                0|1) [ "$VERBOSE" != no ] &amp;&amp; log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] &amp;&amp; log_end_msg 1 ;;
        esac
        ;;
  stop)
        echo not supported
        ;;
esac

exit 0</pre>
<p>7. Test the connection script: SSH to port 2022 on your VPS should bring you to the netbook command prompt. Then enable the startup script:</p>
<pre>update-rc.d <strong>callhome_ssh_tunnel enable</strong></pre>
<p>8. In Power Settings, set &#8220;do nothing&#8221; when the lid is closed.</p>
<p>9. Reboot the netbook and test</p>
<p>10. Disconnect a running netbook from the network, then connect again, and test.</p>
<p>11. Make a backup copy of your scripts. The best is to use Git with a private repository.</p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/networking-2/'>Networking</a> Tagged: <a href='http://txlab.wordpress.com/tag/linux/'>linux</a>, <a href='http://txlab.wordpress.com/tag/monitoring/'>monitoring</a>, <a href='http://txlab.wordpress.com/tag/network-management/'>network management</a>, <a href='http://txlab.wordpress.com/tag/network-monitoring/'>network monitoring</a>, <a href='http://txlab.wordpress.com/tag/networking/'>networking</a>, <a href='http://txlab.wordpress.com/tag/testing/'>testing</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/306/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=306&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2012/01/25/call-home-ssh-scripts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Using Zadarma.com as a free DID gateway for your FreeSWITCH</title>
		<link>http://txlab.wordpress.com/2012/01/14/using-zadarma-com-as-a-free-did-gateway-for-your-freeswitch/</link>
		<comments>http://txlab.wordpress.com/2012/01/14/using-zadarma-com-as-a-free-did-gateway-for-your-freeswitch/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 15:29:30 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[dvop.net]]></category>
		<category><![CDATA[freeswitch]]></category>
		<category><![CDATA[pbx]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=302</guid>
		<description><![CDATA[Zadarma.com provides  free access to their DID gateways around Russia and rest of the world. After registration, you get a 5-digit user ID and a password to register on their SIP gateways. In incoming calls the original Caller ID is lost, so we get some garbage in the From: header, and our own user ID [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=302&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://zadarma.com/en/intertel/dirnum/">Zadarma.com</a> provides  free access to their DID gateways around Russia and rest of the world. After registration, you get a 5-digit user ID and a password to register on their SIP gateways.</p>
<p>In incoming calls the original Caller ID is lost, so we get some garbage in the <em>From:</em> header, and our own user ID in <em>To:</em>.</p>
<p>Add a new file (<em>conf/sip_profiles/external/zadarma.xml</em>) with your SIP account details:</p>
<pre>&lt;include&gt;
  &lt;gateway name="zadarma"&gt;
    &lt;param name="username" value="XXXXX"/&gt;
    &lt;param name="password" value="XXXXXXXXX"/&gt;
    &lt;param name="extension" value="<span style="color:#993300;"><strong>attendant</strong></span>"/&gt;
    &lt;param name="expire-seconds" value="120"/&gt;
    &lt;param name="register" value="true"/&gt;
    &lt;param name="register-transport" value="udp"/&gt;
    &lt;param name="proxy" value="sip.zadarma.com"/&gt;
    &lt;param name="retry-seconds" value="30"/&gt;
    &lt;param name="caller-id-in-from" value="false"/&gt;
    &lt;param name="ping" value="25"/&gt;
  &lt;/gateway&gt;
&lt;/include&gt;</pre>
<p>Here &#8220;attendant&#8221; is a valid extension in my public profile. It directs the call to the automatic attendant IVR menu.  The &#8220;extension&#8221; directive in the SIP profile sets the value as the destination number.</p>
<p>The attendant extension in my public context (<em>conf/dialplan/public/50_users.xml</em>) looks like the following. It transfers the call to the extension 7800 in my default context:</p>
<pre>&lt;include&gt;
  &lt;extension name="pub_attendant"&gt;
    &lt;condition field="destination_number" expression="^attendant$"&gt;
      &lt;action application="transfer" data="7800 XML default"/&gt;
    &lt;/condition&gt;
  &lt;/extension&gt;
.... (rest of the public profile skipped)</pre>
<p>As a result, anyone from around the world is able to access my PBX at local rates.</p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/networking-2/'>Networking</a> Tagged: <a href='http://txlab.wordpress.com/tag/dvop-net/'>dvop.net</a>, <a href='http://txlab.wordpress.com/tag/freeswitch/'>freeswitch</a>, <a href='http://txlab.wordpress.com/tag/pbx/'>pbx</a>, <a href='http://txlab.wordpress.com/tag/voip/'>voip</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/302/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/302/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/302/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/302/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/302/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/302/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/302/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/302/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/302/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/302/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/302/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/302/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/302/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/302/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=302&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2012/01/14/using-zadarma-com-as-a-free-did-gateway-for-your-freeswitch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Free DID resources</title>
		<link>http://txlab.wordpress.com/2012/01/14/free-did-resources/</link>
		<comments>http://txlab.wordpress.com/2012/01/14/free-did-resources/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 00:21:20 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[dvop.net]]></category>
		<category><![CDATA[pbx]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=299</guid>
		<description><![CDATA[If you want to be easily reachable from abroad, there is a choice of various DID providers, and some of them offer free service. SIP Broker is a public service where DID providers share their facilities and use a common database for calling SIP destinations. Unfortunately the original company that started SIP Broker is out [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=299&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you want to be easily reachable from abroad, there is a choice of various DID providers, and some of them offer free service.</p>
<p><a href="http://www.sipbroker.com/">SIP Broker</a> is a public service where DID providers share their facilities and use a common database for calling SIP destinations. Unfortunately the original company that started SIP Broker is out of business, and it&#8217;s unclear who is maintaining the service now. My emails to their support address remain unanswered for the last couple of weeks. But the service works quite fine.</p>
<p><a href="http://www.voip-catalog.com/voip_freedid.html">voip-catalog.com</a> and <a href="http://www.voip-info.org/wiki/view/DID+Service+Providers">voip-info.org</a> provide lists of DID providers worldwide, including the free ones.</p>
<p><a href="http://zadarma.com/en/intertel/dirnum">Zadarma</a> is a Russian VoIP provider, and they offer free DID numbers throughout Russia and also worldwide.</p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/networking-2/'>Networking</a> Tagged: <a href='http://txlab.wordpress.com/tag/dvop-net/'>dvop.net</a>, <a href='http://txlab.wordpress.com/tag/pbx/'>pbx</a>, <a href='http://txlab.wordpress.com/tag/voip/'>voip</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/299/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=299&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2012/01/14/free-did-resources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>New age telephony is here, yet undervalued</title>
		<link>http://txlab.wordpress.com/2012/01/01/new-age-telephony-is-here-yet-undervalued/</link>
		<comments>http://txlab.wordpress.com/2012/01/01/new-age-telephony-is-here-yet-undervalued/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 14:26:34 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[dvop.net]]></category>
		<category><![CDATA[freeswitch]]></category>
		<category><![CDATA[pbx]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=292</guid>
		<description><![CDATA[While working on some telephony projects recently, I was pretty much surprised how most people are unaware of the revolutionary changes in the technology in the past decade. Many (if not most) people, including IT engineers, still think that IP Telephony is about saving on long-distance calls. Some of them also know that it&#8217;s about [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=292&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>While working on some telephony projects recently, I was pretty much surprised how most people are unaware of the revolutionary changes in the technology in the past decade.</p>
<p>Many (if not most) people, including IT engineers, still think that IP Telephony is about saving on long-distance calls. Some of them also know that it&#8217;s about saving on desktop cabling.</p>
<p>Actually it&#8217;s much more than that.</p>
<h4>1. Low entry cost for office telephony.</h4>
<p>With the rise of good-quality, open-source telephony products, such as Asterisk, FreeSWITCH, and a bunch of UI tools on top of them, a small or medium business is not any more facing the need to spend $10000+ on an office telephony system.</p>
<p>An IP PBX can be built in-house, with commodity hardware and open-source software components. Even better, one can rent a hosted PBX if the broadband connection permits that. There are also lots of solutions  for non-IT businesses on the market.</p>
<h4>2. Global team infrastructure.</h4>
<p>It is now quite common even for small businesses to have remote employees across half the globe. Also the local telecommunication infrastructure is not always readily available.  In some countries, international calls are still ridiculously expensive.</p>
<p>Remote workers can use IP phones to connect directly to your IP PBX. But sometimes the Internet connection at home is not good enough, or your team member is not always at their work place. There are still good and low-cost ways to connect.</p>
<p>For example, <a href="http://www.didww.com/virtual_numbers">DIDWW</a> can offer you a PSTN gateway in remote country, and place the incoming calls directly to your IP PBX.  The <a href="http://www.sipbroker.com/sipbroker/action/pstnNumbers">SIP Broker</a> allows the same service free of charge, with some extra digits to dial to reach you from their gateways.</p>
<h4>3. Voice applications.</h4>
<p>Most people still know only two or three voice applications: the voice mail, the conference bridges, and the interactive voice menus. Tor those three, the adoption cost has dropped dramatically. Now one can build any of them at the cost of hardware and an engineer&#8217;s hourly work.</p>
<p>But there&#8217;s more than that.</p>
<p>One can build voice applications which were too expensive or impossible with traditional PBXes.</p>
<p>For example, employees can choose themselves how they are reachable in the best way. They can manage their own reachability and presence. Calls can be sent to multiple IP and PSTN phones at the same time.  On-call support engineers can login themselves and indicate that hotline calls should be directed to them.  Voice mail can be connected to a ticketing system and create new tickets with MP3 attachments.</p>
<p>those are the applications which I have personally implemented. There are certainly more.</p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/networking-2/'>Networking</a> Tagged: <a href='http://txlab.wordpress.com/tag/dvop-net/'>dvop.net</a>, <a href='http://txlab.wordpress.com/tag/freeswitch/'>freeswitch</a>, <a href='http://txlab.wordpress.com/tag/pbx/'>pbx</a>, <a href='http://txlab.wordpress.com/tag/voip/'>voip</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/292/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=292&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2012/01/01/new-age-telephony-is-here-yet-undervalued/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Moving from Subversion to Git</title>
		<link>http://txlab.wordpress.com/2011/12/02/moving-from-subversion-to-git/</link>
		<comments>http://txlab.wordpress.com/2011/12/02/moving-from-subversion-to-git/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 11:15:48 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=286</guid>
		<description><![CDATA[Many teams have their internal scripts in private SVN repositories. It works quite well for most cases. Here&#8217;s a short overview of why you may want a transition to Git: Git is distributed. You have the whole history of the project in your local directory. Also your work is independent from central server availability. Branching [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=286&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Many teams have their internal scripts in private SVN repositories. It works quite well for most cases. Here&#8217;s a short overview of why you may want a transition to Git:</p>
<ul>
<li>Git is distributed. You have the whole history of the project in your local directory. Also your work is independent from central server availability.</li>
<li>Branching and merging is in the nature of Git:  whatever new activity you start, you can spin off a new branch and do your commits without disturbing the production code. After testing, you merge your changes into the master branch easily.</li>
<li>Bigger choice of transport: Git allows to communicate via SSH, HTTP, its own Git protocol, or by simply archiving and copying your repository if there&#8217;s no direct connection to the central server. With SSH transport, you can easily work around strict firewall policies: the pull and push commands are somewhat symmetrical, so if you can&#8217;t access the central server for pushing, you can probably pull from your work machine to some intermediate location, and then push to the central server. The possibilities are countless.</li>
<li>You can keep all your server or application configuration in Git repositories. This allows you to restore the configuration quickly after an unsuccessful change, and you&#8217;re not dependent on the central server availability.</li>
<li>You can have as many central servers as you need for your workflow (for example, I use <a href="http://sourceforge.net/apps/mediawiki/torrus/index.php?title=Working_with_Torrus_sources">two</a> public repositories for Torrus).</li>
</ul>
<p>But of course, Git is different, and it needs a bit of learning.  The whole workflow has to be adapted, as well as habits:</p>
<ul>
<li>Your commits don&#8217;t go to the central server until you explicitly push them.</li>
<li>There is no such thing as revision number. You have SHA hash strings instead.</li>
<li>You are encouraged to do more frequent commits, or group them differently. As you do your commits locally without disturbing anyone, you can control the granularity of your commits in a much more flexible way. You can also undo your commits before they are pushed to the central server.</li>
</ul>
<p>There are many ways to organize your Git repositories:</p>
<ul>
<li>If you work alone and your machine is backed up, you may not even need a central repository.</li>
<li>At <a href="https://github.com/">Github</a>  you can have unlimited public repositories, or a number of private repositories at a cost.</li>
<li><a href="http://gitorious.org/">Gitorius</a> is a relatively new service, analogous to Github. Also <a href="http://sourceforge.net">Sourceforge</a> and many other open-source project hosting services offer Git hosting.</li>
<li><a href="https://github.com/sitaramc/gitolite">Gitolite</a> is a nice software that allows you to set up your own Git hosting server easily, with SSH key authentication for multiple users, and access rights. Debian and other packages are available.</li>
</ul>
<p>UPD: some interesting comments at <a href="http://news.ycombinator.com/item?id=3304847">Hacker News</a></p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/programming/'>Programming</a> Tagged: <a href='http://txlab.wordpress.com/tag/git/'>git</a>, <a href='http://txlab.wordpress.com/tag/software-development/'>software development</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/286/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=286&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2011/12/02/moving-from-subversion-to-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Good quality IVR prompts&#8230; for free!</title>
		<link>http://txlab.wordpress.com/2011/11/21/good-quality-ivr-prompts-for-free/</link>
		<comments>http://txlab.wordpress.com/2011/11/21/good-quality-ivr-prompts-for-free/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 22:38:01 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[freeswitch]]></category>
		<category><![CDATA[pbx]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=274</guid>
		<description><![CDATA[NeoSpeech is a software vendor of a Text-To-Speech engine of a very decent quality. Also they offer a web service API with free basic membership. The basic account is able to create WAV files from your text, and NeoSpeech arbitrarily adds pieces of advertisements before and/or after your phrase. Important! End your text phrase with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=274&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://neospeech.com/">NeoSpeech</a> is a software vendor of a Text-To-Speech engine of a very decent quality. Also they offer a <a>web service</a> API with free basic membership. The basic account is able to create WAV files from your text, and NeoSpeech arbitrarily adds pieces of advertisements before and/or after your phrase.</p>
<p><strong>Important!</strong> End your text phrase with a dot, otherwise the spoken phrase will sound unfinished.</p>
<p>After you register at their website, you get an Account ID and a login password. The rest is easy. The following example illustrate how to use their services from a Linux or Cygwin command line:</p>
<pre>curl https://tts.neospeech.com/rest_1_1.php \
-d method=ConvertSimple \
-d 'email=me@example.com' \
-d accountId=ef******* \
-d loginKey=LoginKey \
-d loginPassword=5**************6 \
-d voice=TTS_JULIE_DB \
-d outputFormat=FORMAT_WAV \
-d sampleRate=8 \
-d text='Press One to answer the call.'

# Output:
# &lt;response resultCode="0" resultString="success"
#  conversionNumber="3" status="Queued" statusCode="1"/&gt;

curl https://tts.neospeech.com/rest_1_1.php \
-d method=GetConversionStatus \
-d conversionNumber=3 \
-d 'email=me@example.com' \
-d accountId=ef******* \
-d loginKey=LoginKey \
-d loginPassword=5**************6

# Output:
# &lt;response resultCode="0" resultString="success" status="Completed" statusCode="4"
#  downloadUrl="https://tts.neospeech.com/audio/a.php/XXXXXXX/XXXXXXX/result_3.wav"/&gt;

curl -O https://tts.neospeech.com/audio/a.php/XXXXXXX/XXXXXXX/result_3.wav</pre>
<p>The resulting <strong>result_3.wav</strong> file is a 8KHz WAV file can be edited in any sound editor (Audacity for example) and you get a nicely spoken phrase for your IVR application.</p>
<p>The paid account offers more goodies,  like more granular control on pronunciation, and also it produces ad-free output.</p>
<p><strong>UPD:</strong> make sure you read the <a href="https://ws.neospeech.com/terms.php">NeoSpeech TOS</a> and use your audio files accordingly.</p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/networking-2/'>Networking</a> Tagged: <a href='http://txlab.wordpress.com/tag/freeswitch/'>freeswitch</a>, <a href='http://txlab.wordpress.com/tag/pbx/'>pbx</a>, <a href='http://txlab.wordpress.com/tag/voip/'>voip</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/274/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=274&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2011/11/21/good-quality-ivr-prompts-for-free/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>WiFi hotspot with an Ubuntu netbook</title>
		<link>http://txlab.wordpress.com/2011/11/07/wifi-hotspot-with-an-ubuntu-netbook/</link>
		<comments>http://txlab.wordpress.com/2011/11/07/wifi-hotspot-with-an-ubuntu-netbook/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 21:37:52 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[usb]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=260</guid>
		<description><![CDATA[My task was to set up my Ubuntu netbook (Acer Aspire One D255E-13DQws) so that it acts as a wi-fi access point whenever I insert a USB WiFi adapter, and shares its existing connection, be it a wired RJ45 or WiFi connection on the built-in wi-fi card. Among other use scenarios, it may be useful [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=260&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>My task was to set up my Ubuntu netbook (Acer Aspire One D255E-13DQws) so that it acts as a wi-fi access point whenever I insert a USB WiFi adapter, and shares its existing connection, be it a wired RJ45 or WiFi connection on the built-in wi-fi card.</p>
<p>Among other use scenarios, it may be useful in hotels where only one WiFi client device is allowed in a room.</p>
<p>The below scenario is tested with Ubuntu 11.10, and it should work with older versions too. The TP-Link TL-WN821N is used by default, and also a <a href="http://www.dealextreme.com/p/high-power-usb-2-0-2000mw-802-11b-g-n-150mbps-wireless-network-adapter-2-412-2-483ghz-16dbi-58805">Ralink3070 based adapter</a> was working the same way.</p>
<p><span id="more-260"></span>Install additional packages:</p>
<pre>apt-get install bridge-utils isc-dhcp-server bind9 iw hostapd iptables-persistent</pre>
<p>Insert your Wi-fi USB adapter and check if AP mode is supported:</p>
<pre>iw list</pre>
<p>On my netbook, the USB adapter got the name <em>wlan1</em>. Create the <em>hostapd</em> configuration as shown below. You need to adapt it to your country code, channel number, SSID, and the password. Also for some unknown reason, 802.11N mode resulted in maximum 15Mbps connection, while the plain 802.11g was working fine at 54Mbps.</p>
<pre>cat &gt;/etc/hostapd/hostapd-wlan1.conf &lt;&lt;EOT
country_code=<em>CH</em>
driver=nl80211
interface=wlan1
bridge=br0
hw_mode=g
channel=<em>5</em>
ssid=<em>sushi</em>
wpa=3
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
wpa_passphrase=<em>tempura</em>
#ieee80211n=1
#ht_capab=[HT40+][SHORT-GI-20][SHORT-GI-40]</pre>
<p>Disable the automatic startup of DHCP and DNS services, as we only need them in Access Point mode:</p>
<pre>update-rc.d bind9 disable
update-rc.d isc-dhcp-server disable
/etc/init.d/bind9 stop
/etc/init.d/isc-dhcp-server stop</pre>
<p>Configure the IP pool in <em>/etc/dhcp/dhcpd.conf</em> as follows. I took the network 10.157.157.0/24 as quite unlikely to clash with other networks:</p>
<pre># Wifi AP pool
subnet 10.157.157.0 netmask 255.255.255.0 {
        option domain-name-servers 10.157.157.1;
        max-lease-time 7200;
        default-lease-time 600;
        range 10.157.157.50 10.157.157.60;
        option subnet-mask 255.255.255.0;
        option broadcast-address 10.157.157.255;
        option routers 10.157.157.1;
        }</pre>
<p>Add the wlan1 configuration to <em>/etc/network/interfaces</em>:</p>
<pre><span style="color:#000000;"># Do not add "auto wlan1" here. With it, the netbook will look for this # interface on boot-up, and it will take about two extra minutes if the USB card # is not plugged in iface wlan1 inet manual     hostapd /etc/hostapd/hostapd-wlan1.conf</span>
    post-up /etc/init.d/isc-dhcp-server start
    post-up /etc/init.d/bind9 start
    pre-down /etc/init.d/isc-dhcp-server stop
    pre-down /etc/init.d/bind9 stop

#Bridge interface
auto br0
iface br0 inet static
    address 10.157.157.1
    network 10.157.157.0
    netmask 255.255.255.0
    broadcast 10.157.157.255
    bridge-ports wlan1</pre>
<p>In <em>/etc/default/isc-dhcp-server</em> , configure DHCP service to listen on br0 interface only:</p>
<pre>INTERFACES="br0"</pre>
<p>In /etc/sysctl.conf , allow IP forwarding:</p>
<pre>net.ipv4.ip_forward=1</pre>
<p>Reboot the machine.</p>
<p>Configure <em>udev</em> to bring up the wlan1 interface when the USB card is inserted:</p>
<pre>mkdir /etc/txlab
cat &gt;/etc/txlab/wifi_hotspot_init &lt;&lt;EOT
#!/bin/sh
/sbin/ifdown --force wlan1
/bin/sleep 3
/sbin/ifup --force wlan1
EOT

chmod a+x /etc/txlab/wifi_hotspot_init

cat &gt;/etc/udev/rules.d/90-wifi-hotspot.rules &lt;&lt;EOT
# Bring up the Wifi access point
SUBSYSTEM=="net", ACTION=="add", NAME=="wlan1", RUN="/etc/txlab/wifi_hotspot_init"
EOT</pre>
<p>Configure iptables to work as NAT gateway between <em>eth0</em> and <em>wlan1</em> and <em>br0</em>:</p>
<pre>iptables -t nat -A POSTROUTING -s 10.157.157.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -s 10.157.157.0/24 -o eth0 -j ACCEPT
iptables -A FORWARD -d 10.157.157.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -i eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.157.157.0/24 -o wlan0 -j MASQUERADE
iptables -A FORWARD -s 10.157.157.0/24 -o wlan0 -j ACCEPT
iptables -A FORWARD -d 10.157.157.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -i wlan0 -j ACCEPT
# save the rules for persistent use
iptables-save &gt;/etc/iptables/rules.v4</pre>
<p>Now insert the Wifi card, and it should immediately start as access point. Use the command &#8220;<em>iwconfig</em>&#8221; to see the actual status of wifi adapters.</p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/networking-2/'>Networking</a> Tagged: <a href='http://txlab.wordpress.com/tag/linux/'>linux</a>, <a href='http://txlab.wordpress.com/tag/networking/'>networking</a>, <a href='http://txlab.wordpress.com/tag/usb/'>usb</a>, <a href='http://txlab.wordpress.com/tag/wifi/'>wifi</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/260/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=260&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2011/11/07/wifi-hotspot-with-an-ubuntu-netbook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Sending SIP calls to GoogleTalk</title>
		<link>http://txlab.wordpress.com/2011/10/29/sending-sip-calls-to-googletalk/</link>
		<comments>http://txlab.wordpress.com/2011/10/29/sending-sip-calls-to-googletalk/#comments</comments>
		<pubDate>Sat, 29 Oct 2011 21:57:03 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[freeswitch]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=252</guid>
		<description><![CDATA[Gtalk2voip.com accepts SIP calls to GTalk users, currently for free. The following extension in FreeSWITCH dialplan would do it: &#60;extension name="gtalk2voip_outbound"&#62; &#60;condition field="destination_number" expression="^([a-z][0-9a-z-]*\@gtalk2voip.com)$"&#62; &#60;action application="bridge" data="{sip_invite_domain=pub.example.com}sofia/external/$1"/&#62; &#60;/condition&#62; &#60;/extension&#62; then the user entry in FreeSWITCH directory would look like this: &#60;user id="8533"&#62; &#60;params&#62; &#60;param name="dial-string" value="loopback/mygtalkusername@gtalk2voip.com/default"/&#62; &#60;/params&#62; &#60;/user&#62; Currently Gtalk2voip accepts only Speex@8kHZ  and G.711 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=252&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Gtalk2voip.com accepts <a href="http://www.gtalk2voip.com/gtalk_service_fromsip.shtml">SIP calls to GTalk users, currently for free</a>. The following extension in FreeSWITCH dialplan would do it:</p>
<pre>&lt;extension name="gtalk2voip_outbound"&gt;
 &lt;condition field="destination_number" expression="^([a-z][0-9a-z-]*\@gtalk2voip.com)$"&gt;
  &lt;action application="bridge"
          data="{sip_invite_domain=<em>pub.example.com</em>}sofia/external/$1"/&gt;
 &lt;/condition&gt;
&lt;/extension&gt;</pre>
<p>then the user entry in FreeSWITCH directory would look like this:</p>
<pre>&lt;user id="8533"&gt;
 &lt;params&gt;
 &lt;param name="dial-string"
        value="loopback/mygtalkusername@gtalk2voip.com/default"/&gt;
 &lt;/params&gt;
&lt;/user&gt;</pre>
<p>Currently Gtalk2voip accepts only Speex@8kHZ  and G.711 codecs.</p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/networking-2/'>Networking</a> Tagged: <a href='http://txlab.wordpress.com/tag/freeswitch/'>freeswitch</a>, <a href='http://txlab.wordpress.com/tag/voip/'>voip</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/252/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=252&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2011/10/29/sending-sip-calls-to-googletalk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>FreeSWITCH: &#8220;From&#8221; domain name in outbound calls</title>
		<link>http://txlab.wordpress.com/2011/10/28/freeswitch-from-domain-name-in-outbound-calls/</link>
		<comments>http://txlab.wordpress.com/2011/10/28/freeswitch-from-domain-name-in-outbound-calls/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 20:25:44 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[freeswitch]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=244</guid>
		<description><![CDATA[This feature is difficult to find in documentation,  so I had to look into mod_sofia sources. For outgoing SIP calls to other public domains in the Internet, you want to set your host name in From: address so, that the called party would be able to call back. By default the remote party would see [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=244&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This feature is difficult to find in documentation,  so I had to look into mod_sofia sources.</p>
<p>For outgoing SIP calls to other public domains in the Internet, you want to set your host name in From: address so, that the called party would be able to call back. By default the remote party would see the call as coming from <em>username@&lt;ipaddress&gt;</em>, which is usually not usable for calling back.</p>
<p>The channel variable &#8220;<strong>sip_invite_domain</strong>&#8221; does the trick and sets the correct From domain.</p>
<p>So, in &#8220;<em>conf/dialplan/default/99_internet_voip_outbound.xml</em>&#8220;, the following example sets the From domain name to &#8220;<em>pub.example.com</em>&#8221; and optionally sets the caller ID from a user variable &#8220;public_sip_caller_username&#8221;. The matching pattern allows only addresses starting with a letter, because leading digits are usually used for the local dialplan.</p>
<pre>&lt;include&gt;
  &lt;extension name="internet_voip_outbound"&gt;
    &lt;condition field="${sip_to_uri}" expression="^([a-z][0-9a-z-]*\@[0-9a-z.-]+)$"&gt;
      &lt;action application="set" data="internet_destination=$1"/&gt;
    &lt;/condition&gt;

    &lt;condition field="${public_sip_caller_username}" expression="^(.+)$" break="never"&gt;
      &lt;action application="set" data="effective_caller_id_number=$1"/&gt;
    &lt;/condition&gt;

    &lt;condition&gt;
      &lt;action application="bridge"
         data="{sip_invite_domain=<em>pub.dvop.net</em>}sofia/external/${internet_destination}"/&gt;
    &lt;/condition&gt;
  &lt;/extension&gt;
&lt;/include&gt;</pre>
<br />Filed under: <a href='http://txlab.wordpress.com/category/networking-2/'>Networking</a> Tagged: <a href='http://txlab.wordpress.com/tag/freeswitch/'>freeswitch</a>, <a href='http://txlab.wordpress.com/tag/voip/'>voip</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/244/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=244&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2011/10/28/freeswitch-from-domain-name-in-outbound-calls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Virtual hotline: dvop.net web page</title>
		<link>http://txlab.wordpress.com/2011/10/26/virtual-hotline-dvop-net-web-page/</link>
		<comments>http://txlab.wordpress.com/2011/10/26/virtual-hotline-dvop-net-web-page/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 23:34:46 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[dvop.net]]></category>
		<category><![CDATA[pbx]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=241</guid>
		<description><![CDATA[Now going official: www.dvop.net Filed under: Networking Tagged: dvop.net, pbx<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=241&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Now going official: <a href="http://www.dvop.net/">www.dvop.net</a></p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/networking-2/'>Networking</a> Tagged: <a href='http://txlab.wordpress.com/tag/dvop-net/'>dvop.net</a>, <a href='http://txlab.wordpress.com/tag/pbx/'>pbx</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/241/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=241&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2011/10/26/virtual-hotline-dvop-net-web-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>DENOG3 presentation</title>
		<link>http://txlab.wordpress.com/2011/10/25/denog3-presentation/</link>
		<comments>http://txlab.wordpress.com/2011/10/25/denog3-presentation/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 15:40:34 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[network management]]></category>
		<category><![CDATA[network monitoring]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=236</guid>
		<description><![CDATA[I made a presentation at the DENOG3 meeting last week and covered the following Perl-based open-source software products for network management and monitoring: Torrus, a well-established and mature software for massive SNMP polling and performance monitoring. Gerty, a new project for network automation. Any tasks on the network devices which need any interaction and automation, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=236&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I made a presentation at the <a href="http://www.denog.de/meetings/denog3/agenda.php?lang=en">DENOG3</a> meeting last week and covered the following Perl-based open-source software products for <strong>network management and monitoring</strong>:</p>
<ol>
<li><a href="http://torrus.org/">Torrus</a>, a well-established and mature software for massive SNMP polling and performance monitoring.</li>
<li><a href="https://github.com/ssinyagin/gerty">Gerty</a>, a new project for network automation. Any tasks on the network devices which need any interaction and automation, are targeted by the tool. The first release is expected soon.</li>
<li><a href="http://txlab.wordpress.com/tag/mooxu/">Mooxu</a>, a new project which is currently in its early design phase. The product will provide a platform for distributed network testing and monitoring (eventually it may replace Torrus).</li>
</ol>
<p>The slideshow PDF is available at the <a href="http://www.denog.de/meetings/denog3/agenda.php?lang=en">meeting agenda page</a>, and also a video will be available soon.</p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/networking-2/'>Networking</a>, <a href='http://txlab.wordpress.com/category/programming/'>Programming</a> Tagged: <a href='http://txlab.wordpress.com/tag/monitoring/'>monitoring</a>, <a href='http://txlab.wordpress.com/tag/network-management/'>network management</a>, <a href='http://txlab.wordpress.com/tag/network-monitoring/'>network monitoring</a>, <a href='http://txlab.wordpress.com/tag/perl/'>perl</a>, <a href='http://txlab.wordpress.com/tag/software-development/'>software development</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/236/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=236&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2011/10/25/denog3-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Virtual hotline service: almost ready</title>
		<link>http://txlab.wordpress.com/2011/10/25/virtual-hotline-service-almost-ready/</link>
		<comments>http://txlab.wordpress.com/2011/10/25/virtual-hotline-service-almost-ready/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 13:00:48 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[dvop.net]]></category>
		<category><![CDATA[freeswitch]]></category>
		<category><![CDATA[pbx]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=233</guid>
		<description><![CDATA[The PBX configuration is finished, with all the call routing as desired. The SMS gateway service is ordered from  iNetWorx. Few quirks in FreeSWITCH that I had to go around: The channel variables are not automatically propagated through a loopback endpoint. So, if I want to display the correct Caller ID in call forwarding, I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=233&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The PBX configuration is finished, with all the call routing as desired.</p>
<p>The SMS gateway service is ordered from  <a href="http://www.inetworx.ch/smsgateway.php?tab=prices">iNetWorx</a>.</p>
<p><span id="more-233"></span>Few quirks in FreeSWITCH that I had to go around:</p>
<p>The channel variables are not automatically propagated through a loopback endpoint. So, if I want to display the correct Caller ID in call forwarding, I need to export the corresponding variable in A-leg. In the public profile for the incoming extension, I need to set</p>
<pre>&lt;action application="export" data="outbound_caller_id_number=${ani}"/&gt;</pre>
<p>Then, in the PSTN outgoing extension, my provider needs a custom SIP header &#8220;X-Number&#8221; to point to the caller ID:</p>
<pre>&lt;condition field="destination_number" expression="^([01]\d+)$"&gt;
      &lt;action application="set" data="sip_h_X-Number=${outbound_caller_id_number}"/&gt;</pre>
<p>Then I can create a user which forwards calls to my mobile:</p>
<pre>  &lt;user id="7011"&gt;
    &lt;params&gt;
      &lt;param name="dial-string" value="loopback/0794070224/default"/&gt;
    &lt;/params&gt;
  &lt;/user&gt;</pre>
<p>It is important to put the context name in the loopback statement. Otherwise, if a call is transferred from another context, FreeSWITCH tries to find the matching pattern in the current context where the transfer is originated.</p>
<p>Another trick which took awhile: I need the voicemail to send emails with a specific From address, and by default it uses &lt;CallerID&gt;@domain as From address. The ticketing system will then try to send a confirmation to the sender.  The thing is, in FreeSWITCH, mod_voicemail has three different places where From address is defined. Two of them are actually documented: &#8220;vm-mailfrom&#8221; user parameter and &#8220;email-from&#8221; voicemail profile parameter. The third one is not documented, and it actually takes the higherst priority: in default email template, <em>&#8220;voicemail.tpl</em>&#8220;, the From line is explicitly defined. And it needs to look through the mod_voicemail sources in order to realize that.</p>
<p>Also the email template allows to set custom email headers, so I inject the customer ID in &#8220;X-Hotline-Cust-Id:&#8221;, and then the ticketing system moves the new ticket into the corresponding queue.</p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/networking-2/'>Networking</a> Tagged: <a href='http://txlab.wordpress.com/tag/dvop-net/'>dvop.net</a>, <a href='http://txlab.wordpress.com/tag/freeswitch/'>freeswitch</a>, <a href='http://txlab.wordpress.com/tag/pbx/'>pbx</a>, <a href='http://txlab.wordpress.com/tag/voip/'>voip</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/233/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=233&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2011/10/25/virtual-hotline-service-almost-ready/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Virtual hotline service: work in progress</title>
		<link>http://txlab.wordpress.com/2011/10/18/virtual-hotline-service-work-in-progress/</link>
		<comments>http://txlab.wordpress.com/2011/10/18/virtual-hotline-service-work-in-progress/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 17:46:15 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[dvop.net]]></category>
		<category><![CDATA[freeswitch]]></category>
		<category><![CDATA[pbx]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=226</guid>
		<description><![CDATA[status update on the project: Hotline routing works as described below. Yet to be done: self-service menu for the engineers. The XEN server is upgraded to 768MB RAM. Now there&#8217;s enough memory for everything: the basic website, the ticketing system, the FreeSWITCH, and also few more things in the future: the SMS gateway and file [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=226&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>status update on the project: Hotline routing works as described below. Yet to be done: self-service menu for the engineers.</p>
<p><span id="more-226"></span>The XEN server is upgraded to 768MB RAM. Now there&#8217;s enough memory for everything: the basic website, the ticketing system, the FreeSWITCH, and also few more things in the future: the SMS gateway and file sharing application.</p>
<p>FreeSWITCH is great, although it takes time to learn everything. Also it comes with a default configuration which contains lots of examples and unused features. It takes about a day to clean up all unneeded parts.</p>
<p>Also quite time-consuming is the debugging of codec negotiations between various endpoints. It requires lots of calls and wiresharking.</p>
<p>FreeSWITCH provides a great capability to build complex IVR dialogues. Also out of the box, it can call multiple endpoints at the same time, and ask them to press a digit to take the call. This allows us to send the hotline emergency calls to as many phones as we like, regardless of their individual timeouts or voicemail. The fiollowing code inside an extension does the trick:</p>
<pre>      &lt;action application="set" data="call_timeout=40"/&gt;
      &lt;action application="set" data="group_confirm_file=phrase:press_one_to_answer"/&gt;
      &lt;action application="set" data="group_confirm_key=1"/&gt;
      &lt;action application="set" data="hangup_after_bridge=true"/&gt;
      &lt;action application="bridge" data="${group_call(hunt_$1@${domain_name}+A)}"/&gt;</pre>
<p>Pity that there&#8217;s no ready-to-use audio file that would tell &#8220;<em>press 1 to answer the call</em>&#8220;. Out of the stock audio files in FreeSWITCH, I managed to compose &#8220;<em>Press 1 to hear screaming monkeys</em>&#8220;.  As  my internal colleagues are supposed to hear this when the customer calls&#8230; probably I&#8217;ll keep that <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Here&#8217;s the planned workflow for the hotline number:</p>
<ul>
<li>Welcome message</li>
<li>PBX enters an IVR loop that requests the customer PIN</li>
<li>PBX tries to route the call to the current support engineer for 40 seconds. It rings all available phones, and once picked up, the engineer hears &#8220;<em>Press 1 to hear screaming monkeys</em>&#8220;. The firs phone where 1 is dialed is taking the call.</li>
<li>If unsuccessful, forward the call to the Hotline voice mail</li>
<li>Voicemail takes the recording, and sends it as attachment to the ticketing system in a high-priority queue</li>
<li>Ticketing system creates a new ticket and sends SMS to all engineers</li>
<li>Every 15 minutes, the ticketing system sends SMS to all engineers until the ticket is assigned and opened</li>
<li>If a ticket remains unassigned and unopened for more than 90 minutes, SMS messages are sent to whomever may help</li>
</ul>
<p>The PBX will keep the current on-call engineer&#8217;s ID in FreeSWITCH internal database. Then there will be a self-service IVR menu for them as follows:</p>
<ul>
<li>Enter PIN</li>
<li>Press 1 to assign Max as the on-call engineer</li>
<li>Press 2 to assign Greg as the on-call engineer</li>
<li>&#8230; and so on</li>
</ul>
<p>As a result, there will always be a human which receives the calls, unlike the standard FIFO queue which may not have any agents logged in.</p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/networking-2/'>Networking</a> Tagged: <a href='http://txlab.wordpress.com/tag/dvop-net/'>dvop.net</a>, <a href='http://txlab.wordpress.com/tag/freeswitch/'>freeswitch</a>, <a href='http://txlab.wordpress.com/tag/pbx/'>pbx</a>, <a href='http://txlab.wordpress.com/tag/voip/'>voip</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/226/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=226&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2011/10/18/virtual-hotline-service-work-in-progress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Setting up a virtual hotline service</title>
		<link>http://txlab.wordpress.com/2011/10/16/setting-up-a-virtual-hotline-service/</link>
		<comments>http://txlab.wordpress.com/2011/10/16/setting-up-a-virtual-hotline-service/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 13:37:45 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[dvop.net]]></category>
		<category><![CDATA[freeswitch]]></category>
		<category><![CDATA[pbx]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=217</guid>
		<description><![CDATA[I&#8217;m building a support infrastructure for a small team of engineers (DVOP.net, Data and Voice Operations). Here I will describe some useful design notes, tips, and challenges. Server information: a XEN VPS, hosted at Softronics.ch, Debian 6.0.2 Squeeze, x86_64, 256MB RAM, 15GB disk. The ticketing system is built with RT: Request Tracker version 4.0.2, so [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=217&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m building a support infrastructure for a small team of engineers (DVOP.net, Data and Voice Operations). Here I will describe some useful design notes, tips, and challenges.</p>
<p><span id="more-217"></span>Server information: a XEN VPS, hosted at <a href="http://www.softronics.ch">Softronics.ch</a>, Debian 6.0.2 <q>Squeeze</q>, x86_64, 256MB RAM, 15GB disk.</p>
<p>The ticketing system is built with <a href="http://www.bestpractical.com/rt/">RT: Request Tracker</a> version 4.0.2, so far one of the best ticketing systems, and definitely the best open-source ticketing system.  It&#8217;s installed from Debian backports packages, with Apache, mod_fastcgi, and MySQL as data storage. Postfix is used as MTA (The default recommended MTA is Exim, but I have no experience configuring it).</p>
<p>Google Postini is used as the incoming email front-end filter for the ticketing system. They charge per account, and I thought I would need a separate account license for every incoming address on the ticketing system, but it appears that a single account allows an (unlimited?) number of aliases. So, basically one Postini account is sufficient.</p>
<p>SMS gateway service will be used to send notifications to the support engineers. I haven&#8217;t yet chosen between <a href="http://www.iway.ch/communication-and-email/sms/sms-gateway.aspx">IWAY</a> or <a href="http://hilfe.ecall.ch/service_preise.html?&amp;L=1">eCall</a> or something different.</p>
<p>A Swiss PSTN SIP trunk is most probably going to be purchased from <a href="http://www.foxfon.com/index.php?lang=en">FOXFON</a>.</p>
<p>I am going to build the virtual PBX by myself. I have read the books for Asterisk and FreeSWITCH, and I find FreeSWITCH to be much better organized and easier to make what I want.</p>
<p>FreeSWITCH (as well as Asterisk) is very sensitive to the hardware clock precision. People report very poor results with VmWare VPS, as it emulates the hardware clock, and it&#8217;s not physically related to the host system&#8217;s clock. XEN, on the contrary, provides direct clocking data from the host system, and people report good FreeSWITCH performance under XEN.</p>
<p>I planned to buy a separate VPS for the PBX, and in the meanwhile installed a FreeSWITCH instance on the same VPS where the ticketing system is running. Surprisingly they feel quite OK together in 256MB RAM, although some swapping is involved. FreeSWITCH is launched with higher process priority, and it occupies only 20-25 MB RAM. But I haven&#8217;t yet populated the final configuration, and also some additional web services will be set up, so I&#8217;ll have to upgrade to a bigger VPS.</p>
<p>The main purpose of the vPBX is to provide enhanced reachability for the on-call engineers. They should be reachable wherever they are, via their mobile phones or SIP accounts. Also the system should be completely autonomous: the next on-call engineer would simply redirect all hotline calls to himself, without involving the supervisor.</p>
<p>If the on-call engineer is not reachable, the PBX takes a voice message and forwards it as attachment to the ticketing system. The ticketing system then notifies all engineers via SMS that there&#8217;s a new urgent ticket.</p>
<p>The main challenge is how to treat various availability events on the mobile phones. Especially that they are abroad. It looks like the most reliable is to call all available phones and play &#8220;press 1 to answer the phone&#8221;, and wait for input. The only difficulty that on touchscreen smartphones the dial pad is hiding after dialing.</p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/networking-2/'>Networking</a> Tagged: <a href='http://txlab.wordpress.com/tag/dvop-net/'>dvop.net</a>, <a href='http://txlab.wordpress.com/tag/freeswitch/'>freeswitch</a>, <a href='http://txlab.wordpress.com/tag/pbx/'>pbx</a>, <a href='http://txlab.wordpress.com/tag/voip/'>voip</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/217/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=217&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2011/10/16/setting-up-a-virtual-hotline-service/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Distributed Testing Platform: design concept</title>
		<link>http://txlab.wordpress.com/2011/09/28/distributed-testing-platform-design-concept/</link>
		<comments>http://txlab.wordpress.com/2011/09/28/distributed-testing-platform-design-concept/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 17:09:39 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[mooxu]]></category>
		<category><![CDATA[network management]]></category>
		<category><![CDATA[network monitoring]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[software design]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=198</guid>
		<description><![CDATA[Author: Stanislav Sinyagin Document status: concept draft UPD: the project name is now Mooxu Introduction In many network environments, especially in those of large ISPs or carriers, there&#8217;s a need to periodically execute some network tests. For example, an IPTV transport provider would need to make sure that all important multicast streams are available in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=198&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Author: Stanislav Sinyagin<br />
Document status: concept draft</p>
<p>UPD: the project name is now <strong>Mooxu</strong></p>
<h1>Introduction</h1>
<p>In many network environments, especially in those of large ISPs or carriers, there&#8217;s a need to periodically execute some network tests. For example, an IPTV transport provider would need to make sure that all important multicast streams are available in every part of its edge network. Or a customer support engineer would need to collect byte and packet counters from a particular network port every 5 seconds.</p>
<p>The new software system (Project name: Mooxu) is designed to provide an open-source framework that enables the network operators to build the testing environment for their needs.  Also a number of open-source testing probe modules will be available.</p>
<p><span id="more-198"></span></p>
<p><strong>Distributed architecture:</strong> the system consists of a central dispatcher, data aggregators, and the probes, and each of them can be located anywhere in the network on as many devices as necessary.</p>
<p><strong>HTTP API:</strong> all system components communicate through a well-defined data protocol on top of HTTP transport.</p>
<p><strong>Secure communication:</strong> all API clients authenticate themselves with the use of MD5 digests and shared passwords. SSL may be used for content encryption if enough CPU resource is available and data privacy is required.</p>
<p><strong>Non-restrictive licensing:</strong> all components are distributed under a non-restrictive license (MIT?) that allows proprietary extensions without any limits.</p>
<p><strong>Modular software design:</strong> the core software distribution provides the API and the tools for controlling the test execution and transporting their result data. Also a number of open-source plugin packages implement particular tests for various network technologies.</p>
<h1>Dispatcher</h1>
<p>The central dispatcher is the only component that is not distributed (although the design must not exclude redundancy and failover schemes).</p>
<p>The dispatcher is responsible for  controlling the test execution: configuring, starting, aborting, reporting the status, and pointing to the data store.</p>
<p>The dispatcher provides two different API&#8217;s: the one for the distributed system components, and the other one for northbound  OSS systems.</p>
<p>The dispatcher integrates with any standard HTTP server software, such as Apache.</p>
<p>The dispatcher maintains a database of all remote components and their properties. Each remote component is identified by a unique name and a shared secret.</p>
<p>Each test consists of a set of attributes:</p>
<ul>
<li>core attributes: unique test ID, test classname, start time, duration, owner, probe name, data store name, &#8230;</li>
<li>class-specific attributes that define the particular test</li>
<li>custom attributes that the local system administrator assigns depending on the requirements</li>
</ul>
<h1>Component initialization and configuration</h1>
<p>Each remote component (probes and data stores) communicates to the dispatcher and retrieves its configuration.</p>
<p>At the time of roll-out, each component is preconfigured with its unique name, shared password, and the URL of the dispatcher.</p>
<p>Each component is a permanently-running process that controls other processes and tasks. The components contact the dispatcher and refresh their configuration periodically (the refresh period is part of  the configuration supplied by the dispatcher).</p>
<p>Each component reports its local inventory to the dispatcher: the OS type and version, core software and the plugin versions, etc.</p>
<h1>Data store</h1>
<p>The system requires at least one data store component to save the test result data. Multiple data stores can be distributed across the network, depending on its topology, available bandwidth, and the system requirements.</p>
<p>Data stores also allow data replication and aggregation. For example, a test collects data every 2 seconds, and saves the results every 60 seconds to a local data store. Then the data is transported to the central location every 5 minutes, because the end user does not actually need it more frequently, but it&#8217;s important to have a quick response time for better interactivity.</p>
<p>Data stores also receive event notifications from the probes and forward them to an external event aggregator, such as SYSLOG or SNMP trap collector.</p>
<p>The data store runs an HTTP-based  data access API which allows external programs to retrieve the test results.</p>
<h1>Probes</h1>
<p>A probe is a process that runs on a probe machine.  It does not perform any tests itself, but spawns the test processes and controls their execution. A probe is identified by a unique name, and in theory, multiple probes may run on the same server.</p>
<p>The test processes are also responsible for sending the result data to the data store.</p>
<p>The test processes may generate events which would be dispatched with higher priority to the event management system. This enables the platform to run long-term or permanent tests and generate alarms.</p>
<p>The probe installation consists of the core package, as well as at least one plugin that implements particular tests.</p>
<h1>Software implementation</h1>
<p>All software components are distributed as GNU Autoconf-based packages, and are installable with the standard Autoconf procedure (./configure &amp;&amp; make &amp;&amp; make install). This guarantees a uniform installation procedure and easy packaging for any standard UNIX-like OS.</p>
<p>The main programing language for all components is planned to be Perl. The common API is also possible to implement in C and other programming languages, depending on the customer needs.</p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/programming/'>Programming</a> Tagged: <a href='http://txlab.wordpress.com/tag/monitoring/'>monitoring</a>, <a href='http://txlab.wordpress.com/tag/mooxu/'>mooxu</a>, <a href='http://txlab.wordpress.com/tag/network-management/'>network management</a>, <a href='http://txlab.wordpress.com/tag/network-monitoring/'>network monitoring</a>, <a href='http://txlab.wordpress.com/tag/perl/'>perl</a>, <a href='http://txlab.wordpress.com/tag/software-design/'>software design</a>, <a href='http://txlab.wordpress.com/tag/testing/'>testing</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/198/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=198&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2011/09/28/distributed-testing-platform-design-concept/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Autoconf/Automake installer for a Perl program</title>
		<link>http://txlab.wordpress.com/2011/09/26/autoconfautomake-installer-for-a-perl-program/</link>
		<comments>http://txlab.wordpress.com/2011/09/26/autoconfautomake-installer-for-a-perl-program/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 15:43:27 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[autoconf]]></category>
		<category><![CDATA[automake]]></category>
		<category><![CDATA[gnu autoconf]]></category>
		<category><![CDATA[gnu automake]]></category>
		<category><![CDATA[packaging]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=189</guid>
		<description><![CDATA[If you create a Perl application and want it to be installed in some standard part like /usr/local  or /opt/yourapp, it&#8217;s quite easy to do with a the standard GNU Autoconf, Automake and a couple of helper scripts. This tutorial is based on the Gerty project code at Github. Hint #1: do not apply AC_CONFIG_FILES [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=189&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you create a Perl application and want it to be installed in some standard part like /usr/local  or /opt/yourapp, it&#8217;s quite easy to do with a the standard GNU Autoconf, Automake and a couple of helper scripts.<span id="more-189"></span></p>
<p>This tutorial is based on the <a href="https://github.com/ssinyagin/gerty">Gerty project code</a> at Github.</p>
<p>Hint #1: do not apply AC_CONFIG_FILES to your Perl files directly. Use a helper script (<em><span style="text-decoration:underline;">setup_tools/substvars.sh.in</span></em> in Gerty sources) that does the variable substitution. The reason is that for variables which depend on other variable values, AC_CONFIG_FILES expands them as references. For example, <em>@datadir@</em> is expanded into <em>${datarootdir}</em>. A little shell script like <em>substvars.sh</em> expands these recursive references into string values which you finally use in your Perl program.</p>
<p>Hint #2: you may list all your <em>.pm</em> files in a <em>Makefile.am</em>, but then you&#8217;d have to update it every time you add a new module. It&#8217;s quite easy to miss one, especially if your project is actively developing. Instead, you can embed a small shell script into your makefile, and it would copy all <em>.pm</em> files from your <em>lib</em> directory. See <em>lib/Makefile.am</em> in Gerty sources as a working example.</p>
<p>You may start with writing your <em>configure.ac</em> file as usual. Also it&#8217;s faster if you copy it from an existing project <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>You will definitely need AC_PATH_PROG for Perl, as your installer should be able to work with any perl instance on the target system. Also <em>configure.ac</em> in Gerty sources offers a simple checkup for pre-requisite modules. Also it enables to skip those check-ups if you only intend to package, and not to run the software.</p>
<p><em>Makefile.am</em> is quite standard so far. The one in Gerty inserts a small file called <em>DIST_REVISION</em>: it contains the date and the Git branch information at the moment of &#8220;<em>make dist</em>&#8221; execution.</p>
<p>The <em>bin/Makefile.am</em> in Gerty illustrates how the executable scripts need to be handled.</p>
<p>Once all <em>configure.ac</em> and <em>Makefile.am</em> files are ready for testing, proceed as follows:</p>
<pre>touch AUTHORS ChangeLog INSTALL NEWS README
aclocal
autoconf
automake -a -c</pre>
<p>Later you can run &#8220;<em>autoreconf</em>&#8221; instead of &#8220;<em>aclocal &amp;&amp; autoconf &amp;&amp; automake</em>&#8220;. Autoreconf is part of Libtool package.</p>
<p>Now your package is generally ready. You can proceed with &#8220;<em>./configure</em>&#8221; and &#8220;<em>make install</em>&#8221; as you usually do with other packages.</p>
<p>Do not forget the <em>.gitignore</em> (or <em>svn:ignore</em> if you like). Autotools would keep some temporary garbage in your project directory, so it&#8217;s important to set up a proper <em>.gitignore</em> before making any commits.</p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/programming/'>Programming</a> Tagged: <a href='http://txlab.wordpress.com/tag/autoconf/'>autoconf</a>, <a href='http://txlab.wordpress.com/tag/automake/'>automake</a>, <a href='http://txlab.wordpress.com/tag/gnu-autoconf/'>gnu autoconf</a>, <a href='http://txlab.wordpress.com/tag/gnu-automake/'>gnu automake</a>, <a href='http://txlab.wordpress.com/tag/packaging/'>packaging</a>, <a href='http://txlab.wordpress.com/tag/perl/'>perl</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/189/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/189/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/189/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=189&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2011/09/26/autoconfautomake-installer-for-a-perl-program/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>using Tumblr API v2 from Perl</title>
		<link>http://txlab.wordpress.com/2011/09/03/using-tumblr-api-v2-from-perl/</link>
		<comments>http://txlab.wordpress.com/2011/09/03/using-tumblr-api-v2-from-perl/#comments</comments>
		<pubDate>Sat, 03 Sep 2011 21:33:03 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[oAuth]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[tumblr]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=183</guid>
		<description><![CDATA[Tumblr API v2 uses oAuth mechanism for authentication, and this mechanism signs every request with a SHA1 or other hash algorithms. If your posts contain non-ASCII data, here starts the tricky part. Perl has some special treatment for UTF-8 strings, and incorrect handling can easily lead to a wrong signature. At first, I tried to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=183&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tumblr.com/docs/en/api/v2">Tumblr API v2</a> uses oAuth mechanism for authentication, and this mechanism signs every request with a SHA1 or other hash algorithms.</p>
<p>If your posts contain non-ASCII data, here starts the tricky part. Perl has some special treatment for UTF-8 strings, and incorrect handling can easily lead to a wrong signature.</p>
<p>At first, I tried to use <a href="http://search.cpan.org/dist/LWP-Authen-OAuth/"><strong><strong>LWP::Authen::OAuth</strong></strong></a> module, as it provides the simplest interface and hides most of oAuth internal logic. Unfortunately, it doesn&#8217;t care much about the stging encodings, and UTF8-formatted strings get corrupted and result in invalid signatures.</p>
<p><a href="http://search.cpan.org/dist/Net-OAuth/"><strong>Net::OAuth</strong></a> appeared to be a bit more complex, and a bit insufficiently documented, but proved to work correctly with UTF-8 data.</p>
<p>Here&#8217;s the piece which finally worked. It took awhile to build this example, as the module documentation cuts some important corners.</p>
<p><span id="more-183"></span></p>
<pre>use utf8;
use Net::OAuth;
$Net::OAuth::PROTOCOL_VERSION = Net::OAuth::PROTOCOL_VERSION_1_0A;
use HTTP::Request::Common;
use LWP::UserAgent;
use strict;

my $blog = 'example.tumblr.com';

# token and token_secret are previously retrieved via authorization request
my %oauth_api_params =
    ('consumer_key' =&gt;
        'Tte6Jw...............',
     'consumer_secret' =&gt;
        'H6z7...................',
     'token' =&gt;
        'XPcrob...........',
     'token_secret' =&gt;
        'Wz...................',
     'signature_method' =&gt;
        'HMAC-SHA1',
     request_method =&gt; 'POST',
);

my $body =
   '&lt;div style="text-align:center"&gt;Hello wörld&lt;/div&gt;';

# prepare the body for further encode
utf8::decode($body);

my $url = 'http://api.tumblr.com/v2/blog/' . $blog . '/post';

my $request =
    Net::OAuth-&gt;request("protected resource")-&gt;new
        (request_url =&gt; $url,
         %oauth_api_params,
         timestamp =&gt; time(),
         nonce =&gt; rand(1000000),
         extra_params =&gt; {
             'type' =&gt; 'text',
             'body' =&gt; $body,
         });

$request-&gt;sign;

my $ua = LWP::UserAgent-&gt;new;
# this is the tricky part which is not documented where it should
my $response = $ua-&gt;request(POST $url, Content =&gt; $request-&gt;to_post_body);

if ( $response-&gt;is_success )
{
    my $r = decode_json($response-&gt;content);
    if($r-&gt;{'meta'}{'status'} == 201)
    {
        my $item_id = $r-&gt;{'response'}{'id'};
        print("Added a Tumblr entry\n");
    }
    else
    {
        printf("Cannot create Tumblr entry: %s\n",
                $r-&gt;{'meta'}{'msg'});
    }            
}
else
{
    printf("Cannot create Tumblr entry: %s\n",
            $response-&gt;as_string);
}</pre>
<br />Filed under: <a href='http://txlab.wordpress.com/category/programming/'>Programming</a> Tagged: <a href='http://txlab.wordpress.com/tag/oauth/'>oAuth</a>, <a href='http://txlab.wordpress.com/tag/perl/'>perl</a>, <a href='http://txlab.wordpress.com/tag/tumblr/'>tumblr</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/183/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=183&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2011/09/03/using-tumblr-api-v2-from-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Git repository with HTTPS write access</title>
		<link>http://txlab.wordpress.com/2011/08/20/git-repository-with-https-write-access/</link>
		<comments>http://txlab.wordpress.com/2011/08/20/git-repository-with-https-write-access/#comments</comments>
		<pubDate>Sat, 20 Aug 2011 21:13:24 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=177</guid>
		<description><![CDATA[(this is to document a setup which was not used in the end, and was replaced with gitolite) 1. Rent a VPS. For example, at TOCICI a minimal VPS costs as little as $33 per year. The following tutorial is tested with Ubuntu 11.04 on such a minimal VPS. 2. Install and configure Lighttpd aptitude [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=177&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>(this is to document a setup which was not used in the end, and was replaced with gitolite)</p>
<p>1. Rent a VPS. For example, at <a href="http://www.buildyourvps.com/">TOCICI</a> a minimal VPS costs as little as $33 per year. The following tutorial is tested with Ubuntu 11.04 on such a minimal VPS.</p>
<p>2. Install and configure Lighttpd</p>
<pre>aptitude install git-core lighttpd</pre>
<p><span id="more-177"></span></p>
<pre>cat &gt;/etc/lighttpd/conf-available/50-gitrepo.conf &lt;&lt;EOT
server.modules += ( "mod_cgi", "mod_setenv", "mod_rewrite" )
$HTTP["scheme"] == "https" {
  accesslog.filename = "/var/log/lighttpd/access-ssl.log"  
  server.document-root  = "/srv/www/<span style="color:#3366ff;">git01.mydomain.net</span>_ssl/"
  alias.url  += ( "/git" =&gt; "/usr/lib/git-core/git-http-backend")
  # prevent a request to "/git" from causing a 500 error (no PATH_INFO)
  url.rewrite-once         = ( "^/git$" =&gt; "/git/" )
  $HTTP["url"] =~ "^/git" {
        cgi.assign = ( "" =&gt; "" )
        setenv.add-environment = (
          "GIT_HTTP_EXPORT_ALL" =&gt; "",
          "GIT_PROJECT_ROOT" =&gt; "/srv/www/<span style="color:#3366ff;">git01.mydomain.net</span>_ssl/"
          )

        $HTTP["url"] =~ "^/git/<span style="color:#3366ff;">CUSTOMER01</span>/" {
          auth.backend = "htpasswd"
          auth.backend.htpasswd.userfile = "/etc/lighttpd/<span style="color:#3366ff;">CUSTOMER01</span>-htpasswd.user"
          auth.require = ( "" =&gt;
                           ( "method" =&gt; "basic",
                             "realm" =&gt; "Git",
                             "require" =&gt; "valid-user"
                           )
                         )
        }
  }
}
EOT

/usr/sbin/lighty-enable-mod auth accesslog ssl gitrepo
/etc/init.d/lighttpd force-reload
htpasswd -c /etc/lighttpd/<span style="color:#3366ff;">CUSTOMER01</span>-htpasswd.user <span style="color:#3366ff;">USER01</span></pre>
<p>3. Create Git repositories, and the users would be able to read/write to them via HTTPS with password authentication.</p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/programming/'>Programming</a> Tagged: <a href='http://txlab.wordpress.com/tag/git/'>git</a>, <a href='http://txlab.wordpress.com/tag/hosting/'>hosting</a>, <a href='http://txlab.wordpress.com/tag/linux/'>linux</a>, <a href='http://txlab.wordpress.com/tag/ubuntu/'>ubuntu</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/177/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/177/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/177/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=177&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2011/08/20/git-repository-with-https-write-access/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>PC emulated in Javascript</title>
		<link>http://txlab.wordpress.com/2011/05/17/pc-emulated-in-javascript/</link>
		<comments>http://txlab.wordpress.com/2011/05/17/pc-emulated-in-javascript/#comments</comments>
		<pubDate>Tue, 17 May 2011 11:12:08 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Weird things]]></category>
		<category><![CDATA[emulators]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=175</guid>
		<description><![CDATA[Amazing stuff: the guy has emulated an x86 CPU in JavaScript! http://bellard.org/jslinux/tech.html Filed under: Weird things Tagged: emulators, linux, software development<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=175&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Amazing stuff: the guy has emulated an x86 CPU in JavaScript!</p>
<p><a href="http://bellard.org/jslinux/tech.html" target="_blank">http://bellard.org/jslinux/tech.html</a></p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/weird-things/'>Weird things</a> Tagged: <a href='http://txlab.wordpress.com/tag/emulators/'>emulators</a>, <a href='http://txlab.wordpress.com/tag/linux/'>linux</a>, <a href='http://txlab.wordpress.com/tag/software-development/'>software development</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/175/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=175&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2011/05/17/pc-emulated-in-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>IPSEC VPN connection between Racoon and Checkpoint</title>
		<link>http://txlab.wordpress.com/2011/04/14/ipsec-vpn-connection-between-racoon-and-checkpoint/</link>
		<comments>http://txlab.wordpress.com/2011/04/14/ipsec-vpn-connection-between-racoon-and-checkpoint/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 17:29:43 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[ipsec]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=171</guid>
		<description><![CDATA[When connecting a Checkpoint firewall with a Linux or BSD server with Racoon software, the following error is quite typical in the very beginning of  Phase 1 negotiation: 2011-04-14 15:47:21: DEBUG: 40 bytes message received from 62.x.x.x[500] to 2 13.x.x.x[500] 2011-04-14 15:47:21: DEBUG: 30652081 6d92a9ee 00000000 00000000 0b100500 4bd389ff 00000028 0000000c 00000000 0100000e 2011-04-14 15:47:21: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=171&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When connecting a Checkpoint firewall with a Linux or BSD server with Racoon software, the following error is quite typical in the very beginning of  Phase 1 negotiation:</p>
<pre>2011-04-14 15:47:21: DEBUG: 40 bytes message received from 62.x.x.x[500] to 2
13.x.x.x[500]
2011-04-14 15:47:21: DEBUG:
30652081 6d92a9ee 00000000 00000000 0b100500 4bd389ff 00000028 0000000c
00000000 0100000e
2011-04-14 15:47:21: DEBUG: malformed cookie received or the initiator's cookies collide.</pre>
<p>The ting is, racoon uses AES key length of 128 bit by default, and Checkpoint firewalls use AES-256 (for Phase 1 only 256-bit keys are supported).</p>
<p>The following configuration should fix the problem. Also &#8220;sainfo&#8221; line shows how to set AES-256 for  Phase 2:</p>
<pre>remote 62.x.x.x {
        exchange_mode main;
        proposal {
                encryption_algorithm aes 256;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group 2;
                lifetime time 1440 minutes;
        }
        generate_policy off;
        nat_traversal force;
}

sainfo address 213.x.x.x[any] any address 62.y.y.y/24[any] any {
        encryption_algorithm aes 256;
        authentication_algorithm hmac_sha1;
        compression_algorithm deflate;
}</pre>
<br />Filed under: <a href='http://txlab.wordpress.com/category/networking-2/'>Networking</a> Tagged: <a href='http://txlab.wordpress.com/tag/ipsec/'>ipsec</a>, <a href='http://txlab.wordpress.com/tag/linux/'>linux</a>, <a href='http://txlab.wordpress.com/tag/networking/'>networking</a>, <a href='http://txlab.wordpress.com/tag/tips/'>tips</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/171/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=171&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2011/04/14/ipsec-vpn-connection-between-racoon-and-checkpoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Medion/Thalia OYO E-Book Reader</title>
		<link>http://txlab.wordpress.com/2011/02/12/medion-thalia-oyo-e-book-reader/</link>
		<comments>http://txlab.wordpress.com/2011/02/12/medion-thalia-oyo-e-book-reader/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 15:45:53 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[e-reader]]></category>
		<category><![CDATA[oyo]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=162</guid>
		<description><![CDATA[Bought the OYO reader few months ago, and here&#8217;s the summary. It&#8217;s cheap: most probably, subsidized by the Thalia book store. It also allows you to copy books via USB or read them directly from a Micr0SD card. It&#8217;s German: the UI at the first run is all in German language, but you can switch [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=162&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bought the <a href="http://en.wikipedia.org/wiki/Oyo_%28e-reader%29">OYO reader </a>few months ago, and here&#8217;s the summary.</p>
<p>It&#8217;s cheap: most probably, subsidized by the Thalia book store. It also allows you to copy books via USB or read them directly from a Micr0SD card.</p>
<p>It&#8217;s German: the UI at the first run is all in German language, but you can switch to English in settings.</p>
<p>It&#8217;s slow&#8230; sometimes you have to wait for its reaction. Sometimes it hangs up on large PDF files.</p>
<p>It&#8217;s buggy. Also Medion is not really a software business, so all the customer relation and software development is new to them.</p>
<p>The newest firmware R3407 is reported to have problems with PDF files, and also many people could not switch off the device or put it into standby mode.</p>
<p>Bugs found with firmware R2342:</p>
<ul>
<li>Russian ePub files are a bit of a problem: symbols in <em>italics</em> are displayed as question marks. HTML and PDF files are displayed as expected</li>
<li>I couldn&#8217;t fix it in Landscape mode. Orientation settings provide 3 options: Auto, Portrait, Landscape. Landscape appears to be equal to Auto: the device is sensitive to its gravity sensor, and tries to re-draw the text as you move around.</li>
<li>It doesn&#8217;t remember the PDF reading settings, and you have to choose them next time you open a PDF.</li>
</ul>
<p>Useful links:</p>
<ul>
<li><a href="http://www.tragmuab.de/blog/">Michaels EDV-Blog</a> (in German). Interesting news and test results. Saved me a bit of time in not upgrading to R3407.</li>
<li><a href="http://www.fwma.de/pmwiki/pmwiki.php?n=Main.OYO">Frank&#8217;s Wiki</a> (in English). The guy has hacked the device. You can, in theory, run your own software with it <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li><a href="http://www.facebook.com/mein.oyo">OYO on Facebook</a> (in German). The official facebook page, with all announcements from the software developers and user forum.</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://www.bookeen.com/en/cybook/?id=2">Cybook Orizon</a> reader seems to be quite nice&#8230;</p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/hardware/'>Hardware</a> Tagged: <a href='http://txlab.wordpress.com/tag/e-reader/'>e-reader</a>, <a href='http://txlab.wordpress.com/tag/oyo/'>oyo</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/162/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=162&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2011/02/12/medion-thalia-oyo-e-book-reader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Gerty, the RANCID replacement</title>
		<link>http://txlab.wordpress.com/2010/10/11/gerty-the-rancid-replacement/</link>
		<comments>http://txlab.wordpress.com/2010/10/11/gerty-the-rancid-replacement/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 21:39:55 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Useful News]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=151</guid>
		<description><![CDATA[started a new project about a month ago, and the first proof of concept is already useable: http://github.com/ssinyagin/gerty Filed under: Useful News Tagged: software development<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=151&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>started a new project about a month ago, and the first proof of concept is already useable:</p>
<p><a href="http://github.com/ssinyagin/gerty">http://github.com/ssinyagin/gerty</a></p>
<br />Filed under: <a href='http://txlab.wordpress.com/category/useful-news/'>Useful News</a> Tagged: <a href='http://txlab.wordpress.com/tag/software-development/'>software development</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/151/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=151&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2010/10/11/gerty-the-rancid-replacement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Big Endian for i.MX27: bug test code</title>
		<link>http://txlab.wordpress.com/2009/04/27/big-endian-for-imx27-bug-test-code/</link>
		<comments>http://txlab.wordpress.com/2009/04/27/big-endian-for-imx27-bug-test-code/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 20:10:19 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Embedded Linux]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[big-endian]]></category>
		<category><![CDATA[i.MX27]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=141</guid>
		<description><![CDATA[a piece of assembler code which proves the bug in big-endian mode: /* * IMX27 Big-endian test * File: imx27-betest.S * Stanislav Sinyagin ssinyagin@k-open.com */ #ifdef __ARMEB__ #error This file must be compiled in little-endian mode #endif /* Delay a bit */ .macro DELAY_FOR cycles, reg0 ldr \reg0, =\cycles subs \reg0, \reg0, #1 subne pc, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=141&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>a piece of assembler code which proves the bug in big-endian mode:</p>
<pre><span id="more-141"></span>/*
 *  IMX27 Big-endian test
 *  File: imx27-betest.S
 *  Stanislav Sinyagin ssinyagin@k-open.com
 */

#ifdef __ARMEB__
#error This file must be compiled in little-endian mode
#endif

         /* Delay a bit */
        .macro DELAY_FOR cycles, reg0
        ldr     \reg0, =\cycles
        subs    \reg0, \reg0, #1
        subne   pc,  pc, #0xc
        .endm
	/* wait for coprocessor write complete */
        .macro CPWAIT reg
        mrc  p15,0,\reg,c2,c0,0
        mov  \reg,\reg
        sub  pc,pc,#4
        .endm

.globl _start
_start:

	/*
	 * set the cpu to SVC32 mode
	 */
	mrs	r0,cpsr
	bic	r0,r0,#0x1f
	orr	r0,r0,#0xd3
	msr	cpsr,r0

	/*
	 * invalidate I/D cache/TLB and drain write buffer
	 */
	mov r0, #0
	mcr p15, 0, r0, c7, c7, 0	/* invalidate I cache and D cache */
	mcr p15, 0, r0, c8, c7, 0	/* invalidate TLBs */
	mcr p15, 0, r0, c7, c10, 4      /* Drain the write buffer */

	/*
	 * disable MMU stuff and caches
	 */
	mrc p15, 0, r0, c1, c0, 0
	bic	r0, r0, #0x00002300	/* clear bits 13, 9:8 (--V- --RS) */
	bic	r0, r0, #0x00000087	/* clear bits 7, 2:0 (B--- -CAM) */
	orr	r0, r0, #0x00000002	/* set bit 2 (A) Align */
	orr	r0, r0, #0x00001000	/* set bit 12 (I) I-Cache */
	mcr p15, 0, r0, c1, c0, 0

	/* initialize the first 64 bytes at 0xA3000000 */
	ldr r0, =0xA3000000
	ldr r1, =16
	ldr r2, =0x11223344
	1:
	str r2, [r0], #4
	subs r1, r1, #1
	bne 1b

	/* Invalidate cache */
tci_loop:
	mrc p15, 0, r15, c7, c14, 3
	bne tci_loop	

	mov r0, #0
	mcr p15, 0, r0, c7, c7, 0	/* invalidate I cache and D cache */
	mcr p15, 0, r0, c8, c7, 0	/* invalidate TLBs */
	mcr p15, 0, r0, c7, c10, 4   /* Drain the write buffer */

	/* set big endian */
	mov r0, #0
	mrc	p15, 0, r0, c1, c0
	orr	r0, r0, #0x80
	mcr	p15, 0, r0, c1, c0
	CPWAIT  r0

	DELAY_FOR 0x4000, r0

	/* We are in big endian mode. */
	ldr r0, =0xA3000000
	mov r2, r0
	mov r1, #0xFF
	strb r1, [r0], #4
	str r1, [r0], #4
	ldrb r1, [r2]
	strb r1, [r0], #4
	str r1, [r0], #4

	/* loop forever */
	1:
	nop
	b 1b</pre>
<h3>Compiled into a.out:</h3>
<pre>  arm-linux-as imx27-betest.S</pre>
<h3>Uploaded into u-boot and executed:</h3>
<pre>BIOS&gt; setenv ipaddr 192.168.1.5; setenv serverip 192.168.1.40; tftpboot 0xA0000000 a.out; go 0xA0000000
FEC ETHERNET: Link is up - 100/Full
TFTP from server 192.168.1.40; our IP address is 192.168.1.5
Filename 'a.out'.
Load address: 0xa0000000
Loading: #
done
Bytes transferred = 803 (323 hex)
## Starting application at 0xA0000000 ...</pre>
<h3>Reset the board and examined the memory:</h3>
<pre>BIOS&gt; md 0xA3000000 20
a3000000: 112233<span style="color:#ff0000;">ff</span> 000000ff 11223311 000000<span style="color:#ff0000;">11</span>    .3"......3".....
a3000010: 11223344 11223344 11223344 11223344    D3".D3".D3".D3".
a3000020: 11223344 11223344 11223344 11223344    D3".D3".D3".D3".
a3000030: 11223344 11223344 11223344 11223344    D3".D3".D3".D3".
a3000040: 115e2008 121000c0 122008cc 02004084    . ^....... ..@..
a3000050: 11108200 000802c8 20040000 00800088    ........... ....
a3000060: 10101048 0000308c 11c90004 33800088    H....0.........3
a3000070: 12044144 11860108 1100284c 20680588    DA......L(....h
BIOS&gt;</pre>
<h3>Results:</h3>
<p>[0xa3000000]: The byte 0xFF was written into the least significant byte, although, according to big endian mode, it should&#8217;ve been written into the most significant byte.</p>
<p>[0xa300000c]: ldrb has read the most significant byte, as it&#8217;s supposed to do in big-endian mode.</p>
<br />Posted in Embedded Linux Tagged: arm, big-endian, i.MX27 <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/141/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=141&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2009/04/27/big-endian-for-imx27-bug-test-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Big Endian for i.MX27: found the problem</title>
		<link>http://txlab.wordpress.com/2009/04/25/big-endian-for-imx27-found-the-problem/</link>
		<comments>http://txlab.wordpress.com/2009/04/25/big-endian-for-imx27-found-the-problem/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 21:41:51 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Embedded Linux]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[armadeus]]></category>
		<category><![CDATA[big-endian]]></category>
		<category><![CDATA[i.MX27]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=131</guid>
		<description><![CDATA[Found the big endian problem: it looks like the memory controller bug. with the following GCC 4.2.4 arguments (optimization switched off): /home/armadeus-be/buildroot/build_armv5te/staging_dir/usr/bin/armeb-linux-uclibc -gcc -g -O0 -fno-strict-aliasing -fno-common -ffixed-r8 -msoft-float -mbig-e ndian -D__KERNEL__ -DTEXT_BASE=0xAFF00000 -I/home/armadeus-be/buildroot/project_ build_armv5te/apf27/u-boot-1.3.4/include -fno-builtin -ffreestanding -nostdinc - isystem /home/armadeus-be/buildroot/build_armv5te/staging_dir/usr/bin-ccache/../ lib/gcc/armeb-linux-uclibc/4.2.4/include -pipe -DCONFIG_ARM -D__ARM__ -march=ar mv5te -mabi=apcs-gnu -Wall -Wstrict-prototypes -fno-stack-protector -c -o env_co mmon.o [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=131&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Found the big endian problem: it looks like the memory controller bug.</p>
<p><span id="more-131"></span></p>
<p>with the following GCC 4.2.4 arguments (optimization switched off):</p>
<pre>/home/armadeus-be/buildroot/build_armv5te/staging_dir/usr/bin/armeb-linux-uclibc
-gcc -g  -O0  -fno-strict-aliasing  -fno-common -ffixed-r8 -msoft-float  -mbig-e
ndian -D__KERNEL__ -DTEXT_BASE=0xAFF00000 -I/home/armadeus-be/buildroot/project_
build_armv5te/apf27/u-boot-1.3.4/include -fno-builtin -ffreestanding -nostdinc -
isystem /home/armadeus-be/buildroot/build_armv5te/staging_dir/usr/bin-ccache/../
lib/gcc/armeb-linux-uclibc/4.2.4/include -pipe  -DCONFIG_ARM -D__ARM__ -march=ar
mv5te -mabi=apcs-gnu -Wall -Wstrict-prototypes -fno-stack-protector -c -o env_co
mmon.o env_common.c</pre>
<p>the generated code writes a byte  to some  memory access ([fp, #-13]), and then reads from the same address:</p>
<pre>uchar env_get_char (int index)
{
 108:   e1a0c00d        mov     ip, sp
 10c:   e92dd800        push    {fp, ip, lr, pc}
 110:   e24cb004        sub     fp, ip, #4      ; 0x4
 114:   e24dd008        sub     sp, sp, #8      ; 0x8
 118:   e50b0014        str     r0, [fp, #-20]
        uchar c;

        /* if relocated to RAM */
        if (gd-&gt;flags &amp; GD_FLG_RELOC)
 11c:   e1a03008        mov     r3, r8
 120:   e5933004        ldr     r3, [r3, #4]
 124:   e2033001        and     r3, r3, #1      ; 0x1
 128:   e20330ff        and     r3, r3, #255    ; 0xff
 12c:   e3530000        cmp     r3, #0  ; 0x0
 130:   0a000004        beq     148 &lt;env_get_char+0x40&gt;
                c = env_get_char_memory(index);
 134:   e51b0014        ldr     r0, [fp, #-20]
 138:   ebfffffe        bl      a0 &lt;env_get_char_memory&gt;
 13c:   e1a03000        mov     r3, r0
 140:   e54b300d        <span style="color:#ff0000;">strb    r3, [fp, #-13]</span>
 144:   ea000003        b       158 &lt;env_get_char+0x50&gt;
        else
                c = env_get_char_init(index);
 148:   e51b0014        ldr     r0, [fp, #-20]
 14c:   ebffffbc        bl      44 &lt;env_get_char_init&gt;
 150:   e1a03000        mov     r3, r0
 154:   e54b300d    <span style="color:#888888;">    <span style="color:#000000;">strb    r3, [fp, #-13]</span></span>

        return (c);
 158:   e55b300d        <span style="color:#ff0000;">ldrb    r3, [fp, #-13]</span>
}
 15c:   e1a00003        mov     r0, r3
 160:   e24bd00c        sub     sp, fp, #12     ; 0xc
 164:   e89da800        ldm     sp, {fp, sp, pc}</pre>
<p>here&#8217;s the GDB session output. A value of  0&#215;62 was stored by strb command, and a completely different value was returned by ldrb:</p>
<pre>(gdb) add-symbol-file u-boot 0xaff00000
add symbol table from file "u-boot" at
	.text_addr = 0xaff00000
(gdb) target remote localhost:3333
start_armboot () at board.c:304
/home/armadeus-be/buildroot/project_build_armv5te/apf27/u-boot-1.3.4/lib_arm/board.c:304:8383:beg:0xaff01630
(gdb) b env_get_char
Breakpoint 1 at 0xaff2b8c8: file env_common.c, line 191.
(gdb) c

Breakpoint 1, env_get_char (index=0) at env_common.c:191
(gdb) del
(gdb) display/i $pc
(gdb) display/x $r3
(gdb) x/w $r11
0xafe9fddc:	0xaff2b8c4
(gdb) x/w 0xafe9fdcc
0xafe9fdcc:	0xaff41404
(gdb) display/w 0xafe9fdcc
(gdb) ni
3: x/xw 2951347660  0xafe9fdcc:	0xaff41404
2: /x $r3 = 0xafe9ffdc
1: x/i $pc  0xaff2b8cc &lt;env_get_char+24&gt;:	ldr	r3, [r3, #4]
(gdb)
3: x/xw 2951347660  0xafe9fdcc:	0xaff41404
2: /x $r3 = 0x1
1: x/i $pc  0xaff2b8d0 &lt;env_get_char+28&gt;:	and	r3, r3, #1	; 0x1
(gdb)
3: x/xw 2951347660  0xafe9fdcc:	0xaff41404
2: /x $r3 = 0x1
1: x/i $pc  0xaff2b8d4 &lt;env_get_char+32&gt;:	and	r3, r3, #255	; 0xff
(gdb)
3: x/xw 2951347660  0xafe9fdcc:	0xaff41404
2: /x $r3 = 0x1
1: x/i $pc  0xaff2b8d8 &lt;env_get_char+36&gt;:	cmp	r3, #0	; 0x0
(gdb)
3: x/xw 2951347660  0xafe9fdcc:	0xaff41404
2: /x $r3 = 0x1
1: x/i $pc  0xaff2b8dc &lt;env_get_char+40&gt;:	beq	0xaff2b8f4 &lt;env_get_char+64&gt;
(gdb)
3: x/xw 2951347660  0xafe9fdcc:	0xaff41404
2: /x $r3 = 0x1
1: x/i $pc  0xaff2b8e0 &lt;env_get_char+44&gt;:	ldr	r0, [r11, #-20]
(gdb)
3: x/xw 2951347660  0xafe9fdcc:	0xaff41404
2: /x $r3 = 0x1
1: x/i $pc  0xaff2b8e4 &lt;env_get_char+48&gt;:	bl	0xaff2b84c &lt;env_get_char_memory&gt;
(gdb)
3: x/xw 2951347660  0xafe9fdcc:	0xaff41404
2: /x $r3 = 0x62
1: x/i $pc  0xaff2b8e8 &lt;env_get_char+52&gt;:	mov	r3, r0
(gdb)
3: x/xw 2951347660  0xafe9fdcc:	<span style="color:#0000ff;">0xaff41404</span>
2: /x $r3 = 0x62
1: x/i $pc  0xaff2b8ec &lt;env_get_char+56&gt;:	<span style="color:#ff0000;">strb	r3, [r11, #-13]</span>
(gdb)
3: x/xw 2951347660  0xafe9fdcc:	<span style="color:#0000ff;">0x<span style="color:#ff0000;">62</span>f41404</span>
2: /x $r3 = 0x62
1: x/i $pc  0xaff2b8f0 &lt;env_get_char+60&gt;:	b	0xaff2b904 &lt;env_get_char+80&gt;
(gdb)
3: x/xw 2951347660  0xafe9fdcc:	0x62f41404
2: /x $r3 = 0x62
1: x/i $pc  0xaff2b904 &lt;env_get_char+80&gt;:	<span style="color:#ff0000;">ldrb	r3, [r11, #-13]</span>
(gdb)
3: x/xw 2951347660  0xafe9fdcc:	0x62f414<span style="color:#0000ff;">04</span>
2: /x $r3 = <span style="color:#ff0000;">0x4</span>
1: x/i $pc  0xaff2b908 &lt;env_get_char+84&gt;:	mov	r0, r3
(gdb)</pre>
<p>So,  the byte write operation happened in little endian, and the byte read was done in big endian mode. Looks like a bug in mx27 chip?</p>
<br />Posted in Embedded Linux Tagged: arm, armadeus, big-endian, i.MX27 <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/131/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/131/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=131&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2009/04/25/big-endian-for-imx27-found-the-problem/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Two-in-One embedded linux box</title>
		<link>http://txlab.wordpress.com/2009/04/01/two-in-one-embedded-linux-box/</link>
		<comments>http://txlab.wordpress.com/2009/04/01/two-in-one-embedded-linux-box/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 21:41:02 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Embedded Linux]]></category>
		<category><![CDATA[gizmoforyou]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=128</guid>
		<description><![CDATA[Posted a new idea at GizmoForYou.com (copying the text) Today I had a need to test a DSL connection in the lab (15 minutes walk from my working place), and I had an idea what could be saving lots of my time: a device consisting of two independent linux systems, connected by some kind of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=128&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Posted a <a href="http://www.gizmoforyou.com/e107_plugins/forum/forum_viewtopic.php?800.0">new idea at GizmoForYou.com</a></p>
<p><span id="more-128"></span>(copying the text)<br />
Today I had a need to test a DSL connection in the lab (15 minutes walk from my working place), and I had an idea what could be saving lots of my time: a device consisting of two independent linux systems, connected by some kind of a terminal link.<br />
One box emulates a user&#8217;s PC connected to the ADSL modem: sends DHCP requests, gets its address and default gateway there, as well as DNS setings.<br />
The other box is connected to the lab&#8217;s LAN where I can access it remotely, and connect to the first one via a serial console.</p>
<p>Another possible use case: a secure jumphost into some remote network. Exposing the box to the Internet and accepting the risk of it being DOSed or even cracked, the managed system is not affected (provided that there&#8217;s an additional level of authentication between them).</p>
<p>Another (impossible) kind of use case: connect two cameras and emulate the work of two halves of the human brain <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Requirements so far:</p>
<ul class="bbcode">
<li class="bbcode">Portable enclosure with external universal power supply</li>
</ul>
<ul class="bbcode">
<li class="bbcode">Two MIPS or ARM CPUs able to work in big endian mode (BE should provide better network performance over LE, especially in IPv6). Ideally the BE/LE mode would be configurable by a jumper for each core. Intel IXP as a candidate for the CPU</li>
</ul>
<ul class="bbcode">
<li class="bbcode">Each core having:
<ul class="bbcode">
<li class="bbcode">CPU power comparable to 400MHz ARM9</li>
</ul>
<ul class="bbcode">
<li class="bbcode">at least 128MB RAM</li>
</ul>
<ul class="bbcode">
<li class="bbcode">128MB flash</li>
</ul>
<ul class="bbcode">
<li class="bbcode">SD or microSD card slot</li>
</ul>
<ul class="bbcode">
<li class="bbcode">USB2.0 host</li>
</ul>
<ul class="bbcode">
<li class="bbcode">Two 10/100 Ethernet NICs. Ideally with 802.1q support on each NIC</li>
</ul>
<ul class="bbcode">
<li class="bbcode">5V serial console (DB9 or RJ45 in Cisco pinout)</li>
</ul>
</li>
</ul>
<ul class="bbcode">
<li class="bbcode">USB2.0 OTG ports on each core wired back-to-back to each other.</li>
</ul>
<p>The end user is responsible to configure the back-to-back USB ports as a Serial or Ethernet connection at their wish (Linux gadget drivers are supposed to allow that out of the box).</p>
<p>Interesting option would be a plastic enclosure box and enough space to place a 3G or Wifi USB dongle inside it. Then at least one internal USB host port is also needed (ideally, two <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<br />Posted in Embedded Linux Tagged: gizmoforyou <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/128/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=128&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2009/04/01/two-in-one-embedded-linux-box/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Big Endian for i.MX27: looks like it&#8217;s not working</title>
		<link>http://txlab.wordpress.com/2009/03/24/big-endian-for-imx27-looks-like-its-not-working/</link>
		<comments>http://txlab.wordpress.com/2009/03/24/big-endian-for-imx27-looks-like-its-not-working/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 21:41:44 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Embedded Linux]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[armadeus]]></category>
		<category><![CDATA[big-endian]]></category>
		<category><![CDATA[i.MX27]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=124</guid>
		<description><![CDATA[I managed to launch the CPU in big endian mode, and it even executes some part of u-boot code. But the serial is silent, and MTD driver can&#8217;t find any NAND chips. The UART control registers receive correct values, I verified this. So, most probably the UART hardware fails to get those values from a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=124&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I managed to launch the CPU in big endian mode, and it even executes<br />
some part of u-boot code. But the serial is silent, and MTD driver can&#8217;t find<br />
any NAND chips.</p>
<p>The UART control registers receive correct values, I verified this.<br />
So, most probably the UART hardware fails to get those values from a big-endian CPU.</p>
<br />Posted in Embedded Linux Tagged: arm, armadeus, big-endian, i.MX27 <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/124/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=124&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2009/03/24/big-endian-for-imx27-looks-like-its-not-working/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Moving to big endian: first steps</title>
		<link>http://txlab.wordpress.com/2009/03/20/moving-to-big-endian-first-steps/</link>
		<comments>http://txlab.wordpress.com/2009/03/20/moving-to-big-endian-first-steps/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 18:25:22 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Embedded Linux]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[armadeus]]></category>
		<category><![CDATA[big-endian]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=119</guid>
		<description><![CDATA[Here&#8217;s my message at Armadeus mailing list Here&#8217;s the link to the u-boot patch to be studied. UPD: Currently the nand_spl loader is compiled in LE, and then it prepares the u-boot image in the memory and switches to BE mode. Then u-boot starts quite normally, but then it hangs up without printing anything to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=119&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://sourceforge.net/mailarchive/forum.php?thread_name=222129.59067.qm%40web51907.mail.re2.yahoo.com&amp;forum_name=armadeus-forum">Here&#8217;s my message at Armadeus mailing list</a></p>
<p><a href="http://www.mail-archive.com/u-boot@lists.denx.de/msg05677.html">Here&#8217;s the link to the u-boot patch to be studied.</a></p>
<p>UPD: Currently the nand_spl loader is compiled in LE, and then it prepares the u-boot image in the memory and switches to BE mode. Then u-boot starts quite normally, but then it hangs up without printing anything to the serial console. Looks like some initialization code breaks internal memory. Need to solder a JTAG connector for further debugging&#8230;</p>
<br />Posted in Embedded Linux Tagged: arm, armadeus, big-endian <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/119/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=119&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2009/03/20/moving-to-big-endian-first-steps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>
	</item>
		<item>
		<title>Mounting the LCD touchscreen on top of Armadeus devboard</title>
		<link>http://txlab.wordpress.com/2009/03/20/mounting-the-lcd-touchscreen-on-top-of-armadeus-devboard/</link>
		<comments>http://txlab.wordpress.com/2009/03/20/mounting-the-lcd-touchscreen-on-top-of-armadeus-devboard/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 13:16:51 +0000</pubDate>
		<dc:creator>txlab</dc:creator>
				<category><![CDATA[Embedded Linux]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[armadeus]]></category>

		<guid isPermaLink="false">http://txlab.wordpress.com/?p=110</guid>
		<description><![CDATA[Assembled all the Armadeus parts together. Now it&#8217;s much easier to move them around the table The Armadeus devboard comes without any cables. The LCD and touchscreen are equipped with two cables for connecting to the devboard. The devboard needs a 2.5/5.5 power jack, and the power supply should support at least 12W power draw. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=110&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://txlab.files.wordpress.com/2009/03/img_0878.jpg"><img class="alignright size-thumbnail wp-image-109" title="img_0878" src="http://txlab.files.wordpress.com/2009/03/img_0878.jpg?w=118&#038;h=96" alt="img_0878" width="118" height="96" /></a>Assembled all the Armadeus parts together. Now it&#8217;s much easier to move them around the table <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The Armadeus devboard comes without any cables. The LCD and touchscreen are equipped with two cables for connecting to the devboard. The devboard needs a 2.5/5.5 power jack, and the power supply should support at least 12W power draw.</p>
<p><span id="more-110"></span>List of part numbers from <a href="http://www.conrad.ch/">Conrad.ch</a>:</p>
<ul>
<li>510524 (power supply)</li>
<li>526673 (30mm spacer, 4pcs)</li>
<li>526630 (10mm spacer, 4pcs)</li>
<li>526657 (20mm spacer, 4pcs)</li>
<li>526517 (10mm spacer, female/female, 4pcs)</li>
<li>529569 (160&#215;100 plate)</li>
<li>546645 (200&#215;2.5mm stripes)</li>
</ul>
<p>Original Armadeus development board with apf27, LCD and touchsreen adapter:</p>
<p><a href="http://txlab.files.wordpress.com/2009/03/img_0874.jpg"><img class="alignnone size-full wp-image-105" title="img_0874" src="http://txlab.files.wordpress.com/2009/03/img_0874.jpg?w=620" alt="img_0874"   /></a></p>
<p>160&#215;100 plate (the holes at the corners look ugly, I know) and the stands (20mm spacer is not shown):</p>
<p><a href="http://txlab.files.wordpress.com/2009/03/img_0875.jpg"><img class="alignnone size-full wp-image-106" title="img_0875" src="http://txlab.files.wordpress.com/2009/03/img_0875.jpg?w=620" alt="img_0875"   /></a></p>
<p>All the parts assembled together:</p>
<p><a href="http://txlab.files.wordpress.com/2009/03/img_0877.jpg"><img class="alignnone size-full wp-image-108" title="img_0877" src="http://txlab.files.wordpress.com/2009/03/img_0877.jpg?w=620" alt="img_0877"   /></a></p>
<p><a href="http://txlab.files.wordpress.com/2009/03/img_0878.jpg"><img class="alignnone size-full wp-image-109" title="img_0878" src="http://txlab.files.wordpress.com/2009/03/img_0878.jpg?w=620" alt="img_0878"   /></a></p>
<p><a href="http://txlab.files.wordpress.com/2009/03/img_0876.jpg"><img class="alignnone size-full wp-image-107" title="img_0876" src="http://txlab.files.wordpress.com/2009/03/img_0876.jpg?w=620" alt="img_0876"   /></a></p>
<p>The 20mm stand is not necessarily needed, but it makes access easier. The pink foam has come as part of the Armadeus package.</p>
<br />Posted in Embedded Linux Tagged: arm, armadeus <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/txlab.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/txlab.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/txlab.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/txlab.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/txlab.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/txlab.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/txlab.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/txlab.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/txlab.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/txlab.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/txlab.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/txlab.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/txlab.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/txlab.wordpress.com/110/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=txlab.wordpress.com&amp;blog=5559910&amp;post=110&amp;subd=txlab&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://txlab.wordpress.com/2009/03/20/mounting-the-lcd-touchscreen-on-top-of-armadeus-devboard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2f07881e5cfcdb0c9fed3b142a1084e1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">txlab</media:title>
		</media:content>

		<media:content url="http://txlab.files.wordpress.com/2009/03/img_0878.jpg?w=118" medium="image">
			<media:title type="html">img_0878</media:title>
		</media:content>

		<media:content url="http://txlab.files.wordpress.com/2009/03/img_0874.jpg" medium="image">
			<media:title type="html">img_0874</media:title>
		</media:content>

		<media:content url="http://txlab.files.wordpress.com/2009/03/img_0875.jpg" medium="image">
			<media:title type="html">img_0875</media:title>
		</media:content>

		<media:content url="http://txlab.files.wordpress.com/2009/03/img_0877.jpg" medium="image">
			<media:title type="html">img_0877</media:title>
		</media:content>

		<media:content url="http://txlab.files.wordpress.com/2009/03/img_0878.jpg" medium="image">
			<media:title type="html">img_0878</media:title>
		</media:content>

		<media:content url="http://txlab.files.wordpress.com/2009/03/img_0876.jpg" medium="image">
			<media:title type="html">img_0876</media:title>
		</media:content>
	</item>
	</channel>
</rss>
