04/04/2017

Building a home made Sonos

Category :   
Wow, it's hard to believe it's been pretty much two years since I posted a blog entry, Facebook removed my need to blog, and I now stay in touch with family and friends that way.  So onto they blog entry, why post something now?  Well those of you that are friends with me on Facebook, know that I purchased a partially built house last year, which for the last few months has been getting finished.   As the house was just a skeleton, it gave me an opportunity to do useful things like put CAT6 throughout the house, with various network sockets scattered around the house.  It also gave me the opportunity to do something else I've wanted to do and that was to put music into every room.

I had a few requirements for my system which were:
1. No visible power supplies.
2. No visible wires.
3. Ability to sync rooms, so they play the same music, or play different music independently.
4. Support for AirPlay, so guests can stream music if they are staying in the guest room for example.
5. Power of the CAT6 through Power-Over-Ethernet (PoE), so regular electrical sockets wouldn't need to be hidden in the walls or ceiling
6. Ability for the system to play music without requiring the controller to be turned on, example iPhone or iPad, so the controller is not streaming the music.

I have many friends that love and swear by their Sonos devices, so I gave them a good hard look, I liked the Sonos, but Sonos didn't cover all my requirements, like no visible wires or power supplies, I looked at other solutions too, but nothing really met my requirements, often with the PoE being the biggest stumbling block.

I had no issue making my own solution, as long as I could make it easily, relatively cheaply and ensure it was reliable.  From my experience with the children's cockpit, I started to think about the Raspberry Pi and if any solutions could be built using that.  So I started with simple google searches for things like PoE for Raspberry Pi, Raspberry Pi Sonos, homemade Sonos and reading up the different links, I found myself building my own system based around the Raspberry Pi with off the shelf components and software

Here's what I ended up with, hidden in the ceiling or wall of each room.
IMG_7612.JPG
IMG_7613.JPG
The insides consist of:
1 x Raspberry Pi 3 - $38.27
1 x Pi PoE Switch HAT - $40.44
1 x HiFiBerry Mini Amp - $22.90
1 x Stacking Header for Rasperry Pi - $12.99 (for 5)
1 x 8Gb Micro SD Card - $6.45
1 x On-Q/Legrand Set Of 2 100-Watt 6.5-in Round In-Ceiling Speaker - $71.95
I designed and printed my own case, and used a couple of parts to tidy up the end for speaker connectors and network connectors, not needed, but added about $8 to the overall cost of each player.

To power them all I purchased a 8 Port PoE Switch - $114.99

So the cost for all the hardware averaged out over 7 devices came to right around $200.  Obviously if your requirements are different and you don't need PoE, or in ceiling speakers this cost comes down quite a bit.

With this setup each device could meet my requirements, and as I built it, even give me a few extra benefits.

The nice thing with this setup, is it's all plug and play, there is NO soldering needed (unless you decide to include the speaker connectors), so it's a great project if you wanted to make one with a child that might be interested in electronics, and you want them to see results quickly.

The build was basically as follows:

1. Take the PoE Switch HAT and connect it to the Raspberry Pi.  On the PoE Switch, there is a power switch to turn the Pi On and Off.  As this is going to be hidden in a case, and then hidden in the ceiling, I wanted it to always power on when there is power coming from the ethernet cable, and if I really have to do a hard reboot, I would just disconnect it at the router.  To achieve this remove the jumper that is on the Switch HAT.

2. Plug the Stacking header onto the pins on the Switch HAT, this is needed, otherwise the HiFiBerry MiniAmp when plugged into the GPIO pins on the Switch HAT would short out on the ethernet cable casing, this stacking header separates the HiFiBerry board from the Switch HAT.

3. Plug the HiFiBerry MiniAmp onto the Stacking header.  This mini amp is totally powered by the onboard Rasperry Pi power, so no external power is required. Whilst this Amp is only 3 Watts, it sounds great on the On-Q speakers and is plenty loud enough, especially when you have multiple rooms synced together.  Why go with an Amp at all, well we need an Amp to power the speakers, but also the inbuilt audio on the Raspberry Pi tends to pick up lots of electrical interference, so for example, if you plugged in powered speakers in to the Raspberry headphone jack, you'd hear lots of hiss and crackle, with the HiFiBerry MiniAmp, I don't get any of the hiss or crackle, and it also powers the speakers.

