QueTwo's Blog

thouoghts on telecommunications, programming, education and technology

Category Archives: Telecom

Making ColdFusion Sing

One of the coolest things about CFML is the fact that it was designed for rapid application development.  Even more so, as the language (and server platform) evolved, it quickly turned into one of those tools that knew how to talk to just about everything.  From FTP, to the Web, to SSH connection, to specialized JDNI connections, it is pretty darn simple to make ColdFusion the glue that holds disparate systems together.

Last month I was tasked with coming up with a tool to allow some of my PBX users to record announcements.  The current system they were used to involved them calling a phone number, entering in a special code and then recording their announcements.  It was easy because the phone already had a mic, speakers and everything else setup to the point where the user didn’t have to worry about all the related computer settings.  I tried to re-create a solution that was just as easy using the Flash Player (and ever a Java applet) — but it turns out that very few people have microphones hooked up to their computers — and those who do have no idea how to tune it so that the sound levels are descent.

I came up with a nifty idea.  I wrote a really quick CFML app to interact with Twilio (an online phone company that provides a really wicked API for dealing with live telephone calls).  Essentially, they post back form requests to you, and you pass back XML documents back to them.  They even have an API that can do recordings.

The only problem was the recordings they saved weren’t in a format that my PBX understood.  While they provided me mono, 16-bit PCM, 16k wave files, I needed 64-bit, 8k mono uLaw wave files.  To a normal computer, these look the same, but to these two different systems, they were radically different.

The solution?  I found a really cool Java application known as JAVE.  JAVE is a wrapper for ffmpeg, which is a very well known application that can work with audio and video files.  JAVE allows me to convert from one type of wave file to another, or even from an mp3 to a wave, or from a Windows Media file to an MP4 file.

Using it?  Like dealing with most Java classes, you drop it into your CFML’s LIB directory.  I tried it both with Adobe ColdFusion and Railo and it worked flawlessly.  Once you have the Java class (jave-1.0.2.jar) in the lib directory and re-start your CFML server, you are ready to start writing some code.  Here is what I came up with to convert between my two wave formats :

<cfscript>
 jave = createObject("java","it.sauronsoftware.jave.Encoder");
 incomingFile = createObject("java","java.io.File").init("C:\temp\incoming.wav");
 outgoingFile = createObject("java","java.io.File").init("C:\temp\outgoing.wav");

 audio = createObject("java","it.sauronsoftware.jave.AudioAttributes");
 audio.setCodec("pcm_mulaw");
 audio.setBitRate(64);
 audio.setChannels(1);
 audio.setSamplingRate(8000);

 attrib = createObject("java","it.sauronsoftware.jave.EncodingAttributes");
 attrib.setFormat("wav");
 attrib.setAudioAttributes(audio);

 jave.encode(incomingFile, outgoingFile, attrib);

</cfscript>

That’s pretty much it.  If you do a cfdump of the “jave.getAudioDecoders()”, “jave.getSupportedDecodingFormats()” you will get a good feeling of all the different file types you can convert between.

This is more of the type of magic we need to be talking about.  Sure, converting between file formats can seem dull, but being able to come up with a solution to do it quickly is what makes a language, and a platform useful.

H.264 Being removed from Google’s Chrome Browser

This afternoon Google announced that they were dropping support for the H.264 codec in future releases of their browser, Chrome.  If you want to read more about the announcement, check it out here

Essentially their argument is that they want to support Open-Source.  And there is no better way to support open-source than to include support for the new codec that they just bought (VP8) and announced would be open-source (WebM).  On paper, it sounds great and the world should cheer for them.  I personally support ALL the browsers including support for WebM so at least there is some consistency across the landscape for a single codec.

However, how Google is introducing WebM into their browser is by removing the support for H.264 codec.  For those of you who don’t know what H.264 is, it is by far the most widely supported video codec today — being directly supported by DVD players, Blu-Ray players, video game systems, and more importantly, enterprise video systems. 

Over the last few years we have seen enterprise video make the shift from tape to MPEG-2, to MPEG-4 (H.264) video for recording, editing and storage.  The great thing about the industry was that as time passed more and more devices were getting support for H.264, so there was no need to re-encode your video to support each device under the sun.  It was starting to become a world where we could publish our video in a single format and be able to push it out to a great audience.  Re-encoding video takes time, storage space and typically reduces the quality of the end product.

