Coder Social home page Coder Social logo

kazoo-provision's Introduction

kazoo-provision

Provision integration for monster-ui and old kazoo-ui

screenshot1 screenshot2 screenshot3 screenshot4

Additional Support

Open Phone Net AG [email protected] Switzerland

Provisioner implement structure

  1. Network settings will be local from router and never be part of this provision-solution.
  2. There no cache-solution, if this provisioner will fail
  3. Feel free to add more of ip-phones, or ask for support us

Supported phones (Feb 2016)

snom, mitel, aastra, zoiper, yealink

Install info

  1. INSTALL kazoo-platform (from this repository because of changes: use 3.22) If not install kazoo-urueedi, change files application/crossbar/priv/devices.json and users.json from this DEVELEOP directory and recompile and restart crossbar and (sup whapps_maintenance migrate) to renew couchdb!
  2. Install monster-ui (from this repository because of adds in ui) and fping, php-cli, php, php-xml CentOS: in /etc/httpd/conf/httpd.conf need "AllowOverride All" (from None to All)
  3. Install THIS in a WEBFOLDER where the monster-ui is
  4. INSTALL and UPDATE with on console in dir ./setup.php the database and add brand_provisioner to couchdb
  5. Setting in this folder config.php your couchdb nodes in $hosts="localhost" and $dbport = "5984"
  6. Then restart kazoo with: service kz-whistle_app restart or flush coucdb cache of kazoo
  7. Set in monster-ui /js/config.js the provisioner: "http://yourdomain.com/your_path_installed/"
    • check this by using the add sip-phone-button in (monster-ui)->voip->devices or (kazoo-ui)
  8. Go to your account settings and enable (Automatic Devicesettings) in monster-ui
    • URL-Password => [your_pass] is used in GET-string of phones snom and yealink now only
    • Domainrestriction => [customer_home_domain] e.g. customer.domain.com (dyndns) only this domain will be able to get provisiondata if putin
    • Phone Admin Password => [your_pass] password to access your proved phones
    • Zoiper Token => [zoiperproviderid] This is used for autoprovision with soft- and smartphone with account from (oem.zoiper.com)
    • Automatic Devicesetting => enable to allow this autoprovision features on this account for all his phones
    • User devicesetting => enable to allow devicesettings in the userportal
  9. If you need plug&play support for ip-phones you need openwrt from this github site. To add for VoIP-Phones use e.g.
  • snom: 00:04:13:::* http://[prov_domain]/prov/snom/settings.php?mac={mac}&pass=[PROVPASS_ACCOUT_UI]
  • mitel: 00:08:5d:::* http://[prov_domain]/prov/mitel
  • yealink: 00:15:65:::* http://[prov_domain]/prov/yealink
  1. If you need Quality of Service (clean line) there is also in OpenWRT 13.10 included (qos-luci) add for QoS-Settings
    1. priority src=all dst=[your_mediaserver] service=all proto=udp
    1. priority src=[your_mediaserver] dst=all service=all proto=udp
    1. normal src=all dst=all service=all proto=all

This QoS implementation is a professional phone and fax solution! I have transmitted hundreds of fax docs with full load traffic on router and not one is failed!

Add a New Phones to provision Panasonic or ...

Add first by handsetting your phone to work, then export it from phone (most of that kind have this function..?)

  1. Add some nice pictures for your phones in the directory on monster-ui css/assets/brands and css/assents/models in named snom_3xx_300.jpg must be in order! {brand}{family}{model}-{Ext}.jpg or if phone with a expansions_module {brand}{family}{model}-{ext_module}.jpg.
  2. Now you can go to monster-ui you can see if you select to add a SIP-Phone you see the brands and you can select it
  3. Setting up you phone with if possible (2 accounts-, key-, tone-, time-settings) that it works correct!
  4. Download you settings from your phone, it have to be in cleartext format.
  5. Split your template in 5 kinds 1. base, 2. behavior, 3. account, 4. tone 5. keys. (really need is only (3. account) must be in the this order) and put in (DEVELOP/{file plain or xml as you phone need}.php)

