Wednesday, February 4, 2009

FreeSwitch and .NET

I have been reading the complete IP Telephony eBook by ShoreTel along with the white papers and decided that I wanted to go further into this technology. Here are some of the advantages of IP Telephony solutions:
  1. Business application integration (for CRM database)
  2. Calendar integration
  3. Call waiting
  4. Caller ID
  5. Click-of-a-mouse simplicity—employees
    make or transfer calls right on their
    computer
  6. Conference call with document sharing
  7. Contact screen and caller information
  8. Desktop application (i.e., Microsoft
    Outlook) integration
FreeSwitch (FS) at (http://en.wikipedia.org/wiki/FreeSWITCH) is an open source communication platform for voice and chat driven products written in C that can be interfaced with applications written in C/C++, Java, .NET, PHP, Python, etc. It provides the ability to do:
  • Conferencing
  • XML-RPC control of live calls
  • IVR
  • TTS/ASR
  • PSTN
  • Voice over IP
For more general information, contact http://wiki.freeswitch.org/wiki/Main_Page . Michael Jerris has a good introduction to FS at http://taug.ca/files/Freeswitch-Intro.pdf . You can interface with FS by:
  • XML-RPC
  • Event Socket
  • Embedded Languages
  • Modules
  • ODBC
  • CDR
  • XML

I downloaded the pre-built binaries to get a view of the application, see Figure 1. The FreeSwitch Home Page is at (http://www.freeswitch.org/docs/).

Figure1 . Console Applications of FreeSwitch


From here, I downloaded the source code for all 128 projects into Visual C++ 2008 Express Edition, see Figure 2. From there, I did the build (It seem to take forever) all the projects with modules, downloads, etc. successfully and ran the FreeSwitchConsole Application.

Figure 2. FreeSwitch Visual Studio 2008 Express




The modules for FS at (http://wiki.freeswitch.org/wiki/FreeSwitch_Modules) have a java module that can be implemented from http://wiki.freeswitch.org/wiki/Java . The next step is to do some sample code to show some of the features of using this application. There are several examples at http://wiki.freeswitch.org/wiki/Category:Examples . The Answering Machine example in Javascript is interesting; however, in future posts I plan to include some .NET examples to provide additional insight into how to use and integrate these modules into your business needs.

1 comment:

Michael Collins said...

Nice post! FreeSWITCH is extremely flexible and powerful. We are definitely interested in how people are using FreeSWITCH in production environments. If people have questions they are welcome to visit our wiki at wiki.freeswitch.org, our mailing list at lists.freeswitch.org, and our IRC channel, #freeswitch at irc.freenode.net.
Thanks!
-MC