4. Connect the HiFiBerry speaker out to the speakers.

So now we have the physical hardware prepared but what about  the software, the stuff that does the rest of the work?  Well it turns out there are lots of options out there, from doing the entire thing yourself from scratch putting lots of different software components yourself or you can go the easy way and get a prebuilt image where all the work has been done for you.  I found a few solutions such as Volum.io, RuneAudio and Max2Play.

I went with Max2Play because of it's ease of use for setup, and some of the plug-ins that are available, for example the WiFi Access Point plugin, that lets each Device act like a WiFi hotspot, yep a hotspot in every room.

The key to making all this work, is something Logitech built a few years ago, the Squeezebox Server, even though Logitech have pretty much abandoned Squeezebox, the open source community has taken it on and continues to enhance it, and plenty of extensions are still being made for the Squeezebox server, such as BBC and Spotify.

The Max2Play software, will automatically setup and configure the squeezebox server, so immediately after setup you can stream from thousands of radio stations around the world.

The key thing you want to do is only have one of the devices acting as the Squeezbox server, with the others as players.  Otherwise you will run into issues trying to sync the audio on the players, and not all players appearing.

For controlling the players, you can use the free Squeezbox app that is still available as an app, but I prefer the iPeng 9 player, which has much better control and customization than the much older squeezebox app.

04/10/2015

Keep kids interested in flying...

Category :
This video shows what I made for my Nephew this Christmas, it was my first experience with a Raspberry PI, and I learned quite a bit in the process.  Great little devices.  I used an all in one kit, that came with pretty much everything I needed except a display and keyboard.   I've placed a link to that below.






03/16/2015

Did IBM kill the iOS Sametime Client?

Category :
No, no they didn't.  They did however change it's name so you or your users may no longer find it.  Maybe you have a lot of apps on your mobile device and typed in sametime to find it, maybe you didn't have it yet and went to the apple store and searched for sametime and still didn't find it.

Yes in their usual take a gun and shoot yourself in the foot approach to products and marketing, IBM in a recent update renamed IBM Sametime to IBM Chat.  That's ok (although I actually don't think it was a smart move), what's stupid though is they didn't create an alias for the app of sametime, or as they are know in the apple app store keyword.  How hard would it be for a multi billion dollar mobile first company to add their old product name as an alias/keyword I wonder?

So if you're looking for what was IBM Sametime on your device or in the app store, search for IBM chat, don't search for just chat, or you'll have to scroll through loads of apps before you find it.

02/26/2015

Social Connections 8, Boston April 16th-17th

Category :  
Social Connections is shaping up to be a great looking event.

I'm pleased to say that this morning I received confirmation that I will be presenting.

I'll be presenting a 30 minute session on April 17th 10.50am, discussing our experience of using the IBM Connections APIs to build a Mobile Meeting Application.
http://socialconnections.info/sessions/building-a-mobile-meeting-application-using-ibm-connections/

A customer had a requirement for a mobile meeting application, where attendees could see session details, learn about presenters, gain access to presentation materials and coursework, all while maintaining and using their existing investment in IBM Connections.

In this session, Carl Tyler will discuss the creative ways they used the IBM Connections APIs and features to integrate the mobile application seamlessly with the IBM Connections environment and the lessons they learned from using the different APIs/SDKs.


I hope to see you there!

02/18/2015

Thoughts on the iWatch

Category :
So a lot has been written about the iWatch, I have no doubt this thing will sell millions when it comes out,  I will not however be buying one anytime soon.

I haven't worn a watch since I got my first cell phone that had a clock in it.  I never found watches particularly comfortable to wear, with my wrist typically falling right on the edge of the desk when typing the watch strap would just eat away at the edge of the desk.  So lets assume I was to get an iWatch, what would make me wear one?

Well the first thing it would need to do, is not depend on having an iPhone.  If the phone was totally replaced by the watch, then I might wear one, but just having an additional device that duplicates functionality doesn't fly with me. I wonder if the rumored apple car will require an iPhone?

I'm the first to admit, that I'm not a big follower of fashion, but I don't see the iWatch as a fashion statement, if I want a watch as a fashion statement I'd be getting my childhood fantasy of a Breitling aviator, something that would still look great in 25 years, and if a Nephew was left it in a will I'm sure they'd appreciate it.  I don't see that happening with an iWatch, in 3 years the OS will be out of date, it will look large and clumsy, and no one will see it as something they want to inherit.

