April 2004 – August 2004

Computer Telephony Integration

The computer telephony integration (CTI) server was a new product for Reynolds & Reynolds to integrate IP telephony functions into existing Reynolds & Reynolds applications. The first phase of the project provided outbound phone notifications and inbound IVR function. The outbound notifications were triggered from existing Reynolds & Reynolds applications when a repair order was finished, to remind a customer of an upcoming service appointment, and to notify customers when a special order part was received. The inbound IVR provided status information on special order part orders and service status. The telephony functionality to place outbound calls and receive inbound calls was handled by the Customer Interaction Center (CIC) from Interactive Intelligence.

I refactored the prototype code to isolate the telephony function and to more easily accommodate integration with Reynolds & Reynolds products. Prior to refactoring, the C# code and the CIC shared a common database, which was the means of data sharing. I introduced several SOAP web services that were called from CIC to provide an explicit interface and isolate the telephony function.

Technical highlights included:
  • Code generation using XML/XSLT to create strongly typed classes to call stored procedures and handle returned data readers.
  • SIP class to create simple SIP messages and send test messages to the Cisco router for diagnostic purposes.
  • Mock classes using remoting.
  • Comprehensive NUnit tests
Unfortunately, the project was cancelled before the product reached beta.

Technology

C#, .NET (1.1) ASP.NET XML, XSD
Web Services, SOAP, WSDL Microsoft SQL 2000 UML
Remoting IVR SIP
IP Telephony    

Tools

Visual Studio .NET 2003 XML Spy Enterprise Architect
Interactive Intelligence
Customer Interaction Center
NUnit NDoc