What is even more unfortunate is that recently we have seen H.264 decoders get moved to hardware on many devices, allowing them to decode high-definition content and display them in full-screen without hitting the processor.  This is starting to allow developers to focus on making more interactive user interfaces and better looking interfaces without worrying about degrading the quality of the video.  A good example of this is the H.264 decoder that is built into the newer Samsung televisions — you can run HD content, as long as you are running H.264 — otherwise you are lucky to see a 640×480 video clip without taxing the processor.   One of the reasons why HD video on the web sucked so bad for Mac based computers was Apple didn’t allow the Flash Player to access the H.264 hardware accelerator.  Newer releases of the Flash Player now support it and HD video is smooth as silk on the web. 

By Google moving to WebM and abandoning H.264 it forces manufactures to reassess their decision to support H.264 in hardware.  It will also force content producers to re-encode their video in yet another format (can you imagine YouTube re-encoding their content into WebM just to support a Chrome users?), and will make the HTML5 video tag to be even harder to work with.  Content producers will need to produce their content in H.264 for Flash, many WebKit browsers, and IE9, WebM for Chrome, and Ogg Theora for Firefox.  The real tricky part right now is there are virtually no commercial products that can encode in all three required formats to date. 

So, if you are looking to support video on the web — what are you to do?  Right now a majority of the users don’t support HTML5 video — but they do support H.264 through the Flash Player.  iPad/iPhone/Android devices support H.264 directly, and embedded systems like the Samsung HDTVs, Sony PS3, etc. all support H.264 encoded video.  The only reason to encode in a different format today is to support Firefox and Chrome users that don’t have the Flash Player installed (less than 1% of all users?).  The recommendation I’m sure will change over the years, but for right now, you still pretty much have a one-codec-meets-most-demands solution that you can count on.

Creating Mobile Applications from a Photoshop Prototype

Thanks to Dr. Coursaris for this photo.

At the WUD Conference, East Lansing, MI

This past Thursday, I was given the opportunity to present on a really cool, but obscure topic — creating mobile applications from Photoshop prototypes, for the World Usability Day Conference.  Essentially, my job was to show people a workflow that is possible when using Adobe Device Central to create a Photoshop file, that is then turned into a working prototype using Adobe Catalyst, and then programmed using Adobe Flash Builder. 

All in all, the conference was excellent, and I was honored to be on stage after notable presenters from the State of Michigan, Motorola, Nokia and well, even the University of Michigan.  The focus of this year’s conference was on usability, and how it relates with mobile applications and devices, which was a perfect match for the presentation I was doing.

After my quick introduction to the subject, I demoed making a complete application from scratch and deployed it to a series of working phones.  I was able to accomplish this workflow in under a half hour, which was completely amazing for not only myself, but the audience too.  It is really cool to realize that the technologies that I’ve been using as betas for so long have actually matured to the point where I can use them to make real applications.

The session was recorded and hopefully will be posted online soon.  You can view my powerpoint here (I did have to disable the live voting, but I did keep the results for historical purposes), and download ALL the source code that and asset files that we used during the presentation here.  Please keep in mind, that the logos in the demo code are subject to the use standards found here

Thanks to the WUD East Lansing team for inviting me!

Creating your first Application for TV

One of the major announcements that came out of Adobe MAX was the availability of AIR 2.5, which is the first SDK to support televisions as an output.  While most of you may be scratching your heads as to why this is a big deal, the few of you who have ever attempted to write an application for a STB (set-top-box) or directly for a television know that they are one hard nut to crack.

Generally, up to now if you needed to push an application to a television-connected device, (including DVD players, Blueray players, STBs, or TVs themselves), you either had to learn the vendor’s propriety language, go with the vendor’s interpretation of Java, or just pay them to make the app for you.  Additionally, it has only been a very short while that the manufactures have even given the developers the ability to push apps to these devices (with Samsung really paving the way in the past few months). 

