d-man.org   News | Photos | Fun Stuff | Forums

Archive for the ‘Tech Stuff’ Category

TCAPI Project now out there somewhere…

Sunday, September 7th, 2008

Those developers who joined the introductory WebEx today can now access the code that was released. It’s not much, but it’s a good start. Hopefully some folks will commit some stuff to it.

For those who didn’t join today you can still get involved. Please drop me an email if you want to develop some code for what is currently a FreeSWITCH-based GUI front-end for a PBX (and whatever other functions you might desire).

You can reach me here.

Also, I’m curious to start getting feature requests. What makes up a good FreeSWITCH UI? What functions do you want to see? Let me know your thoughts.

TCAPI Pre-Alpha Release (formerly FreeSWITCH GUI Project)

Wednesday, September 3rd, 2008

I’m pleased to announce the pre-alpha (yes, pre-alpha, meaning “doesn’t do very much”) release of the FreeSWITCH GUI project (now named “TCAPI” - the Telephony Configuration API).

Before you get all excited, I want to make sure I’m clear that my main focus has been concentrating on structure and flexibility of the back-end and whatever modularity I could build thus far. I will publish a stack-type diagram shortly to show what I’m looking to achieve. In the meantime, I’m releasing what code has been written (it’s not much) to help people get familiar with the underlying structure of the code. The UI doesn’t *do* anything except configure extensions with various variables that aren’t recognized by default by FreeSWITCH so if you are thinking this GUI will, today, actually do anything for you, keep holding.

