<?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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-2990724095005688149</atom:id><lastBuildDate>Sat, 19 Dec 2009 02:50:03 +0000</lastBuildDate><title>Moshe's Blog</title><description>Thoughts, tips and ideas on technology, with a focus on open source projects like Linux, Asterisk and FreePBX and other VoIP related stuff. 

by: Moshe Brevda</description><link>http://mbrevda.blogspot.com/</link><managingEditor>noreply@blogger.com (Moshe)</managingEditor><generator>Blogger</generator><openSearch:totalResults>22</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:emailServiceId>MoshesBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><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)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><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>2009-10-10T22:17:32.582+02: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;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&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;br /&gt;
&lt;/div&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;br /&gt;
&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;br /&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;br /&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;br /&gt;
&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;br /&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;br /&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;br /&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;br /&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;br /&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;br /&gt;
&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;br /&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/UVQvg8j0wKxaFboNeNMv9YXS2PM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UVQvg8j0wKxaFboNeNMv9YXS2PM/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/UVQvg8j0wKxaFboNeNMv9YXS2PM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UVQvg8j0wKxaFboNeNMv9YXS2PM/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)</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" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><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>2009-10-06T00:12:07.014+02: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;br /&gt;
&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;Conference app - control the conference and invite users to join from within wave&lt;/li&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;/ol&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Moshe Brevda,&lt;/b&gt; FreePBX Development Team&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.freepbx.org/blog/lazytt"&gt;(lazytt&lt;/a&gt; on the FreePBX forums)&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&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;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&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-6142018335023598762?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_itATiovjIt0hrk7Hc4TM_9z98Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_itATiovjIt0hrk7Hc4TM_9z98Q/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/_itATiovjIt0hrk7Hc4TM_9z98Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_itATiovjIt0hrk7Hc4TM_9z98Q/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)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total><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)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><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>2009-07-16T13:39:54.080+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 onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rC4b9-PbBds/SlYL8xrd3YI/AAAAAAAAE68/C_fl8j-Axno/s1600-h/combined_v9.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 341px; height: 117px;" src="http://1.bp.blogspot.com/_rC4b9-PbBds/SlYL8xrd3YI/AAAAAAAAE68/C_fl8j-Axno/s400/combined_v9.gif" alt="" id="BLOGGER_PHOTO_ID_5356481945559489922" border="0" /&gt;&lt;/a&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;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-395302227260903565?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wUURLVJhyHcYGR7ak7xjTj5cBCE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wUURLVJhyHcYGR7ak7xjTj5cBCE/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/wUURLVJhyHcYGR7ak7xjTj5cBCE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wUURLVJhyHcYGR7ak7xjTj5cBCE/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)</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" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><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)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><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)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><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)</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" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><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)</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" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><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)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><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)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><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)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><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)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://mbrevda.blogspot.com/2009/03/virtualbox-using-high-cpu.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-7655935038416132875</guid><pubDate>Thu, 04 Dec 2008 05:47:00 +0000</pubDate><atom:updated>2008-12-04T08:41:48.341+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Advanced Freepbx</category><title>Restricting call transfers with FreePBX</title><description>&lt;div style="text-align: justify;"&gt;So, you've managed to &lt;a href="http://mbrevda.blogspot.com/2008/11/restricting-outbound-calls-in-freepbx_15.html"&gt;lock&lt;/a&gt; &lt;a href="http://mbrevda.blogspot.com/2008/11/restricting-outbound-calls-in-freepbx.html"&gt;down&lt;/a&gt; your pbx. &lt;a href="http://mbrevda.blogspot.com/2008/11/restricting-outbound-calls-in-freepbx.html"&gt;No unwanted calls&lt;/a&gt; to any premium rate numbers anymore. Some of your users cant even call home unless &lt;a href="http://mbrevda.blogspot.com/2008/11/restricting-outbound-calls-in-freepbx_15.html"&gt;you whitelist their number&lt;/a&gt; (I mean you Susan, the chatty, always on the phone secretary!). But they have discovered one way to beat the system: [censored! (but here is a hint: it has to do with call transfers)]. Here is a simple and effective way restrict call transfers to internal extensions &lt;span style="font-weight: bold;"&gt;only&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;First, a little technical jargon to confuse/impress you: &lt;span class="fullpost"&gt; transferring a call with asterisk, is almost like placing one. Asterisk takes the extension (i.e. any number) that you called and tries to find a matching extension in the "call-transfer-context" - whatever that may be.  With freepbx, that context is set to &lt;span style="font-weight: bold;"&gt;from-internal&lt;/span&gt;, the &lt;a href="http://mbrevda.blogspot.com/2008/10/miscellaneouscustom-applicationextensio.html"&gt;omnipresent&lt;/a&gt;&lt;a href="http://mbrevda.blogspot.com/2008/10/miscellaneouscustom-applicationextensio.html"&gt;&lt;/a&gt; FreePBX context. For more on how FreePBX works with asterisk contexts and extensions, &lt;a href="http://mbrevda.blogspot.com/2008/10/miscellaneouscustom-applicationextensio.html"&gt;see here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To restrict calls from being transferred to local extensions only, all you need to do is to replace the default context with a more restrictive one. To do that, open &lt;span style="font-family:courier new;"&gt;/etc/asterisk/globals_custom.conf&lt;/span&gt; and add the following one line:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;TRANSFER_CONTEXT=ext-local&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will restrict all transfers to local extensions &lt;span style="font-weight: bold;"&gt;only&lt;/span&gt;. If you need more fine grained control over the context, concider &lt;a href="http://mbrevda.blogspot.com/2008/11/restricting-outbound-calls-in-freepbx_15.html"&gt;creating a whitelist&lt;/a&gt; based context.&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&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-7655935038416132875?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hgGOFGo6xlfNF84mPG5rKerKTBY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hgGOFGo6xlfNF84mPG5rKerKTBY/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/hgGOFGo6xlfNF84mPG5rKerKTBY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hgGOFGo6xlfNF84mPG5rKerKTBY/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/qyAURdBZbpA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/qyAURdBZbpA/restricting-call-transfers-with-freepbx.html</link><author>noreply@blogger.com (Moshe)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://mbrevda.blogspot.com/2008/12/restricting-call-transfers-with-freepbx.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-2027298642543445173</guid><pubDate>Sat, 15 Nov 2008 20:10:00 +0000</pubDate><atom:updated>2008-11-16T14:17:33.235+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">freepbx</category><title>Restricting outbound calls in FreePBX (whitelist)</title><description>&lt;div style="text-align: justify;"&gt;&lt;a href="http://mbrevda.blogspot.com/2008/11/restricting-outbound-calls-in-freepbx.html"&gt;Previously&lt;/a&gt;, we discussed &lt;span style="font-weight: bold;"&gt;preventing &lt;/span&gt;outbound calls from FreePBX by using two methods: Misc Applications and outbound routes. There is also (at least) two ways to &lt;span style="font-weight: bold;"&gt;allow &lt;/span&gt;outgoing calls using a whitelist, i.e. allowing calls &lt;span style="font-weight: bold;"&gt;only &lt;/span&gt;to the numbers specified.&lt;br /&gt;&lt;br /&gt;The first one is extremely simple, and I can already hear you saying "Duh!".&lt;span class="fullpost"&gt; But sometimes the answer to a problem is staring us right in the face and we miss it anyway. So at the risk of insulting some of you, and hopefully enlightening some of you, here it is: Password protect your outbound routes. Yes, extremely primitive - but it works! Password protect those routes that you don't want your users calling, and just leave the others unprotected. This will allow for an environment where you have very tight control over outbound calls.&lt;br /&gt;&lt;br /&gt;The second way to restrict outbound calls is much more sophisticated and allows for refined control of which extensions/user are restricted and which aren't (obviously without the use of a password). One of the goals of this method are to restrict the outbound calls but &lt;span style="font-weight: bold;"&gt;nothing else&lt;/span&gt;. This method will keep all other FreePBX applications available to the restricted user: Voice Mail, Conferences, Paging, Call Forwarding, etc. - will all be available. The only thing restricted will be outgoing calls.&lt;br /&gt;&lt;br /&gt;The first step is to segregate the restricted context form the other users. Start by opening &lt;code&gt;/etc/asterisk/extensions_custom.conf&lt;/code&gt; and adding the following context:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;[from-internal-restricted]&lt;br /&gt;#exec /var/lib/asterisk/bin/restricted.sh&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The next step is to make sure asterisk will 'follow' the 'exec'. Open &lt;code&gt;/etc/asterisk/asterisk.conf&lt;/code&gt; and make sure you have a line that reads:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;execincludes=yes ; support #exec in config files&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;(specifically, ensure there is no &lt;code&gt;;&lt;/code&gt; at the begging of the line). Next download &lt;a href="https://docs.google.com/View?docid=dhc7h3tr_87hsfd6chf&amp;amp;hl=en"&gt;this script&lt;/a&gt;, and save it to &lt;code&gt;/var/lib/asterisk/bin/restricted.sh&lt;/code&gt; . Now, create &lt;code&gt;/etc/asterisk/whitelist&lt;/code&gt; and add a list of numbers that you want whitelisted. Here a helpful hint: you can a space and a description after the number so that you remember who's number it is and why its there. Here's an example:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;2125551212 bob&lt;br /&gt;6565552121 marry&lt;br /&gt;4264441212 bill&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;The last step is to place any extension that you want restricted in to the restricted context. In FreePBX, click Extensions -&gt; select the extension -&gt; and scroll down to the context option. Append &lt;code&gt;-restricted&lt;/code&gt; to the text and click submit.&lt;br /&gt;&lt;br /&gt;Finally, from the linux cli, type amportal chown and reload the asterisk dialplan in your usual way, either by clicking the orange reload bar in FreePBX or by entering dialplan reload from the asterisk cli.&lt;br /&gt;&lt;br /&gt;Now, try to place a call from your restricted context - it should be blocked! The way this works is as follows: when you reload asterisk, it executes the restricted.sh scrip and includes its output in the dialplan (dynamically). The scipt reads the FreePBX generated dialplan and copys the entire from-internal-additional dialplan in to our custom context (well, not the entire dialplan per se - just the includes. For more on how this works see my &lt;a href="http://mbrevda.blogspot.com/2008/10/miscellaneouscustom-applicationextensio.html"&gt;previous&lt;/a&gt; &lt;a href="http://mbrevda.blogspot.com/2008/10/miscellaneouscustom-applicationextensio_16.html"&gt;articles&lt;/a&gt; on this site). It then reads the numbers listed in your whitelist file and creates routes for them as Local channels (which &lt;span style="font-weight: bold;"&gt;are&lt;/span&gt; callable by restricted extensions as they can call all &lt;span style="font-weight: bold;"&gt;internal&lt;/span&gt; extensions).Cool, eh?&lt;br /&gt;&lt;br /&gt;Got another way to restrict outgoing calls? Lets hear about them in the comments!&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Moshe Brevda, FreePBX Development Team&lt;/span&gt;&lt;br /&gt;lazytt - FreePBX forums&lt;br /&gt;hi365 - IRC&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Found this tip useful? Don't forget to donate by click the donate button to the right!&lt;/span&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-2027298642543445173?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ERKcZRNeYgo1eo7Wos3JP5AcQH0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ERKcZRNeYgo1eo7Wos3JP5AcQH0/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/ERKcZRNeYgo1eo7Wos3JP5AcQH0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ERKcZRNeYgo1eo7Wos3JP5AcQH0/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/JkBp0Ssp824" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/JkBp0Ssp824/restricting-outbound-calls-in-freepbx_15.html</link><author>noreply@blogger.com (Moshe)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">18</thr:total><feedburner:origLink>http://mbrevda.blogspot.com/2008/11/restricting-outbound-calls-in-freepbx_15.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-7042652761326872059</guid><pubDate>Tue, 04 Nov 2008 17:00:00 +0000</pubDate><atom:updated>2008-11-15T22:34:00.186+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">freepbx</category><title>Restricting outbound calls in FreePBX (blacklist)</title><description>&lt;div style="text-align: justify;"&gt;Perhaps one of the most requested features in FreePBX is the ability to configure calling permissions. While this is a complex and costly request from a development point of view, there are some simple techniques which can be used to provide some level of &lt;span style="font-weight: bold;"&gt;outbound&lt;/span&gt; call control. It is said that well written software can be used in a way totally different to what its author intended. Some of the current FreePBX modules can be 'exploited' to provide just such functionality. You may also want to have a look at the custom contexts module, however that is (still) considered a 'contributed' module, and isn't supported by FreePBX.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Typically, there are two types of outbound call control that you will want to implement:&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Call all numbers except these (blacklist)&lt;/li&gt;&lt;li&gt;Block all number except these (whitelist)&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;For both blacklists and white lists, there are (at least) two methods to block/allow calls. For this article, we will focus on &lt;span style="font-weight: bold;"&gt;blacklist&lt;/span&gt;ing numbers.&lt;br /&gt;&lt;br /&gt;Merriam-Webster defines a &lt;a href="http://www.merriam-webster.com/dictionary/blacklist"&gt;blacklist&lt;/a&gt; as "a list ... who are disapproved of". While only one method described here is actually a "list", both serve the same purpose: to restrict outbound calls. Which one you should use depends on your needs - and the length of your list.&lt;br /&gt;&lt;br /&gt;If you only need to block one number you could set up a Misc Application with a destination of Hangup. To do this, click on Misc Applications from the module tool bar on the left hand side of the FreePBX window (if you don't see the module, you will need to install it by clicking Module Admin &lt;span class="info"&gt;-&gt; Check for updates online -&gt;&lt;/span&gt; Misc Application -&gt; Download and Install -&gt; Process (top or bottom of the page) ). Once the module page opens, you have the option to enter a new Misc Application. Enter a description in the Description box and the number that you wish to block in the Feature Code box.&lt;br /&gt;&lt;br /&gt;Now select a Hangup (or Busy) from the Terminate Call destinations option. Hit submit, click the orange bar, and reload FreePBX. Try to call the blocked number - your phone should disconnect the call (or play a busy signal).&lt;br /&gt;&lt;br /&gt;You can take this a step further by sending the call to an announcement explaining that (and why) the call is barred, and then going to Hangup.&lt;br /&gt;&lt;br /&gt;While this method is good if you want to block one specific mother (your wife/girlfriend from calling her mother?) what do you do if you want to block a whole list of numbers? (Premium rate numbers come to mind here). This can be accomplished quite simply as well (seems everything is simple when using FreePBX!).&lt;br /&gt;&lt;br /&gt;First click on Trunks, and click Add Custom Trunk. In the dialstring add BARRED and click Submit. Next, click on outbound routes. Use standard dial rules to create dial rules for all your blocked numbers - list them one at a time or use dial patterns. You should probably call this Outbound Route BARRED (enter it in the Route name box). In the &lt;span class="info"&gt;Trunk Sequence&lt;/span&gt;, select BARRED. Now click submit.&lt;br /&gt;&lt;br /&gt;Here comes an important step: using the arrows under the route BARRED, move the route to the top of the list. Now click submit, click the orange bar, and reload FreePBX. Your calls should now be blocked. Once again, should you need to play a specific message or explanation, you can get fancy by sending the custom trunk to a specific destination or even a custom context.&lt;br /&gt;&lt;br /&gt;Check back here soon for the next installment of this topic: R&lt;a href="http://mbrevda.blogspot.com/2008/11/restricting-outbound-calls-in-freepbx_15.html"&gt;estricting outbound calls in FreePBX (whitelist)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;b&gt;update:&lt;/b&gt; Philippe Lindheimer, the FreePBX Project Lead, has pointed out that best practice would be to always have an EMERGENCY route, and keep that as your first route. You would then place your BARRED route in second place. &lt;a mce_href="http://www.freepbx.org/open-telephony-training-seminar" href="http://www.freepbx.org/open-telephony-training-seminar"&gt;Click here&lt;/a&gt; to find out how you can hear more best practices.&lt;/span&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;span class="fullpost"&gt;&lt;span style="font-style: italic;"&gt;Found this tip useful? Don't forget to donate by click the donate button on the right!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&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-7042652761326872059?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/M1HaOn20fnNnOMQD6_sgH7mz024/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/M1HaOn20fnNnOMQD6_sgH7mz024/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/M1HaOn20fnNnOMQD6_sgH7mz024/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/M1HaOn20fnNnOMQD6_sgH7mz024/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/MCpx0tr089Q" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/MCpx0tr089Q/restricting-outbound-calls-in-freepbx.html</link><author>noreply@blogger.com (Moshe)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://mbrevda.blogspot.com/2008/11/restricting-outbound-calls-in-freepbx.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-4082020459758512586</guid><pubDate>Thu, 30 Oct 2008 22:42:00 +0000</pubDate><atom:updated>2008-11-15T18:08:51.622+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">freepbx</category><title>BLF and FreePBX feature codes</title><description>One of the really cool things added to the&lt;a href="http://www.freepbx.org/news/2008-09-19/freepbx-2-5-0-is-final"&gt; latest version of FreePBX&lt;/a&gt; is support for &lt;a href="http://svncommunity.digium.com/svn/russell/asterisk-1.4/func_devstate-1.4/"&gt;Russell's devstate backport for Asterisk 1.4&lt;/a&gt;. Today I decided to have a look at how it works, and I found it to be extremely simple and straightforward to set up. Obviously, you need to add the backport to asterisk. Luckily, that is extremely easy - just follow the directions in the readme.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Next, add the following line to amportal.conf (if it isn't already there):&lt;br /&gt;&lt;code&gt;&lt;br /&gt;USEDEVSTATE=true&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;I was looking to see the status of my Follow-Me, so I needed to configure one of the BLF's on my phone to reflect on the its status. To do that I needed to set the BLF to watch feature code that I would normally dial to activate the Follow-Me: *21200. I updated my 00000000.xml directory configuration file for my Polycom 650 as follows:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;             &amp;lt;item&amp;gt;&lt;br /&gt;                     &amp;lt;fn&amp;gt;Call Forwarding&amp;lt;/fn&amp;gt;&lt;br /&gt;                     &amp;lt;ct&amp;gt;*21200&amp;lt;/ct&amp;gt;&lt;br /&gt;                     &amp;lt;sd&amp;gt;7&amp;lt;/sd&amp;gt;&lt;br /&gt;                     &amp;lt;ad&amp;gt;0&amp;lt;/ad&amp;gt;&lt;br /&gt;                     &amp;lt;ar&amp;gt;0&amp;lt;/ar&amp;gt;&lt;br /&gt;                     &amp;lt;bw&amp;gt;1&amp;lt;/bw&amp;gt;&lt;br /&gt;                     &amp;lt;bb&amp;gt;0&amp;lt;/bb&amp;gt;&lt;br /&gt;             &amp;lt;/item&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;I then rebooted my phone, and like the magic that FreePBX is, I can now tell by a glance what the Follow Me status is. Now if only setting up an &lt;a href="http://www.ambientdevices.com/cat/orb/orborder.html"&gt;orb&lt;/a&gt; would be as simple!&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;lazytt - FreePBX forums&lt;br /&gt;hi365 - IRC&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-4082020459758512586?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LY5DOkWv1xgsc25v2DuxC7DucwY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LY5DOkWv1xgsc25v2DuxC7DucwY/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/LY5DOkWv1xgsc25v2DuxC7DucwY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LY5DOkWv1xgsc25v2DuxC7DucwY/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/-QZrZIhvOdY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/-QZrZIhvOdY/blf-and-freepbx-feature-codes.html</link><author>noreply@blogger.com (Moshe)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://mbrevda.blogspot.com/2008/10/blf-and-freepbx-feature-codes.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-1077087315928038537</guid><pubDate>Tue, 28 Oct 2008 17:14:00 +0000</pubDate><atom:updated>2008-11-15T18:09:13.537+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">asterisk</category><title>Howto: list Asterisk contexts and includes</title><description>After all our discussions of asterisk contexts, you my be looking for a simple way to list all your asterisk contexts and their includes. Just type (or copy and paste) the following at you're Linux CLI:&lt;span class="fullpost"&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;asterisk -rx 'dialplan show' | \&lt;br /&gt;awk -F"'" '&lt;br /&gt;BEGIN {printf "digraph dialplan {\n";};&lt;br /&gt;/^\[ Context/ {context=$2};&lt;br /&gt;/^  Include =&gt;/ {printf "\t%s -&gt; %s\n",context,$2};&lt;br /&gt;END {printf "}\n"}&lt;br /&gt;'&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;After pressing enter, you will see something like this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;from-pstn -&gt; from-pstn-custom&lt;br /&gt;from-pstn -&gt; ext-did&lt;br /&gt;from-pstn -&gt; ext-did-post-custom&lt;br /&gt;from-pstn -&gt; from-did-direct&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Got a better way to list your asterisk includes? Show it in the comments!&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;br /&gt;&lt;span style="font-style: italic;"&gt;Found this tip useful? Don't forget to donate by click the donate button on the right!&lt;/span&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-1077087315928038537?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/el5OIv_UDtZOV3-5FSlbKPoi8-M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/el5OIv_UDtZOV3-5FSlbKPoi8-M/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/el5OIv_UDtZOV3-5FSlbKPoi8-M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/el5OIv_UDtZOV3-5FSlbKPoi8-M/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/F-TElTx23aY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/F-TElTx23aY/howto-list-asterisk-contextss-and.html</link><author>noreply@blogger.com (Moshe)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://mbrevda.blogspot.com/2008/10/howto-list-asterisk-contextss-and.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-826535147657321508</guid><pubDate>Thu, 16 Oct 2008 10:19:00 +0000</pubDate><atom:updated>2008-10-31T00:40:33.969+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Advanced Freepbx</category><title>Miscellaneous/Custom application/extensions: How to extend FreePBX with custom dialplan (part 2 of 2)</title><description>&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;In &lt;a href="http://mbrevda.blogspot.com/2008/10/miscellaneouscustom-applicationextensio.html"&gt;part 1&lt;/a&gt;, we were discussing the basics of how the Asterisk dialplan works. To recap: asterisk is made up of contexts, which can in turn include more context, creating the whole dialplan. FreePBX takes advantage of this structure by creating a lot of contexts and then included these in each other. Until now, the easiest way to include your own custom dialplan was to put it in one of custom context that FreePBX intentionally leaves blank for the purpose of customization. Now (actually since version 2.3) FreePBX includes a module to make the process easier, simpler and cleaner.&lt;br /&gt;&lt;br /&gt;To include your own dialplan in the call flow, we use a combination of modules. &lt;span class="fullpost"&gt;First, we need to tell FreePBX where in our dialplan we would like to point to. To do this, we set up a &lt;span style="font-weight: bold;"&gt;Custom Destination&lt;/span&gt; (from the tools tab) with the custom description pointing to out custom dialplan in the format of &lt;code&gt;context, extension, priority&lt;/code&gt;. To refer back to our previous example, we would set the custom destination to: &lt;code&gt;&lt;span class="fullpost"&gt;&lt;code&gt;play-monkeys,66,1&lt;/code&gt;&lt;/span&gt;&lt;/code&gt;. We will also add a Description so that we can easily remember what this dialplan refers to. Lets call it&lt;code&gt; play-monkeys&lt;/code&gt;. Then click submit.&lt;br /&gt;&lt;br /&gt;Next, we need to create a Miscellaneous Application. The &lt;span style="font-weight: bold;"&gt;Misc Application&lt;/span&gt;  module allows us to set up an extension (remember, in Asterisk an extension is somewhere in the dialplan that you can call - not necessarily a phone) that can point to anywhere. For example, if you want your users to be able to call an IVR which is usually only heard by inbound callers, you can set a feature code to call the IVR every time the feature code is dialed. Now we will set up a feature code to call out custom context: Click Misc Application&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;from the setup tab, and enter a feature code, say &lt;code&gt;11234&lt;/code&gt;. Next Enter a description, say &lt;code&gt;call monkeys&lt;/code&gt;. Finally, chose our custom Application form the Destination menu &lt;code&gt;Custom Application: play-monkeys&lt;/code&gt; and finally click submit.&lt;br /&gt;&lt;br /&gt;Now your all set! Reload FreePBX by clicking the orange bar, and call &lt;code&gt;11234&lt;/code&gt; - you should hear the tt-monkeys file being played back!&lt;br /&gt;&lt;br /&gt;There is one more thing to keep in mind. Sometimes, for whatever reason, you don't want to call your custom dialplan directly from FreePBX. Nevertheless, it is important to make sure that you don't accidentally assign a duplicate extension in both FreePBX and the dialplan. Being that FreePBX automatically picks a lot of the extensions it assigns, we need to let it know which extensions NOT to use. To do that, we use the &lt;span style="font-weight: bold;"&gt;Custom Extension&lt;/span&gt; module (tools t&lt;span&gt;ab)&lt;span&gt;, and we enter the extension number we want to prevent FreePBX from using. This will prevent FreePBX from chosing an extension that you already assigned manually in the dialplan. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;That's all. Be sure to &lt;a href="http://mbrevda.blogspot.com/2008/10/howto-list-asterisk-contextss-and.html"&gt;check back again next week for a tip&lt;/a&gt; on&lt;/span&gt;&lt;/span&gt; how to list all of the contexts and their includes from the dialplan!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Moshe Brevda,&lt;/b&gt; FreePBX Development Team&lt;br /&gt;lazytt - FreePBX forums&lt;br /&gt;hi365 - IRC&lt;br /&gt;&lt;/span&gt;&lt;/div&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-826535147657321508?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UW_ErDuUER0epzj_JC6NneUD0_U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UW_ErDuUER0epzj_JC6NneUD0_U/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/UW_ErDuUER0epzj_JC6NneUD0_U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UW_ErDuUER0epzj_JC6NneUD0_U/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/68GgNjoxd0A" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/68GgNjoxd0A/miscellaneouscustom-applicationextensio_16.html</link><author>noreply@blogger.com (Moshe)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://mbrevda.blogspot.com/2008/10/miscellaneouscustom-applicationextensio_16.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-2450042276946897174</guid><pubDate>Mon, 06 Oct 2008 21:57:00 +0000</pubDate><atom:updated>2008-11-04T16:11:17.673+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Advanced Freepbx</category><title>Miscellaneous/Custom application/extensions: How to extend FreePBX with custom dialplan (part 1 of 2)</title><description>&lt;div style="text-align: justify;"&gt;FreePBX was primarily designed to be a simple and easy to tool for programming asterisk dialplan and call flow. In the name of simplicity, however, it is sometimes necessary to sacrifice  advanced features and overly complex ways of doing things. FreePBX takes a great middle ground in providing the best of both worlds: on one hand,  an extremely powerful yet intuitive and simple GUI, and on the other hand a really neat way to seamlessly extend the gui into 'raw' dialplan. This is done using a combination of the Custom and Miscellaneous modules.&lt;br /&gt;&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;First, a small refresher on Asterisk Dialplan. Every asterisk instruction is composed of four parts:&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Context&lt;/li&gt;&lt;li&gt;Extension&lt;/li&gt;&lt;li&gt;Priority and&lt;/li&gt;&lt;li&gt;Application&lt;/li&gt;&lt;/ul&gt; For example:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;[play-monkeys]&lt;br /&gt;exten =&gt; 66,1,Playback(tt-monkeys)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;In this example, when a call hits extension &lt;code&gt;66&lt;/code&gt;, priority &lt;code&gt;1&lt;/code&gt; in context  &lt;code&gt;play-monkeys&lt;/code&gt;  asterisk will   &lt;code&gt;Playback&lt;/code&gt; the &lt;code&gt;tt-monkeys&lt;/code&gt; voice prompt. Additionally, Asterisk also includes the ability to include one (or more) contexts inside another using the (believe it or not...) include command, for example:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;code&gt;[some-context]&lt;br /&gt;exten =&gt; stuff here&lt;br /&gt;include some-other-context&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/code&gt;&lt;div style="text-align: justify;"&gt;FreePBX takes advantage of the include feature to keep its dialplan simple and clean by breaking up the dialplan in to smaller contexts. The context FreePBX uses for its call routing is the &lt;code&gt;from-internal&lt;/code&gt; context. &lt;code&gt;from-internal&lt;/code&gt; itself is pretty much a blank context - accept for two includes. You can see it here:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;code&gt; [from-internal]&lt;br /&gt;include =&gt; from-internal-xfer&lt;br /&gt;include =&gt; bad-number&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div style="text-align: justify;"&gt;&lt;code&gt;from-internal-xfer &lt;/code&gt;includes (amongst others) &lt;code&gt;from-internal-additional&lt;/code&gt; and &lt;code&gt;from-internal-custom&lt;/code&gt;. &lt;code&gt;from-internal-additional&lt;/code&gt; is also pretty sparse - except for some more includes  of many, many smaller context, corresponding to the entire FreePBX generated dialplan. &lt;code&gt;from-internal-custom &lt;/code&gt;is always included - and always empty - so that you can use it as you'd like. Simply start a new context in &lt;code&gt;/etc/asterisk/extensions_custom.conf&lt;/code&gt; and add your dialplan there. So to include our play-monkeys context in the FreePBX generated context we would add the following to &lt;code&gt;/etc/asterisk/extensions_custom.conf&lt;/code&gt;:&lt;br /&gt;&lt;/div&gt;&lt;code&gt;&lt;br /&gt;[from-internal-custom]&lt;br /&gt;include =&gt; play-monkeys&lt;br /&gt;&lt;br /&gt;[play-monkeys]&lt;br /&gt;exten =&gt; 66,1,Playback(tt-monkeys)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;followed by a dialplan reload (&lt;code&gt;asterisk -rx "dialplan reload"&lt;/code&gt; or &lt;code&gt;asterisk -rx "extension reload" &lt;/code&gt; if your on asterisk 1.2). That's all! Now pick up an extension and dial 66. You should hear the tt-monkeys file being played back.&lt;br /&gt;&lt;br /&gt;While this method is really simple, its got its drawbacks: If you were to include some code with, say, extension 66, and then you would set up a phone at extension 66 in FreePBX - what would happen when you dial 66?&lt;br /&gt;&lt;br /&gt;That's right, asterisk would be kinda confused: it wouldn't know which '66' to call (actually it would pick one of them - but which is another story). In order to prevent such a situation, FreePBX rigorously protects the dialplan from having a double entry. You can't, ever, have two extension with the same extension number (try it!). You also can't have other 'destinations' (which are also called extension in asterisk dialplan language) such as ring groups or queues with the same extension number as another extension.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;to be continued...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;update: &lt;a href="http://mbrevda.blogspot.com/2008/10/miscellaneouscustom-applicationextensio_16.html"&gt;part 2 is here!&lt;/a&gt;&lt;/span&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;lazytt - FreePBX forums&lt;br /&gt;hi365 - IRC&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-2450042276946897174?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_54dnBwyeqM5-XILSgGycZHlK-E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_54dnBwyeqM5-XILSgGycZHlK-E/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/_54dnBwyeqM5-XILSgGycZHlK-E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_54dnBwyeqM5-XILSgGycZHlK-E/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/siX9dIoBChk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/siX9dIoBChk/miscellaneouscustom-applicationextensio.html</link><author>noreply@blogger.com (Moshe)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://mbrevda.blogspot.com/2008/10/miscellaneouscustom-applicationextensio.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-912795088758066020</guid><pubDate>Thu, 25 Sep 2008 21:59:00 +0000</pubDate><atom:updated>2008-10-07T19:02:24.261+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">freepbx</category><category domain="http://www.blogger.com/atom/ns#">asterisk</category><title>Time Groups &amp; Time Conditions</title><description>&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.blogger.com/news/2008-09-19/freepbx-2-5-0-is-final" title="Read all about it!" target="_blank" id="a95e"&gt;FreePBX 2.5&lt;/a&gt; breaks down Time Conditions in to two separate modules: Time Groups and Time Conditions. The reason? To confuse you! Nay, we wouldn't do that. But in case we did, this should set the record straight.&lt;br /&gt;&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;First, lets have a look at the old way of doing things: For illustrative purposes, we'll talk about  the CEO of a multi billion dollar corporation. Obviously, as the most powerful and best paid person in the company, he does the least amount of work, and when he does, he tires quickly. Fortunately for him, they built his office with tons of amenities - including a &lt;a href="http://www.yelonyc.com/power-naps.cfm" title="power naping station" target="_blank" id="u4p:"&gt;power napping station&lt;/a&gt; where he takes a daily afternoon nap. There is just one thing they forgot to do: automatically turn off his phone during that period. This is the precise purpose of time conditions.&lt;br /&gt;&lt;br /&gt;Until now, a setup like this required a lot of work. First, you would set a time condition for Monday morning from 10:00 am until 12:30pm. You would then set the "Destination if time matches" as your extensions. As the "Destination if time does not match", you would put in the next time condition - 2:00pm to 3:30pm (wish those were your working hours, eh?). But wait - you didn't create that time condition yet. So you'll need to save this one, then create the next one. If your still following, you'll relies that you will run in to this problem again - the 'condition failed' destination is not yet created. Or in other words, you need to work backwards, starting from Thursday afternoon, and working up the week from there.&lt;br /&gt;&lt;br /&gt;By the time your done, you should have at least 10 different time conditions - just for this one extension. Now imagine if there are 4 other people in the company on the same schedule - were pushing &lt;b&gt;fifty&lt;/b&gt; time conditions - for just five extensions! And that not including the usual company widetime conditions - including various work schedule's, open hours, holidays, etc.&lt;br /&gt;&lt;br /&gt;Here to save the day is &lt;a href="http://www.blogger.com/trac/ticket/1695" title="naftali5's Abstracted Time Groups and updated Time Conditions" target="_blank" id="kwf-"&gt;naftali5's Abstracted Time Groups and updated Time Conditions&lt;/a&gt;, (as implemented by FreePBX project lead - Philippe Linheimer). In a nut shell, what this upgrade does is it separates the time &lt;i&gt;condition&lt;/i&gt; from the &lt;i&gt;destination&lt;/i&gt;allowing for the same 'set' of conditions to be 'reused' many times. Back to our example. In order to accommodate our tired CEO, we would click on the Time Groups module (assuming that the Time Conditionsmodule is installed) and create a new time group by clicking add a new time group. Enter a description, such as "executive working hours". Now start by creating the first time group (10:00am-12:30 pm, mon-thu) and click Submit. Now pick the "Executive working hours" from the time groups menu, and add the second time group (2:00pm - 3:30pm mon-thu), and click submit. When your done it should look like this:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;div id="tal:" style="padding: 1em 0pt; text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rC4b9-PbBds/SNwMMhZiAvI/AAAAAAAAEw0/RuQqNiWtjUI/s1600-h/timegrp.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_rC4b9-PbBds/SNwMMhZiAvI/AAAAAAAAEw0/RuQqNiWtjUI/s320/timegrp.png" alt="" id="BLOGGER_PHOTO_ID_5250084674870575858" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Now, click on the Time Condition module. Add a time condition called "CEO's working hours" and select "Executive working hours" from the time groups drop-down list. Now, simply select the CEO's extension as the "Destination if time matches" and his voicemail as the "Destination if time does not match" (or send the call wherever you would like - depending on your needs). Bravo! Can it be simpler? If you need to set the same time conditions for other exec's, just create a new time condition - and reuse the time group as many times as you'd like! The time condition should look something like this:&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="l5wt" style="padding: 1em 0pt; text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rC4b9-PbBds/SNwMmZ9-ysI/AAAAAAAAEw8/nhDYRlV32ag/s1600-h/timecondtion.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_rC4b9-PbBds/SNwMmZ9-ysI/AAAAAAAAEw8/nhDYRlV32ag/s320/timecondtion.png" alt="" id="BLOGGER_PHOTO_ID_5250085119552572098" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;One more thing:&lt;/b&gt;&lt;br /&gt;This solution beautifully and simply addresses our needs and allows for reusing the time groups while keeping the time condition separate.There is just one hiccup: said CEO does not like to be disturbed while he smokes his cigar's and sips Chardonnay. He needs a simple way to be able to manually override the time conditions and send all his calls to voice mail. That's what the "Day/Night Mode Association" option is for (assuming you have the day/night module installed). You can set a Day/Night Control with a "Night" destination of the CEO's voicemail. When ever he needs to smoke his cigars, he can just dial his Day/Night control code - and all his call will be routed to his voicemail.&lt;br /&gt;&lt;br /&gt;A more down-to-earth use of Day/Night mode association: just because you set your businesses time conditions, doesn't meant that bad weather wont force you to close early. Use a Day/Night Control to set your business to go in to night mode early. Or have your receptionist do it - without needing to touch your delicate FreePBX gui!&lt;br /&gt;&lt;br /&gt;The use of Day/Night controls are endless - and can introduce some form of dynamic call-flow control. What is your best/wildest implementation of Time Groups/Conditions? Lets hear about it in the comments!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;b&gt;Moshe Brevda,&lt;/b&gt; FreePBX Development Team&lt;br /&gt;lazytt - 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-912795088758066020?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xhvH9khCfEiLCvJWIjxr4DkVgh4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xhvH9khCfEiLCvJWIjxr4DkVgh4/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/xhvH9khCfEiLCvJWIjxr4DkVgh4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xhvH9khCfEiLCvJWIjxr4DkVgh4/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/bysxjtEITdM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/bysxjtEITdM/freepbx-2.html</link><author>noreply@blogger.com (Moshe)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_rC4b9-PbBds/SNwMMhZiAvI/AAAAAAAAEw0/RuQqNiWtjUI/s72-c/timegrp.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://mbrevda.blogspot.com/2008/09/freepbx-2.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2990724095005688149.post-7282199743408781593</guid><pubDate>Tue, 23 Sep 2008 05:19:00 +0000</pubDate><atom:updated>2008-10-05T18:38:11.926+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">freepbx</category><category domain="http://www.blogger.com/atom/ns#">asterisk</category><title>Queue weights vs. Queue priorities</title><description>&lt;div style="text-align: justify;"&gt;FreePBX version 2.5 seems to be coming along real nicely and hopefully will be out of beta any &lt;strike&gt;day&lt;/strike&gt; minute now, with way over &lt;a href="http://freepbx.org/trac/query?status=closed&amp;amp;milestone=2.5&amp;amp;order=priority" target="_blank"&gt;500&lt;/a&gt;(!) bug fixes and closed tickets, and an elephant load of &lt;a href="http://freepbx.org/trac/milestone/2.5" target="_blank"&gt;cool new features&lt;/a&gt;. A big tip of the hat to Philippe Lindheimer, the FreePBX projects leader, under who's leadership (and hard work) this great milestone has been achieved. The Chinese are fond of saying "An army of a thousand is easy to find, but, ah, how difficult to find a general." How true! Without Philippe's guidance and unique vision of the project, it would probably long be covered in moldy green with every release bumping the bug to feature ratio by 3:.001. Thank you Philippe for making FreePBX what it is!&lt;br /&gt;&lt;/div&gt;&lt;p style="text-align: justify;"&gt;Lets have a look at two new cool features in FreePBX 2.5: Queue weights and Queue priorities.&lt;span class="fullpost"&gt; We'll start with the Queue priorities module. Queue priorities essentially allows you to give a call a greater priority in a queue. Think of it as the First Class check-in counter - only your standing in the same line as the 'commoners'. Once you mark a caller with higher priority, their position in the queue is automatically promoted - so that &lt;b&gt;their&lt;/b&gt; call gets answered quicker than the others. To illustrate: if Jack is waiting in a queue with priority 1 and Jill comes along at priority 10 - who do you think is going to be answered first? Being that Jill is the holder of a First Class ticket - she will be answered first &lt;b&gt;even if Jack is holding for a longer time!&lt;/b&gt; Neat, eh? Now add Jake, holding 'only' a business class ticket - say with priority 5, where will he go? Being that he is the second highest priority he will be second in our example - after Jill (10) but before Jack (0).&lt;br /&gt;&lt;br /&gt;Queue weights does something similar only in reverse. It gives the queue a priority (called a weight) versus the other queues. If that sounds confusing, then try this: imagine, back to our airport, that instead of all the people standing at one check-in counter there are three counters - one for first class, one for business class, and one for the rest of us. Unfortunately, all the people that usually man the counters ran off to the &lt;a href="http://freepbx.org/open-telephony-training-seminar" target="_blank"&gt;OTTS&lt;/a&gt;, and only Sally stayed on to check in the passengers. So now we have people waiting in three different lines and Sally needs to decide whom to check in first. As I'm sure you guessed, Sally will first check-in those waiting at the first class counter as &lt;b&gt;they have the highest weight&lt;/b&gt;, or importance to Sally and her self centered, money hungry, step-on-the-little-guys enterprise).&lt;br /&gt;&lt;br /&gt;Another application of call weights (and I bet this one will hit a bit closer to home): the small business. I'm talking about the (more or less) one man business where the sales guy is also the janitor, the CEO is also the secretary, and the technician is also the delivery man. And all three are one and the same guy. But in order to give the big company appearance, you set up a PBX with fancyshmancy stuff like ivr's and queues and music on hold. (Yes you! C'mon, don't look at me like that - you know that's what got the geek in you attracted to asterisk in the first place...). Anyway so your sales/management/technical/maintenance/logistic team (aka you) have all your phone(s) logged in to the different queues. Obviously its business (sales) before pleasure (nothing like pulling an allnighter trying to fiddle with that new linux app that you got off some guy on IRC, trying to impress an old client), and you want to receive the calls in the sales queue before those in the technical assistance queue. This is where call weights comes in to the picture: you can set the weight of the sales queue to be higher than that of the technical support queue, and, like the magic that asterisk is, callers in the sales queue will always come out ahead of the callers in the technical queue (you should of never logged in to that one to begin with anyway - its usually full of annoying clients who need help after trying to "fix" their system).&lt;br /&gt;&lt;br /&gt;Truth is, in that last example, you could do exactly the same thing with queue priorities - give the people calling for sales a higher priority (vs. giving the queue a higher weight). But being the geek that you are, you want to impress your &lt;strike&gt;family and friends'&lt;/strike&gt; clients by announcing their estimated hold time - and position in the queue. Now what happens if you have a caller that was already told that they are next in line and someone with a higher priority call comes in? You guessed it - grandma gets pushed to the back of line in favor of your basket-ball buddy! Granny will be kinda pissed when she hears that she is now number two in the queue. So you need to know you environment before deciding which strategies to take.&lt;br /&gt;&lt;br /&gt;That's not to say that Queue Priorities doesn't have merits of its own. When that little mom and pop, garage based business grows up and becomes Google or HP (hey - you can do it!) and you have a large call center with different departments, there will often be a situation where after talking to someone in department X the caller will be transferred over to someone in department Y. But being that they already waited in the queue for dept. X its only fair that they shouldn't have to wait again. This is a very practical application of Queue Priorities: the guy in dept. X transfers the caller to a destination that &lt;b&gt;sets their priority higher in the Y queue&lt;/b&gt;, so that they get answered right away, and don't have to wait again.&lt;br /&gt;&lt;br /&gt;Two more points: you might be wondering what happens when two or more callers enter a queue at a higher priority? All the people at a given priority get treated just like people usually get treated in a queue, first come first server (&lt;a href="http://en.wikipedia.org/wiki/FIFO"&gt;fifo&lt;/a&gt;), so that all the people at, say, priority 10 will have their calls answered (again fifo), and then people at priority 5, and so on. Last but not least, we previously mentioned the lines at the airport. In the UK people call those a queue (as in "I'm standing in the queue"). But you already knew that.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2990724095005688149-7282199743408781593?l=mbrevda.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Vrkro42AfzWFw5MfSXMITrAI6rI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Vrkro42AfzWFw5MfSXMITrAI6rI/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/Vrkro42AfzWFw5MfSXMITrAI6rI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Vrkro42AfzWFw5MfSXMITrAI6rI/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/tpZCjagSxXk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/MoshesBlog/~3/tpZCjagSxXk/queue-weights-vs.html</link><author>noreply@blogger.com (Moshe)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://mbrevda.blogspot.com/2008/09/queue-weights-vs.html</feedburner:origLink></item></channel></rss>