DEVELOP Directory

XML based config files => use upload_template_xml.php to generate templates PLAIN based config files => use upload_template_plain.php to generate templates

  1. Settings up all this settings as you can see in file.php TEMPLATE EXAMPLE and run this file to upload template to your couchdb
  2. If you have new brand setting up, you have to add some php file: functions_{brand}.php and dir prov/{brand} also as is there
  3. OK test all things and send it back to this repository, to share it with others also. Thank you back!

PLEASE GIVE ALSO YOUR TEMPLATES TO THIS GITHUB SITE..

Template Example

   "_id": "ui/mitel/67xx/6753-1",   <--- Id must be ui/{BRANDNAME}/{FAMILYNAME}/{MODELNAME}-{EXTENSION-MODULE <- COUNT}
   "pvt_type": "provisioner",       <--- pvt_type must so
   "endpoint_brand": "mitel",       <--- brand must be so
   "endpoint_family": "67xx",       <--- family must be so
   "endpoint_model": "6753-1",      <--- model must be so
   "cfg_base": {                1.  <--- cfg_base shoud be so ()
...
...
  },
   "cfg_account": {             2.  <--- cfg_account MUST BE!! THERE (kind of account) (PUT ALL RELEVANT SETTINGS LIKE USER, PASS, LINE in it)

       "sip line{ACCOUNT} user name": { (***) YOU CAN see {ACCOUNT} AND {SIPUSERNAME} you can see in db allready there!!
           "value": " {SIPUSERNAME}"
       },
...
  },
   "cfg_tone": {                3.  <--- cfg_tone shoud be so (kind of tone settings)
...
...
  },
   "cfg_keys": {                4.  <--- cfg_keys shoud be so ()
...
...
  },
  "usr_keys": {
       "setable_phone_keys": "6",           <-- count of programmable keys on main phone
       "setable_phone_key_counter": "1",    <-- counter keys start at 0 or 1 or ...
       "setable_phone_key_value": "prgkey", <-- value of template for programmable keys on the phone
       "setable_module_keys": "36",         <-- extension-module counts of programmable keys
       "setable_module_key_counter": "1",   <-- extensions-module counter keys start at 0 or 1 or ...
       "setable_module_key_value": "extkey" <-- value of template for programmable keys on the extension-module
  }
}```

kazoo-provision's People

Contributors

urueedi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

kazoo-provision's Issues

(null): can't create socket (must run as root?) : Permission denied

We are trying to integrate monster UI and kazoo provision source code as per the documentation steps but somehow we are getting below errors in apache log,

null): can't create socket (must run as root?) : Permission denied
(null): can't create socket (must run as root?) : Permission denied
(null): can't create socket (must run as root?) : Permission denied
(null): can't create socket (must run as root?) : Permission denied
(null): can't create socket (must run as root?) : Permission denied
[Fri Mar 03 14:25:29 2017] [error] [client 59.88.125.217] PHP Notice: Undefined index: Access-Control-Request-Headers in /var/www/html/kazoo-provision/settings.php on line 14, referer: http://14.131.13.24/monster-ui/
(null): can't create socket (must run as root?) : Permission denied
(null): can't create socket (must run as root?) : Permission denied

We tried to debug php class files but somehow unable to reach to solution.
Please help!!

Blank page when accessing the prov url

I am getting a blank page when accessing the prov url created for a yealink test phone. I don't see any php errors in the logs.

Any suggestions as to what I might have missed ?

Unsure how to do step 8

Step 8 in the instructions says (below). However, I cannot figure out where to enable "Automatic Devicesettings".

Go to your account settings and enable (Automatic Devicesettings) in monster-ui
URL-Password => [your_pass] is used in GET-string of phone snom now only
Domainrestriction => [customer_home_domain] e.g. customer.domain.com (dyndns) only this domain will be able to consume provision if putin
Phone Admin Password => [your_pass] access password to local phone
Zoiper Token => [zoipertoken] This is used for autoprovision with smartphone with zoiper
Automatic Devicesetting => enable to allow this autoprovision features on this account for all his phones
User devicesetting => enable to allow devicesettings in the userportal

Blank webpage on adding provisioner URL to config.js

Kazoo version 3.22-18

1 - Installed kazoo from 2600hz repository
2 - Replaced devices.json and user.json from DEVELOP to application/crossbar/priv/couchdb/accounts/ (it was not in application/crossbar/priv/devices.json as mentioned in instructions. There was also a folder called schema where there was devices.json and user.json)
3 - Rebuilt crossbar (only) and restarted crossbar. Restarted whistle_apps and flushed cache too
4 - git clone monster-ui from your repo
5 - git clone kazoo-provision from your repo
6 - Ran ./setup.php and pressed Y to install brand_provisioner to couchdb. I also get the error "Sag Error: cURL error #56: Failure when receiving data from the peerDB:system_config"

7 - I modify the config.js to add provisioner URL and load webpage, the webpage is blank. If I remove provisioner URL, the page loads.

Errors trying to install/configure

Hi, I'm trying to install, but I get these errors.

The brand_provisioner database is created, but apparently it can't copy the files.

Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fmitel%252F67xx%252F6753
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fcisco%252Fspa3xx%252F501g
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fcisco%252Fspa3xx%252F303g
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fsnom%252F3xx%252F320-2
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fmitel%252F67xx%252F6753-1
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fmitel%252F67xx%252F6730
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fsnom%252F8xx%252F820
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fsnom%252F3xx%252F320
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fmitel%252F67xx%252F6753-2
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fpanasonic%252Fkx%252Fuds124
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fsnom%252Fm9x%252Fm9
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fmitel%252F67xx%252F6731
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fsnom%252F8xx%252F821
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fsnom%252F3xx%252F320-1
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fsnom%252F3xx%252F370
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fsnom%252Fm9x%252Fm9r
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:phonetree
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fsnom%252Fm3x%252Fm3
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fsnom%252F3xx%252F360
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fpanasonic%252Fkx%252Ftgp500
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:_design%252Fprovisioner
Sag Error: put() needs an object for data - are you trying to use delete()?DB:brand_provisioner file:ui%252Fsnom%252F3xx%252F300
CouchDB Error: file_exists (The database could not be created, the file already exists.)DB:system_config
Sag Error: put() needs an object for data - are you trying to use delete()?DB:system_config file:crossbar.devices

centos: apache config problems "Folder phones doesnt exist"

Hi, I am trying to have this provisioner working on Kazoo-UI, however, I dont have much clues about the procedure. Can you please post a simple guide on how to make kazoo-provision to work on old Kazoo-UI.

What I have done so far is to git clone this into /var/www/html (my webroot), then followed steps explained here. On Kazoo-ui i added something like: provisioner: 'http:/My-IP/provisioner/',

Restarted all services, but not results.

yealink configuration webpage is blank

[root@my-voice yealink]# pwd
/var/www/html/kazoo-provision/prov/yealink
[root@my-voice yealink]# ls
cfwd.php dnd.php firmware index.html lang logout.php pb.php settings.php startup.php

I have configured the yealink t21p for auto provisioning by changing the URL and also try binding the mac address of device with kazoo sip device

as per #4

I should be able to see my-device-mac-address.cfg here, /var/www/html/kazoo-provision/prov/yealink/0123456789AB.cfg

What i am missing?
I have refer,
https://2600hz.atlassian.net/wiki/display/docs/Manual+Provisioning
https://2600hz.atlassian.net/wiki/pages/viewpage.action?pageId=27066376
for auto provision my yealink t21p

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.