What do you think? Have you already put down your desposit?

12/11/2014

Forgive me Father, It has been 6 months since my last confession.

Category :
It's not clear from the IBM ConnectED website, but I will indeed be presenting at ConnectED 2015 (the artist formerly known as Lotusphere).  I'll be doing a panel with the very quiet Mat Newman, and the very tall Alan Lepofsky.  Which is session BP101: @IF("Its Really Good";"It MUST Be Notes";"Must Be Something Else") 25 Notes on 25 Years of Notes!

You can now check out all the sessions on the IBM website https://www-950.ibm.com/events/global/ibmced/agenda/preview.html

See you there, even if it is for a slightly shorter time period than usual.

05/12/2014

Cable cutting and access to foreign TV stations.

Category :
Those of you with really good memories, may remember way back in April 2009 I cancelled my cable TV subscription.  My savings have been used to buy various media players and subscriptions to online service.  Honestly never had any regrets.  A few months ago I purchased a Google Chromecast as it had such favourable reviews in the press.  All I can say is these folks haven't tried the Roku or iPlayer for them to consider it such a great device.  Personally I think it's terrible.  I also discovered that Chromecast hard codes Google DNS as it's look up service.  How do I know this? Because BBC iPlayer stopped working.  I used to Witopia on a router to allow me to access UK shows, but I actually stooped using that in favour of unblock-us.com which is actually a DNS service that spoofs your location.  The nice thing about this service, is that it means US providers think you're in the US, UK providers think you're in the UK etc. and you don't suffer any performance loss from going through a VPN, so works great.  The setup for unblock-us is basically just switching your router DNS to the unblock-us DNS servers, so dead easy for most folks.

Anyway, back to Chromecast, I was trying to use BBC iPlayer with Google Chromecast and had no luck, kept coming up with an error, iPlayer was working fine with every other device on my network.  It turns out Chromecast has hard coded DNS entries for Googles DNS servers, thereby bypassing my DNS entries for unblock-us.  How to get around this?  wel with my router it supports something called static routes, and all I had to do was setup a static route for any Google DNS traffic to go to my router, which in turn will go to the unblock-usunblock-us service.  Et voila, Google Chromecast now works with bbc iPlayer in the US.

StaticRoute.jpg

04/28/2014

Does Notes call home?

Category :
Has anyone seen this?  I recently updated my installation of Malwarebytes, and it is now throwing up this warning every few hours:

NotesCallout.jpg

Anyone else ever seen this?  I'm still using notes 8.5.3 for my day to day work.

04/25/2014

The Domino Designer documentation team screwed us all

Category :
They did us all a disservice by not preparing us for the future.  They gave us too much useful information in the documentation.  Pretty much every function in the old Domino Designer Documentation gave an example for every function or method, so if you weren't  sure exactly how to use it, you'd look at the example and try it out and learn from it, you know, monkey see, monkey do, monkey learn.  Those days appear to be gone in the new IBM products.  I've been messing a great deal lately with the Connections APIs,  the atom feeds look simple enough, but you have to figure out the exact structure yourself, IBM could save developers hours if they just posted an example atom document with every single API call in the documentation, it can't be that hard can it? Surely the test scripts IBM use for testing Connections where they must post thousands of items through the ATOM APIs could be used as examples?

So thanks for nothing Domino Designer documentation team, you set our expectations levels so much higher than what everyone else provides you've made us complacent through making us too efficient at learning your functions and methods, this isn't how it is in the real world!

04/10/2014

IBM SmartCloud Meetings aren't really that Smart.

Category :
Went to an IBM SmartCloud Sametime meeting today, via a URL that goes direct to the meeting, decided check my plugins etc. before going into the meeting.  I got presented with this dialog:
StupidDialog.jpg

The thing about this dialog is it is totally uneeded, the meeting ID was passed as part of the URL, read the URL with a bit of Javascript IBM and redirect to the correct page automatically.  End users shouldn't be expected to figure this out, there's nothing "Smart" about this.

Also don't get me started about how unSmart Mac screensharing is on IBM SmartCloud.  Share a frame on a Mac and you can't click through to the app underneath.  This is basic expected behavior.

02/04/2014

Since when has the OGS been about Press?

