Controlling Devices By Phone

Project Files

New Files

controller_refer.tcl Controller for SIP REFER request and response handling
welcome.cgi Welcome page. It takes a PIN from the user required for authentication.
main_menu.cgi
Display main menu.
get_devices.cgi
Display device selection menu. Lists the devices the user is authorized to control.
get_commands.cgi
Display command selection menu. Lists the commands for the selected device.
get_arguments.cgi
Prompts the user for each argument required by the selected command.
process_command.cgi
Process the command.
subscription_menu.cgi
Display menu to manage subscriptions.
get_subscriptions.cgi Lists current subscriptions for user.
get_subscription_devices.cgi Display menu for devices the user is authorized to subscribe to.
get_subscription_events.cgi
Display menu for events for a device that the user can subscribe to.
record_subscription.cgi
Record device event subscription (notification request).
remove_subscription.cgi
Remove subscription for user.
send_notification.cgi
Handles all event notifications.
get_notification.cgi
Get notification message for user.

Modified Files  

controller_do.tcl Handle SIP DO request and response.
controller_request.tcl
Handle all SIP requests.
controller_response.tcl
Handle all SIP responses.
controller.tcl
Main controller for SIP.
sipstack.tcl
Handle SIP parsing, composing, re-transmission, callback handling.
transmission.tcl
Handle TCP and UDP transmission.
vxmlcall.h
Represents a SIP incoming/outgoing call to/from the browser.
vxmlcall.cpp
Implementation for vxmlcall.h
vxmlsession.h
Represents a VoiceXML session.
vxmlsession.cpp
Implementations for vxmlsession.h
fia.h
represents our VoiceXML form interpretation algorithm
fia.cpp
implementation for fia.h

Configuration/Other Files

device_control.conf
Configuration info for device control center
device_control.sql
SQL dump for device control center schema.

System Requirements

Installation

  1. Put New Files in CINEMA directory
  2. Install SIPVXML browser. See installation instructions here
  3. Install SIP Library on server.
  4. Put appropriate configuration information in device_control.conf file.
  5. Run sipvxml as:  $ sipvxml -u http:// [WEB SERVER URL]/welcome.cgi
  6. Call the SIP Vxml Browser using SIP Phone. Follow the directions.

Screen Shot

Not applicable since user interaction is via phone.

Code Borrowed / Used

Sip Library
VoiceXML interpreter

Acknowledgements

[1] Kundan Singh for his help with Sipvxml.
[2] Xiaotao Wu for his help with SIP message handling.