<?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>J. Cary Howell</title>
	<atom:link href="http://www.web-developer.us/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.web-developer.us</link>
	<description>IT Strategies for Business</description>
	<lastBuildDate>Tue, 21 Feb 2012 17:43:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>TurfOutlet.com</title>
		<link>http://www.web-developer.us/web-development/turfoutlet-com/</link>
		<comments>http://www.web-developer.us/web-development/turfoutlet-com/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 12:49:25 +0000</pubDate>
		<dc:creator>Cary H.</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.web-developer.us/?p=311</guid>
		<description><![CDATA[TurfOutlet.com is the outlet store for overruns, overstock, remnants, and discontinued items from a number of quality artificial turf manufacturers. As in any outlet store operation, the objective is to sell these items rather than them be stuck in a warehouse or worse yet, recycled into another product. The TurfOutlet.com web site is built on [...]]]></description>
			<content:encoded><![CDATA[<div class="thumbnail-single" style="background-image: url('http://www.web-developer.us/wp-content/uploads/2012/02/TurfOutlet.com_.png');">
<div class="sections-overlay">
      <a href="http://www.turfoutlet.com/" target="_blank" title="Load the TurfOutlet.com Web Site" class="fancybox"><br />
         <img src="http://www.web-developer.us/wp-content/themes/ePhoto/images/goto.png" alt="" class="zoom" /><br />
      </a>
   </div>
</div>
<p>TurfOutlet.com is the outlet store for overruns, overstock, remnants, and discontinued items from a number of quality artificial turf manufacturers. As in any outlet store operation, the objective is to sell these items rather than them be stuck in a warehouse or worse yet, recycled into another product.</p>
<p>The TurfOutlet.com web site is built on the Word Press 3.x platform and utilizes the Shopp e-commerce plugin to manage the collections of products, shopping cart, and sales.  This site will be live around March 1, 2012.</p>
<p class="left"><a name='fb_share' type='button_count' href='http://www.facebook.com/sharer.php'>Share</a><script src='http://static.ak.fbcdn.net/connect.php/js/FB.Share' type='text/javascript'></script>
<p class="right"><a href='http://twitter.com/share' class='twitter-share-button' data-count='vertical'>Tweet</a><script type='text/javascript' src='http://platform.twitter.com/widgets.js'></script></p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-developer.us/web-development/turfoutlet-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redfone FoneBridge2Elastix 2.2.0</title>
		<link>http://www.web-developer.us/how-to/configuring-redfone-fonebridge2/</link>
		<comments>http://www.web-developer.us/how-to/configuring-redfone-fonebridge2/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 18:19:43 +0000</pubDate>
		<dc:creator>Cary H.</dc:creator>
				<category><![CDATA[HOWTO Tutorials]]></category>

		<guid isPermaLink="false">http://www.web-developer.us/?p=191</guid>
		<description><![CDATA[HOWTO: Configure the Redfone TDMoE Bridge Elastix 2.2.0 as well as previous versions of Elastix came with some base Redfone configuration software built into the distribution. This is very handy, but considering all of the configuration files that must be touched, this module they include falls somewhat short of the overall need. Let me add [...]]]></description>
			<content:encoded><![CDATA[<h3>HOWTO: Configure the Redfone TDMoE Bridge</h3>
<p>Elastix 2.2.0 as well as previous versions of Elastix came with some base Redfone configuration software built into the distribution. This is very handy, but considering all of the configuration files that must be touched, this module they include falls somewhat short of the overall need. <strong>Let me add here that the folks at Redfone Communications are a dream to work with. They know their product and the support I have received from them has been impecable.</strong></p>
<blockquote><p>
This HOWTO will deal with the configuration of a Redfone TDMoE for Asterisk 1.8.7, the common distribution of Asterisk with Elastix 2.2.0. While the same basic configuration of the systems are available for other Asterisk distributions and other versions of Elastix, we do not guarantee functionality by following these steps.
</p></blockquote>
<p>Much of the configuration guidelines I found on the net involved how to configure a Redfone to work with E1 PRI circuits and while that is fabulous for our non-USA friends, there is very little published on dealing with T1 PRIs in the USA.  Typically speaking there really isn&#8217;t much difference except in number of channels and framing and encoding of the circuit. Nearly all PRIs delivered over T1 interfaces in the USA will be provisioned for a framing of ESF (extended super-frame) and encoding of B8ZS (bipolar 8-zero substitution, also called binary 8-zero substitution, clear channel, and clear 64), which means a T1 circuit using B8ZS can use the full 64 Kbps for each channel for data.</p>
<h4>I. Install Redfone Software on the PBX</h4>
<p>Elastix 2.2.0 makes this process very easy. Log into the Elastix web interface on your PBX system and go to the tab called <em>ADDONS</em>. Under this tab you will see the software package titled <em>Redfone v2.0.0-3</em>. Select to install that package and the system will do all that for you.  Once installed you should be able to go to the command prompt on your Elastix server and type:<br />
[root@elastix ~]#<code>fonulator -V</code><br />
The system should respond with something similar to the following:<br />
<code>fonulator 2.0.1</code><br />
<code>Copyright (C) 2007 Redfone Communications, LLC</code><br />
<code>Build #37</code></p>
<p>Using a text editor modify the redfone.conf file located in the /etc directory as needed. Here is our redfone.conf configuration with descriptions.  We have a dual-interface Redfone appliance contained within a 1U chasis.<br />
<code>[globals]</code><br />
<raw># IP-address of the IP Configuration port</raw><br />
<raw># Factory defaults are; FB1=192.168.1.254 FB2=192.168.1.253</raw><br />
<code>fb=192.168.1.253</code><br />
<raw># Which port to use for TDMoE Traffic (1 or 2)</raw><br />
<code>port=1</code><br />
<raw># Which Asterisk server destination MAC address for TDMoE Traffic?</raw><br />
<code>server=00:1a:64:06:de:6e</code><br />
<raw># For 2.0 version firmware/hardware and above, specify priorities as</raw><br />
<raw># priorities=0,1,2,3</raw><br />
<raw># or for all internal timing</raw><br />
<raw># priorities=0,0,0,0</raw><br />
<code>priorities=0,1,2,3</code><br />
<raw>#</raw><br />
<raw>#SPAN 1 T1</raw><br />
<code>[span1]</code><br />
<code>framing=esf</code><br />
<code>encoding=b8zs</code><br />
<raw>#</raw><br />
<raw>#SPAN 2 T1</raw><br />
<code>[span2]</code><br />
<code>framing=esf</code><br />
<code>encoding=b8zs</code><br />
<raw># EOF</raw></p>
<h4>II. Configure DAHDI Tools</h4>
<p>Using a text editor create or modify the system.conf file located in the /etc/dahdi directory. Here is our system.conf file with descriptions.</p>
<p><raw># DAHDI system.conf</raw><br />
<raw># 2-Port T1/E1 Redfone Bridge</raw><br />
<raw># Used or not, both ports MUST be configured</raw><br />
<raw># First port: dynamic and uses ethmf on eth1 mac 00:50:c2:65:df:09 then 0,24,0</raw><br />
<code>dynamic=ethmf,eth1/00:50:c2:65:df:09/0,24,0</code><br />
<raw># Second port: dynamic uses ethmf on eth1 mac 00:50:c2:65:df:09 then 1,24,1 <- last span</raw><br />
<code>dynamic=ethmf,eth1/00:50:c2:65:df:09/1,24,1</code><br />
<raw># Channel definitions</raw><br />
<code>bchan=1-23</code><br />
<code>dchan=24</code><br />
<raw># Zone definitions</raw><br />
<code>loadzone=us</code><br />
<code>defaultzone=us</code><br />
<raw># What echo cancellation should be used on what channels</raw><br />
<code>echocanceller=oslec,1-23</code><br />
<raw># EOF</raw></p>
<h4>III. Configure DAHDI for Asterisk</h4>
<p>Using a text editor create or modify the dahdi.conf file located in the /etc/asterisk directory. Here is our dahdi.conf file with descriptions.</p>
<p><raw># Define as Group 0</raw><br />
<code>group=0,11</code><br />
<raw># We want the context to come from the PSTN network</raw><br />
<code>context=from-pstn</code><br />
<raw># In the USA the PRI switch-type should always be National ISDN</raw><br />
<code>switchtype = national</code><br />
<raw># Signaling, we are receiving clock from the network so the termination is CPE (Customer Premise)</raw><br />
<code>signaling = pri_cpe</code><br />
<raw># Channels definition. T1 PRI is 23 B-channels with 1 D-channel. D-channel is always on slot 24.</raw><br />
<code>channel => 1-23</code><br />
<raw># EOF</raw></p>
<h4>IV. Restart Asterisk PBX</h4>
<p>Once you restart your PBX you should, from the command line, be able to run <em>dahdi-tool</em> and see the two dynamic spans created. If you have a PRI connected to either of the spans you should see the Alarms set to <em>OK</em> or <em>YEL</em> if no PRI is connected. Further examination of the Elastix configuration should be done in the web interface under the <em>System</em> -> <em>Hardware</em> menu selection.</p>
<p class="left"><a name='fb_share' type='button_count' href='http://www.facebook.com/sharer.php'>Share</a><script src='http://static.ak.fbcdn.net/connect.php/js/FB.Share' type='text/javascript'></script>
<p class="right"><a href='http://twitter.com/share' class='twitter-share-button' data-count='vertical'>Tweet</a><script type='text/javascript' src='http://platform.twitter.com/widgets.js'></script></p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-developer.us/how-to/configuring-redfone-fonebridge2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Signature Hospitality</title>
		<link>http://www.web-developer.us/web-development/signature-hospitality-carpets/</link>
		<comments>http://www.web-developer.us/web-development/signature-hospitality-carpets/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 23:39:26 +0000</pubDate>
		<dc:creator>Cary H.</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.web-developer.us/?p=201</guid>
		<description><![CDATA[Signature Hospitality Carpets is a vertically integrated mill. Their main objective is to offer the hospitality industry quality designs and exceptional service for guestrooms and public area carpet. Located in Dalton Georgia, we provide custom designs, yarn extrusion, tufting, dyeing and coating. With our state-of-the-art tufting equipment, which includes Multi-Level Cut Loop, Infinity Loop, Loop [...]]]></description>
			<content:encoded><![CDATA[<div class="thumbnail-single" style="background-image: url('http://www.web-developer.us/wp-content/uploads/2011/12/SignatureHospitality.png');">
<div class="sections-overlay">
      <a href="http://www.signaturehospitalitycarpets.com/" target="_blank" title="Load the Signature Hospitality Corporate Web Site" class="fancybox"><br />
         <img src="http://www.web-developer.us/wp-content/themes/ePhoto/images/goto.png" alt="" class="zoom" /><br />
      </a>
   </div>
</div>
<p>Signature Hospitality Carpets is a vertically integrated mill. Their main objective is to offer the hospitality industry quality designs and exceptional service for guestrooms and public area carpet. Located in Dalton Georgia, we provide custom designs, yarn extrusion, tufting, dyeing and coating. With our state-of-the-art tufting equipment, which includes Multi-Level Cut Loop, Infinity Loop, Loop Scroll, Enhanced Loop, Computer Yarn Placement, Precision Cut/Uncut, Cut Pile and Cut Pile Graphics.</p>
<p>Signature Hospitality Carpets web site is built on the Word Press 3.x platform and utilizes the Shopp e-commerce plugin to manage the collections of products.  The site features an integrated design studio for designers to select pattern and color options to suit specific interior schemes.  This site will be live around January 15, 2012.</p>
<p class="left"><a name='fb_share' type='button_count' href='http://www.facebook.com/sharer.php'>Share</a><script src='http://static.ak.fbcdn.net/connect.php/js/FB.Share' type='text/javascript'></script>
<p class="right"><a href='http://twitter.com/share' class='twitter-share-button' data-count='vertical'>Tweet</a><script type='text/javascript' src='http://platform.twitter.com/widgets.js'></script></p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-developer.us/web-development/signature-hospitality-carpets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom DestinationsElastix 2.2.0</title>
		<link>http://www.web-developer.us/how-to/elastix-2-2-0-custom-destination-howto/</link>
		<comments>http://www.web-developer.us/how-to/elastix-2-2-0-custom-destination-howto/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 16:38:02 +0000</pubDate>
		<dc:creator>Cary H.</dc:creator>
				<category><![CDATA[HOWTO Tutorials]]></category>

		<guid isPermaLink="false">http://www.web-developer.us/?p=154</guid>
		<description><![CDATA[HOWTO: Create Custom Extensions &#38; Destinations One of the quirky things about Elasitx revolves around the simple fact that they do not give you access to the full feature set of the FreePBX interface. It took me forever to figure out that custom extensions and destinations had to be built using the unembedded FreePBX module. [...]]]></description>
			<content:encoded><![CDATA[<h3>HOWTO: Create Custom Extensions &amp; Destinations</h3>
<p>One of the quirky things about Elasitx revolves around the simple fact that they do not give you access to the full feature set of the FreePBX interface.  It took me forever to figure out that custom extensions and destinations had to be built using the unembedded FreePBX module. </p>
<p>It was fairly easy to figure out that custom extensions and destinations would be defined within the extensions_custom.conf file in the /etc/asterisk directory. So let us deal with that first. In my case, I want to create a custom extension that will ask a user to make a menu selection.  I want to my music on hold selection to be from the &#8216;Holiday&#8217; selections if we are in December each year, otherwise, play the &#8216;default&#8217; music on hold. Option 1 on our menu will be to enter an order number.  If they choose to do this, the system will go out and run an AGI script. Option 2 will be to speak with a customer support agent.  Option 3 will be to hangup the call. I want to make this extension part of the [from-internal-custom] context and the extension number will be 900.  Editing your extensions_custom.conf you can do the following:</p>
<p>Under the [from-internal-custom] context we will need to add a line to include our new custom extension. In this case I will name the custom extension <em>my-custom-agi</em>.<br />
<code>include => my-custom-agi</code></p>
<p>Now somewhere lower in the file I will create my custom extension. I have numbered each line so that we can refer back to it in the description below.<br />
01 <code>[my-custom-agi]</code><br />
02 <code>exten => 900,1,Answer</code><br />
03 <code>exten => 900,n,SetMusicOnHold(default)</code><br />
04 <code>exten => 900,n,GotoIfTime(*,*,*,dec?moh25:skipped)</code><br />
05 <code>exten => 900,n(moh25),SetMusicOnHold(Holiday)</code><br />
06 <code>exten => 900,n(skipped),Wait(1)</code><br />
07 <code>exten => 900,n,Set(TIMEOUT(digit)=7)</code><br />
08 <code>exten => 900,n,Set(TIMEOUT(response)=10)</code><br />
09 <code>exten => 900,n,Read(CHOICE,custom/intro&#038;custom/option-1&#038;custom/option-2,1,,1)</code><br />
10 <code>exten => 900,n,GotoIf($[${CHOICE} = 1]?getpo)</code><br />
11 <code>exten => 900,n,GotoIf($[${CHOICE} = 2]?toivr:continue)</code><br />
12 <code>exten => 900,n(getpo),Playback(custom/orderno)</code><br />
13 <code>exten => 900,n,Read(ORDERNO,beep,0)</code><br />
14 <code>exten => 900,n,AGI(myapplication.php,${ORDERNO})</code><br />
15 <code>exten => 900,n,Wait(1)</code><br />
16 <code>exten => 900,n(another),Read(CHOICE,custom/another,1,,1)</code><br />
17 <code>exten => 900,n,GotoIf($[${CHOICE} = 1]?getpo)</code><br />
18 <code>exten => 900,n,GotoIf($[${CHOICE} = 2]?toivr)</code><br />
19 <code>exten => 900,n,GotoIf($[${CHOICE} = 3]?hangup:continue)</code><br />
20 <code>exten => 900,n(toivr),NoOp(Requested Customer Service Agent)</code><br />
21 <code>exten => 900,n,GotoIfTime(*,*,1,jan?closed)</code><br />
22 <code>exten => 900,n,GotoIfTime(*,*,8,apr?closed)</code><br />
23 <code>exten => 900,n,GotoIfTime(*,mon,25-31,may?closed)</code><br />
24 <code>exten => 900,n,GotoIfTime(*,*,4,jul?closed)</code><br />
25 <code>exten => 900,n,GotoIfTime(*,mon,1-7,sep?closed)</code><br />
26 <code>exten => 900,n,GotoIfTime(*,thu,22-28,nov?closed)</code><br />
27 <code>exten => 900,n,GotoIfTime(*,fri,22-28,nov?closed)</code><br />
28 <code>exten => 900,n,GotoIfTime(*.*,24-26,dec?closed)</code><br />
29 <code>exten => 900,n,GotoIfTime(20:00-08:59,mon-fri,*,*?closed)</code><br />
30 <code>exten => 900,n,GotoIfTime(09:00-17:00,mon-fri,*,*?ext-queues,500,1)</code><br />
31 <code>exten => 900,n,GotoIfTime(17:01-20:00,mon-fri,*,*?ext-queues,501,1)</code><br />
32 <code>exten => 900,n(closed),NoOp(Offices are closed)</code><br />
33 <code>exten => 900,n,Playback(custom/closed)</code><br />
34 <code>exten => 900,n,Goto(ext-local,vmu901,1)</code><br />
35 <code>exten => 900,n(continue),NoOp(Invalid User Request)</code><br />
36 <code>exten => 900,n,Playback(custom/invalid-choice)</code><br />
37 <code>exten => 900,n,Goto(another)</code><br />
38 <code>exten => 900,n(hangup),Playback(goodbye)</code><br />
39 <code>exten => 900,n,Hangup</code></p>
<p>Now that the context is defined, I have to associate this extension with FreePBX. Since the Elastix folks did not want to give us access to the lower level aspects of the PBX, we have to open the unembedded version of FreePBX from our Elastix interface. Once there, select the <em>TOOLS</em> menu and click on <em>CUSTOM DESTINATIONS</em>.</p>
<p>Once here you have four fields, but only three to complete.  For your <em>Custom Destination</em> you need to enter your new custom context as follows: <code>my-custom-agi,900,1</code> For the second field enter the name of your custom destination.  Since you are calling an AGI above called myapplication.php, I might just call the custom destination <code>My Application</code>. The notes field is simply a place to keep more descriptive information on your custom destination.</p>
<p>Now, when you go back into your Elastix PBX editor (the embedded version), you will be able to select your new custom destination as a valid drop down for any routes.</p>
<p class="left"><a name='fb_share' type='button_count' href='http://www.facebook.com/sharer.php'>Share</a><script src='http://static.ak.fbcdn.net/connect.php/js/FB.Share' type='text/javascript'></script>
<p class="right"><a href='http://twitter.com/share' class='twitter-share-button' data-count='vertical'>Tweet</a><script type='text/javascript' src='http://platform.twitter.com/widgets.js'></script></p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-developer.us/how-to/elastix-2-2-0-custom-destination-howto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Receiving FaxesElastix 2.2.0</title>
		<link>http://www.web-developer.us/how-to/elastix-2-2-0-fax-howto/</link>
		<comments>http://www.web-developer.us/how-to/elastix-2-2-0-fax-howto/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 01:47:56 +0000</pubDate>
		<dc:creator>Cary H.</dc:creator>
				<category><![CDATA[HOWTO Tutorials]]></category>

		<guid isPermaLink="false">http://www.web-developer.us/?p=66</guid>
		<description><![CDATA[HOWTO: Not Go Nuts Receiving Faxes in Asterisk! Probably one of the most frustrating issues surrounding Asterisk PBX is the various forms of fax capabilities that are supported from time to time between certain distributions without seemingly any consideration whatsoever for the poor guy having to maintain the PBX. You would think, now in the [...]]]></description>
			<content:encoded><![CDATA[<h3>HOWTO: Not Go Nuts Receiving Faxes in Asterisk!</h3>
<p>Probably one of the most frustrating issues surrounding Asterisk PBX is the various forms of fax capabilities that are supported from time to time between certain distributions without seemingly any consideration whatsoever for the poor guy having to maintain the PBX.  You would think, now in the 21st Century that we could embrace scanning to e-mail a bit more and finally put this old tired technology to bed once and for all.</p>
<p>In Asterisk 1.4 &#8211; 1.6 we had a module called <em>app_fax.so</em>.  I liked this module, it was fairly easy to deal with, Elastix 1.x seemed to integrate it well into their system, and there were no licensing issues.  As we move to Asterisk 1.8 and beyond, it seems Digium has found another way to take a few dollars out of our pocket in order for us to continue to support this old steam engine.  I am in no way upset with Digium, I agree with them, if we are going to have to continue to support this antiquated technology, the consumer is going to have to pay.  So, while they give you 1 free fax license, if you want any form of concurrency within your PBX architecture, you will have to purchase additional licenses at $39.00 each. </p>
<p>While the Digium HOWTO use Fax for Asterisk (a.k.a. FFA) is complete &#8211; it does not address the nuances that we Elastix 2.2.0 users face.  Hence, I am going to combine their Install Guide with my own to give you the most complete picture for setting up your inbound fax to extensions.</p>
<h4>1. Retrieve or Purchase FAX License(s) from Digium</h4>
<p>Stroll on over to the Digium web site and get your one free fax license and/or purchase concurrent licenses. Remember, you will only need licenses for the number of concurrent faxes you want to receive, not the number of extensions you will want to support.  One concurrent license means that you can have one fax session going at one point in time.</p>
<h4>2. Download and Execute the Registration Software</h4>
<p>I start out the session by sudo&#8217;ing to root and then getting all the software I need loaded into the root directory. You will probably want to preserve the register software for use at a later time.<br />
$ <code>sudo su</code><br />
# <code>cd /root</code><br />
<strong class="code">32-bit » </strong># <code>wget http://downloads.digium.com/pub/register/x86-32/register</code><br />
<strong class="code">64-bit » </strong># <code>wget http://downloads.digium.com/pub/register/x86-64/register</code><br />
# <code>chmod 500 register</code><br />
# <code>./register</code><br />
At this point you will want to fill in the information as it is requested in the registration process. It involves basic licensing questions.</p>
<h4>2. Download and Execute the Benchfax Software</h4>
<p>If you happened to have skipped the step above, sudo yourself to root as we did in the section above.<br />
<strong class="code">32-bit » </strong># <code>wget http://downloads.digium.com/pub/telephony/fax/benchfax/x86-32/benchfax-1.1.0-x86_32 -O benchfax</code><br />
<strong class="code">64-bit » </strong># <code>wget http://downloads.digium.com/pub/telephony/fax/benchfax/x86-64/benchfax-1.1.0-x86_64 -O benchfax</code><br />
# <code>chmod 500 benchfax</code><br />
# <code>./benchfax</code><br />
This code will run through your PBX server and execute a number of tests to determine which of the res_fax_digium.so files would be the best one to install on your system. At the time of this writing there were 16 different versions.  Once benchfax completes, you will be told what version you should download.</p>
<h4>3. The Fax Selector Web Utility</h4>
<p>Now head back to the Digium site to use their Fax Selector web utility located at: <a href="http://www.digium.com/en/docs/FAX/faa-download.php" target="_blank">http://www.digium.com/en/docs/FAX/faa-download.php</a>. Once you have the new software copy it to your PBX server, normally I put it in <code>/usr/src</code>, and <code>tar zxvf res_fax_digium...</code>.</p>
<h4>4. Copying the needed files and Restarting Asterisk</h4>
<p>You will need to copy your res_fax_digium.so file into the appropriate directory based on your system architecture.<br />
<strong>32-bit » </strong># <code>cp res_fax_digium.so /usr/lib/asterisk/.</code><br />
<strong>64-bit » </strong># <code>cp res_fax_digium.so /usr/lib64/asterisk/.</code><br />
If you are coming from an Elastix 2.2 distribution install, res_fax.so is up and running on your machine. If not, you will need to make sure that this module exists in the <code>/usr/lib/asterisk</code> or <code>/usr/lib64/asterisk</code> directory. Now we will need to restart Asterisk so that it can use the new module.<br />
# <code>asterisk -rx "restart when convenient"</code></p>
<h4>5. Verifying Asterisk</h4>
<p>Using the CLI we want to verify that Asterisk loads the module correctly and that it sees your license.<br />
# <code>asterisk -vvvvvvr</code><br />
*CLI> <code>fax show stats</code><br />
The CLI should return with at least the following information. If you have spandsp.so loaded you will probably have more data shown.  But make sure you have the following:</p>
<blockquote><p>
FAX Statistics:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Current Sessions     : 0<br />
Reserved Sessions    : 0<br />
Transmit Attempts    : 0<br />
Receive Attempts     : 0<br />
Completed FAXes      : 0<br />
Failed FAXes         : 0</p>
<p>Digium G.711<br />
Licensed Channels    : 1<br />
Max Concurrent       : 1<br />
Success              : 3<br />
Switched to T.38     : 0<br />
Canceled             : 0<br />
No FAX               : 0<br />
Partial              : 0<br />
Negotiation Failed   : 0<br />
Train Failure        : 0<br />
Protocol Error       : 0<br />
IO Partial           : 0<br />
IO Fail              : 0</p>
<p>Digium T.38<br />
Licensed Channels    : 1<br />
Max Concurrent       : 0<br />
Success              : 0<br />
Canceled             : 0<br />
No FAX               : 0<br />
Partial              : 0<br />
Negotiation Failed   : 0<br />
Train Failure        : 0<br />
Protocol Error       : 0<br />
IO Partial           : 0<br />
IO Fail              : 0
</p></blockquote>
<h4>6. The Nuts Part</h4>
<p>What is interesting is that if you got this far and you sent a fax to one of your extensions, you will see in the CLI that it seems to be working, but something is happening that is keeping us from receiving the faxes.  Nowhere have I found these instructions that cure all ills on the Elastix 2.2.0 install of Fax For Asterisk.<br />
# <code>mkdir /var/spool/asterisk/fax</code><br />
The fax software is trying to write to this directory and it does not exist.  After this you should be able to receive a fax.  If not, the next problem is one that you have to manually change the asterisk database stored in MYSQL. The FAX_RX_FROM could be set and it is causing the fax reception script to send the fax from the wrong email address (usually freepbx@gmail.com). You can remove it with the following MySQL command.<br />
mysql> <code>DELETE FROM globals WHERE variable IN ('FAX_RX', 'FAX_RX_EMAIL', 'FAX_RX_FROM');</code><br />
You will also want to make sure that your email address is set correctly. You will be required to go into the unembedded FreePBX to set the mail options in the FAX Configuration there.  Nowhere in Elastix do they give you access to that module&#8217;s fields.</p>
<p class="left"><a name='fb_share' type='button_count' href='http://www.facebook.com/sharer.php'>Share</a><script src='http://static.ak.fbcdn.net/connect.php/js/FB.Share' type='text/javascript'></script>
<p class="right"><a href='http://twitter.com/share' class='twitter-share-button' data-count='vertical'>Tweet</a><script type='text/javascript' src='http://platform.twitter.com/widgets.js'></script></p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-developer.us/how-to/elastix-2-2-0-fax-howto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ecopath Mats</title>
		<link>http://www.web-developer.us/web-development/ecopath/</link>
		<comments>http://www.web-developer.us/web-development/ecopath/#comments</comments>
		<pubDate>Sun, 18 Dec 2011 19:31:00 +0000</pubDate>
		<dc:creator>Cary H.</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.web-developer.us/?p=139</guid>
		<description><![CDATA[EcoPath™, the world&#8217;s first 100% perpetually recyclable entryway matting solution with bio-based content gives facility managers&#8217; control over safety, cleanliness and durability. It provides front-line defense against floor damage by removing large and small particulate dirt, mud and moisture before they reach the primary floor surface. This site is designed on top of Word Press [...]]]></description>
			<content:encoded><![CDATA[<div class="thumbnail-single" style="background-image: url('http://www.web-developer.us/wp-content/uploads/2011/12/Ecopathmats.png');">
<div class="sections-overlay">
      <a href="http://www.ecopathmats.com/" target="_blank" title="Load Ecopath Mats Web Site"><br />
         <img src="http://www.web-developer.us/wp-content/themes/ePhoto/images/goto.png" alt="" class="zoom" /><br />
      </a>
   </div>
</div>
<p>EcoPath™, the world&#8217;s first 100% perpetually recyclable entryway matting solution with bio-based content gives facility managers&#8217; control over safety, cleanliness and durability. It provides front-line defense against floor damage by removing large and small particulate dirt, mud and moisture before they reach the primary floor surface.</p>
<p>This site is designed on top of Word Press 3.x and features a custom written plugin to provide pricing for a large distributor channel. Beyond the pricing capabilities, the plugin allows distributors to specify specific matting dimensions and receive a price for numerous custom configurations.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-developer.us/web-development/ecopath/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Signature Crypton</title>
		<link>http://www.web-developer.us/web-development/signature-crypton/</link>
		<comments>http://www.web-developer.us/web-development/signature-crypton/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 23:34:37 +0000</pubDate>
		<dc:creator>Cary H.</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.web-developer.us/?p=34</guid>
		<description><![CDATA[As a leader in the Hospitality market for over a decade, Signature has now combined it’s awarded winning design, with the functionality needed in this demanding market. This combination will give our customer’s solutions that are both functional and timeless. The new Signature Crypton® site was launched in November 2011 under the Word Press platform. [...]]]></description>
			<content:encoded><![CDATA[<div class="thumbnail-single" style="background-image: url('http://www.web-developer.us/wp-content/uploads/2011/12/SignatureCryptonCarpets.png');">
<div class="sections-overlay">
      <a href="http://www.signaturecryptoncarpet.com/" target="_blank" title="Load Signature Crypton® Corporate Web Site" class="fancybox"><br />
         <img src="http://www.web-developer.us/wp-content/themes/ePhoto/images/goto.png" alt="" class="zoom" /><br />
      </a>
   </div>
</div>
<p>As a leader in the Hospitality market for over a decade, Signature has now combined it’s awarded winning design, with the functionality needed in this demanding market. This combination will give our customer’s solutions that are both functional and timeless.</p>
<p>The new Signature Crypton® site was launched in November 2011 under the Word Press platform. The utilization of Shopp Plugin provided the TMA Internet Services Group with a foundation to maintain all of Signature&#8217;s products within the collections (or categories) and provide a common template to display any product or category at any time.</p>
<p class="left"><a name='fb_share' type='button_count' href='http://www.facebook.com/sharer.php'>Share</a><script src='http://static.ak.fbcdn.net/connect.php/js/FB.Share' type='text/javascript'></script>
<p class="right"><a href='http://twitter.com/share' class='twitter-share-button' data-count='vertical'>Tweet</a><script type='text/javascript' src='http://platform.twitter.com/widgets.js'></script></p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-developer.us/web-development/signature-crypton/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asterisk PBX Part 4</title>
		<link>http://www.web-developer.us/voip/asterisk-pbx-part-4/</link>
		<comments>http://www.web-developer.us/voip/asterisk-pbx-part-4/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 21:11:00 +0000</pubDate>
		<dc:creator>Cary H.</dc:creator>
				<category><![CDATA[VoIP Strategies]]></category>

		<guid isPermaLink="false">http://www.web-developer.us/?p=46</guid>
		<description><![CDATA[Initial Testing Turns Production. The Elastix installation of Asterisk PBX went without a hitch. The DAHDI module saw the T1E1 card from Digium in the machine and everything started playing nicely together. Now it was time to get into the trenches to figure out what capabilities we wanted to demonstrate. To move from a 13-year [...]]]></description>
			<content:encoded><![CDATA[<h3>Initial Testing Turns Production.</h3>
<p>The Elastix installation of Asterisk PBX went without a hitch. The DAHDI module saw the T1E1 card from Digium in the machine and everything started playing nicely together. Now it was time to get into the trenches to figure out what capabilities we wanted to demonstrate. To move from a 13-year old closed system to a modern day, open source, software PBX left me with a lot of avenues to pursue to save the company money and provide more features.<br />
<!-- Fax Services --></p>
<ul>
<li>Fax Services.
<ul>
<li>Today faxes are received and sent from common-area fax machines.</li>
<li>No faxes can be converted to PDF and e-mailed to a recipient.</li>
</ul>
</li>
<p><!-- ACD Queues --></p>
<li>ACD Queues.
<ul>
<li>The current system supports minimal UCD Queue operations</li>
<li>We must call on an outside company to set it up and maintain those UCDs.</li>
<li>No reporting capabilities on the existing UCD use.</li>
</ul>
<p><!-- Conferencing --></p>
<li>Conferencing.
<ul>
<li>The company currently purchases simple voice and video conferencing services.</li>
<li>Within the new system cost would be limited to 800 number usage fees.</li>
</ul>
</li>
<p><!-- IVR --></p>
<li>Interactive Voice Response.
<ul>
<li>We must call on an outside company to maintain this feature.</li>
<li>We do not have knowledge of the extent of the scripting language.</li>
<li>We have immediate needs for potentially heavy call volume order status checking.</li>
</ul>
</li>
</ul>
<p>The outline was complete. The savings on fax services alone could total into the tens of thousands of dollars per month and conferencing would add thousands more back to the pot. IVR and ACD would only be system enhancements for now as I could not see where initial savings would come from.</p>
<p>Fax service configuration was nearly native out of the box. Elastix utilized the app_fax module and all of the previous issues I found using Asterisk pre-distribution and fax were gone. We were now able to implement a full fax service for the department and/or various business units. I was extremely excited about how these new features could save so much and provide more than imagined before.</p>
<p>While I was sitting at my boss&#8217; desk, the call came. One of the business units needed a low-volume IVR with an associated UCD/ACD queue.  It only seemed logical that the next step would be to place our new PBX into a production run and implement two of the four initial strategies.</p>
<p>The IVR was not that complex, but it did involve retrieving information from our IBM AS/400 and providing order status information to our potential caller.  In Asterisk Part 5 we will discuss what we did and how we achieved the first major test of this Asterisk implementation. </p>
<p class="left"><a name='fb_share' type='button_count' href='http://www.facebook.com/sharer.php'>Share</a><script src='http://static.ak.fbcdn.net/connect.php/js/FB.Share' type='text/javascript'></script>
<p class="right"><a href='http://twitter.com/share' class='twitter-share-button' data-count='vertical'>Tweet</a><script type='text/javascript' src='http://platform.twitter.com/widgets.js'></script></p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-developer.us/voip/asterisk-pbx-part-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asterisk PBX Part 3</title>
		<link>http://www.web-developer.us/voip/asterisk-pbx-part-3/</link>
		<comments>http://www.web-developer.us/voip/asterisk-pbx-part-3/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 23:27:20 +0000</pubDate>
		<dc:creator>Cary H.</dc:creator>
				<category><![CDATA[VoIP Strategies]]></category>

		<guid isPermaLink="false">http://www.web-developer.us/?p=30</guid>
		<description><![CDATA[Distributions Matter. The initial experience with Asterisk 1.8.7 on top of the Ubuntu distribution was nothing less than horrific. While the base telephone system functioned, I was having issues with DAHDI, the GUI interface would somehow corrupt underlying configuration files making the PBX unstable and I could not for the life of me get the [...]]]></description>
			<content:encoded><![CDATA[<h3>Distributions Matter.</h3>
<p>The initial experience with Asterisk 1.8.7 on top of the Ubuntu distribution was nothing less than horrific. While the base telephone system functioned, I was having issues with DAHDI, the GUI interface would somehow corrupt underlying configuration files making the PBX unstable and I could not for the life of me get the extensions to recognize an incoming fax using Asterisk Fax. It was painfully apparent that either I did not know what I was doing or there were some tricks to getting this thing to work.</p>
<p>After discussing the issue with some folks in the industry, it became apparent to me that I was going to have to put aside my one linux distribution mentality and add CentOS to the mix.  It probably is no big deal to have multiple Linux distributions, but I like keeping things at their lowest common denominator. I have been using Ubuntu for years and I have not touched a Red Hat distribution in nearly the same amount of time.  But, I was determined to give Asterisk the full tour and since I was not the expert on Asterisk, I needed to chose a distribution with wide support, especially if this platform were to go into production.</p>
<p>What is interesting is that the Asterisk distributions seem to be concentrated around FreePBX and Asterisk@Home. TrixBox is the spin-off of the Asterisk@Home project started in 2004 and FreePBX is the underpinning of many distributions including Elastix and PBX In A Flash (PIAF).  After much ado and grumbling underneath my breath, I selected Elastix as the go to distribution. Elastix had a couple of added features that met the requirements of my unified communications project, it utilized Hylafax to handle nearly all of the fax capabilities, and it had a reasonably informative dashboard that could give you an instant update on the status of the PBX system.</p>
<p>During all of this investigative process, I was not happy to see that Digium had not yet implemented SIP SIMPLE into their software for instant messaging capabilities, and they only announced the capability in their new Version 1.10, now touted as Version 10.  It seems every time I need to start a project I am looking at either the deployment of a stable release without the features I desperately need, or the unstable, no clue when it will be stable, use at your own risk version that is just on the event horizon.  Tempting as it was, I was in no way going to demonstrate the capabilities of a PBX to a company barely out of the stone age on a beta release.  SIP SIMPLE was out for the time being.</p>
<p>I am concerned with Asterisk having to handle the entire load of a corporate telephone infrastructure along with all of the communications required between VoIP users on VPNs and those connected on the local LAN.  I am also concerned with having a card inside a server handling the PSTN traffic. How can I have failover? Putting these cards in multiple machines, issues with hardware (interrupts) IRQs, how many different codecs am I going to be dealing with, and how much transcoding is going to be happening?  As I begin to evaluate a base Elastix install with a Digium T1/E1 card in the machine, all of these &#8220;Oh my God!&#8221; moments are welling up inside of me.  More research, more Google, and more discussions with vendors, it is time to resolve a number of these questions or we are not going to be able to deploy this system into a production environment and quite possibly replace the enterprise PBX systems. The distribution was now the least of my worries.</p>
<p class="left"><a name='fb_share' type='button_count' href='http://www.facebook.com/sharer.php'>Share</a><script src='http://static.ak.fbcdn.net/connect.php/js/FB.Share' type='text/javascript'></script>
<p class="right"><a href='http://twitter.com/share' class='twitter-share-button' data-count='vertical'>Tweet</a><script type='text/javascript' src='http://platform.twitter.com/widgets.js'></script></p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-developer.us/voip/asterisk-pbx-part-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Target 2011</title>
		<link>http://www.web-developer.us/web-development/target-2011/</link>
		<comments>http://www.web-developer.us/web-development/target-2011/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 19:50:35 +0000</pubDate>
		<dc:creator>Cary H.</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.web-developer.us/?p=119</guid>
		<description><![CDATA[Target-2011 is a Customer Relationship Manager developed by the Internet Services Group. The system is built on a Linux, Apache, MySQL, and PHP (LAMP) platform under the Symfony 1.4 PHP framework utilizing jQuery, JSON. The system integrates with the AS/400 for product management and provides the turf Companies (AstroTurf® and SYNLawn®) with order and project [...]]]></description>
			<content:encoded><![CDATA[<p>Target-2011 is a Customer Relationship Manager developed by the Internet Services Group. The system is built on a Linux, Apache, MySQL, and PHP (LAMP) platform under the Symfony 1.4 PHP framework utilizing jQuery, JSON.  The system integrates with the AS/400 for product management and provides the turf Companies (AstroTurf® and SYNLawn®) with order and project management from lead through quote to install and warranty.</p>
<p>The system hierarchy is based on parent-child relationships within a workflow driven model. The company can be defined at the top level and then subsequent sales units can be defined as children within the scope of that parent.  Children can be sales regions, distributors, franchises, or other custom defined areas. Products and service offerings provided by the parent are available to all child areas, but each child area can define their own products and services that are only available to themselves and their children.  </p>
<h3>The Customer Record</h3>
<div class="thumbnail-single" style="background-image: url('http://www.web-developer.us/wp-content/uploads/2011/12/AstroTraker-Customer-Editor.png');">
<div class="sections-overlay">
      <a href="http://www.web-developer.us/wp-content/uploads/2011/12/AstroTraker-Customer-Editor.png" title="Target-2011 Customer Editor" class="fancybox"><br />
         <img src="http://www.web-developer.us/wp-content/themes/ePhoto/images/zoom.png" alt="" class="zoom" /><br />
      </a>
   </div>
</div>
<p>The workflow model defines the routes each customer record take through the system. These routes or actions are pre-defined by the business, however, users can interject their own workflow needs in between the system defined ones.  An example of a workflow trail might be from New Lead —› Initial Follow-up —› Design Project —› Schedule Measurement —› Perform Measurement —› Create Estimate —› Approve Estimate —› Create Work Order —› and so on.  If a sales person completes the initial follow-up and the customer asks them to wait 6 weeks and call them again, they can inject a new Follow-up between the initial one and the design project workflow.</p>
<h3>The Calendar View</h3>
<div class="thumbnail-single" style="background-image: url('http://www.web-developer.us/wp-content/uploads/2011/12/AstroTraker-Calendar.png');">
<div class="sections-overlay">
      <a href="http://www.web-developer.us/wp-content/uploads/2011/12/AstroTraker-Calendar.png" title="Target-2011 Calendar View" class="fancybox"><br />
         <img src="http://www.web-developer.us/wp-content/themes/ePhoto/images/zoom.png" alt="" class="zoom" /><br />
      </a>
   </div>
</div>
<p>The calendar view provides the user with a baseline of information about the tasks ahead of them for the current month. Since Target-2011 is based on a workflow engine, each task is assigned to the customer record to move the customer through the sales, manufacturing, installation, and warranty processes.</p>
<h3>The Asset Library</h3>
<div class="thumbnail-single" style="background-image: url('http://www.web-developer.us/wp-content/uploads/2011/12/AstroTraker-Library.png');">
<div class="sections-overlay">
      <a href="http://www.web-developer.us/wp-content/uploads/2011/12/AstroTraker-Library.png" title="Target-2011 Asset Library" class="fancybox"><br />
         <img src="http://www.web-developer.us/wp-content/themes/ePhoto/images/zoom.png" alt="" class="zoom" /><br />
      </a>
   </div>
</div>
<p>The asset library provides each organization with a location to track and maintain all digital assets such as marketing materials, MSDS sheets, press releases, and much more.</p>
<h3>The Lucine Search Engine</h3>
<div class="thumbnail-single" style="background-image: url('http://www.web-developer.us/wp-content/uploads/2011/12/AstroTraker-Advanced-Search.png');">
<div class="sections-overlay">
      <a href="http://www.web-developer.us/wp-content/uploads/2011/12/AstroTraker-Advanced-Search.png" title="Target-2011 Advanced Search Capabilities" class="fancybox"><br />
         <img src="http://www.web-developer.us/wp-content/themes/ePhoto/images/zoom.png" alt="" class="zoom" /><br />
      </a>
   </div>
</div>
<p>The search capabilities within Target-2011 allow a user to search on any number of criteria as depicted in the screenshot. Searches can include specific install, bid-due, and estimate-due dates, date ranges, assigned users, workflow stage, and much more. Search results are ranked based on perceived relevance to the search criteria.</p>
<p class="left"><a name='fb_share' type='button_count' href='http://www.facebook.com/sharer.php'>Share</a><script src='http://static.ak.fbcdn.net/connect.php/js/FB.Share' type='text/javascript'></script>
<p class="right"><a href='http://twitter.com/share' class='twitter-share-button' data-count='vertical'>Tweet</a><script type='text/javascript' src='http://platform.twitter.com/widgets.js'></script></p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-developer.us/web-development/target-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

