Friday, December 07, 2007

My stdexten macro

I always forget this so I figure I will post it and update it when I improve it.
[macro-stdexten]
;ARG1 = Device(s) to ring (Default SIP/${MACRO_EXTEN}
;ARG2 = Voicemail Box to go to (Default ${MACRO_EXTEN}
;ARG3 = Timeout in seconds (divide be 5 for number of rings) default 20

exten => s,1,NoOp
exten => s,n,Set(DIALSTRING=${IF($[ "${ARG1}" = "" ]?SIP/${MACRO_EXTEN}:${ARG1})})
exten => s,n,Set(VMAILBOX=${IF($[ "${ARG2}" = "" ]?${MACRO_EXTEN}:${ARG2})})
exten => s,n,Set(TIMEOUT=${IF($[ "${ARG3}" = "" ]?20:${ARG3})})
exten => s,n,Dial(${DIALSTRING},${TIMEOUT},twk)
exten => s,n,Goto(s-${DIALSTATUS},1)

exten => s-,1,Goto(s-BUSY,1)
exten => _s-.,1,Goto(s-BUSY,1)
exten => s-CONGESTION,1,Goto(s-BUSY,1)

exten => s-BUSY,1,Voicemail(${VMAILBOX}@default,b)
exten => s-BUSY,n,Hangup()

exten => s-CHANUNAVAIL,1,Goto(s-NOANSWER,1)

exten => s-NOANSWER,1,Voicemail(${VMAILBOX}@default,u)
exten => s-NOANSWER,n,Hangup

Wednesday, November 28, 2007

Document Design for Search Engine Optimization

Digital document design has become much more then just aesthetics and it is now important that a document can be read by "robots" as well a people. Robots, or crawlers or spiders, are another name for indexing services that search engines use such as google. As you are well aware, search engines are the way people find most things on the web today. Most people assume that search engines use hidden meta tags to index web pages for searching. This may have been the case in the early days of the web, and is only partially true for a few search engines today. Search engines are now programmed to look at the text inside html tags that are used to design a web page. Weight is given to the words depending on which tag they are in. This is how Search Engine Optimization, or SEO, relates to document design. I will discuss the tags that are important to making your site search engine friendly, and some ways to keep the design you want. First off is the title tag, this should be descriptive as to who you are and what information you are presenting in your page. The title tag should also stay short and not be greater the 60 - 70 characters. Keep in mind that the title tag is not only something that search engines use to find keywords to your site, but it is also what the user will see in their search results. Heading tags are also regarded as important content, as they are meant to be headings on your tags. Designers often use images as headings, but these will not only require descriptive alt attributes, but also are weighted very low by search engine crawlers. Cascading style sheets (CSS) can also be used to design headings, but be when using CSS make sure to apply your CSS to the heading tag and not to another block element tag, like span or div. Make sure to use descriptive keywords in your ALT attribute for your image tags. This will help search engines that index images as the image file name is not always relative to the picture. The alt tag is included as body text by most search engines, but as mentioned previously is weighted low. Meta tags are still used by some search engines but are weighted very low due to over use. For the Meat Description tag, it is best to keep it under 100 characters. The meta tag is also important because it is displayed in the search results. For the Meta Keyword tag, it should be kept under 250 keywords, and should not contain any words that are not in the document. As mentioned previously search engine crawlers can not index images, this is something that many designers have problems with for a few reasons. First text is difficult to control, even when using CSS to format it. The user must have that font installed, and the user can increase and decrease the font size in their browser easily. Images solve these problems for a designer because they can not be changed, but images will hinder its search engine optimization. The last and probably most important part of search engine optimization are links. I will referrer to two different types of links, internal and external. Internal links are things like menus and site maps. It is important to have at least one static link to every page on your site that you want indexed. This is so the search engines know how to get to every page when they spider or crawl your site. External links referrer to other sites that link back to yours. This is another way that search engines rank your site. This is unrelated to design so there is no need to go into any more detail about it. As with everything, there are people out there that abuse the system, so search engines have put measures into place to not rank these types of sites highly. Some things I have already mentioned like number of characters in title and meta tags. One additional thing to be careful of is to keep the number of links on one page to under 100, more than 100 links we be thought of as spam. For a large site map it would be a good idea to split it up into multiple pages. Another thing to be careful of is using the same words an excessive amount on a single page. This is a common practice for people trying to trick search engines. Currently there is a battle between designers and search engine optimization people. Both are important elements of marketing your site and your business on the web, but they have contradicting requirements. As discussed many design needs are not SEO friendly, and many SEO needs are not design friendly. Make sure you find a good middle ground when designing your site. References: How can I create a Google-friendly site? Webmaster Guidelines Search Engine Optimization Standards and Spam Discussion Google SEO Basics for Beginners Media College.com SEO Basics Google Rankings Basic SEO advice SEO 101 - Basic Optimization Techniques

Saturday, October 20, 2007

Mythtv Distro Evaluations

It is a tough time for Mythtv distros right now with Zap2it cancelling their services is August. There are 4 major mythtv distro communities right now, knoppmyth, mythdora, mythbuntn and linuxmce. Today I tried all but knoppmyth and here is what I have found. LinuxMCE I first tried LinuxMCE as the demo video they have on their site shows some amazing features. They do have an update for the new Schedules direct service but the link to the script was down. The thing that I found about LinuxMCE was that because it is a bunch of custom changes on top of Kubuntu Feisty, updating myth from the Kubuntu repository would break it. This is a cool system but is a bit behind when on changes. Mythdora Mythdora acutally looked good, they have some myth specific questions at install. The downside I found was the myth version was still the older one and there was no Schedules direct support, also the links for the update at the atrpms site was down as well. Mythbuntu Mythbuntu is a supported ubuntu distro and is kept almost as up to date as ubuntu is. Right now they have a 7.10 release candidate and the 7.10 version has only been released for a few days at this point. The good thing is it has the newest version of myth and the Schedules Direct is supported right out of the box, no updates needs. Ubuntu again comes through leading the pack with the most up to date distro in mythbuntu. If anyone has comments on these distros or any other I would love to hear them.

Thursday, April 19, 2007

Polycom Presence and SIP 500 errors

I finally got someone at Polycom support that knew what they were talking about and were very helpful. I have been getting a lot of these errors from the Polycoms on my asterisk servers Incoming call: Got SIP response 500 "Internal Server Error" back from 192.168.0.100 The problem was the transport was set to "DNSnaptr" by default. So if you set it to "TCPpreferred" it should fix any issues you are having with presence and also any sip 500 errors. EDIT* I am still getting sip 500 errors if I restart asterisk and not the polycom phones. On a side note for asterisk 1.4 make sure call-limit is set to something. I set it to 8.

Thursday, March 22, 2007

Provisioning Polycom phones

Provisioning Polycom SIP phones can be a pain. There are some good examples on www.voip-info.org but I think a explanation would be a good idea. For an internal LAN setup TFTP is easiest, so I have everything setup as so: /tftpboot /tftpboot/contacts /tftpboot/logs /tftpboot/overrides The important thing is DO NOT touch sip.cfg, phone1.cfg and 000000000000.cfg, use it as reference only. Why you ask, so when new firmware comes out you just drop in the new file. So where do you make your changes then????
  1. MAC.cfg
  2. EXTEN.cfg
  3. 00000000000-directory.cfg
  4. contacts/MAC-directory.cfg
Here are some examples: MAC.cfg: <?xml version="1.0" standalone="yes"?> <!-- Default Master SIP Configuration File--> <!-- Edit and rename this file to <Ethernet-address>.cfg for each phone.--> <!-- $Revision: 1.14 $ $Date: 2005/07/27 18:43:30 $ --> <APPLICATION APP_FILE_PATH="sip.ld" CONFIG_FILES="300.cfg, site.cfg, phone1.cfg, sip.cfg" MISC_FILES="" LOG_FILE_DIRECTORY="/log" OVERRIDES_DIRECTORY="/overrides" CONTACTS_DIRECTORY="/contacts"/> EXTEN.cfg (300.cfg) <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- Per-phone configuration in this file --> <reginfo> <reg reg.1.displayName="First Last" reg.1.address="300" reg.1.label="300" reg.1.auth.userId="300" reg.1.auth.password="PASSWORD"/> </reginfo> <msg> <mwi msg.mwi.1.subscribe="300@default"/> </msg> site.cfg <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- Our local phone system common configuration in this file --> <localcfg> <server voIpProt.server.1.address="192.168.0.1"/> <SIP> <outboundProxy voIpProt.SIP.outboundProxy.address="192.168.0.1"/> </SIP> <TCP_IP> <SNTP tcpIpApp.sntp.daylightSavings.enable="1" tcpIpApp.sntp.resyncPeriod="86400" tcpIpApp.sntp.address="192.168.0.1" tcpIpApp.sntp.address.overrideDHCP="1" tcpIpApp.sntp.gmtOffset="-28800" tcpIpApp.sntp.gmtOffset.overrideDHCP="1" tcpIpApp.sntp.daylightSavings.enable="1" tcpIpApp.sntp.daylightSavings.fixedDayEnable="1" tcpIpApp.sntp.daylightSavings.start.month="3" tcpIpApp.sntp.daylightSavings.start.date="8" tcpIpApp.sntp.daylightSavings.start.time="2" tcpIpApp.sntp.daylightSavings.start.dayOfWeek="1" tcpIpApp.sntp.daylightSavings.start.dayOfWeek.lastInMonth="0" tcpIpApp.sntp.daylightSavings.stop.month="11" tcpIpApp.sntp.daylightSavings.stop.date="1" tcpIpApp.sntp.daylightSavings.stop.time="2" tcpIpApp.sntp.daylightSavings.stop.dayOfWeek="1" tcpIpApp.sntp.daylightSavings.stop.dayOfWeek.lastInMonth="0" /> </TCP_IP> <reg> <reg.1.callsPerLineKey="8"> </reg> <msg> <mwi msg.mwi.1.callBackMode="contact" msg.mwi.1.callBack="8500" /> </msg> <user_preferences up.oneTouchVoiceMail="1" /> <feature feature.1.enabled="1" feature.9.enabled="0" feature.10.enabled="1" feature.11.enabled="1" feature.12.enabled="1" /> <bitmap> <IP_400 bitmap.IP_400.61.name="Idle400.bmp"/> <IP_600 bitmap.IP_600.61.name="Idle600.bmp"/> </bitmap> <sound_effects se.stutterOnVoiceMail="0" /> <localcfg> contacts/MAC-directory.xml: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- $Revision: 1.2 $ $Date: 2004/12/21 18:28:05 $ --> <directory> <item_list> <item><fn>First</fn><ln>Last</ln><ct>301</ct><sd>1</sd><bw>1</bw></item> Some gotchas that I have run into:
  1. /tftpboot/contacts/00000000000-directory.xml does not get used it gets pulled from the /tftpboot/000000000000-directory.xml file (as of bootrom v3.2.2)
  2. The dhcp option to set the tftp server is option tftp-sever-name "tftp://192.168.41.1"
Take a look here if you need more info or more examples or email me. http://www.voip-info.org/wiki-Polycom+Phones#PolycomConfigFiles

Monday, February 05, 2007

Linux still not a good desktop

So I figured I would bite the bullet and give Kubuntu another go as my desktop. The install was easy, it supported all my hardware out of the box and I was happy. I even spent a bunch of time getting Beryl to work and that was sweet, but then the bugs started. A list of tasks I needed to be able to accoplish
  • I wanted to connect to Exchange and Evolution is pretty good at that now.
  • I can get to the file server at work fine, but I can't open anything in openoffice directly, ouch.
  • Firefox locked up and crashed many times.
  • Wireless configuration is painful for a roaming laptop.
  • Dual monitors are a must but getting xorg to work with both, good luck.
The more I tried to do the harder it got and the more buggy. Will Linux ever be stable enough or be able to exist in a Windows network, not for a while. *UPDATE: I have switched to Ubuntu and gnome, much better experience, I don't care what Linus says LOL. Anyway, there are still a lot of bugs. What will make it better: -Better and faster drivers from hardware vendors -More OSS developers to help with apps so they are tested and stable before release -Corporate support, money talks.

Friday, January 12, 2007

Asterisk 1.4

With asterisk 1.4 finally out of beta I figured I would give it a whirl. They have now stepped up to the "distro" market to compete with trixbox and probably do a better job. You do have to register on the asterisk site to download it but oh well. The wizard is easy to use and the asterisk web GUI is very very nice. Things that are missing is voicemail, call recording, a reception module and phone provisioning. Hopefully I can get that intergrated sooner rather then later. Trixbox is still using an old version of asterisk 1.2.13 I think. That is not going to work with the amount of changes that have been done for 1.4.0. Trixbox just doesn't make things much easier if you know what you are doing.

Tuesday, January 09, 2007

Windows Home Server will live in your closet, simplify your life | Jesse D. Lewin | Microsoft 10

Check out the new windows home server. This will finally will make having multiple computers at home convenient. Check out the backup feature, that alone makes it worth it. M$ is doing things right for once. Link