In comes Adobe with their OpenScreen Project, where they are allowing common RIA developers to simply create applications that can be deployed to these television connected devices.  The dream of write-once-publish-anywhere just got extended to another class of devices.  Mind you, these will be high-end devices at first (for example, take a look at Samsung’s TV lineup (filter by Samsung Apps in the features section) to get an idea of what you will be targeting. Read more of this post

The truth about avoiding the phone company with VoIP

VoIP, or Voice Over IP is seen as the future of telecommunications.  In the enterprise, it took hold about 5 years ago, and about 3 years ago it became the norm for any new phone system. In the highly controlled network environment of the office, the technology flourished and eventually became rock-solid by breakthroughs made by companies like Avaya, 3com and Cisco.

Around the same time consumer-based VoIP products like Vonage started hitting the market.  These use the consumer’s internet connection and provided a dialtone like replacement for a standard phone line.  Generally these types of connections were less expensive (and in some cases, they were MUCH less expensive), but at the same time they relied on the general internet (without any quality-of-service gaurentees).  Recently there has been a lot of fanfare over Google Voice being available on various mobile devices like Google’s Android and Apple’s iPhone.  This allows users to use their data plans and bypass the cell-phone companies. The funny thing is, even AT&T sees consumers bypassing their services as a viable threat – they filed paperwork to lift the requirements that they provide phone services in their entire claimed market.

There are a few problems with this mass migration from traditional telephony services to this “wild-wild-west” VoIP services.

First off, VoIP has no concept of location-based services.  With traditional PSTN “landline” or business services, the phone company delivers your services to a physical location (your home or business).  This information is tied to a database which is given to 911 and other emergency services when you need it. Because VoIP connects over the internet, there is no real way to track where a call is physically being placed from — and the problem is exaserbated by devices like firewalls, VPN tunnels and MPLS networks.

Next, there is no concept of Quality of Service for many of these consumer devices.  Companies like AT&T in my local market offer DSL service in most areas that has a 1MB download and 256kbps upload.  This allows for a descent speed for doing things like browsing the web or reading emails.  However, if you try to use a VoIP connection you most likely will saturate this connection — and if you try to browse the internet while being on the phone (something I do quite a bit), you run a huge risk of your connection breaking up or being disconnected completely. More advanced routers and internet service providers offer QoS for connections, but these are not universal, nor are they easy to setup.  I won’t go into the reliability of internet connections in storms, power outages, etc. where quality and resiliency is a needed in emergencies.

Compatibility is another issue that is becomming apparent. There are hundreds of different “VoIP” providers out there, each with their own software or hardware application.  Companies are all trying to write their own standard (like Skype), or if they use some of the open standards (like Google), they implement them in a way that makes it very difficult to interconnect with others.  This is very similar to the beginning of the telephone network where there were lots of different networks, and none of them connected with eachother.  The government finally stepped in and created some laws (known as Common Carriage Laws) that required anybody who wanted to be a telephone provider to interconnect with each other.  Currently many VoIP providers do connect via the PSTN, but often times they charge users additional fees to do this.

Finally, we need to take a step back at the PSTN system itself.  It has become a commodity item, and even further more, it has become a so universal it is considered a utility.  In many markets it is heavily regulated by the government and has lots of redudancy, backups and, well it’s a proven technology. As more users disconnect their traditional phone lines and go with VoIP providers, less work is being put into this system and eventually that glue that holds it, along with all the PSTN providers will begin to go away.  Not only that, but because it has become such a commidity, you can get land-lines for cheap, and unlimited minutes (both in cell and landline), it makes very little sence to use these technologies other than it’s the “next best thing”.  If you don’t believe me, take a look at your VoIP provider, and compare that to a $14 phone line (unlimited local calls, and up to $0.05 a minute for long distance).

Think twice about cheering on AT&T in cutting the cord with land-line service.  It’s something that is easy and well understood.  Also think about how you plan to get internet access — and how those who are in unprofitable areas can get basic services (like phone and internet services) if companies like AT&T and Verizon are not forced to provide them.

Innovation in Cable Television

,,,

Last week, I had the pleasure of going to the AHECTA conference in San Antonio, TX.  This conference was a great opportunity to network with my peers in the Cable Television world, in particular those that support colleges and universities throughout the country. Some of the things the schools are implementing to entertain their students (read: recruit their students to live in the dorms) are really innovative, even with the lack of money that is out there right now. Listening to some of the schools that are sharing content via Internet 2, or implementing IPTV across their campus makes me proud to work in the education industry.

Unfortunately, one of the constant themes of the conference was about the content providers that we deal with.  Many of the larger content providers like Comcast, Time Warner, Verizon, etc. have become the 1,000lbs gorilla in the room that only want things their way. Everybody is scared of the new, and have a real hard time with innovation.  Lets face it, despite going digital (squeezing more channels in the same channel space as before), cable television hasn’t really changed a whole lot.  You turn on your TV, you turn on your tuner, and you select your channel.  Some new features, such as Video on Demand are really re-inventions of old ideas (Pay-Per-View). 

When we start to look at what is happening to the industry — the move to high-def, with highly compressed, loss-less video, and especially the change to new mediums, they seem scared.  If you were to approach a Comcast or Time Warner and ask them if you could deploy your campus cable with an IPTV setup, they would walk away right there.  If you go directly to an ESPN or Showtime, and offer the same (even including a DRM package like Flash Media Server), they would tell you it is not in their supported model.  It’s funny to watch the entire industry clammor for a change, yet the producers of the content refuse to allow the change. 

So where does all this leave those of us providing the services to our communities?  Well, for the most part, we will provide what the content providers allow us to provide, and will try to innovate to what our communities want.  One day, the two will meet, and all will be happy :)   