Here’s what HAS been accomplished:

  • Implementation of a reasonable AJAX-based JavaScript framework that also implements cross-browser compatible CSS “frames”
  • Helpers have been created to aid in reading/writing XML files with complex element/attribute structures
  • Ability to write your data to MySQL/SQL/Firebird/DB2/Oracle/ODBC/Postgres/etc.
  • Ability to write to raw/native FreeSWITCH XML files via a FreeSWITCH model (+ the start of a DBO layer for FreeSWITCH)
  • Basic controllers with limited logic
  • A lot of work has gone into making the JavaScript work in an abstract-able way, so that a different AJAX framework can be introduced later
  • Menus are configurable without touching any JavaScript. You can write stuff that utilizes the JavaScript framework without knowing or touching any JavaScript directly
  • DHTML/CSS frames-based layout allows for “plugging in” just about anything as a menu item (including scripts in other languages, if necessary)
  • XML save/load models are easy to duplicate, and mapping helper functions are just a few steps away
  • Extensions page is functional and easy to modify/setup/etc.
  • Basic sample pages have been put together for other areas (domains/users/devices)
  • Browser-based AJAX streaming classes have been written/included to allow for streaming channel status information
  • Everything has been written with layers in mind (as much as time allowed for anyway)
  • Oh, and of course, an IRC channel on freenode
  • irc.freenode.net #tcapi

    Here’s what’s very much missing:

  • A web page describing the software & it’s mission (I have this written, but would like to post it on a nice looking website)
  • A bug tracking system
  • A proper email list
  • A PHPDocumenter-generated (or similar) list of functions & what limited classes/APIs have been written
  • A simple install procedure/instructions/etc. file
  • SIP Profile configuration tools
  • Domain configuration tools
  • A dialplan that allows advanced features being saved to the XML work (stock dialplan)
  • A ’settings’ page to configure base settings via the UI
  • JavaScript is not properly abstracted on most pages
  • this needs to be completed

  • Pages should be designed to work within the JavaScript frames as well as when they are NOT in the frames
  • The fsxml component needs to be abstracted as a custom behavior

    Other ideas I’m tossing around:

  • Making all HTML and back-end pieces WSDL/SOAP accessibile
  • True APIs - everything has been written as if it was a program for now, but I’m at the point where many things should have get/set/etc. commands added and the related variables that are being modified should become protected, so that things can be moved into libraries.

    A few things have been kept out of the initial check-in until I clean them up, but the channel & conference status pages will be checked in by Friday I hope so that you can monitor calls in progress/etc.

    So what’s next! I am limiting who gains access to the initial files and who commits to the project. I am doing this to gauge interest and because so much still needs to be done, I frankly only want serious, interested developers at this time (even if you can’t commit gobs of time, you need to show your interest in at least learning how the things work). This is mostly to avoid questions and also avoid disappointment from “end-users” who are just out there to try things out, since most of this code doesn’t do very much yet and a lot of hand-holding to install it is still required.

    So here’s what I’ve decided to do. I am going to hold two training WebEx meetings in the next week. The first one will be on Sunday at 11am PST. I will go through the code and how to set it up. I will provide an SVN link at that time to the code and you can follow along with the setup process. All you need is an install of FreeSWITCH on a Linux box + Apache + PHP5 stock libraries. Past that, I’ll get you going, show you how the code is setup, where things are, how to add menu items, how to add a table to the custom model, and so on. And you should be off to the races to try out any of the above items you wish, or some of your own!

    So again, WebEx, Sunday, 11am PST. If you’re interested, please email me and I’ll send you a formal invite with an attendee link.

    If you’re not interested in contributing at this time, just sit tight. I expect a true functional alpha release to be ready within 30 days (or less) that can configure SIP profiles, domains and directory entries completely from the UI.

    You are also welcome to invite others - pass along this URL if you wish.

  • The FreeSwitch GUI Project

    Saturday, July 26th, 2008

    Welp, it’s official.

    The FreeSwitch UI / GUI Project is underway. This week I hope to put the finishing touches on a functioning graphical, web-based user interface front-end that, at the least, adds/edits/removes extensions, adds/edits/removes service providers, lets you setup some basic global features, and maybe even allows you to have a “light” version of a functioning PBX.

    The system utilizes FreeSwitch, CakePHP and some JavaScript/DHTML add-ons. Some may bicker about this, as I am aware it bloats the software a bit, but considering the audience for this is administrators, a bit of bloat in exchange for rapid development and ease of use seems reasonable. CakePHP may also be a source of complaint (compared to Symfony and others, or maybe you just hate PHP), but hey, the reality is CakePHP is under active development and seems relatively lightweight. Best of all (in my opinion) it doesn’t use a templating engine for views. Those things make me cringe when trying to teach people in an open source project how to ramp-up on the coding pieces, and don’t add enough value to warranty this additional hurdle.

    The overall design is easy enough to understand that anyone should be able to dig into the Ajax friendly front-end views without knowing much coding, or add functionality on the back-end where the same assumption applies.

    Here’s a screen shot to wet your appetite…

    Configuration screen in FS demo

    If you’re interested in helping with development, please contact me.

    FreeSwitch + the future

    Friday, June 13th, 2008

    So I’ve been an Asterisk fan for a long time, but mostly because of the functionality it spearhead providing. As a first-of-its-kind to a community of telephony enthusiasts in flexibility, features and simplicity, it really took the cake for being a wonderful open-source product.

    However, I’ve felt for some time that the Asterisk endeavor has sort of stalled. While support for the product is mounting, people’s attempts to capitalize on it (www.trixbox.com, www.digium.com, etc.) may have actually stalled it’s growth in terms of features and flexibility.

    Then I found FreeSwitch.

    FreeSwitch’s goal was to take the things Asterisk couldn’t or wouldn’t do and expand on them. I truly believe this is the next Asterisk 2.0. From stability to a better core threading model, this is a great start to a new phenomenon.

    One of my core concerns with FreeSwitch is that it is so flexible that I think some people get scared away from it because, out of the box, it actually doesn’t do very much. You’re left to program a bunch of dialplan and SIP provider information on your own. No GUI, little documentation, etc.

    I can’t blame the developers for this - they clearly packed quite a punch in the feature list, and development is quite active - but I believe it’s stalling adoption.

    So while I know PHP isn’t anyone’s favorite language these days, I decided to throw something new into the mix.

    Welcome to the FreeSwitch GUI project. :-) Today I began building a UI for FreeSwitch that allows it to work like a full-featured PBX. Been done before, I know, but it’s really just a start. I’m hoping to get feature requests to expand it to work as more then just a PBX. Maybe an advanced Call Center, or maybe an advanced IVR system? Who knows - but I’m open to requests.

    I’ll be starting with the basics - look & feel, basic programming, and generating dialplans automatically. After that, we’ll try to make it flexible when configuring SIP providers. Then we’ll start adding more heavy duty features.

    If you’re a PHP coder and interested in joining in this endeavor, feel free to hit me up.

    Screenshots coming soon…

    BART / Sprint Mobile Wallet ?

    Saturday, December 22nd, 2007

    So it looks like Sprint and BART think using your phone as your wallet could be a pretty cool idea. So much so that they’re paying people to try out their new technology.

    I’m game.

    Check out http://labs.sprint.com/intro/mobiletransit/

    The trial benefits, if you qualify, include:
    1. You will be paid for participation.

    • $75 - after you pick up your new phone
    • $75 - when completing the mid trial survey, post trial survey, and returning the phone
    • $15 - for tapping on 5 of the 10 service discovery posters (more information will be provided when you pick up your new phone)
    • Free Power Vision (data service) during the trial
    • $20 - prepaid Jack-In-the Box card in Mobile Wallet

    2. You will have the convenience of your leather wallet in your Sprint mobile phone in a secure fashion. You won’t have to fumble for cash, a ticket or card when riding BART or paying at Jack in the Box. Simply hold your phone up to the reader and you’re done!
    3. You will pass through the lines at a faster pace.
    4. You will use cutting edge technology for everyday purchases.

    Note the item stating that if you tap 5 of the 10 service discovery posters you will win money. Interesting concept, huh? How’s that for getting people to check out your marketing materials and report back on them?

    I’m fascinated with this idea. Your phone as your wallet. I also wonder if it’s hackable. The phones are most likely programmable. Mystery awaits!

    And what about my friends who lose their phone constantly? Now they lose their wallet, too? Scary…

    RingCentral launches!

    Friday, November 16th, 2007

    RingCentral,  a company I wrote about previously, has finally released their VoIP product. This thing still ranks as uber-cool in my book. I wish they’d support DIDs and SIP trunk handoffs, but outside of that, this is really a wonderful solution for home and small businesses that want a VoIP line with a bunch of features without paying much for them.

     If you’re a VoIP junky, I suggest you check this out. Most notable is their softphone which also supports faxing, and the fact that you can have multiple lines going at once on a single account.

    Can the Internet waste even MORE of your time?

    Monday, August 6th, 2007

    Just when you thought the Internet couldn’t possibly find an interactive way to waste even more people’s time, there’s this…

    http://web.okaygo.co.uk/apps/letters/flashcom/index.htm

    Have fun kids.

    Websites and Muni and POWER - Oh my!

    Tuesday, July 24th, 2007

    So it looks like downtown San Francisco had a bit of a negative jolt this morning - losing juice to all the major important stuff downtown. Interesting to learn that half of the critical buildings downtown are all wired on the same circuit.

    Well, shit happens.

    But wait! It gets better. 365 Main, the indestructible, went down, too. Failover to generators was not flawless and Craigslist, Yelp and other sites crashed. Still down now, 3 hours later. Aren’t we in the age of failover redundancy in Silicon Valley?

    I’d personally buy some stock in APC tomorrow, when every CEO in the Valley yells at (or praises) their IT folks, but that’s just me.

    Anyone get to go home early?

    SF Gate Article

    Mind you all, I’m still happy we live in a country where 2 hours without power is considered a big deal. (It’s really not)

    Alltunes / AllOfMp3.com lives!

    Friday, July 20th, 2007

    So if you haven’t checked out Alltunes.com / AllOfMp3.com, I think you should. Not because it’s a controversial site that involves possibly violating copyright laws, but because it’s a fascinating attempt at distributing music on the Internet for very low prices - that’s been HIGHLY successful. As usual, rather then embrace this model, music companies are fighting this firm (with millions of legal $s) in an effort to protect “their rights.” Fair enough. But aren’t these the same companies that are continuously failing to catch the public’s attention with their copyright-protection riddled downloading schemes? These guys are busy making millions with a wonderful system! BUY IT AND SET WHATEVER PRICES YOU WANT!

    Now, because of all the controversy, you might have trouble getting started. So here’s what you can do.

    1) Create an account on www.Alltunes.com and download the Alltunes player/store (it’s similar to iTunes).

    2) Create an account on XRost - the payment system. This link will take you there. Create an account, and buy a credit for $20 or so.

    3) Deposit the credit you bought in step 2 into AllTunes via this link.

    4) Download $20 worth of music! At $0.14 a song or so, you can get about 140 songs or 11 albums ($1.80/album!)


    If you want to read up on this stuff, check out these recent articles… A bit of background before you read:

    1) The site uses a “loophole” of sorts to claim that all the music they distribute is covered under a russian distribution license that’s really intended for other uses.

    2) The music industries have been trying to sue the company for years but Russia won’t have it. The RIAA has even used lobbiests to try and pressure congress to force Russia to comply!

    3) Visa pressured a credit card processing company to ban payment processing by AllTunes. A Russian court overturned this ruling recently.

    Try AllTunes here

    My new Mac Powerbook

    Wednesday, July 18th, 2007

    So I’ve officially switched. I bought the Mac Powerbook to try and familiarize myself with Macs so we could officially support them, since many of our customers at work are demanding Mac support. I wanted to “get it.” I really thought, as a power user, that I would hate the thing.

    Alas, I’m done with PC. This thing is so freakin fast, reliable and flexible. I’m very, very impressed. Microsoft is in big trouble if you ask me - add a few more things to Mac OS and there’s not much reason to buy Windows anymore. Microsoft Outlook comes to mind, as does .NET 2.0 support and a few programming tools like Zend or Visual Basic. But with many things moving to the Web anyway, Outlook is the only remaining hurdle long-term, in my eyes.

    Here’s what I was surprised to find works within Mac OS X itself:
    - Active Directory domain support! Just go into Utilities and click the Directory Services program, then check the Active Directory button. Assuming you’re an admin or know the domain admin password, you can even join the computer to the network (use the “Bind” button) from within Mac OS X!
    - Printers on the AD work fine after it’s joined. Awesome.
    - 802.1X wireless authentication. Works great - just import the cert!
    - Remote Desktop Connection to Windows PCs (though, really, could we add a few options like resizing windows here?)
    - Samba/Windows file shares and mapped drives (some manual mapping was required)

    I’m sure there’s more. So let’s be clear, though - Safari works fine for surfing the web, MS Office for Mac works fine for Word/Powerpoint/etc., TextMate works fine as a text editor, Adium is great for IM, etc.. So the only two things I’m using Windows for at this point are ConnectWise (work) and Outlook (for work primarily).

    Very impressed, still. I’ll be posting my install instructions plus my top 10 favorite programs thus far in a post this weekend.