<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-2990724095005688149</atom:id><lastBuildDate>Mon, 28 Nov 2011 00:07:47 +0000</lastBuildDate><category>facebook</category><category>jquery</category><category>freepbx</category><category>asterisk</category><category>virtualbox</category><category>Advanced Freepbx</category><category>nokia</category><category>sms</category><category>sso</category><category>html</category><category>development</category><category>privacy</category><category>gmail</category><category>sync</category><category>google</category><title>Moshe's Blog</title><description>Thoughts, tips and ideas on technology, with a focus on open source projects like Linux, Android, Asterisk and FreePBX and other VoIP/Telephony related stuff. 

by: Moshe Brevda</description><link>http://mbrevda.blogspot.com/</link><managingEditor>noreply@blogger.com (Moshe Brevda)</managingEditor><generator>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/MoshesBlog" /><feedburner:info uri="moshesblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>MoshesBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-303591420532444841</guid><pubDate>Wed, 16 Nov 2011 17:02:00 +0000</pubDate><atom:updated>2011-11-16T19:02:34.239+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">jquery</category><category domain="http://www.blogger.com/atom/ns#">html</category><title>Get the last item selected in a multi Select box [jQuery]</title><description>Lets say you have a select box and you want to limit the amount options that can be selected. And lets say you want to do that with jQuery. Here is how:&lt;br /&gt;
&lt;br /&gt;
&lt;select id="list" multiple="multiple" name="selectTest" tabindex="3"&gt; &lt;option value="item1"&gt;Item 1&lt;/option&gt; &lt;option value="item2"&gt;Item 2&lt;/option&gt; &lt;option selected="selected" value="item3"&gt;Item 3&lt;/option&gt; &lt;/select&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
The first thing to keep in mind is that you cant use &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;onClick()&lt;/span&gt; here (aka &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$.click()&lt;/span&gt;), as selecting more than one items doesn't fire a click event.&amp;nbsp;Instead, we will use &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$.change()&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: js;"&gt;var maxSelected = 2;
$('select[name=selectTest]').change(function(e){
  if ($(this).val().length &amp;gt; maxSelected) {
  alert('You cannot have more than ' + maxSelected + ' items selected');
  }
});
&lt;/pre&gt;&lt;br /&gt;
This will alert the user if they try to select more than&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;maxSelected&lt;/span&gt; of items - in this case two. However, there selection will still be valid! What we need is to get the last item they selected - and to de-select&amp;nbsp;it.&amp;nbsp;Luckily, that item is passed in the event property (&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;e&lt;/span&gt;) as &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;e.currentTarget.value&lt;/span&gt;, so we can just use that property to unset the last selected item:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: js;"&gt;var maxSelected = 2;
$('select[name=selectTest]').change(function(e){
 if ($(this).val().length &amp;gt; maxSelected) {
  alert('You cannot have more than ' + maxSelected + ' items selected');
  $('select[name=selectTest] option[value=' + e.currentTarget.value + ']')
     .attr('selected', false)
 }
});
&lt;/pre&gt;&lt;br /&gt;
Happy coding!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-303591420532444841?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4jFh-kXnIhZdR68ctiaT6P2vyTA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4jFh-kXnIhZdR68ctiaT6P2vyTA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4jFh-kXnIhZdR68ctiaT6P2vyTA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4jFh-kXnIhZdR68ctiaT6P2vyTA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/7GaYWsmJQ2A" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/7GaYWsmJQ2A/get-last-item-selected-in-multi-select.html</link><author>noreply@blogger.com (Moshe Brevda)</author><feedburner:origLink>http://mbrevda.blogspot.com/2011/11/get-last-item-selected-in-multi-select.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-8255355139150812346</guid><pubDate>Tue, 20 Sep 2011 21:22:00 +0000</pubDate><atom:updated>2011-09-21T12:53:05.236+03:00</atom:updated><title>New FreePBX looking better than ever!</title><description>The upcoming version of FreePBX, set to enter beta any minute now, has goten a fresh coat of paint - and then some. Click past the break to see the awesome new look,&amp;nbsp;available&amp;nbsp;exclusively&amp;nbsp;in FreePBX 2.10.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-isrxZbr6xFQ/TnkDfP7HVYI/AAAAAAAAp7w/X6ZrgQe7CO0/s1600/new.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="305" src="http://4.bp.blogspot.com/-isrxZbr6xFQ/TnkDfP7HVYI/AAAAAAAAp7w/X6ZrgQe7CO0/s400/new.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="" style="clear: both; text-align: left;"&gt;Hope y'all like it. If you do, be sure to let me know! Otherwise, keep in mind that I'm NOT a graphics artist/designer by any&amp;nbsp;stretch&amp;nbsp;of the imagination, and dont even pretend to be one. By way of&amp;nbsp;comparison, here is the current (soon to be old) look:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/-RAIYHypWLD0/Tnmz1mEHWCI/AAAAAAAAp70/0zHjtwlHvac/s1600/old.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="350" src="http://2.bp.blogspot.com/-RAIYHypWLD0/Tnmz1mEHWCI/AAAAAAAAp70/0zHjtwlHvac/s400/old.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-8255355139150812346?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/g7JibZCSCpOZhaUpy0x8x5R1Mxc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/g7JibZCSCpOZhaUpy0x8x5R1Mxc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/g7JibZCSCpOZhaUpy0x8x5R1Mxc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/g7JibZCSCpOZhaUpy0x8x5R1Mxc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/a5V50ia5HEU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/a5V50ia5HEU/new-freepbx-looking-better-than-ever.html</link><author>noreply@blogger.com (Moshe Brevda)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-isrxZbr6xFQ/TnkDfP7HVYI/AAAAAAAAp7w/X6ZrgQe7CO0/s72-c/new.png" height="72" width="72" /><feedburner:origLink>http://mbrevda.blogspot.com/2011/09/new-freepbx-looking-better-than-ever.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-7958029373926039373</guid><pubDate>Mon, 25 Jul 2011 19:36:00 +0000</pubDate><atom:updated>2011-08-19T16:29:13.476+03:00</atom:updated><title>Auto archive calls recorded by Asterisk in FreePBX</title><description>One of my greatest gripes with call recording in Asterisk/FreePBX has always been the mess&amp;nbsp;left&amp;nbsp;behind in the monitor directory. There is a&amp;nbsp;rarely&amp;nbsp;know script&amp;nbsp;bundled&amp;nbsp;with FreePBX which is supposed to archive the call files in a year/month/day folder structure, but its rather hit or miss (it &lt;i&gt;tries&lt;/i&gt;&amp;nbsp;to match files to the cdr DB). While looking at a support ticket recently, I suddenly had a brainstorm as to how this can be accomplished in a simple and clean way.&lt;br /&gt;
&lt;div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
I feel rather late to the party sharing this now, as the Recordings module (currently under active&amp;nbsp;development) holds many promising&amp;nbsp;surprises&amp;nbsp;- including auto-archiving calls - and is due out in 2.10. Nevertheless, and for the time being, here is&amp;nbsp;quick&amp;nbsp;and simple way to get your calls recorded in a year/month/day format.&lt;/div&gt;&lt;br /&gt;
In Advanced Settings (your going to need &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Display Readonly Settings&lt;/span&gt; = true and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Override Readonly Settings&lt;/span&gt; = true), for&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Override Call Recording Location&lt;/span&gt; enter the following:&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;pre&gt;${STRFTIME(${EPOCH},,%Y/%m/%d)}&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Hit the little green submit button, and the orange Apply Changes bar. The next time you place a call that is&amp;nbsp;recorded&amp;nbsp;you should find it properly "archived" under the date the call was placed.&lt;br /&gt;
&lt;br /&gt;
Happy talking!&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;UPDATE: to get variables parsed at call time (as apposed to when the dialplan is created), the $ prefix needs to be replaced with a ^. Update&amp;nbsp;above.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;UPDATE2: on second (3rd?) though, the&amp;nbsp;original&amp;nbsp;syntax&amp;nbsp;was correct. Make sure your using FreePBX Core version 2.9.0.2 or greater!&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-7958029373926039373?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ytB8Ila0tieSPmAD8ty2gLakbOo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ytB8Ila0tieSPmAD8ty2gLakbOo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ytB8Ila0tieSPmAD8ty2gLakbOo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ytB8Ila0tieSPmAD8ty2gLakbOo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/tQT5XwJ7b4w" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/tQT5XwJ7b4w/auto-archive-calles-recorded-by.html</link><author>noreply@blogger.com (Moshe Brevda)</author><feedburner:origLink>http://mbrevda.blogspot.com/2011/07/auto-archive-calles-recorded-by.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-5320286054487388238</guid><pubDate>Sun, 10 Jul 2011 10:26:00 +0000</pubDate><atom:updated>2011-07-10T13:26:40.758+03:00</atom:updated><title>FreePBX 2.10 sneak peak: IVR's</title><description>As in any pbx, IVR's have always been an integral component of FreePBX. For the better and for the&amp;nbsp;extremely&amp;nbsp;annoying, companies have been&amp;nbsp;filtering inbound calls with&amp;nbsp;IVR's for just about forever. While we can't change people's mentality (on both sides of the call) we CAN&amp;nbsp;attempt&amp;nbsp;to provide the best posible&amp;nbsp;experience&amp;nbsp;for&amp;nbsp;those&amp;nbsp;fortunate&amp;nbsp;enough to be using FreePBX.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;In FreePBX 2.10, we have rebuilt and&amp;nbsp;rewritten&amp;nbsp;almost every single line of code in IVR's. In addition, there are&amp;nbsp;many&amp;nbsp;framework&amp;nbsp;changes in place to provide a more&amp;nbsp;comfortable&amp;nbsp;experience&amp;nbsp;over all. Here are some quick stats from the svn log so far:&lt;/div&gt;&lt;div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;pre class="brush: shell; gutter: false"&gt;[root@server admin]# svn diff -r12198:head|diffstat
 assets/js/jquery.hotkeys.js               |   99 +
 assets/js/script.legacy.js                |   20 
 bootstrap.php                             |   45 
 common/mainstyle.css                      |    5 
 functions.inc.php                         |  140 +-
 helpers/Email.php                         | 2062 ++++++++++++++++++++++++++++++
 helpers/form_helper.php                   | 1056 +++++++++++++++
 helpers/freepbx_helpers.php               |    7 
 i18n/amp.pot                              |   68 
 libraries/ampuser.class.php               |   78 -
 libraries/bootstrap-utility.functions.php |   76 -
 libraries/components.class.php            |   62 
 libraries/featurecodes.class.php          |   84 -
 libraries/featurecodes.functions.php      |   84 +
 libraries/legacy.functions.php            |   60 
 libraries/utility.functions.php           |  162 ++
 libraries/view.functions.php              |    1 
 17 files changed, 3793 insertions(+), 316 deletions(-)