What types of technologies do you think students would want to consume for their "television" watching?

Need some RIA Consulting? I can help!

,,,,,,,,,,

Over the last few years, I’ve been dialing down the amount of consulting work that I was doing.  I made the conscious decision to spend more time with my family and friends, I bought a house, and spent a lot of time outdoors.  I also started a new usergroup, the Michigan Flex Users Group, ran a conference, and wrote lots of articles for Fusion Authority Quarterly, and Flex Authority to name a few.  Oh, and some of the small amount of consulting I’ve done included some names like Avaya, Michigan State University, the Ford Motor Company, Scottrade, AT&T, Penn State just to name some of the larger customers.

I am looking to grow my consulting business a bit.  If you or your company need outside help, please drop me an email or give me a call.  I have expertise in the following:

  • Rich Internet Application (Flex, Flash, ActionScript, AIR) : Design and Create
  • Internet Application Development (ColdFusion) : Design and Create
  • VoIP Telephony Integrations (H.323 / SIP / IAX) : Design and Implement
  • Avaya Telephony Systems (Including Avaya Communication Manager, Definity, IP Office, Distributed Office, and Partner Systems) : Design, Implement, Maintain and Troubleshoot
  • Voicemail Systems (Including Mitel and Avaya Modular Messaging) : Design, Implement, Troubleshoot
  • Hybrid Cable Television systems (GigE Implantations, typically with RGB or Motorola equipment) : Design, Implement, Troubleshoot
  • Data networking (Extreme Networks, Cajun, HP, Cisco) : Design, Implement, Troubleshoot
  • Linux and Unix (BSD) based server administration : Implement and troubleshoot

If you would like to contact me, my email is kwiatkowskin@hostingplace.net , or +001 616-304-2520. 

I’m Back!

,,,,

Well, it’s been a really busy summer.  I haven’t been blogging too much lately; my office job has been keeping me really busy.

My department officially launched our new cable television system this last week.  This was a huge, huge project for me.  I’ve been working on it for well over a year, and pretty much squeezing everything else in with it. 

Our old system was installed in the mid 1980′s and has been working fairly well since.  We serve a population of about 24,000 students, faculty and staff with about 60 channels of cable television programming.  This was going good until HDTV hit the market.  Over the past years, we have had students clammering for digital and HD services that we could just not offer with our current setup. We were also starting to get push-back from our content providers (Comcast, DirecTV, BigTen, etc) with them providing us analog services.

Our new design is completely digital up to each building.  We have to retain analog service for the many classrooms (and also students who brought in their analog televisions), but we are now also offering a digital/HD lineup that is a step in the right direction.  We launched the system with 4 QAM channels, featuring about 18 digital channels, and still having about 55 analog channels of programming.  We are in negotiations with various content providers to offer even more channels. 