Category :
I've seen this comment in a few blog posts recently, and I have to ask, since when has the OGS been about Press?  People do realise that the press get 1 on 1 briefings at Connect, and they can be briefed throughout the year if they want to by making a simple phone call to IBM.  How about the customers that paid money to be at the event, shouldn't the whole show be about them?  Without customers, believe me, the press won't give you 2 minutes.  Personally I think Connects issue is that IBM doesn't know who the customer is, or what type of person is sitting in the audience.

02/03/2014

How much fun do we have at the Nerd Girls Great Geek Challenge?

Category :
I think this photo taken by Andy Donaldson pretty much captures it.

http://www.flickr.com/photos/macian/12215999244/

External Image

01/28/2014

BP501 - Building and deploying custom ibm sametime connect client installations slidedeck

Category :
Here are my slides from the BP501 IBM Connect 2014 session.


01/22/2014

What you should really do and see at lotusph...oops IBM Connect

Category :
So you've all looked at the calendar, you've picked out some sessions, but lets face it, you want to do some fun stuff.  So here's the things I suggest:

Great Geek Challenge, this is one of the most fun events, think pub quiz (in other words there is alcohol), organized by the wonderful nerd girls and emceed by myself and Paul Mooney.  It fills up quickly and there is often a line as it's so much fun, so get there early, either with a team or without one if there's a seat you can take it.  This year I also have something fun planned for tie breakers, don't buzz in too soon.

Dolphindor - new this year, but looks like a great way to use your time having fun.  Do it as a group, turn it into a drinking game, have some fun.  This is totally the sort of idea I see others stealing at future shows.

Penumbra Ice Cream Social - it's an invite only event, so find a Penumbra memberand get an invite ticket.  Basically it's alcoholic milk shakes.

Epcot - Drink around the world.  Sure you need to buy a ticket to Epcot, but doing a pub crawl around every country in Epcot world can be a lot of fun if there are a few of you.  Basically partake in the local drink from each country.  It's convenient in that you can easily walk  to the Epcot entrance or get the free ferry from the dolphin and swan, so you can crawl back to your room.  Only thing that Disney seem to be very strict about is staying out of the fountains when you're drunk.  You probably shouldn't do this alone.

Kimonos - gets packed every night, always very popular as the night goes on.  Has alcohol. Helps if you don't have sensitive hearing or are tone death.

Duelling Pianos - Lots of fun, great bar, you can start here and finish in Kimonos when they throw you out.

And it goes without saying, the most fun on Tuesday afternoon can be had at session BP501 : Building and Deploying Custom IBM Sametime Connect Client Installations; Tue, 28/Jan 01:30 PM - 02:30 PM; Dolphin N. Hem D *No Acohol.

For those of you not attending, then IBM Connect Live (formerly LotusphereLive) will be running again for the opening session live blog.  You can drink if you want.  Everytime Chris or I say social, do a shot.

10/02/2013

F*@king Bruce and his attention seeking ways...

Category :
I'm kidding, but someone needs to bring him back down to earth.   I've known Bruce for a number of years now as a friend, a customer, partner, advisor, and general good guy.  Honestly, what can I say that hasn't already been said in all the other blogs?  I'll just say this, without Bruce and the commitment he had to keeping OpenNTF going, the Domino/Notes market could be very different today, it could have been much worse, OpenNTF filled a hole that IBM chose not to fill, and it took IBM years to realize it's importance and to step up to the plate, Bruce always knew it was important, and dedicated his time, effort and money to keep it going.

Thanks for your help and efforts for all these years Bruce!

09/17/2013

He walked on his bloody stumps...

Category :
Back in FebruaryI blogged about The Domino Danderers and a planned walk across Scotland in aid of the Children's Hospice Association Scotland.  Originally I was to be performing that walk in May with the others, but due to some health issues I was unable to take part, except in a supporting role.  I had raised quite a bit of money back them, so I couldn't even bale, so I scheduled my attempt for weekend, as I would already be in the UK for ICON UK and a friends wedding.

Members of my family took pity on me, and so I wouldn't have to walk alone a couple of them agreed to walk it with me, over the next couple of months this became 6 of us.  My 71 year old Dad, my older brother, younger brother, my eldest Niece and eldest Nephew, with my Uncle and Aunt acting as support vehicle.  We called ourselves The Three Generations team.

