Polycom SoundPoint® IP

Below is a breakdown of the work plan to support Polycom phones. This involves creating a whole new API for phone support.

Create business objects and database tables if necessary
For example, Endpoint, ConfigProperty, etc.
STATUS: Hibernate was investigated and proved adequate.
Create loadable modules for new phone models
GOALS: Developer must be able to build support for new phones without changing source code in sipXconfig project
STATUS: SpringFrame work has a powerful way to do this and proof of concept was a success. See PhoneFactory.java in source base
Config Set Replacement
Current application stores properies in XML in the postgres DB as a CLOB. This complicates code significantly.
STATUS:Possible meta data in database as name value pairs, with an id to determine with property it's defining. Will have to support hierarchy. May be optional for a particular phone model.
Understand Polycom phones.
Have manual and understand basic boot server mechanisms
Create prototype of user interface
STATUS: done, see prototype
Add support in ProfileWriter and ProfilePublisher
STATUS: Catalogued where in source changes need to be made. See Exhibit A
Misc.
  1. Use db patch mechanism to migrate database from 2.6
  2. Integrate into navigation system
  3. security issues being in a separate war w/no direct login

Exhibit A

A list of all the places in codebase that deal with phone model specifics before neoconf project was started. This list is behind the decision to start a new module to support phones going forward.

ProfileGenerator

Add a new patch
Edit profilegenerator/ejb/meta/patches.xml with at minimum addtions to MANUFACTURERS and PHONE_TYPES
Definitions XML
Create new GUI definitions file e.g. profilegenerator/ejb/meta/devicedefs/vendor-definition.xml one for each model phone. You can use xml entity strategies to import common phone definitions
Profile transformation
profilegenerator/ejb/meta/devicededs/internal2vendor.xsl to transform configsets into vendor's config files.
Control GUI tabs
common/meta/xml/propertygrouplink.xml to associate cs properties with phone vendor and divide tabs into logical grouping rellevant to phone
Constants
Add constants to common/src/com/pingtel/pds/common/PDSDefinitions.java
Filenames
Report filenames in common/src/com/pingtel/pds/common/DeviceNameUtil.java
if (vendor)/else loop
Notify phone of new profile support
profilegenerator/ejb/src/com/pingtel/pds/pgs/profile/RenderProfileBean.java
if (vendor)/else loop
Adjust Serial number manipulation
profilegenerator/ejb/src/com/pingtel/pds/pgs/phone/DeviceHome.java
if (vendor)/else loop
Adjust Edit Device/Profiles Logic
profilegenerator/ejb/src/com/pingtel/pds/pgs/phone/DeviceAdvocateBean.java, profilegenerator/ejb/src/com/pingtel/pds/pgs/user/UserGroupAdvocateBean.java, profilegenerator/ejb/src/com/pingtel/pds/pgs/user/UserAdvocateBean.java
if (vendor)/else loop
SOAP device constant translation
profilegenerator/soap/src/com/pingtel/pds/pgs/soap/DeviceService.java
if (vendor)/else loop
SIP Registrar support
profilegenerator/commserver/etc/registrar-config-defs.xml
GUI device support
profilegenerator/webui/site/xslt/details.xslt, profilegenerator/webui/site/ui/sipxchange/navigation.jsp, profilegenerator/webui/site/ui/sipxchange/index.jsp
if (vendor)/else loop

ProfilePublisher

Profile Update/Upgrade/Restart/Reciever support
Create a set of new java files: profilepublisher/src/com/pingtel/pds/sds/cmd/ActionVendorCommand.java
Adjust Command Management
profilepublisher/src/com/pingtel/pds/sds/ProfileListenerImpl.java,
if (vendor)/else loop

ProfileWriter

HTTP/TFTP Server Location/Deletion/Creation/SDS notification
profilewriter/src/com/pingtel/pds/profilewriter/ProfileWriterServer.java, profilewriter/src/com/pingtel/pds/profilewriter/ProfileWriterWorker.java
if (vendor)/else loop
Last modified: Wed Oct 6 10:25:15 EDT 2004