The coolest thing about this new setup is it all GigE (gigabit ethernet) based.  In fact, the cable industry has pretty much settled on MPEG-2, MPEG-4 or H.264 as their standard to transport all video.  I can plug my laptop into any ethernet switch on my network an tune into the raw video feeds using a program that supports Multicast MPEG streams (such as VideoLAN).  Because the feeds are over ethernet the entire way, we don’t loose signal, or have to worry about attenuation going through various devices as we did in the past.

We ended up using equipment from a few vendors like Motorola, RGB and EGT.  All of them configure using a web browser, which is also cool. All this, coupled with a SlingBox, will allow our techs to maintain and work on our equipment without rolling a truck! 

So, now that project has taken place, I should be able to concentrate on doing more Flex/AIR and CF stuff. I’m hoping to integrate some of my new found knowledge of the video world into some of my future apps, so watch out!

MSU IT Conference, etc.

,,,,,

Well, the MSU IT conference is long and gone, so I’d figure I would write some sort of review of it.

All in all, it was a very well run and organized conference.  A conference consisting only of the people that you work with seems weird to people who work in small to medium sized companies, but when there are over 1,000 IT staff in a place that has 10,000+ workers (and 50,000+ people all together), you tend to build silos, and not communicate between them.  This conference was designed from the ground up to break these silos.  Things like assigned seating during meals with people you typically don’t know really helps with this.

Breakfast and the keynote speaker were great. 
Gerry McCartney, the Purdue CIO had an excellent speech about innovation within the education scope.  It made a couple things click in my mind, and really raised some questions within our own community.  I got to talk to him a bit after the keynote, and got to talk about the same innovation topic a bit. 

The sessions were good as usual. I got to sit in on Jeff Utter and Jeff Goke-Smith’s presentation on network security.  Both really know their stuff, so they made it difficult for me to give them a hard time.  Their presentation really should have been about two hours, but they did really well with the time they had.

After a brief lunch I had my session on VoIP technologies.  I had a packed room, with people standing by the door, and only two chairs left in the entire place. I talked about our department, what VoIP was, what were the pros and cons of using VoIP on your data network, and of course the demos. 

I had some great questions from the group, so the time I had for demos got greatly compressed, but that’s ok.  I showed :

  • EC-500
  • Unified Messaging
  • Avaya 4610 VPNremote Phone
  • Avaya  9640 IP Phone (with Calendaring and synced Contacts)
  • Avaya IP Softphone
  • Avaya 3645 WiFi Portable IP Telephone (with paging)
  • MSUtv (IPTV).

It was great to finally show some of these projects we have been working on.  I ran over by about 10 minutes, but just about everybody stuck around!

The final presentation I went to was proper techniques for deploying web applications.  It centered around PHP, and lots of OSS stuff, so it was neat to see another point of view.  A lot of the problems they were trying to solve were never really problems with ColdFusion, and the ones that were I’ve been implementing for quite a while already (by using SVN and things like that).

Finally, the conference wrapped up with a Q&A session with the guy who runs a majority of the IT on campus.  Lots of good questions, and really helped people figure out where our campus is going in the future.

Speaking at the MSU IT Conference

,,,,,

Well, it seems that all I’ve really been talking about on here is what conferences I’m going to, or where I’m presenting.  This post continues that trend (sorry!).

On Wednesday, April 23rd, I will be traveling long and hard to speak at the MSU IT conference, just down the road from my office.  While this conference is MSU specific, I will be preseting on some of the new technologies that we are devloping in our office, including : IP Telset deployments, Presence, WiFi phones, Digital Cable, and a sneak peak at IPTV.  It should be lots of fun (if I can get the demos to work).

There’s Voice in Them There Wires: A Discussion About the State of VoIP on Campus
Nick Kwiatkowski, Michigan State University Telecom Systems

Voice-Over-IP (VoIP) has become a relatively familiar name, but very few MSU employees are aware of how it is used on campus, and what policies are in place for its use. MSU Telecom Systems has built a robust telephone network on campus that uses VoIP and includes many different voice-based applications. At this presentation, learn what VoIP is, how MSU Telecom uses it on campus, and what services are planned to be deployed in the future. See the new technologies such as the latest VoIP phones, WiFi phones, and Presence solutions.

If you work for MSU, or just want to see what is going on, the link is here. Register here.

Follow

Get every new post delivered to your Inbox.