&lt;/pre&gt;&lt;br /&gt;
While&amp;nbsp;those&amp;nbsp;aren't all IVR related, all these changes are&amp;nbsp;designed&amp;nbsp;to provide you with &amp;nbsp;better FreePBX experience. Pretty nice! Thats for the stats, now for the IVR changes. The first thing you will notice is a cleaner&amp;nbsp;welcome&amp;nbsp;screen.&amp;nbsp;We've&amp;nbsp;removed the&amp;nbsp;clutter&amp;nbsp;when you&amp;nbsp;first&amp;nbsp;hit the IVR page, most people&amp;nbsp;didn't&amp;nbsp;read it or know what to do with out it, anyway:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-VwpGDdWB4Hk/ThlzC6MVHdI/AAAAAAAApww/Ejv7Oo09f1c/s1600/old.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="206" src="http://1.bp.blogspot.com/-VwpGDdWB4Hk/ThlzC6MVHdI/AAAAAAAApww/Ejv7Oo09f1c/s320/old.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;IVR 2.9&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: 1em; margin-right: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-t6OolCRM9hQ/ThlzB5HYUvI/AAAAAAAApws/SNrbBGzgWKI/s1600/new.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="204" src="http://3.bp.blogspot.com/-t6OolCRM9hQ/ThlzB5HYUvI/AAAAAAAApws/SNrbBGzgWKI/s320/new.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;IVR 2.10&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;Just one simple button and your in!&amp;nbsp;On the IVR edit page, there have always been some&amp;nbsp;quirks&amp;nbsp;that bothered me. Here is the old page:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-jsxFLYlVjw4/Thl2KVkEkLI/AAAAAAAApw0/_WtYbHWrJzs/s1600/ivr2.old.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="317" src="http://1.bp.blogspot.com/-jsxFLYlVjw4/Thl2KVkEkLI/AAAAAAAApw0/_WtYbHWrJzs/s320/ivr2.old.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;IVR 2.9&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Why did every IVR start off with the name "Unnamed". I mean, isnt that like an an oxymoron?! What is the i-dest/t-dest thingy? When are the "Messages" played? And did you ever try to add entires to an IVR and see the WHOLE PAGE REFRESH?! And wait until&amp;nbsp;you see the code that generated all this...&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-j5B7W1SC0CE/Thl205TNlwI/AAAAAAAApw4/aQWUkRsdXzA/s1600/ivr2.new.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="640" src="http://2.bp.blogspot.com/-j5B7W1SC0CE/Thl205TNlwI/AAAAAAAApw4/aQWUkRsdXzA/s640/ivr2.new.png" width="497" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;IVR 2.10&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;Here are the changes we've made:&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;We've streamlined the user experience to be more inline with other FreePBX modules (take Directory for example, notice it has a similar "feel").&lt;/li&gt;
&lt;li&gt;Unlike in the old module your IVR&amp;nbsp;doesn't&amp;nbsp;get saved even before you make you create it (hence IVR's were always named). This also&amp;nbsp;allows&amp;nbsp;the gui to load faster.&lt;/li&gt;
&lt;li&gt;We've added a description fields, where you can save an&amp;nbsp;explanation&amp;nbsp;and/or notes about this IVR.&lt;/li&gt;
&lt;li&gt;We've added finer&amp;nbsp;control&amp;nbsp;over &lt;b&gt;i&lt;/b&gt;nvalid and &lt;b&gt;t&lt;/b&gt;imeout destinations. Now you can set a recording to be played when the i or t extensions are hit (i.e. when the user presses&amp;nbsp;something&amp;nbsp;invalid or if the the user enters nothing) before the IVR loops back to the&amp;nbsp;beginning, in&amp;nbsp;addition&amp;nbsp;to the recording to be played right before&amp;nbsp;transferring&amp;nbsp;the call to the&amp;nbsp;actual&amp;nbsp;destination. Or you can disable the i or t destinations completely.&lt;/li&gt;
&lt;li&gt;You can add entires with a simple click - no page refresh! Add as many as you need, and delete them&amp;nbsp;intuitively.&lt;/li&gt;
&lt;li&gt;We've moved part of the Direct Dial setting out of the IVR module and in to the Directory module (where it belongs)&lt;/li&gt;
&lt;li&gt;We now hook in to Queues and delete the&amp;nbsp;IVR Break Out Menu if you delete the IVR&lt;/li&gt;
&lt;li&gt;When looking at the IVR page, you can&amp;nbsp;collapse&amp;nbsp;any&amp;nbsp;individual&amp;nbsp;section to allow&amp;nbsp;you&amp;nbsp;to focus on another with less clutter in the way&lt;/li&gt;
&lt;li&gt;We've included new sound files that more&amp;nbsp;accurately&amp;nbsp;reflect the message you want to present to your users. Obviously, you can&amp;nbsp;override&amp;nbsp;them with your own should you chose to do so.&lt;/li&gt;
&lt;li&gt;We have plenty of under the hood changes, not the least of which include using the fancy new HTML5 Webforms validation instead of the old&amp;nbsp;clunky&amp;nbsp;javascript errors&lt;a href="http://3.bp.blogspot.com/-_VU8YzY4ZlE/Thl54e26CyI/AAAAAAAApw8/-S-wIMpPGyg/s1600/Screen+shot+2011-07-10+at+1.07.09+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="80" src="http://3.bp.blogspot.com/-_VU8YzY4ZlE/Thl54e26CyI/AAAAAAAApw8/-S-wIMpPGyg/s320/Screen+shot+2011-07-10+at+1.07.09+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;An&amp;nbsp;extremely&amp;nbsp;clean code base using a (poor-mans version of) MVC design to make bugfixes and future additions as paneless as posible.&lt;/li&gt;
&lt;li&gt;A leaner&amp;nbsp;dialplan&amp;nbsp;for quicker call execution when posible.&lt;/li&gt;
&lt;li&gt;HOOKS!!! There are already some&amp;nbsp;interesting&amp;nbsp;3rd party modules in the works that can&amp;nbsp;easily&amp;nbsp;hook in to IVR to bring some very nice and demanded additions. You can create your own modules as well and have them hook in to IVR to extend the module.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;So, where is the new module? Its in the 2.10 branch,&amp;nbsp;currently&amp;nbsp;in&amp;nbsp;development. While we don't&amp;nbsp;recommend&amp;nbsp;it yet for production, feel free to download it to a test/development&amp;nbsp;server and take it for a spin. Otherwise, just keep tight and wait for the&amp;nbsp;official&amp;nbsp;release&amp;nbsp;of 2.10 - the new module will be included by default and your old IVRs will all be migrated over automatically.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;On a final note, I wanted to point out this work was&amp;nbsp;generously&amp;nbsp;sponsored&amp;nbsp;by my&amp;nbsp;wonderful&amp;nbsp;company&amp;nbsp;and driving force behind FreePBX: &lt;a href="http://schmoozecom.com/"&gt;Schmooze Com. Inc.&lt;/a&gt;&amp;nbsp;From a turnkey premise PBX to a carrier-grade white&amp;nbsp;label&amp;nbsp;hosted solution, Schmooze is the leading&amp;nbsp;innovator&amp;nbsp;in the market. Visit or call today. Thank you!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-5320286054487388238?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UZ2HJrVRzkPLUrFn0rbS0TZUFBs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UZ2HJrVRzkPLUrFn0rbS0TZUFBs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UZ2HJrVRzkPLUrFn0rbS0TZUFBs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UZ2HJrVRzkPLUrFn0rbS0TZUFBs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/uA75y0ySnqE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/uA75y0ySnqE/freepbx-210-sneak-peak-ivrs.html</link><author>noreply@blogger.com (Moshe Brevda)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-VwpGDdWB4Hk/ThlzC6MVHdI/AAAAAAAApww/Ejv7Oo09f1c/s72-c/old.png" height="72" width="72" /><feedburner:origLink>http://mbrevda.blogspot.com/2011/07/freepbx-210-sneak-peak-ivrs.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-8072260366160396116</guid><pubDate>Thu, 30 Jun 2011 18:56:00 +0000</pubDate><atom:updated>2011-07-10T10:26:28.507+03:00</atom:updated><title>Debugging FreePBX: the dbug() function</title><description>So, you've&amp;nbsp;figured&amp;nbsp;out the whole&amp;nbsp;&lt;a href="http://mbrevda.blogspot.com/2011/06/freepbx-development-introducing.html"&gt;bootstrap&amp;nbsp;thing&lt;/a&gt;, and now you are starting to poke around and trying to write some stuff of your own. And then you hit a snag. Here a tip that should help when need to debug FreePBX.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
First, meet dbug(), the official debug function. The dbug function is your&amp;nbsp;friend&amp;nbsp;and in&amp;nbsp;invaluable&amp;nbsp;resourse when trying to figure out why that query&amp;nbsp;isn't&amp;nbsp;returning the&amp;nbsp;results&amp;nbsp;you&amp;nbsp;excepted&amp;nbsp;or why the post seems to be returned blank. Think of dbug() as&amp;nbsp;php's builtin print_r()/var_dump(),&amp;nbsp;time stamping, and logging all&amp;nbsp;rolled&amp;nbsp;in to one simple function.&lt;br /&gt;
&lt;br /&gt;
To&amp;nbsp;get started with dbug(), first ensure that dbug() output is not disabled. To do so, go to Advanced Setting and set "Disable FreePBX dbug Logging" to false. Hit the green&amp;nbsp;accept&amp;nbsp;button. dbug() output is now &amp;nbsp;enabled. By&amp;nbsp;default, dbug() stores all its output to /tmp/freepbx_debug.log - but you dont have to&amp;nbsp;remember&amp;nbsp;this path. You can use this handy shortcut from the linux cli to bring up the debug output:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: shell;"&gt;amportal a dbug&lt;/pre&gt;&lt;br /&gt;
This tails the log file for you,&amp;nbsp;continuously&amp;nbsp;reading from it. It will also&amp;nbsp;attempt&amp;nbsp;to read from the httpd error log, assuming it is in the&amp;nbsp;default&amp;nbsp;location.&lt;br /&gt;
&lt;br /&gt;
So we have dbug&amp;nbsp;logging&amp;nbsp;enabled and we have the log up. Now we need to insert a dbug call. Using dbug() is&amp;nbsp;relay&amp;nbsp;quite simple, you can pass it 1-3 arguments:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: php;"&gt;dbug('string');
&lt;/pre&gt;&lt;br /&gt;
Will output your string. The logfile will also include the filename and even the line name where the dbug() function is located. You can use this to "step through" your code and see at what php bombs out (this is especially&amp;nbsp;useful&amp;nbsp;for the 'white screen of death').&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: php;"&gt;dbug('my var', $var);
&lt;/pre&gt;&lt;br /&gt;
In this case, you will&amp;nbsp;probably&amp;nbsp;want to set the string to something informative (although you dont have to), and include the variable to be output. This will allow you to see what going on "inside" your&amp;nbsp;variable. This is&amp;nbsp;especially&amp;nbsp;useful&amp;nbsp;with arrays.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: php;"&gt;dbug('my var', $var, 1);
&lt;/pre&gt;&lt;br /&gt;
This last example is most&amp;nbsp;extreme&amp;nbsp;and while its&amp;nbsp;basically&amp;nbsp;a repeat of the last example, it outputs and array using var_dump (instead of print_r()) which give a more accurate expression of whats in side that array.&lt;br /&gt;
&lt;br /&gt;
When&amp;nbsp;developing, this&amp;nbsp;function&amp;nbsp;is one of the most handy to have laying around.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-8072260366160396116?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/z2AOh8S76a7BMzRpOT-8NBS85Cg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/z2AOh8S76a7BMzRpOT-8NBS85Cg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/z2AOh8S76a7BMzRpOT-8NBS85Cg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/z2AOh8S76a7BMzRpOT-8NBS85Cg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/7TNNLIX2Spg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/7TNNLIX2Spg/debugging-freepbx.html</link><author>noreply@blogger.com (Moshe Brevda)</author><feedburner:origLink>http://mbrevda.blogspot.com/2011/06/debugging-freepbx.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-5718471206146876440</guid><pubDate>Sat, 11 Jun 2011 18:34:00 +0000</pubDate><atom:updated>2011-06-11T21:34:47.834+03:00</atom:updated><title>RFC: Backup &amp; Restore</title><description>&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Helvetica, Verdana, Arial, Tahoma, sans-serif; font-size: 12px; line-height: 17px;"&gt;There is a forum thread over at the FreePBX forums accepting comments, ideas, and suggestion for new features/improvements in the Backup &amp;amp; Restore module. Be sure to head&amp;nbsp;&lt;a class="bb-url" href="http://www.freepbx.org/forum/freepbx/general-help/rfc-backup-restore-renovations" style="color: #6ba400; text-decoration: none;"&gt;over there now&lt;/a&gt;&amp;nbsp;if you have any thoughts on how the module can be improved.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-5718471206146876440?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/i6qgBCPOQ4BalGc6ALrvb0XzROM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i6qgBCPOQ4BalGc6ALrvb0XzROM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/i6qgBCPOQ4BalGc6ALrvb0XzROM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i6qgBCPOQ4BalGc6ALrvb0XzROM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/aCGfHQppq-U" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/aCGfHQppq-U/rfc-backup-restore.html</link><author>noreply@blogger.com (Moshe Brevda)</author><feedburner:origLink>http://mbrevda.blogspot.com/2011/06/rfc-backup-restore.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-738202485929946133</guid><pubDate>Sun, 05 Jun 2011 10:48:00 +0000</pubDate><atom:updated>2011-06-05T13:50:48.579+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">development</category><category domain="http://www.blogger.com/atom/ns#">Advanced Freepbx</category><title>FreePBX Development: Introducing Bootstrap</title><description>FreePBX 2.9 introduced a radically new design paradigm as part of its core framework. The implementation design was inspired by the rapid growth of FreePBX over the years which lead to a disarray of "resources", spewed in many different corners of its framework. In turn, this lead to frustration by developers - especially newcomers - when it came to tracking down, including and using resources in their projects. To contest this chaos, FreePBX put forward a crucial component in it's framework: Bootstrap.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
While modern frameworks almost universally begin at one central file, class, or object, FreePBX - being a relic of a previous generation of coders - is more of a reflection of the passage of time than a shining star in the arena of frameworks. To that extent, there were many different parts, or resources, that were patched in as time went on, to accommodate a growing feature set and to help evolve towards and  reflect the callings of the marketplace and the community. For example, there was one file dedicated to setting up the database connection, including parsing the settings file to retrieve the database credentials. There was another file in charge of user authentication. A third would set some headers that would be sent to an end users browser. And connection to Asterisk could be found scattered in many different places throughout the code.&lt;br /&gt;
&lt;br /&gt;
Bootstrap consolidates all these files in one spot, and makes it extremely simple and straight forward for any developer to include any or all resources in to their code, be it a FreePBX modules, an agi/system script, or a totally stand alone project. This is also the first step in any FreePBX module&amp;nbsp;development&amp;nbsp;(note: in&amp;nbsp;regular&amp;nbsp;modules, this is included automatically).&lt;br /&gt;
&lt;br /&gt;
To include bootstrap in a project, all it takes is a few lines of code:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: php"&gt;//include freepbx configuration 
if (!@include_once(getenv('FREEPBX_CONF') ? getenv('FREEPBX_CONF') : '/etc/freepbx.conf')) {
    include_once('/etc/asterisk/freepbx.conf');
}&lt;/pre&gt;&lt;br /&gt;
Once included, bootstrap will provide (by default) the following resources:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$db&amp;nbsp;&lt;/span&gt;- the database recourse, an object using the antiquated &lt;a href="http://pear.php.net/package/DB/docs"&gt;pear db&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Database_abstraction_layer"&gt;dal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$amp_conf&lt;/span&gt;  - an array holding all of FreePBX's setting, including advanced settings and seldomly set/changed settings that dont require a dedicated gui entry&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$astman&lt;/span&gt; - a connection to Asterisks' Manager Interface, via the php-astman object (class)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$cdrdb&lt;/span&gt; - a database resource for accessing Asterisks CDR's (not provided by default)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;All module functions - the functions.inc.php of all enabled modules&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$benchmark_starttime&lt;/span&gt; - A primitive and lightweight benchmarking variable&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Usage of the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;freepbx_error_handler()&lt;/span&gt; which logges all of FreePBX errors to a central console, alongside with other debug output&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Gui authentication (or bypass) for includes done by gui-facing scripts&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Access to all the functions that the FreePBX framework offers, including debugging/logging, module management, gui helpers, etc. (as of FreePBX, these will be autoloaded, so you hopeful incur too much overhead...)&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;With an eye on&amp;nbsp;efficiency, bootstrap is built in a modular way so that&amp;nbsp;individual&amp;nbsp;resources can be&amp;nbsp;toggled&amp;nbsp;from their&amp;nbsp;default&amp;nbsp;to enable/disable&amp;nbsp;individual&amp;nbsp;resources as they are needed or undesired. The above resources can be toggeled as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$db&lt;/span&gt; - this is always&amp;nbsp;necessary&amp;nbsp;to for basic functionality of FreePBX and CANNOT be disabled&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$amp_conf&amp;nbsp;&lt;/span&gt; - as above, always needed for basic functionality, CANNOT be disabled&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;astman&lt;/span&gt; - the connection to the AMI can be disabled with:&lt;br /&gt;
&lt;pre class="brush: php; gutter: false;"&gt;$bootstrap_settings['skip_astman'] = true;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$cdrdb&amp;nbsp;&lt;/span&gt;- access to asterisk CDR's is not something that is required for most activities, and hence is DISABLED by&amp;nbsp;default. To enable, add the following before you call bootstrap:&lt;br /&gt;
&lt;pre class="brush: php; gutter: false;"&gt;$bootstrap_settings['cdrdb'] = true;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Module functions can either be&amp;nbsp;restricted&amp;nbsp;to any specific modules or to NO modules being included. To diable ALL modules, just set:&lt;br /&gt;
&lt;pre class="brush: php; gutter: false;"&gt;$restrict_mods = true;&lt;/pre&gt;To restrict bootstrap to just a handfull of modules, add them like:&lt;br /&gt;
&lt;pre class="brush: php; gutter: false;"&gt;$restrict_mods = array('module_1' =&amp;gt; true, 'module_2' =&amp;gt; true)&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$benchmark_starttime&lt;/span&gt; cannot be disabled, but really&amp;nbsp;doesn't&amp;nbsp; incur too much overhead&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;freepbx_error_handler()&lt;/span&gt;error handler can be replaced with an error handler of your choice, or even disabled, like:&lt;br /&gt;
&lt;pre class="brush: php; gutter: false;"&gt;//use&amp;nbsp;default&amp;nbsp;php/apache error handler
$bootstrap_settings['freepbx_error_handler'] = false;
//will use the error handler of your choice
$bootstrap_settings['freepbx_error_handler'] = 'my_error_handler';
&lt;/pre&gt;It is not&amp;nbsp;recommended&amp;nbsp;to disable the error handler.&lt;/li&gt;
&lt;li&gt;To force gui authentication, set:&lt;br /&gt;
&lt;pre class="brush: php; gutter: false;"&gt;$bootstrap_settings['freepbx_auth'] = true;&lt;/pre&gt;To have FreePBX assume that its already been authenticated, use:&lt;br /&gt;
&lt;pre class="brush: php; gutter: false;"&gt;$bootstrap_settings['freepbx_auth'] = false;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Skiping FreePBX's framework's functions canot be disabled, it would lead to bootstrap/framework not working properly.&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;As you can see, bootstrap consolidates all of the important resources that enable you to build around the FreePBX framework. Happy coding, can't wait to see what you have built!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-738202485929946133?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jrZkTw8L4spIbSQVWhyF0JnILpo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jrZkTw8L4spIbSQVWhyF0JnILpo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jrZkTw8L4spIbSQVWhyF0JnILpo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jrZkTw8L4spIbSQVWhyF0JnILpo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/bJRxvTfg1fo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/bJRxvTfg1fo/freepbx-development-introducing.html</link><author>noreply@blogger.com (Moshe Brevda)</author><feedburner:origLink>http://mbrevda.blogspot.com/2011/06/freepbx-development-introducing.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-7513190785673758070</guid><pubDate>Tue, 17 May 2011 19:30:00 +0000</pubDate><atom:updated>2011-06-05T01:41:22.527+03:00</atom:updated><title>Run FreePBX backups from the command line</title><description>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;If you're backups are failing and you're trying to debug them, or if you want to run backups in an automated fashion out side of FreePBX (say form a cron job), here is what you need to do:&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;First, get the backup id. The backup id is the number after the word "&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;backupid&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;" in the url when viewing the backup settings page:&lt;/span&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-sNVfoK8NncA/TdLL8bgvMkI/AAAAAAAAo1w/_ss7qmlZHw0/s1600/backup.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="161" src="http://4.bp.blogspot.com/-sNVfoK8NncA/TdLL8bgvMkI/AAAAAAAAo1w/_ss7qmlZHw0/s400/backup.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;click to enlarge&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Now you can run the backup by calling the backup script and appending your backup's id. Here is what it would look like - obviously you need to replace id with your actual id number:&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre class="brush: shell;"&gt;/var/lib/asterisk/bin/ampbackup.php 58
&lt;/pre&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;If you not on a "standard" install (centos os, for the most part) you might need to adjust the path to asterisk's bin&amp;nbsp;&lt;/span&gt;directory&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;. Good luck!&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-7513190785673758070?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UoMbzUtpjA1JthKsw526yUgvmeA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UoMbzUtpjA1JthKsw526yUgvmeA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UoMbzUtpjA1JthKsw526yUgvmeA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UoMbzUtpjA1JthKsw526yUgvmeA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/HbAmkFkxMOg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/HbAmkFkxMOg/run-freepbx-backup-from-command-line.html</link><author>noreply@blogger.com (Moshe Brevda)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-sNVfoK8NncA/TdLL8bgvMkI/AAAAAAAAo1w/_ss7qmlZHw0/s72-c/backup.png" height="72" width="72" /><feedburner:origLink>http://mbrevda.blogspot.com/2011/05/run-freepbx-backup-from-command-line.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-2804710501069767457</guid><pubDate>Sat, 14 May 2011 19:59:00 +0000</pubDate><atom:updated>2011-05-14T22:59:15.861+03:00</atom:updated><title>Great new look!</title><description>I hope to start updating this blog with content&amp;nbsp;regularly&amp;nbsp;again!&amp;nbsp;Got a great new look up here, as&amp;nbsp;you&amp;nbsp;can tell. What do you think? Do you like it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-2804710501069767457?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nBo8Po634jj4HGe3s5PIXmvcf0k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nBo8Po634jj4HGe3s5PIXmvcf0k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nBo8Po634jj4HGe3s5PIXmvcf0k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nBo8Po634jj4HGe3s5PIXmvcf0k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/qUXXk8gQqZ8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/qUXXk8gQqZ8/great-new-look.html</link><author>noreply@blogger.com (Moshe Brevda)</author><feedburner:origLink>http://mbrevda.blogspot.com/2011/05/great-new-look.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-8442064476497277630</guid><pubDate>Thu, 03 Jun 2010 06:53:00 +0000</pubDate><atom:updated>2010-07-05T07:06:37.818+03:00</atom:updated><title>Updates Status</title><description>Owing to the ever-growing popularity of micro-blogging, coupled with guest blog posts on &lt;a href="http://www.freepbx.org/blog/mbrevda"&gt;other&lt;/a&gt; &lt;a href="http://unscripted.pbxact.com/posts/1053.pbxact"&gt;sites&lt;/a&gt;, this blog has become a bit quite. It isn't abandoned! For the time being though, you can get updates on &lt;a href="http://www.google.com/profiles/mbrevda"&gt;Google Buzz&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-8442064476497277630?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sZMhN7nevcBtAOO7jrAYOhP2ivw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sZMhN7nevcBtAOO7jrAYOhP2ivw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sZMhN7nevcBtAOO7jrAYOhP2ivw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sZMhN7nevcBtAOO7jrAYOhP2ivw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/Vd8B4GJMUx0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/Vd8B4GJMUx0/updates-status.html</link><author>noreply@blogger.com (Moshe Brevda)</author><feedburner:origLink>http://mbrevda.blogspot.com/2010/06/updates-status.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-8331215382384906575</guid><pubDate>Fri, 26 Mar 2010 14:38:00 +0000</pubDate><atom:updated>2011-05-14T21:59:49.026+03:00</atom:updated><title>Open Source. For you.</title><description>&lt;div style="background-color: white; color: black; counter-reset: __goog_page__ 0; direction: inherit; font-family: Verdana; font-size: 10pt; line-height: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div id="doc-contents" style="direction: inherit; margin-bottom: 6px; margin-left: 6px; margin-right: 6px; margin-top: 6px;"&gt;&lt;h1 style="font-size: 18pt; text-align: center;"&gt;Open Source. For you.&lt;/h1&gt;&lt;br /&gt;
&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;OS. There, I've said it. The dirty word of the software industry. No, I'm not referring to Operating Systems. OS also stands for&amp;nbsp;&lt;b&gt;Open Source&lt;/b&gt;, as in open source software. As&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Open-source_software" id="ury1" title="wikipedia explains"&gt;wikipedia explains&lt;/a&gt;, "[software] that is available in source code form...and certain...rights...are provided under a&amp;nbsp;&lt;span class="Apple-style-span" style="color: black;"&gt;software license&lt;/span&gt;&amp;nbsp;that permits users to study, change, and improve the software". So what is Open Source Software (herein: OSS) and how does it help your business? And why is it considered taboo in certain parts of the industry?&lt;/div&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="fullpost"&gt;For the non-developers out there, here's a little primer in software. Just as there are some languages that we speak - and some that we don't - computers also have a limited, predefined vocabulary. Without getting in to the gist of it, there are a ton of programing languages out there. You might be surprised to know that your computer probably doesn't understand a single one of them! Instead, programs are written in there respective "programing language" and then translated, or compiled, to a set of commands that the computer can actually understand. The "raw", or&amp;nbsp;&lt;b&gt;un&lt;/b&gt;-compiled text is know as&amp;nbsp;&lt;b&gt;source code&lt;/b&gt;. The term OSS refers to a program were the user/distributor has access to the source code and has the legal privilege (i.e. licence) to modify it and perhaps even redistribute it, as per the terms of the license. It should be noted, that compiling code is a one way process and cannot be easily undone. Hence, by and large, any program that is distributed in its "binary" (tech word for compiled) form cannot be easily modified.&lt;/span&gt;&lt;/div&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;h4 style="font-size: 10pt; text-align: left;"&gt;&lt;span class="fullpost"&gt;The good&lt;/span&gt;&lt;/h4&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="fullpost"&gt;Using open source can be extremely beneficial for your business. One of the greatest touted benefits are community involvement. Taking an example that's close to heart,&amp;nbsp;&lt;a href="http://www.freepbx.org/" id="buuy" title="FreePBX"&gt;FreePBX&lt;/a&gt;&amp;nbsp;(the open source management software for the open source Asterisk pbx) makes do with a relatively small handful of developers, yet manages to remain a rock-solid application, and is second to none in its field. One of the reasons for that is a strong community backing. When a member of the community finds a bug, they immediately file it on the bug tracker, for all to see/tend to. And when a member of the community feels that a new feature should be added, they often "donate" resources (i.e. development talent or funds) back to the project - projecting the project further than it could go on its own. AKA:&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;&amp;nbsp;"The whole is greater than the sum of its parts".&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="fullpost"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="fullpost"&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;Anyone can become a "member" of the community - all you have to do is use the software or participate in some other way (development, support, promotion, etc). In this way, the project can gain from the unlimited input, direction, vision and talent of all those involved, instead of being limited by the resources provided by a corporate entity with a finite development budget.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="fullpost"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="fullpost"&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;Those of you in the telecom industry will have undoubtedly come across another OSS project currently revolutionizing the pbx market: Asterisk. Asterisk started off as the vision of one individual - but by open sourcing the project, Asterisk has grown by leaps and bounds. It's success is international. It has been downloaded millions of times, by people from all across the globe. Its community, as well, isn't restricted by physical boundaries, and the project enjoys developers that are spread out all over the world.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="fullpost"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;h4 style="font-size: 10pt; text-align: left;"&gt;&lt;span class="fullpost"&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;The bad&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="fullpost"&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;In light of the benefits of OSS, why are there companies that shy away from putting their source code in the spot light? Why are there companies that wouldnt be caught dead distributing software in an un-compiled form? While the benefits of OSS are many, some companies rely solely on software sales for a substantial part of their revenue. Such companies see their source code as their greatest asset - and making that public would be akin to an intelligence agency posting details of clandestine activity to their website!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;Such entities prefer to spend their own resources to perfect their software offerings. They will generally require a larger development budget than their OSS counterpats, as well have their own QA department. They may also employ beta testers to ensure that the final product is indeed production worthy. Often for those trying to protect their source code, this investment may be worthwhile for the long term revenue generated by software sales. They tend to tread lightly around anything OSS related, lest it erode from their profit margins.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;Proponents of OSS will argue that this type of beta testing/QA tends to be limited in scope and vision, and will often site (the love-to-hate) software giant Microsoft as an example - along with its myriad amount of security issues. Ultimately, what works for some may not work for others, and this decision is best left to those voting with their wallets, the consumer.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;h4 style="font-size: 10pt; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;The ugly&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;While the case for OSS has been made time and time again, there are some entities that seem to forget the most crucial aspect of OSS: community involvement. While they may reel in the fountain of OSS, drinking thirstily from the springs sprouted by the community and frolicking in the lush meadows of resources donated back to the project, they tend to forget about the source of their success. Like the great wolf, they come to devour the young lambs that have helped spread the fame and glory of the project - those responsible for bringing the project to its current level of maturity, reliability and success.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;These entities favor their bottom line above all else. They will stop at nothing in their quest to fulfill their goals - and their pockets. Unfortunately, they tend to not realize (conveniently?) how they are ultimately disturbing the gentle ecosystem that brought them success in the first place. They tend to have a multitude of rationals for their behavior. Ultimately, most excuses add up to "we don't want to donate back, as we want to stay one ahead of the competition". Not that there is nothing wrong wanting to stay one step ahead of the competition. But history has shown that the best way to stay ahead of the competition is by donating back to the project - as well as improving in other areas, such as Customer Service or by offering other proprietary offerings.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;This isn't to say that there is anything wrong in developing proprietary products that align with or even compliment the OSS offerings, but rather that ultimately, those with a strong connection to the community are most likely to prosper.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="direction: inherit; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify; text-indent: 5%;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana, sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;We at Schmooze Com value the community greatly and proudly take an active part in it. Starting with FreePBX 2.5 we have poured untold development hours, resources, sweat and money in to making FreePBX a better product. And we encourage you to do the same - for your own benefit!&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;i&gt;originally posted on the &lt;a href="http://unscripted.pbxact.com/"&gt;Unscripted Blog&lt;/a&gt;, the&amp;nbsp;official&amp;nbsp;blog of &lt;a href="http://www.schmoozecom.com/"&gt;Schmooze Com, Inc.&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-8331215382384906575?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FdXhjGu5zKpv8DYu587TnrGYlxU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FdXhjGu5zKpv8DYu587TnrGYlxU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FdXhjGu5zKpv8DYu587TnrGYlxU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FdXhjGu5zKpv8DYu587TnrGYlxU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/2ZVNuo4WTaQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/2ZVNuo4WTaQ/open-source-for-you.html</link><author>noreply@blogger.com (Moshe Brevda)</author><feedburner:origLink>http://mbrevda.blogspot.com/2010/03/open-source-for-you.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-2398557012719084173</guid><pubDate>Thu, 11 Mar 2010 22:10:00 +0000</pubDate><atom:updated>2010-03-12T00:10:59.252+02:00</atom:updated><title>New destination presentation in FreePBX</title><description>&lt;div class="separator" style="clear: both; text-align: left;"&gt;You saw it here first! A new way to present the destinations in a clean,&amp;nbsp;uncluttered&amp;nbsp;way. This will hopefully be in FreePBX 2.8.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_rC4b9-PbBds/S5lqKoKlhgI/AAAAAAAAcHc/-6-THha_19A/s1600-h/untitled.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_rC4b9-PbBds/S5lqKoKlhgI/AAAAAAAAcHc/-6-THha_19A/s320/untitled.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-2398557012719084173?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vjoNTi5SV-xbDo2i15Fh1Fq6wNw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vjoNTi5SV-xbDo2i15Fh1Fq6wNw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vjoNTi5SV-xbDo2i15Fh1Fq6wNw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vjoNTi5SV-xbDo2i15Fh1Fq6wNw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/KjT-IVFrYtQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/KjT-IVFrYtQ/new-destination-presentation-in-freepbx.html</link><author>noreply@blogger.com (Moshe Brevda)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_rC4b9-PbBds/S5lqKoKlhgI/AAAAAAAAcHc/-6-THha_19A/s72-c/untitled.PNG" height="72" width="72" /><feedburner:origLink>http://mbrevda.blogspot.com/2010/03/new-destination-presentation-in-freepbx.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-122157679335367936</guid><pubDate>Thu, 12 Nov 2009 09:10:00 +0000</pubDate><atom:updated>2009-11-12T11:13:28.470+02:00</atom:updated><title>FreePBX Intro: Past, Present and Future</title><description>In case you missed it, FreePBX's lead developer Philippe Lindheimer gave a wonderful presentation on FreePBX at Astricon this past Oct. (2009). The presentation give a very nice overview of FreePBX, its capabilities, and what the future holds. See it here:&lt;br /&gt;
&lt;span class=fullpost&gt; &lt;br /&gt;
&lt;a href="http://www.astricon.net/2009/astricon/presentation/FreePBX/index.htm"&gt;http://www.astricon.net/2009/astricon/presentation/FreePBX/index.htm&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Moshe Brevda,&lt;/b&gt; FreePBX Development Team&lt;br /&gt;
(&lt;a href="http://www.freepbx.org/blog/lazytt"&gt;lazytt&lt;/a&gt; on the FreePBX forums)&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-122157679335367936?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AsChKpmGDcPNldxJShi6pWPZ8Aw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AsChKpmGDcPNldxJShi6pWPZ8Aw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AsChKpmGDcPNldxJShi6pWPZ8Aw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AsChKpmGDcPNldxJShi6pWPZ8Aw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/EkKqp55pZ5g" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/EkKqp55pZ5g/in-case-you-missed-it-our-lead.html</link><author>noreply@blogger.com (Moshe Brevda)</author><feedburner:origLink>http://mbrevda.blogspot.com/2009/11/in-case-you-missed-it-our-lead.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-6475472564523427470</guid><pubDate>Fri, 09 Oct 2009 11:38:00 +0000</pubDate><atom:updated>2011-05-14T22:05:41.193+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">freepbx</category><category domain="http://www.blogger.com/atom/ns#">asterisk</category><title>FreePBX: Restrict an extension to a specific trunk</title><description>&lt;div style="text-align: justify;"&gt;Many a time, the question has arisen on how to address a&amp;nbsp;seemingly&amp;nbsp;simple issue: restrict a given extension to a specific trunk when using the &lt;a href="http://www.freepbx.org/"&gt;FreePBX&lt;/a&gt; gui for &lt;a href="http://www.asterisk.org/"&gt;Asterisk&lt;/a&gt;. Due to the internals of FreePBX, this is no simple feat,&amp;nbsp;especially&amp;nbsp;if you are trying to do this from the gui. However, if your willing to get your hands dirty (just a bit!), here is a simple and clean method to&amp;nbsp;restrict&amp;nbsp;an extension to a specific trunk.&lt;/div&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;span class="fullpost"&gt;Be&amp;nbsp;forewarned: this&amp;nbsp;method&amp;nbsp;can&amp;nbsp;easily&amp;nbsp;confuse even the most initiated as it works counter to the logic that is FreePBX. That being said, as long as you don't forget that you have this code in place, it&amp;nbsp;shouldn't&amp;nbsp;be a problem for most&amp;nbsp;installations.&lt;/span&gt;&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Here is what you need to do. First you need to get the name of the outbound trunk you wish to limit the extension to. In FreePBX, select the trunk from the trunk page. Then have a look at the url in the browser's address bar. The url will look something like this:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;http://server-address.com/admin/config.php?display=trunks&amp;amp;extdisplay=&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;OUT_1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: blue;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We are looking for the number part of the blue text, and it is&amp;nbsp;likely&amp;nbsp;to be&amp;nbsp;different&amp;nbsp;on your system. Here is a&amp;nbsp;screenshot&amp;nbsp;of the url, with the part we want circled in red:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://1.bp.blogspot.com/_rC4b9-PbBds/Ss8deHjnZiI/AAAAAAAAaq8/8usAmEBZ00k/s1600-h/trunkname.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_rC4b9-PbBds/Ss8deHjnZiI/AAAAAAAAaq8/8usAmEBZ00k/s400/trunkname.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp;In your favorite text editor, add the following to &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;/etc/asterisk/extensions_custom.conf&lt;/span&gt;:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;[macro-dialout-trunk-predial-hook]&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;exten =&amp;gt; s,1,goto(${AMPUSER},1)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;exten =&amp;gt; 1234,1,Set(DIAL_TRUNK=my_trunk_number)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Do not edit the first two lines. On the&amp;nbsp;third&amp;nbsp;line, replace 1234 with the extension&amp;nbsp;that&amp;nbsp;you wish to restrict and&amp;nbsp;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;my_trunk_number&lt;/span&gt;&amp;nbsp;with the number of your trunk which we&amp;nbsp;retrieved&amp;nbsp;earlier. Add additional lines for more extensions, replacing 1234 with the extension number you want and&amp;nbsp;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;my_trunk_number&lt;/span&gt;&amp;nbsp;with the number of the trunk.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In closing, there exists a FreePBX module with a&amp;nbsp;purpose&amp;nbsp;similar to our's,&amp;nbsp;however&amp;nbsp;I think it overly complicates the issue in a way that most user will not&amp;nbsp;appreciate. Should you want to have a look, you can find it &lt;a href="http://www.freepbx.org/trac/browser/contributed_modules/release/routepermissions-0.3.2.4.tgz?format=raw"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div align="justify"&gt;&lt;b&gt;Moshe Brevda,&lt;/b&gt; FreePBX Development Team&lt;br /&gt;
(&lt;a href="http://www.freepbx.org/blog/lazytt"&gt;lazytt&lt;/a&gt; on the FreePBX forums)&lt;br /&gt;
&lt;i&gt;read more tips and tricks here: &lt;a href="http://www.mbrevda.blogspot.com/"&gt;www.mbrevda.blogspot.com&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-6475472564523427470?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PdFNweemJqwO8r9QDRheHZW_92A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PdFNweemJqwO8r9QDRheHZW_92A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PdFNweemJqwO8r9QDRheHZW_92A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PdFNweemJqwO8r9QDRheHZW_92A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/3tajBWXSRYg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/3tajBWXSRYg/freepbx-restrict-extension-to-specific.html</link><author>noreply@blogger.com (Moshe Brevda)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_rC4b9-PbBds/Ss8deHjnZiI/AAAAAAAAaq8/8usAmEBZ00k/s72-c/trunkname.JPG" height="72" width="72" /><feedburner:origLink>http://mbrevda.blogspot.com/2009/10/freepbx-restrict-extension-to-specific.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-6142018335023598762</guid><pubDate>Sun, 04 Oct 2009 00:58:00 +0000</pubDate><atom:updated>2011-05-14T22:06:10.524+03:00</atom:updated><title>Asterisk and Google Wave: 10 ideas</title><description>&lt;div style="text-align: justify;"&gt;Now that Google wave invites have started going out - lets see how long it will take for some wave - Asterisk integration. If you have already received you wave invite and are interested in developing, here are some ideas you may wish to consider:&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Conference app - control the conference and invite users to join from within wave&lt;/span&gt;&lt;/li&gt;
&lt;span class="fullpost"&gt;
&lt;li&gt;VM bot - alerting you to new vm, allowing playback, etc&lt;/li&gt;
&lt;li&gt;Call popup's with new caller info - not sure how annoying/useful this could be&lt;/li&gt;
&lt;li&gt;Click-to-call - initiate a call from with in wave&lt;/li&gt;
&lt;li&gt;Queue control/stats - log in/out of a queue, see real time stats&lt;/li&gt;
&lt;li&gt;Status - have asterisk update you wave status in real time with you on the phone/available status (is there even such a concept in wave? I really need an invite already!)&lt;/li&gt;
&lt;li&gt;Fax - fax a wave via asterisk!&lt;/li&gt;
&lt;li&gt;Receive faxes - although you would be simpler to just have your faxes forwarded to email&lt;/li&gt;
&lt;li&gt;Day/night mode - toggle your system call flow via a Day/Night style module&lt;/li&gt;
&lt;li&gt;Parking lot - view real-time parking lot stats, grab a caller out of the lot&lt;br /&gt;
&lt;/li&gt;
&lt;/span&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="fullpost"&gt;&lt;b&gt;Moshe Brevda,&lt;/b&gt; FreePBX Development Team&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="fullpost"&gt;&lt;a href="http://www.freepbx.org/blog/lazytt"&gt;(lazytt&lt;/a&gt; on the FreePBX forums)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="fullpost"&gt;&lt;i&gt;looking for more? &lt;a href="http://mbrevda.blogspot.com/"&gt;click here now!&lt;/a&gt;&lt;/i&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-6142018335023598762?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mVEXkpo-R0tpx8BpphZoVUHWSTo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mVEXkpo-R0tpx8BpphZoVUHWSTo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mVEXkpo-R0tpx8BpphZoVUHWSTo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mVEXkpo-R0tpx8BpphZoVUHWSTo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/YfJ84SVloZI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/YfJ84SVloZI/asterisk-and-google-wave-10-ideas.html</link><author>noreply@blogger.com (Moshe Brevda)</author><feedburner:origLink>http://mbrevda.blogspot.com/2009/10/asterisk-and-google-wave-10-ideas.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-8032663466049801086</guid><pubDate>Sun, 04 Oct 2009 00:46:00 +0000</pubDate><atom:updated>2009-10-06T00:11:24.185+02:00</atom:updated><title>Fax For Asterisk and FreePBX</title><description>&lt;div style="text-align: justify;"&gt;Digium's recent &lt;a href="http://www.reuters.com/article/pressRelease/idUS128957+06-Apr-2009+BW20090406"&gt;announcement&lt;/a&gt; of their new fax product "Fax for Asterisk", which can bring reliable and simple to set up faxing to asterisk, has spawned a new, all-to-common-these-days, question: When will FreePBX support the new application?&lt;br /&gt;
&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;
While there is no commitment as to if/when the new application will be supported in FreePBX, let's hope that there is a good reason for the 2.6 holdup... (2.6rc2 was released two weeks ago - now it seem as if 2.6 has been put on hold) ;)&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-8032663466049801086?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SES68Pz2XrjUAjFBu8fJW6TuCjg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SES68Pz2XrjUAjFBu8fJW6TuCjg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SES68Pz2XrjUAjFBu8fJW6TuCjg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SES68Pz2XrjUAjFBu8fJW6TuCjg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/jLQ-jYnH-NU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/jLQ-jYnH-NU/fax-for-asterisk-and-freepbx.html</link><author>noreply@blogger.com (Moshe Brevda)</author><feedburner:origLink>http://mbrevda.blogspot.com/2009/10/fax-for-asterisk-and-freepbx.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-395302227260903565</guid><pubDate>Thu, 09 Jul 2009 15:05:00 +0000</pubDate><atom:updated>2011-05-14T22:13:08.061+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">google</category><title>Is Labs Coming to Google Calendar? [updated]</title><description>&lt;div style="text-align: justify;"&gt;Speculation &lt;a href="http://blogoscoped.com/archive/2009-06-14-n42.html"&gt;has abounded&lt;/a&gt; regarding new features for Google Calendar, with users reporting the ability to &lt;a href="http://blogoscoped.com/forum/156032.html"&gt;see some new gadgets&lt;/a&gt; (albeit not use them). Now it seem that Calendar Labs is closer then ever. I'm not sure how long this has been up there, but take a look &lt;span class="fullpost"&gt;at &lt;a href="http://calendar.google.com/googlecalendar/images/combined_v9.gif"&gt;the .gif&lt;/a&gt; that Google uses to display icons with in Calendar:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/_rC4b9-PbBds/SlYL8xrd3YI/AAAAAAAAE68/C_fl8j-Axno/s1600-h/combined_v9.gif" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5356481945559489922" src="http://1.bp.blogspot.com/_rC4b9-PbBds/SlYL8xrd3YI/AAAAAAAAE68/C_fl8j-Axno/s400/combined_v9.gif" style="cursor: pointer; display: block; height: 117px; margin: 0px auto 10px; text-align: center; width: 341px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;
Notice the labs icon? This seems like a clear sign that Google intends to roll out  more features to Google Calendar, hopefully in the near future.&lt;br /&gt;
&lt;br /&gt;
Additional, notice the icon directly to the left of the labs icon. That looks like the drop down box from which you can chose to reply to an email in Gmail. I don't see that icon currently being used anywhere. Is Google thinking about integrating some sort of email-reply option directly from Calendar?&lt;br /&gt;
&lt;br /&gt;
The truth is, try as I might, I can't think of any "killer" gadgets that I would want to see in Google Calendar. I think its an extremely mature and solid product. Yet I'm sure Google will dream up something that we didn't know were missing. What features would you like to see added?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-style: italic;"&gt;UPDATE: &lt;a href="http://googleappsposts.blogspot.com/2009/07/introducing-google-calendar-labs.html"&gt;seem&lt;/a&gt; like we were correct!&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-395302227260903565?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Pqf-k-6gKplIyU6cZfDLT4zW7vM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Pqf-k-6gKplIyU6cZfDLT4zW7vM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Pqf-k-6gKplIyU6cZfDLT4zW7vM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Pqf-k-6gKplIyU6cZfDLT4zW7vM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/W_yZP1tr_fY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/W_yZP1tr_fY/is-labs-comming-to-google-calendar.html</link><author>noreply@blogger.com (Moshe Brevda)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_rC4b9-PbBds/SlYL8xrd3YI/AAAAAAAAE68/C_fl8j-Axno/s72-c/combined_v9.gif" height="72" width="72" /><feedburner:origLink>http://mbrevda.blogspot.com/2009/07/is-labs-comming-to-google-calendar.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-7202978518721467387</guid><pubDate>Mon, 06 Jul 2009 18:42:00 +0000</pubDate><atom:updated>2009-07-06T23:20:56.981+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">gmail</category><category domain="http://www.blogger.com/atom/ns#">sms</category><category domain="http://www.blogger.com/atom/ns#">google</category><title>New hints about Gmail international smsing</title><description>&lt;div style="text-align: justify;"&gt;&lt;a href="http://mbrevda.blogspot.com/2009/06/is-google-expanding-smss-to-rest-of.html"&gt;Previously&lt;/a&gt; noted, Gmail &lt;a href="http://twitter.com/mbrevda/status/2327143855"&gt;&lt;span style="font-style: italic;"&gt;temporarily&lt;/span&gt;&lt;/a&gt; had a (non working) option to send sms's to international cell phones (before they &lt;a href="http://twitter.com/mbrevda/status/2327983762"&gt;removed the sms option&lt;/a&gt; from Gmail Labs). (sms is currently limited to us phones) At the time, one of the error messages Gmail gave when trying to sms an international phone was "Your message was not delivered. [some number] cannot be verified as a valid mobile number...", leading to the obvious question: &lt;span class="fullpost"&gt;what is a verified number, and how do you verify your number?&lt;br /&gt;&lt;br /&gt;Recently, Google has added the option to  &lt;a href="http://googlesystem.blogspot.com/2009/06/google-account-recovery-via-sms.html"&gt;reset the password of a Google Account by SMS&lt;/a&gt;. Obviously, an option like this is a form of verification of your mobile number, by virtue of the fact that you wouldn't put in anybody else phone number - as this would put your account security at risk.&lt;br /&gt;&lt;br /&gt;Additionally, there have been reports new accounts &lt;a href="http://www.google.com/support/forum/p/gmail/thread?tid=594d1f76a0491649&amp;amp;hl=en"&gt;requiring sms activation&lt;/a&gt;. And for the longest time, you could receive your Google Calendar updates by sms - if you verify your phone first.&lt;br /&gt;&lt;br /&gt;All of these requirements would seem to be a step towards gathering a database of verified sms users which would fulfill two of Google's important rules. First, it would prevent spamming, as you wouldn't be able to sms a "random"  unverified number.  Only Google users who verified there numbers will be "textable". There will probably be an opt-out option as well. Second, it will allow Google to monitor sms habits by not only seeing what you are writing, but also by knowing exactly to whom you are sending the sms, and if that person reply's, etc.&lt;br /&gt;&lt;br /&gt;Bringing them yet one step closer to &lt;a href="http://mbrevda.blogspot.com/2009/03/is-google-reading-your-web-history.html"&gt;knowing more about you&lt;/a&gt; than you know about yourself.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-7202978518721467387?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pvG02Eq7PSlvJ_LKi6ws17utMOU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pvG02Eq7PSlvJ_LKi6ws17utMOU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pvG02Eq7PSlvJ_LKi6ws17utMOU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pvG02Eq7PSlvJ_LKi6ws17utMOU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/UYv91Ic93ak" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/UYv91Ic93ak/new-hints-about-gmail-international.html</link><author>noreply@blogger.com (Moshe Brevda)</author><feedburner:origLink>http://mbrevda.blogspot.com/2009/07/new-hints-about-gmail-international.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-7193445294447816145</guid><pubDate>Mon, 29 Jun 2009 11:25:00 +0000</pubDate><atom:updated>2009-07-28T07:31:19.203+03:00</atom:updated><title>Create an empty file of a specific size</title><description>&lt;div style="text-align: justify;"&gt;Recently, I wanted to run a quick test to see the download speed of a web host. All I wanted was to download a file, any file really, but I wanted something 1gb in size. Moving to the www root, here is what I did:&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;dd if=/dev/zero of=file_to-create bs=1k count=1000000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This instantly gave me a 1gb file which I was then able to download!&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-7193445294447816145?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_lfGWWCoiwAU7DSAYLdYrWnf9gE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_lfGWWCoiwAU7DSAYLdYrWnf9gE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_lfGWWCoiwAU7DSAYLdYrWnf9gE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_lfGWWCoiwAU7DSAYLdYrWnf9gE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/8vDfp9qv9Cc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/8vDfp9qv9Cc/create-empty-file-of-specific-size.html</link><author>noreply@blogger.com (Moshe Brevda)</author><feedburner:origLink>http://mbrevda.blogspot.com/2009/06/create-empty-file-of-specific-size.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-7068783987731339272</guid><pubDate>Mon, 22 Jun 2009 16:38:00 +0000</pubDate><atom:updated>2009-06-22T20:15:51.911+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">gmail</category><title>Is Google expanding sms's to the rest of the world?</title><description>&lt;div style="text-align: justify;"&gt;Is the big G planning on adding sms capabilities to gmail for international destinations? After a &lt;a href="http://gmailblog.blogspot.com/2008/10/almost-new-in-labs-sms-text-messaging.html"&gt;rocky start&lt;/a&gt;, Google (re)introduced sms-ing to US phones &lt;a href="http://gmailblog.blogspot.com/2008/12/really-new-in-labs-this-time-sms-text.html"&gt;in December&lt;/a&gt; 2008. Since then, if you would try to send an sms to a non US number you would get an error along the lines of "At this time sms is avalible to US numbers only".&lt;br /&gt;&lt;br /&gt;Today it seems that they are starting to allow &lt;span class="fullpost"&gt; sms'ing to international destinations. Right clicking on a contact and selecting Vidoe &amp;amp; more -&gt; Send SMS shows the following chat box:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rC4b9-PbBds/Sj-5KGe-WyI/AAAAAAAAE6Q/ccahLhRIUaI/s1600-h/untitled.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 224px; height: 191px;" src="http://4.bp.blogspot.com/_rC4b9-PbBds/Sj-5KGe-WyI/AAAAAAAAE6Q/ccahLhRIUaI/s400/untitled.JPG" alt="" id="BLOGGER_PHOTO_ID_5350198465529797410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Notice the new message quota system (which doesn't apply to US bound sms's). "Initially, you're granted a quota of fifty messages", says &lt;a href="http://mail.google.com/support/bin/answer.py?hl=en&amp;amp;ctx=mail&amp;amp;answer=140366"&gt;this&lt;/a&gt; help page which seems to have been posted today (2009-6-11). For every sms you send, your quota gets decresed by one. To earn them back: "Every time you receive an SMS message in Chat ... your quota increases by five". Additional, the quota gets reset every 24 hours.&lt;br /&gt;&lt;br /&gt;I'm not sure when this service is going live, but every number that I tired to sms got one of the following error's:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rC4b9-PbBds/Sj-4oHWptLI/AAAAAAAAE6I/yNZegHNKej4/s1600-h/untitled.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 270px;" src="http://3.bp.blogspot.com/_rC4b9-PbBds/Sj-4oHWptLI/AAAAAAAAE6I/yNZegHNKej4/s400/untitled.JPG" alt="" id="BLOGGER_PHOTO_ID_5350197881647772850" border="0" /&gt;&lt;/a&gt;Also, if you try to sms a contact that doesn't have any listed mobile numbers, the "add a number" prompt still warns you that "[sms chat is] US phones only for now".&lt;br /&gt;&lt;br /&gt;What's interesting to note is Google's business model here. While in the US the cost for sms's are covered by the reciver of the sms - and hence Google can "afford" to send them for free, it's no secret that send sms's to Europeian providers can be rather expensive. Google seems to have some system worked out a system with the carriers where they recoup the expenses for sent sms's from the money they receive on received sms's (think of it like the 900 number of sms). They even offer you a this tip in case you've run out of sms's for the day:&lt;br /&gt;&lt;blockquote&gt;"Keep in mind that if you'd like a higher message quota, you can always send an SMS to your own phone, and then reply to that message multiple times. Every time you send a reply message, your quota is increased by five. Effectively, you're buying more messages by paying your phone company for these outgoing messages."&lt;/blockquote&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-7068783987731339272?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/70DOslEvn1pWGS0WTHUlBuqyOYI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/70DOslEvn1pWGS0WTHUlBuqyOYI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/70DOslEvn1pWGS0WTHUlBuqyOYI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/70DOslEvn1pWGS0WTHUlBuqyOYI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/KqN7DBc96uI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/KqN7DBc96uI/is-google-expanding-smss-to-rest-of.html</link><author>noreply@blogger.com (Moshe Brevda)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_rC4b9-PbBds/Sj-5KGe-WyI/AAAAAAAAE6Q/ccahLhRIUaI/s72-c/untitled.JPG" height="72" width="72" /><feedburner:origLink>http://mbrevda.blogspot.com/2009/06/is-google-expanding-smss-to-rest-of.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-3408672757638199268</guid><pubDate>Sun, 21 Jun 2009 11:56:00 +0000</pubDate><atom:updated>2009-06-21T19:35:03.274+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sso</category><category domain="http://www.blogger.com/atom/ns#">facebook</category><title>Use your Google Account to Auto-Login to Facebook</title><description>&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.facebook.com/"&gt;Facebook&lt;/a&gt; has a cool (new?) feature that allows you to log in in to your Facebook page using you're Google (or Yahoo/Myspace) account. This eliminates the need to remember a different username/password for every site. All you need is you're Google account. Here's how to set it up:&lt;br /&gt;&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;First sign in to Facebook like you normally do. Then click Settings -&gt; Account Settings.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rC4b9-PbBds/Sj4k9WgJkKI/AAAAAAAAE5k/T6hIyUgDksE/s1600-h/1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 48px;" src="http://3.bp.blogspot.com/_rC4b9-PbBds/Sj4k9WgJkKI/AAAAAAAAE5k/T6hIyUgDksE/s400/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5349754043793772706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Click Linked Accounts.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rC4b9-PbBds/Sj4lEAyaiKI/AAAAAAAAE5s/yCUfemDroV4/s1600-h/2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 275px;" src="http://3.bp.blogspot.com/_rC4b9-PbBds/Sj4lEAyaiKI/AAAAAAAAE5s/yCUfemDroV4/s400/2.JPG" alt="" id="BLOGGER_PHOTO_ID_5349754158223886498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Select Google and click Link New Account.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rC4b9-PbBds/Sj4lWPYKFFI/AAAAAAAAE50/dBWvlebrI2E/s1600-h/3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 121px;" src="http://3.bp.blogspot.com/_rC4b9-PbBds/Sj4lWPYKFFI/AAAAAAAAE50/dBWvlebrI2E/s400/3.JPG" alt="" id="BLOGGER_PHOTO_ID_5349754471377933394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;A new page from Google will pop-up asking you to (log in if necessary and to) confirm the association, click Allow, and ensure that "remember this Approval" is checked.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rC4b9-PbBds/Sj5gWSXfNwI/AAAAAAAAE58/gK1jcbONqXY/s1600-h/untitled.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 201px;" src="http://1.bp.blogspot.com/_rC4b9-PbBds/Sj5gWSXfNwI/AAAAAAAAE58/gK1jcbONqXY/s400/untitled.JPG" alt="" id="BLOGGER_PHOTO_ID_5349819343366469378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;That's all! Next time you visit &lt;a href="http://www.facebook.com/"&gt;Facebook.com&lt;/a&gt;, if you are logged in to you're Google account, you will be automatically logged in - no need to enter your Facebook username/password. If only other sites would make life so simple. Twitter, are you listening?&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-3408672757638199268?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/j47Rn9Z9pgJa73a5jUvgZtPh-5E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/j47Rn9Z9pgJa73a5jUvgZtPh-5E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/j47Rn9Z9pgJa73a5jUvgZtPh-5E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/j47Rn9Z9pgJa73a5jUvgZtPh-5E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/XgbShNRFpCw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/XgbShNRFpCw/login-to-facebook-with-your-google.html</link><author>noreply@blogger.com (Moshe Brevda)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_rC4b9-PbBds/Sj4k9WgJkKI/AAAAAAAAE5k/T6hIyUgDksE/s72-c/1.JPG" height="72" width="72" /><feedburner:origLink>http://mbrevda.blogspot.com/2009/06/login-to-facebook-with-your-google.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-2069578750312745520</guid><pubDate>Thu, 21 May 2009 14:57:00 +0000</pubDate><atom:updated>2009-10-04T11:21:46.573+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sync</category><category domain="http://www.blogger.com/atom/ns#">nokia</category><category domain="http://www.blogger.com/atom/ns#">gmail</category><title>Gmail two way sync and calander sync for Nokia</title><description>&lt;div style="font-family: inherit;"&gt;Google just updated the supported sync protocol for Nokia s60 series phones such as the e71, to Microsoft's ActiveSync. This allows two-way syncing and calendar syncing.&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;
Get the full how-to &lt;a href="http://www.google.com/support/mobile/bin/answer.py?hl=en&amp;amp;answer=147951"&gt;here&lt;/a&gt;. I needed to upgrade Mail for Exchange to version 2.09 first, in order to get the sync working.&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;i&gt;update: this now includes syncing of email as well!&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify"&gt;&lt;div style="font-family: inherit;"&gt;&lt;b&gt;Moshe Brevda,&lt;/b&gt; FreePBX Development Team&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;a href="http://www.freepbx.org/blog/lazytt"&gt;lazytt&lt;/a&gt; - FreePBX forums&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;hi365 - IRC&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-2069578750312745520?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dmKfutTLfamtpWrUAyaelgxvJT4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dmKfutTLfamtpWrUAyaelgxvJT4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dmKfutTLfamtpWrUAyaelgxvJT4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dmKfutTLfamtpWrUAyaelgxvJT4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/T1BantP-B_U" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/T1BantP-B_U/gmail-two-way-sync-for-nokia.html</link><author>noreply@blogger.com (Moshe Brevda)</author><feedburner:origLink>http://mbrevda.blogspot.com/2009/05/gmail-two-way-sync-for-nokia.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-8338766454981422368</guid><pubDate>Wed, 20 May 2009 18:57:00 +0000</pubDate><atom:updated>2009-05-21T01:22:12.454+03:00</atom:updated><title>Use the keypad/number pad in nano</title><description>&lt;div style="text-align: justify;"&gt;For the longest time, I've been trying to figure how I can use the number pad in the linux text editor GNU nano. It felt very unnatural to have to use the numbers in the top of the keyboard - unintuitive and unnatural. Then I decided to RTFM! It's really quite simple: &lt;span class="fullpost"&gt; just start nano with the -K option, like this:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;span style="font-family:courier new;"&gt;nano -K /path/to/file&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="fullpost"&gt;Remembering to add the -K every time you run nano can be quite a drag. No fret, alias is here! Just run the following, and you will never have to add the -K again:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;alias nano='nano -K'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="fullpost"&gt;From now on, you can just run &lt;span style="font-family:courier new;"&gt;nano somefile&lt;/span&gt; and have your number pad enabled!&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;b&gt;Moshe Brevda,&lt;/b&gt; FreePBX Development Team&lt;br /&gt;&lt;a href="http://www.freepbx.org/blog/lazytt"&gt;lazytt&lt;/a&gt; - FreePBX forums&lt;br /&gt;hi365 - IRC&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Found this tip useful? Don't forget to donate by click the donate button to the right!&lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-8338766454981422368?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BzqhYNhyq358Y1Q3rY7swbvJqcY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BzqhYNhyq358Y1Q3rY7swbvJqcY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BzqhYNhyq358Y1Q3rY7swbvJqcY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BzqhYNhyq358Y1Q3rY7swbvJqcY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/Zd-c7h-mcnY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/Zd-c7h-mcnY/use-keypadnumber-pad-in-nano.html</link><author>noreply@blogger.com (Moshe Brevda)</author><feedburner:origLink>http://mbrevda.blogspot.com/2009/05/use-keypadnumber-pad-in-nano.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-5443113607691082027</guid><pubDate>Mon, 23 Mar 2009 09:19:00 +0000</pubDate><atom:updated>2009-03-24T02:04:28.825+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">google</category><category domain="http://www.blogger.com/atom/ns#">privacy</category><title>Is Google reading your web  history?</title><description>&lt;div align="justify"&gt;Generally, I'm not one of those that actually care much about privacy. Not that I don't value it. But in today's 'cloud' world, its inevitable that &lt;span style="font-style: italic;"&gt;someone, somewhere&lt;/span&gt; will have a bit more control over your information that you would like. You phone records are stored at the phone company (and they can monitor &lt;span style="font-style: italic;"&gt;any &lt;/span&gt;of your calls). You salary is clearly recorded in the books of you bank. Your cellphone movements are clearly tracked and your geographical position is know (more or less) every minute of that day.&lt;br /&gt;&lt;br /&gt;So when people ask me "How can we trust Google with our email and docs, web history, etc.", I try to explain to them that you can't. But then again, who can you trust? Are you sure that your smiley friendly bus driver isn't working as an informant for some private eye, reporting every time you get on or off the bus? Can you prove that your favorite coffee place isn't reporting your coffee addiction to the IRS, as proof that you have undeclared income (c'mmon! there is no way you can really afford $4.50 lattes in this economy! Unless your making a little extra something on the side...)? And we all know about &lt;a href="http://wikileaks.org/"&gt;wikileakes&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;What I'm trying to say is that, inasmuch as I would not post my password on the internet, and inasmuch as would NOT like it if you read my email, we all know that Google &lt;a href="https://mail.google.com/mail/help/privacy.html"&gt;scans&lt;/a&gt; your email to display relevant ads. And, honestly, have you never clicked Web History - even just to see how many web searches you've done in your google life time? (I've got: 19180). They have a ton of information in there about you. I know that. We all know that. And I'm sure that somewhere in the legal fine print that now-one bothers to read when we sign up, we consented to that as well.&lt;br /&gt;&lt;br /&gt;What I did find surprising though is this: apparently, every time Google serves you ad's, they also take a &lt;a href="http://gandolf.homelinux.org/%7Esmhanov/blog/?id=21"&gt;peek at your history&lt;/a&gt;. Yup, heard right. The take a look at your browsing history. It seems that at the moment they "only" read the amount of pages in your history, but they can &lt;a href="http://www.stevenyork.com/tutorial/getting_browser_history_using_javascript"&gt;theoretically read&lt;/a&gt; the entire history and every single site you visited.&lt;br /&gt;&lt;br /&gt;If you've been following this long, you know that I'm not so adverse to Google knowing where I buy my underwear or how I like to spice my chicken (sesame or lemon). They know that anyway: either by reading the order confirmation emails, or usually because they referred me to the site in the first place! But all this is, at least theoretically, with my consent. However Google doesn't make you sign a legal document before it serves you ads (and if they did, who would consent ;) ). At any given time, they can have a peek at your web history (not just the count), and keep tabs on you - even if you don't use any of there products!&lt;br /&gt;&lt;br /&gt;I'm not saying that they do - but the prospects sure are spooky.&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Moshe Brevda,&lt;/b&gt; FreePBX Development Team&lt;br /&gt;&lt;a href="http://www.freepbx.org/blog/lazytt"&gt;lazytt&lt;/a&gt; - FreePBX forums&lt;br /&gt;hi365 - IRC&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-5443113607691082027?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/b3DZflGnHiE5-ani6yLI4cV1d9g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/b3DZflGnHiE5-ani6yLI4cV1d9g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/b3DZflGnHiE5-ani6yLI4cV1d9g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/b3DZflGnHiE5-ani6yLI4cV1d9g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/xnRCz4GIg-s" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/xnRCz4GIg-s/is-google-reading-your-web-history.html</link><author>noreply@blogger.com (Moshe Brevda)</author><feedburner:origLink>http://mbrevda.blogspot.com/2009/03/is-google-reading-your-web-history.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-3320590232280303303</guid><pubDate>Tue, 17 Mar 2009 08:33:00 +0000</pubDate><atom:updated>2009-03-24T02:02:20.157+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">virtualbox</category><title>VirtualBox using high CPU</title><description>Recently, I tired setting up CentOS in a VirtualBox VM. After many unsuccessful attempts (seems to have something to do with cleanpar that I had set in kickstart), I finally got it working. Murphy however didn't sleep and immediately my cpu was up to 95%. Luckily, thy O so great, omnipresent google came to my rescue, and pointed out that what I needed was a vm kernel. Here's how I did it:&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cd /etc/yum.repos.d&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;wget http://vmware.xaox.net/centos/5.2/VMware.repo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;yum upgrade kernel&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Type &lt;span style="font-family:courier new;"&gt; y &lt;/span&gt;at the prompt, and reboot when the process is done. Presto! Oh, did I mention I take no responsibility if you systems ends up in an un-bootable state? :)&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;b&gt;Moshe Brevda,&lt;/b&gt; FreePBX Development Team&lt;br /&gt;&lt;a href="http://www.freepbx.org/blog/lazytt"&gt;lazytt&lt;/a&gt; - FreePBX forums&lt;br /&gt;hi365 - IRC&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Found this tip useful? Don't forget to donate by click the donate button to the right!&lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-3320590232280303303?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8ex7W9eIiJzB3Jk9qKpR4c-3MT0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8ex7W9eIiJzB3Jk9qKpR4c-3MT0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8ex7W9eIiJzB3Jk9qKpR4c-3MT0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8ex7W9eIiJzB3Jk9qKpR4c-3MT0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MoshesBlog/~4/JDOarHb-jP4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/JDOarHb-jP4/virtualbox-using-high-cpu.html</link><author>noreply@blogger.com (Moshe Brevda)</author><feedburner:origLink>http://mbrevda.blogspot.com/2009/03/virtualbox-using-high-cpu.html</feedburner:origLink></item></channel></rss>