Our goal was the same as The Domino Danderers, to walk theGreat Glen Way from Fort William to Inverness in 4 days.  Having witnessed the other folks walking it in May, I decided to break up our distances a little different, primarily to split the hilliest section over two days. So our planned breakdown for each day was as follows:

Day 1: Fort William to Laggan Locks
Day 2: Laggan Locks to Invermoriston
Day 3: Invermoriston to Drumnadrochit
Day 4: Drumnadrochit to Inverness

So last Thursday night, we arrived on a beautiful evening at out B&B on the outskirts of Fort William, lying in the shadow of Ben Nevis.  After a nervous sleep (I was sharing a room with my two brothers, and I had no idea how they would try and stop me snoring), we awoke to a light fog weaving it's way through the valleys with clear view of Ben Nevis backed by a beautiful blue sky.

IMG_2111

When I first announced, that I would be doing this work, I tried to increase the fund raising amount by agreeing to do certain things if targets were met, the first one, was I would do the hike in a Kilt and Pith helmet if $2,000 was raised.  It turns out, that a lot of people wanted to see my look ridiculous in a kilt, so the and donations started coming in pretty quickly, to prove I fulfilled that promise here is a photo of our team at the start, all of us decked out in Kilts, but I'm the one in a pith helmet.

IMG_2137

Left to right, Peter King (Nephew 18), Bethany King (Niece 23), Charles Tyler (Father 71), David Tyler (brother 44), Carl Tyler, Richard Tyler (brother 38)

We started the hike from the Great Glen Ways start/end marker in Fort William just after 9am.  The wind was in our faces, which wasn't expected as usually the prevailing wind is West to East, for us it decided to make our hike a little more difficult by being East to West.  As the first day was fairly flat terrain, I had decided to walk on some fairly new, lighter weight walking shoes, versus my well worn in walking boots.  This decision would prove to haunt me for the rest of the trip, as by lunch time on the first day I would get blisters that would never heal, even with my Niece Bethany doing her best impressions of a nurse to try and tape them up.

P9060148

Day 1 ended just as the rain started to come down, and the sun was about to set, but we had all completed it, 22.5 miles with some having faired better than others.

P9060165

Day 2 we awoke to what I call Welsh weather, wet, grey, foggy and pretty miserable.  We picked up our hike where we left off the previous day, I was worred the kilt would become a huge weight as it became wet, but it turned out to not be an issue.  By mid day, we were very lucky, the skies had cleared and we had nothing but puffy Simpson clouds, and the weather would pretty much stay this way until the last mile on the last day.

P9070167


We lunched at the top of the locks Fort Augustus, where I tried to decipher the Orange Gatorade ingredients in order to try and work out why it tastes so disgusting.  I never did work it out.  There was an Italian tourist bus in town, and a couple of women wanted to have their photo taken with me.  I don't know if this was because they thought I was an authentic Scottish person in a kilt, or if they wanted to start some Italian MeMe of pictures of yourself with a big man in a kilt, unless it gets huge over there, I'll probably never know, what we do know for sure is that they didn't want my brother in the photo just me.

P9070172

On the evening of day 2 my older brothers military training kicked in, and he took over the care of my blisters, after soaking my feet in Potassium Permanganate for about an hour, which helped sterilise the blisters and gave me lovely dark tanned feet, and I kid you not, golden toe nails, very strange.  He drained the fluid from my blisters and then using compeed and zinc tape, taped up my feet, making me promise not to remove the tape until the end of the hike.  In no position to argue, I agreed.  My nephew Peter appeared to take great pleasure in watching my brother poke a syringe into my feet, and I'm sure he's still getting pleasure from watching the video he took of it.

Day 3 we got up, and whilst Bethany was making friends with the local turkey, we packed the car, and headed off back to Invermoriston.

P9080173


Day 3 would be one of our hilliest days, and if we felt up to it, we had agreed to keep going at the end of the day for a few more miles past Drumnadrochit, so that we could get through the last major hill of the hike, and then leave us with a shorter hike on the last day, and a hike that was mainly downhill (I liked the sound of that).

P9080181

Steady work was made on day 3, and we decided to continue up the final hill.  I think my Dad summed up the Drumnadrochit hill the best, when he called it the "Fuck Me Hill", whenever you thought you'd reach the top you'd say "fuck me" as you got to the peak, to find out you still had another one to go.  We finished day 3 at the bottom of Abriachan Forest, with the last major hill completed, and a much shorter hike planned for Day 4.

