<?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/"
	>

<channel>
	<title>Igmar Palsenberg&#039;s blog</title>
	<atom:link href="http://www.palsenberg.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.palsenberg.com</link>
	<description>Igmar&#039;s tech rant</description>
	<lastBuildDate>Thu, 25 Apr 2013 09:01:09 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Asterisk for the novice</title>
		<link>http://www.palsenberg.com/jdi/asterisk-for-the-novice-2?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=asterisk-for-the-novice-2</link>
		<comments>http://www.palsenberg.com/jdi/asterisk-for-the-novice-2#comments</comments>
		<pubDate>Fri, 26 Oct 2012 13:46:59 +0000</pubDate>
		<dc:creator>Igmar Palsenberg</dc:creator>
				<category><![CDATA[JDI]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://www.palsenberg.com/?p=102</guid>
		<description><![CDATA[We switched to VOIP : Our old PBX was lacking features, and the prices for phones went sky-high. I purchased an Asterisk EuroISDN card, and some Aastra phones. Some lessons I learnt the hard way : A GUI If you &#8230; <a href="http://www.palsenberg.com/jdi/asterisk-for-the-novice-2">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>We switched to VOIP : Our old PBX was lacking features, and the prices for phones went sky-high. I purchased an Asterisk EuroISDN card, and some Aastra phones.</p>
<p>Some lessons I learnt the hard way :</p>
<p><strong>A GUI</strong></p>
<p>If you installed a GUI, deinstall it. If you have the GUI config and installation in  a backup : remove it from the backup also. Then, print the GUI sources, and shred them. Really, do so. If you have a real problem, and a GUI, and no knowledge of Asterisk, you&#8217;re totally screwed.</p>
<p><strong>The hardware</strong></p>
<p>First, make sure Asterisk knows your hardware. dahdi_hardware should give some output. If it doesn&#8217;t, reinstall the kernel drivers, and make sure that the driver is loaded. I used the .src.rpm for building those, but the instructions at https://wiki.asterisk.org/wiki/display/AST/Building+and+Installing+DAHDI also work.</p>
<p>Load the kernel drivers : I needed to load wcb4xxp and dahdi.</p>
<p><strong>Asterisk software</strong></p>
<p>I installed Asterisk 10.6, using a homebrew RPM. No special reason for this version : It was the latest available.</p>
<p><strong>Configurating Asterisk</strong></p>
<p>First, I ran dahdi_genconf, that took care of configuring all 4 spans.<br />
My chan_dahdi.conf looks like :</p>
<pre>[trunkgroups]

[channels]
; Deprecated, don't use it
[lines]

echocancel = yes
echotraining = yes
signalling = bri_cpe
callerid = asreceived
context = bri-incoming
group = 1
channel = 1,2
channel = 4,5
dahdichan =&gt; 1,2,4,5</pre>
<p>The SIP phones also need config. This is done in /etc/asterisk/sip.conf :</p>
<pre>[jdioffice](!)
type=friend
context=sipphones
host=dynamic
nat=no
dtmfmode=auto
disallow=all
allow=ulaw
allow=g722
allow=g729
qualify=yes
language=nl

[00085D3XXXXX](jdioffice)
secret=mysecret</pre>
<p>This gives us two asterisk contexts : sipphones, and bri-incoming. You need these to tell Asterisk what to when a call comes in or goes uit on a certain context.</p>
<p>I use a LUA based dialplan : I know how to code, and that gives me an extensions file that is a whole lot better to read then the &#8216;traditional&#8217; Asterisk dialplan config.</p>
<p>Entrypoints are in a table :</p>
<pre>extensions = {
  -- Incoming calls
  ["unauthenticated"] = {
    ["_."] = e_drop_call
  };

  ["sipphones"] = {
    ["_#NXX"] = e_hotdesk_login,
    ["_#000"] = e_hotdesk_logout,
    ["_0X."]  = e_outgoing_sip,
    ["_NXX"]  = e_internal_sip,
    ["112"]   = e_outgoing_emergency,
    ["911"]   = e_outgoing_emergency,
    ["_*."]   = e_dial_custnr,
    ["_**."]  = e_dial_employee
};

  ["bri-incoming"] = {
    ["_X."]   = e_incoming
  };

  ["default"] = {
    include = { "unauthenticated" }
  };
}</pre>
<p>You can clearly see the context, and the resulting mapping. All names are actual lua functions, which take a context and extension as a result.</p>
<p>Next post : More on the dialplan, things I&#8217;ve run into, and the solutions, if available.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.palsenberg.com/jdi/asterisk-for-the-novice-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A new PBX aka playing with Asterisk</title>
		<link>http://www.palsenberg.com/jdi/a-new-pbx-aka-playing-with-asterisk?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-new-pbx-aka-playing-with-asterisk</link>
		<comments>http://www.palsenberg.com/jdi/a-new-pbx-aka-playing-with-asterisk#comments</comments>
		<pubDate>Tue, 03 Jul 2012 12:32:40 +0000</pubDate>
		<dc:creator>Igmar Palsenberg</dc:creator>
				<category><![CDATA[CentOS]]></category>
		<category><![CDATA[JDI]]></category>

		<guid isPermaLink="false">http://www.palsenberg.com/?p=94</guid>
		<description><![CDATA[We started out with 1 employee back in 2001. Now, we have 11. We started out with a Siemens PBX, and one ISDN-2 line. That Siemens has 8 digital ports, and 1 expansion slot. That slot has been taken for &#8230; <a href="http://www.palsenberg.com/jdi/a-new-pbx-aka-playing-with-asterisk">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>We started out with 1 employee back in 2001. Now, we have 11. We started out with a Siemens PBX, and one ISDN-2 line. That Siemens has 8 digital ports, and 1 expansion slot. That slot has been taken for a second ISDN-2 port, since customers where getting a busy signal.</p>
<p>Now, people share a phone. Not something we want. The Siemens PBX is also as extensible and flexible as solid concrete. We had 2 options :</p>
<ul>
<li>Buy a new PBX from Siemens (Siemens phones only work on a Siemens PBX)</li>
<li>Throw everything out, and start from scratch with a VOIP based solution.</li>
</ul>
<p>After receiving the offer for the Siemens PBX, recovering from falling of my chair, and being resuscitated by one of my collegues, I decided to start from scratch with a VOIP solution. We soon ended up with :</p>
<ul>
<li>Asterisk as the software platform</li>
<li>A <a href="http://www1.digium.com/en/products/telephony-cards/digital/euro-isdn-bri" target="_blank">Digium B41oP</a> 4 port Euro ISDN card</li>
<li><a href="http://www.aastra.com/aastra-6757i.htm" target="_blank">Aastra 6757i</a> SIP phones</li>
</ul>
<p>Hardware was quickly ordered. I&#8217;ve upgraded our old fileserver with extra memory, a new storage array (which needed replacement anyway), and the Digium card. The OS has been manually upgraded from CentOS5 to CentOS6, since installer totally screwed up the upgrade.</p>
<p>The&#8217;re no packages for CentOS 6, only for CentOS 5. I needed a shole bunch of non-standard libs :</p>
<ul>
<li>libss7</li>
<li>libopenr2</li>
<li>libpri</li>
<li>dahdi</li>
</ul>
<p>Downloaded, and packaged them. Asterisk was next : Version 10 wasn&#8217;t an option, since OpenPBX refuses to work with that. I ended up with <a href="http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.13.0.tar.gz">1.8.13.0</a>, since that&#8217;s an LTS release. Welcome if you don&#8217;t want to restart you PBX every day or so.</p>
<p>I&#8217;m going to publish the SRPMS and i386 binaries in my RPM repo, no x86_64, sorry. If you want modifications to those RPM&#8217;s, contact be, and we&#8217;ll work something out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.palsenberg.com/jdi/a-new-pbx-aka-playing-with-asterisk/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GDB 7.3a and a new elfutils</title>
		<link>http://www.palsenberg.com/development/centos/gdb-7-3a-and-a-new-elfutils?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gdb-7-3a-and-a-new-elfutils</link>
		<comments>http://www.palsenberg.com/development/centos/gdb-7-3a-and-a-new-elfutils#comments</comments>
		<pubDate>Tue, 27 Sep 2011 14:14:47 +0000</pubDate>
		<dc:creator>Igmar Palsenberg</dc:creator>
				<category><![CDATA[CentOS]]></category>

		<guid isPermaLink="false">http://www.palsenberg.com/?p=80</guid>
		<description><![CDATA[I just uploaded gdb 7.3a It can be found on my RPM repo. I&#8217;ve also added new elfutils packages, since these are required by this version of GDB.]]></description>
				<content:encoded><![CDATA[<p>I just uploaded gdb 7.3a It can be found on my <a title="Igmar's RPM repo" href="http://www.palsenberg.com/rpmrepo/" target="_blank">RPM repo</a>. I&#8217;ve also added new elfutils packages, since these are required by this version of GDB.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.palsenberg.com/development/centos/gdb-7-3a-and-a-new-elfutils/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Binutils 2.21.1a on CentOS 5.6</title>
		<link>http://www.palsenberg.com/uncategorized/binutils-2-21-1a-on-centos-5-6?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=binutils-2-21-1a-on-centos-5-6</link>
		<comments>http://www.palsenberg.com/uncategorized/binutils-2-21-1a-on-centos-5-6#comments</comments>
		<pubDate>Fri, 23 Sep 2011 20:59:51 +0000</pubDate>
		<dc:creator>Igmar Palsenberg</dc:creator>
				<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.palsenberg.com/?p=77</guid>
		<description><![CDATA[I just uploaded binutils.2.21.1a. It can be found on my RPM repo. GDB will be uploaded begin next week. Happy compiling !!!]]></description>
				<content:encoded><![CDATA[<p>I just uploaded binutils.2.21.1a. It can be found on my <a title="Igmar's RPM repo" href="http://www.palsenberg.com/rpmrepo/" target="_blank">RPM repo</a>. GDB will be uploaded begin next week. Happy compiling !!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.palsenberg.com/uncategorized/binutils-2-21-1a-on-centos-5-6/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GCC 4.6.1 on CentOS 5.6</title>
		<link>http://www.palsenberg.com/personal/gcc-4-6-1-on-centos-5-6?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gcc-4-6-1-on-centos-5-6</link>
		<comments>http://www.palsenberg.com/personal/gcc-4-6-1-on-centos-5-6#comments</comments>
		<pubDate>Fri, 23 Sep 2011 15:14:30 +0000</pubDate>
		<dc:creator>Igmar Palsenberg</dc:creator>
				<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.palsenberg.com/?p=71</guid>
		<description><![CDATA[I&#8217;ve just created packages for CentOS 5.6 that replace the default compiler with gcc 4.6.1. That version has some interesting options, so I wanted to use that as my default compiler. It&#8217;s also more strict, so it&#8217;s a good check &#8230; <a href="http://www.palsenberg.com/personal/gcc-4-6-1-on-centos-5-6">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve just created packages for CentOS 5.6 that replace the default compiler with gcc 4.6.1. That version has some interesting options, so I wanted to use that as my default compiler. It&#8217;s also more strict, so it&#8217;s a good check for my own code.</p>
<p>Packages can be downloaded from my <a title="Igmar's RPM repo" href="http://www.palsenberg.com/rpmrepo/" target="_blank">RPM repo</a></p>
<p>Later today I&#8217;ll upload my binutils and gdb packages.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.palsenberg.com/personal/gcc-4-6-1-on-centos-5-6/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VIM 7.3 with Python 2.6 on CentOS 5.x</title>
		<link>http://www.palsenberg.com/personal/vim-7-3-with-python-2-6-on-centos-5-x?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=vim-7-3-with-python-2-6-on-centos-5-x</link>
		<comments>http://www.palsenberg.com/personal/vim-7-3-with-python-2-6-on-centos-5-x#comments</comments>
		<pubDate>Thu, 22 Sep 2011 13:43:33 +0000</pubDate>
		<dc:creator>Igmar Palsenberg</dc:creator>
				<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.palsenberg.com/?p=66</guid>
		<description><![CDATA[I&#8217;ve been a OSX user for some time, but my main C development happens on CentOS. OSX has TextMate as editor, which has snippets : A sort of runtime macro&#8217;s on steroids. It saves lots of time with common language &#8230; <a href="http://www.palsenberg.com/personal/vim-7-3-with-python-2-6-on-centos-5-x">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been a OSX user for some time, but my main C development happens on CentOS. OSX has <a title="Macromates" href="http://macromates.com/" target="_blank">TextMate</a> as editor, which has snippets : A sort of runtime macro&#8217;s on steroids. It saves lots of time with common language constructs such as loops.</p>
<p>Vim has a <a title="UltiSnips" href="https://launchpad.net/ultisnips" target="_blank">UltiSnips</a>, but that has some preconditions : It need vim 7.3 with Python &gt;= 2.6 compiled in. CentOS has neither of them. You can&#8217;t just upgrade Python on a CentOS machine, since lots of things (yum being one of them) depend on a specific version. So if you overwrite the default version, all hell will brake loose.</p>
<p>I&#8217;ve created packages for both Python and Vim (x86 and srpms), available at <a title="Igmar's RPM repo" href="http://www.palsenberg.com/rpmrepo/" target="_blank">http://www.palsenberg.com/rpmrepo/</a></p>
<p>Happy VIMming !!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.palsenberg.com/personal/vim-7-3-with-python-2-6-on-centos-5-x/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Migrating to JIRA 4.4</title>
		<link>http://www.palsenberg.com/server/migrating-to-jira-4-4?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=migrating-to-jira-4-4</link>
		<comments>http://www.palsenberg.com/server/migrating-to-jira-4-4#comments</comments>
		<pubDate>Wed, 07 Sep 2011 09:28:51 +0000</pubDate>
		<dc:creator>Igmar Palsenberg</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://www.palsenberg.com/?p=63</guid>
		<description><![CDATA[Migrating to JIRA 4.4 is now complete. It has&#8217;t been without hickups however : JIRA 4.4 en Fisheye 2.6.0-2.6.3 don&#8217;t get along when using trusted authentication. You get Seraph errors : Error handling trusted applications authentication attempt:BAD_SIGNATURE Make sure the &#8230; <a href="http://www.palsenberg.com/server/migrating-to-jira-4-4">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Migrating to JIRA 4.4 is now complete. It has&#8217;t been without hickups however :</p>
<ul>
<li>JIRA 4.4 en Fisheye 2.6.0-2.6.3 don&#8217;t get along when using trusted authentication. You get Seraph errors : Error handling trusted applications authentication attempt:BAD_SIGNATURE</li>
<li>Make sure the user that is authenticating the application link (and managing the JIRA project) has read errors to Fisheye projects. Else you can&#8217;t link you repo to the JIRA project.</li>
</ul>
<p>Make sure you have adequate backups before attempting to upgrade. Without them, it&#8217;s a one-way ticket of something goes wrong.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.palsenberg.com/server/migrating-to-jira-4-4/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Confluence</title>
		<link>http://www.palsenberg.com/development/confluence?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=confluence</link>
		<comments>http://www.palsenberg.com/development/confluence#comments</comments>
		<pubDate>Tue, 09 Aug 2011 12:32:12 +0000</pubDate>
		<dc:creator>Igmar Palsenberg</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.palsenberg.com/?p=59</guid>
		<description><![CDATA[I&#8217;ve installed an milestone of Confluence. I never liked the 3.x editor : Wiki just isn&#8217;t my thing. Fortunately, the 4.x release has a brand new editor, and it&#8217;s WYSIWYG. No more fancy tagging, no more thinking on what wikimarkup &#8230; <a href="http://www.palsenberg.com/development/confluence">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve installed an milestone of Confluence. I never liked the 3.x editor : Wiki just isn&#8217;t my thing. Fortunately, the 4.x release has a brand new editor, and it&#8217;s WYSIWYG. No more fancy tagging, no more thinking on what wikimarkup to use.</p>
<p>A nice addition is that it also allows macro&#8217;s to be embedded into that page. I&#8217;m going to use that to add some information of my own personal projects, like commit history.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.palsenberg.com/development/confluence/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating to Atlassian tools</title>
		<link>http://www.palsenberg.com/development/migrating-to-atlassian-tools?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=migrating-to-atlassian-tools</link>
		<comments>http://www.palsenberg.com/development/migrating-to-atlassian-tools#comments</comments>
		<pubDate>Tue, 24 May 2011 12:14:58 +0000</pubDate>
		<dc:creator>Igmar Palsenberg</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.palsenberg.com/?p=54</guid>
		<description><![CDATA[So.. Finally found to spare time : I&#8217;ve migrated my old setup to include (most) of the Atlassian tools. I&#8217;ve got Crowd, JIRA, Confluence, Bamboo and Fisheye up-and-running, with SSO authentication. Next step is to figure out how to make &#8230; <a href="http://www.palsenberg.com/development/migrating-to-atlassian-tools">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>So.. Finally found to spare time : I&#8217;ve migrated my old setup to include (most) of the Atlassian tools. I&#8217;ve got Crowd, JIRA, Confluence, Bamboo and Fisheye up-and-running, with SSO authentication.<br />
Next step is to figure out how to make Bamboo build my C / C++ projects (which use make, not Ant or Maven which are supported native in Bamboo). I also need to look at the testsuite, for which Bamboo assumes it generated JUnit XML reports. At this moment, it doesn&#8217;t. I&#8217;ll be opening Confluence spaces for most of my (old) projects soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.palsenberg.com/development/migrating-to-atlassian-tools/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working with re2c, lessons learned</title>
		<link>http://www.palsenberg.com/development/working-with-re2c-lessons-learned?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=working-with-re2c-lessons-learned</link>
		<comments>http://www.palsenberg.com/development/working-with-re2c-lessons-learned#comments</comments>
		<pubDate>Thu, 05 May 2011 13:54:09 +0000</pubDate>
		<dc:creator>Igmar Palsenberg</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.palsenberg.com/?p=48</guid>
		<description><![CDATA[I&#8217;ve completed the parser that parses bind9 style config files. The parser itself is based on  the lemon parser generator,  and the lexer is based on re2c. While testing and developing the parser, I&#8217;ve ran into some strange, undocumented issues. &#8230; <a href="http://www.palsenberg.com/development/working-with-re2c-lessons-learned">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve completed the parser that parses bind9 style config files. The parser itself is based on  the <a href="http://www.hwaci.com/sw/lemon/lemon.html">lemon parser generator</a>,  and the lexer is based on <a href="http://re2c.org/">re2c</a>. While testing and developing the parser, I&#8217;ve ran into some strange, undocumented issues.</p>
<ul>
<li>Error checking is practically absent. Bad input results in bad runtime behaviour instead of errors.</li>
<li>Make sure that all input in conditions is handled; Input encountered in states without a matching rule results in the resulting code jumping to a (semi) random rule. Again, this doesn&#8217;t result in errors.</li>
<li>RTFM about what regular expressions re2c supports. No error checking what so ever.</li>
<li>Rules with wildcard conditions (&lt;*&gt; &lt;regexp&gt;) are first processed, above all other rules. A condition with a matching rules overrides the wildcard condition. This is important if you have a match-all condition [^], since that will precede the wildcard condition rule.</li>
</ul>
<p>If you live up to the above undocumented things, re2c make writing lexers as easy as it gets.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.palsenberg.com/development/working-with-re2c-lessons-learned/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
