Spice SoftPhone

From SpiceCSM

Jump to: navigation, search

Contents

Introduction

Spice SoftPhone is a softphone GUI for FreeSWITCH, it is intended to be a very simple phone for making/receiving calls; there are very few features and minimal configurability. It has been designed to be embeddable in other ruby/tk applications and was developed to provide a cross-platform softphone for callcenter style usage.

It uses both the event socket and XML curl to control FreeSWITCH. XML curl is used to deliver sofia configs to allow FreeSWITCH to be dynamically reconfigured without having to restart the switch itself (so it can run as a high-priority background service).

In some cases it my be desirable to not reconfigure FreeSWITCH, such as embedding in another application, or to have unique registrations based on which workstation an agent is using. Starting the phone with :useConfigServer => false disables the XML Curl capability.

Usage

Spice Softphone login dialog
Spice Softphone login dialog

When you start the phone, it tries to connect to a running FreeSWITCH instance running on localhost on the default event socket port (8021). Once it connects, it checks if the 'default' sip profile is running, if it's not or it's running with a different username/proxy combination it prompts for credentials.

Provided the software was started with the config server enabled, it then attempts to reconfigure the sofia default profile to use these new credentials. If this fails, the login dialog is presented again, if it succeeds the main window is shown:

Spice Softphone main window
Spice Softphone main window

The main window is pretty much the bulk of the application. You can mute/unmute the microphone and headset, you can choose the microphone/headset device by clicking on the 'Microphone' or 'Headphones' labels to get a dropdown, you can dial a number by typing in the box or using the dialpad. Once a call is up you can place it on hold, retrieve it from hold or hang it up. The Dial button becomes an answer button when the phone rings and the settings button allows you to do a ring test, a loopback test and to configure the style of dialpad.

Softphone integrated into Spice Telehphony UI
Softphone integrated into Spice Telehphony UI

Requirements

  • FreeSWITCH installed and running locally (the phone doesn't try to start FreeSWITCH). http://wiki.freeswitch.org/wiki/Installation_Guide#Windows_2 may be useful
  • FreeSWITCH configured similarly to sample xml file (inbound calls go to portaudio, XML curl sofia config lookup)
  • Ruby 1.8 and tk 8.5 (8.4 also works if you install tile yourself)
  • A valid soundcard

http://wiki.freeswitch.org/wiki/Installation_Guide#Windows_2 has some information on getting pre-compiled binaries; however, it is usually better to compile from source. Note that while the binaries can be moved to other windows machines, the target machine must have the Microsoft VC++ 2008 redistributable library installed (as mentioned on their site).

http://wiki.freeswitch.org/wiki/FreeSwitch_FAQ#Q:_How_can_I_use_FreeSwitch_as_a_Win32_service.3F has information on running freeswitch as a service.

This software (FreeSWITCH and the ruby ui) use the following ports:

  • 8021 : FreeSWITCH interface
  • 6789 : Spice Softphone configuration server for FreeSWITCH

Bugs

The default XML config file doesn't do outbound calls.

More?

TODO

  • Make the ring file configurable from the UI