P9080200

Day 4 picked up from where we left off at the Abriachan Forest
IMG_2171

We arrived on the outskirts of Inverness to a slight downpour of rain that lasted about 15 minutes, and cleared up as we were about 1/2 a mile from the end of the hike.  Our legs were sore, some socks were soaked with blood, but we had made it, we had completed the hike!  More importantly we had just raised some money for a really good cause.
IMG_2252

Although we're still waiting for a few more donations to come in, the Three Generations team raised approximately $10,129, when you combine this with the amount also raised by the Domino Danderers, it gets our combined total to a whopping $28,014.63

So there was also another part to trying to raise additional donations, apart from wearing a kilt and pith helmet, I had also agreed to do a Harlem shake video if we could get my fund raising amount up to $5k, and it appears that people were as eager to see that as they were to see me in a kilt (I have no idea why).  So if you have sponsored us, you may watch this, if you watch this, and even laugh a little bit and don't click here to sponsor us, then all I will say is Karma can be a bitch and may you sleep uncomfortably at night.

Harlem Shake Great Glen Way Fundraiser from Carl Tyler on Vimeo.



For fun, we also made this:

Three Generations - "I would Walk 500 Miles" for Iain Rennie Hospice from rich_A_tyler on Vimeo.




SPONSOR US!


Three Generations
and support team
The entire team, plus support team of Ron and Sonya Tyler.

08/23/2013

Creating a customer service web application using Sametime

Category :
This article seemed to get published without even a squeak.  William Holmes and Brendan Murray of IBM Ireland have create a 3 piece article posted to the Sametime Wiki for building a customer service web application.

http://www-10.lotus.com/ldd/stwiki.nsf/dx/Creating_a_customer_service_web_application_using__Sametime_-_Part_One

The first Sametime live help system I built was back in 2000 as an offering from a company called Virtual Village, and for me personally it's still my preferred method for contacting companies for assistance, and in recent years Epilio have built custom live help for customers, including custom mobile client integration working with the Sametime Proxy server., whcih we demonstrated during our session at IBM Connect earlier this year.

This is a good article, and includes sample code to get started.

04/30/2013

Another one speaking at IamLUG

Category :
Like many others I will be in St. Louis next week, speaking at IamLUG, and Epilio are sponsoring the Monday night drinks.  I decided not to do any really tough presentations on Sametime, but am instead doing an updated version of a presentation I first did at UKLUG "25 Years of Lotus and Still Going Strong" which contains lots of demos of old Lotus products.  As usual, I'll probably have some old freebies to give away.  

If you've not already registered yourself, you better get on it.

02/11/2013

Fat man walking...all for a good cause.

Category :
It's time for you to reach into your pockets and sponsor me.  Perhaps you've used our free plug-ins, perhaps you've used our free Sametime admin tools, it's time to pay up.  Now it's not like that crazy sponsorship thing where all I had to do was shave my head and paint my face blue, this one actually involves some serious preparation and training. We managed to raise close to $3,000 dollars for the head shave, so really hoping people will delve deep for this effort to smash that amount.

In May along with a number of friends, I will be taking part in the Domino Dander for Dosh.  The hike will take place in May, and involves hiking from one side of Scotland* to the other along the Great Glen way, which is 80 miles over 4 days.  I will not be along, there is a team of us doing it.

It's all for a a very worthy cause and is the Children's Hospice Association Scotland, currently my donation page shows zero donations, which lets face it, is embarrassing.  So please please sponsor me, if you don't want to support the charity, just think of the pain I will be in after walking 80 miles in 4 days, and the pleasure you will get from knowing I am in such pain, surely that is worth something?

My individual sponsorship page is here:
http://www.justgiving.com/Carl-Tyler

You can find out more about the charity, our route and the team of hikers here:
http://slightlydoolally.com/d4d/

Thank you for your support, every little bit helps.!

* All travel expenses are met by myself, no sponsorship money is used towards anything but the CHAS charity.

UPDATE: I have agreed with a friend, that if I raise more than 2k I will do the hike in a Kilt and Pith helmet.

02/11/2013

An overview of the Plantronics Calisto 620

Category :
Similar to the other post earlier today, this overview is of the Plantronics Calisto 620