Hi all, We pretty much have consensus on how this feature will look. So below is my design approach. I'll describe is as flow through the auto-provisioning of a Polycom phone.
1. An un-provisioned Polycom boots on the network. It first makes an FTP request for a [MAC].cfg file, which fails since this phone is not provisioned. 2. Because the latter fails, the Polycom goes on to request 000000000000.cfg, which is controlled by the auto-provisioning feature. This file tells the Polycom where to pick up the rest of its configuration files. The registration configuration file will be specified as an HTTP URL. The auto-provisioning feature will service this URL dynamically in order to generate the unique ID for the phone. (The ID will simply be randomized, so uniqueness is not 100% guaranteed.) The configuration will specify a single registration: - credentials: a new "~~id~autoprovision" special user, with SIP password. - label: the unique ID to be displayed on the phone. - display name: "[unique ID]-[MAC]" (From: header user-part) I'm thinking that this URL will be handled from Apache by a CGI. Note that the URL will contain the phone MAC address, so the Apache config will need to accept a wildcard in the CGI path. The "~~id~autoprovision" special user's SIP password is stored in the DB, which is owned by sipXconfig. So I think sipXconfig will need to generate a "sipxautoprovision-config" file containing this password. (I hope there's an easy way to do this without a corresponding service...) 3. The Polycom will perform a successful registration. 4. This will trigger the takeAction() method of a new SipAutoprovisioning register plug-in, which will examine the REGISTER message. If it's from a Polycom and for "~~id~autoprovision", then the following information will be extracted: - the IP address from the Contact: header - the unique ID and MAC from the From: header - the model from the User-Agent: header This information will then be enqueued so that it is handled by a new sipXregistry auto-provisioning thread. 5. The new sipXregistry auto-provisioning thread will wake whenever there is an entry to be dequeued. For each entry it will use the sipXconfig REST API to create a new Polycom Device->Phone. The unique ID and IP address will be put into the "Description" property. 6. At this point the Polycom has been auto-provisioned, and ready to be assigned a user. The superadmin can correspond a physical Polycom with a sipXconfig entry by searching for the unique ID. The IP address in the Description may also be useful. Hopefully Phase 1 can also include a new "-unassigned-" filter, which would match phones with exactly zero lines assigned. (Note that this would match all unassigned phones, not just those that have been recently auto-provisioned.) Comments, questions, suggestions? Thanks. -Paul [email protected] -Paul [email protected] _______________________________________________ sipx-dev mailing list [email protected] List Archive: http://list.sipfoundry.org/archive/sipx-dev Unsubscribe: http://list.sipfoundry.org/mailman/listinfo/sipx-dev sipXecs IP PBX -- http://www.sipfoundry.org/
