"We are committed to providing our Customers with excellent software solutions. We can handle everything - complex business, mobile, game, web applications and present perfect result at the end," Dmitry Starostenkov, CEO
The IPFones utility is to adapt a USB phone to be used as a communication device for the Skype application. IPFones (http://www.ipfones.com) already owns the software for Windows and selected Enterra to implement this software under Mac OS X.
When writing this application we resolved several tasks:
Phone interface. Enterra had to obtain data from the phone including both sound data and keyboard data. It also implied the USB device communication: device recognition and manipulation
Communication with Skype. Sound had to go from the phone to Skype and from Skype to the phone. Key strokes on the phone had to initiate some actions in Skype
Application window management. It included device selection and sound volume manipulation
The application was developed under Mac OS X 10.3.9. Carbon application environment seemed to be more suitable both for the tasks of the application and for developers. The application required the following frameworks:
It also required: Human Interface Devices Utilities library taken from samples provided with Mac OS X. The library has been modified to more suit our needs.
USB Device Manipulation
The phone was provided as a USB device. To work with it Human Interface Devices Utilities library was used. It allowed obtaining data from the phone and sending the data to the phone. Using this library we completed the following tasks:
The device search
The device connection / disconnection event management
Obtaining keys pressed. Later we converted them to Skype commands
The phone LED manipulation. LED blinking indicates the phone is controlled by our application
The phone LCD update. We use it to display date, time and call status
Communication with Skype
To communicate with Skype we used a Framework provided by Skype Company (http://www.skype.com). The framework provides with an ability to:
Define when Skype becomes available
Define when Skype becomes unavailable
Send commands to Skype. Keys pressed on the phone we converted to Skype commands and sent to the program
Receive notifications from Skype. Solving this task, we wrote a parser, which allowed us to convert string notifications to information required for our application
Once the phone is recognized as an audio device, Skype allows setting it up as input and output devices. The sound goes to Skype through Mac OS X audio driver.
Would you like to use our expertise in your project? Do not hesitate to contact us now