Git Product home page Git Product logo

yealink-phonebook's Introduction

Octivi - Yealink PhoneBook Manager is no longer maintained

Simple PHP application to manage your Yealink Remote phone book.

Check out the post about the release on our blog!

Installation

Using a release file (prefered way)

  1. Download the latest release of YealinkPhoneBookManager
  2. Unpack archive file under your web directory
  3. Modify .htaccess to allow access to your phone book manager - as described in a .htaccess password protection

Using Composer (for development)

Under your host directory clone this Git repository.

  1. In project folder execute commands:

    curl -sS https://getcomposer.org/installer | php php composer.phar install

  2. Copy app/properties.json.dist to app/properties.json

  3. In app/properties.json you can set default path and file name of your phone book

  4. Set the server's document root to the web/ folder

Configuration

Location of the configuration file depends on the way of the installation:

  • From a release file - index.php
  • Composer - app/properties.json

In that files you will find configuration properties:

  • directory - default directory of the phone book XML files
  • defaultFileName - name of the default file, which manager will use as a primary phone book

.htaccess password protection

It's possible to configure a .htaccess file to ensure Basic access authentication protection. All you have to do is to uncomment last comment block in the .htaccess file, and set the right path of your .htpasswd file.

AuthUserFile /path/to/your/directory/.htpasswd

Yealink phones still can't get access through basic auth, so to allow them to read your phone book files, you must edit line:

Allow from 127.0.0.1

where 127.0.0.1 has to be your phone IP address.

Phonebook backup

In the same directory as your orginal phonebook file is, the script will create backup files of your phonebook when clicking on the "Create Backup" button.

Copyright

Copyright 2014 IMAGIN Sp. z o.o. Octivi - www.octivi.com

yealink-phonebook's People

Contributors

mengelmann avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar

yealink-phonebook's Issues

Phonebook only loading once

i have a strange issue with using Octivi. It's running on the following specs:
Apache 2.4.34
DirectAdmin 1.53.4
Php 7.1.21
or
Php 5.6.37

When i restart httpd (apache) the page will only load once. After that it displays a blank page. There where some extra plugins that i disabled (nginx proxy, pagespeed), but i still get the same result. Anyone else experiencing this issue?

I'm getting this error

Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time in phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/NativeFileSessionHandler.php on line 56

Whoops, looks like something went wrong.

1/1 RuntimeException: Failed to start the session: already started by PHP ($_SESSION is set).

in phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php line 139
at NativeSessionStorage->start() in phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Session.php line 73
at Session->start() in phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/vendor/symfony/form/Symfony/Component/Form/Extension/Csrf/CsrfProvider/SessionCsrfProvider.php line 58
at SessionCsrfProvider->getSessionId() in phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/vendor/symfony/form/Symfony/Component/Form/Extension/Csrf/CsrfProvider/DefaultCsrfProvider.php line 53
at DefaultCsrfProvider->generateCsrfToken('phoneBook') in phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/vendor/symfony/form/Symfony/Component/Form/Extension/Csrf/CsrfProvider/CsrfProviderAdapter.php line 49
at CsrfProviderAdapter->getToken('phoneBook') in phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/vendor/symfony/form/Symfony/Component/Form/Extension/Csrf/Type/FormTypeCsrfExtension.php line 109
at FormTypeCsrfExtension->finishView(object(FormView), object(Form), array('block_name' => null, 'disabled' => false, 'label' => null, 'attr' => array(), 'translation_domain' => null, 'auto_initialize' => true, 'data_class' => 'Octivi\Entity\PhoneBook', 'empty_data' => object(Closure), 'trim' => true, 'required' => true, 'read_only' => false, 'max_length' => null, 'pattern' => null, 'property_path' => null, 'mapped' => true, 'by_reference' => true, 'error_bubbling' => true, 'label_attr' => array(), 'virtual' => null, 'inherit_data' => false, 'compound' => true, 'method' => 'POST', 'action' => '', 'csrf_protection' => true, 'csrf_field_name' => '_token', 'csrf_message' => 'The CSRF token is invalid. Please try to resubmit the form.', 'csrf_token_manager' => object(CsrfProviderAdapter), 'csrf_token_id' => null, 'csrf_provider' => object(CsrfTokenManagerAdapter), 'intention' => null, 'validation_groups' => null, 'error_mapping' => array(), 'constraints' => array(), 'cascade_validation' => false, 'invalid_message' => 'This value is not valid.', 'invalid_message_parameters' => array(), 'extra_fields_message' => 'This form should not contain extra fields.', 'post_max_size_message' => 'The uploaded file was too large. Please try to upload a smaller file.', 'data' => object(PhoneBook))) in phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/vendor/symfony/form/Symfony/Component/Form/ResolvedFormType.php line 190
at ResolvedFormType->finishView(object(FormView), object(Form), array('block_name' => null, 'disabled' => false, 'label' => null, 'attr' => array(), 'translation_domain' => null, 'auto_initialize' => true, 'data_class' => 'Octivi\Entity\PhoneBook', 'empty_data' => object(Closure), 'trim' => true, 'required' => true, 'read_only' => false, 'max_length' => null, 'pattern' => null, 'property_path' => null, 'mapped' => true, 'by_reference' => true, 'error_bubbling' => true, 'label_attr' => array(), 'virtual' => null, 'inherit_data' => false, 'compound' => true, 'method' => 'POST', 'action' => '', 'csrf_protection' => true, 'csrf_field_name' => '_token', 'csrf_message' => 'The CSRF token is invalid. Please try to resubmit the form.', 'csrf_token_manager' => object(CsrfProviderAdapter), 'csrf_token_id' => null, 'csrf_provider' => object(CsrfTokenManagerAdapter), 'intention' => null, 'validation_groups' => null, 'error_mapping' => array(), 'constraints' => array(), 'cascade_validation' => false, 'invalid_message' => 'This value is not valid.', 'invalid_message_parameters' => array(), 'extra_fields_message' => 'This form should not contain extra fields.', 'post_max_size_message' => 'The uploaded file was too large. Please try to upload a smaller file.', 'data' => object(PhoneBook))) in phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/vendor/symfony/form/Symfony/Component/Form/ResolvedFormType.php line 183
at ResolvedFormType->finishView(object(FormView), object(Form), array('block_name' => null, 'disabled' => false, 'label' => null, 'attr' => array(), 'translation_domain' => null, 'auto_initialize' => true, 'data_class' => 'Octivi\Entity\PhoneBook', 'empty_data' => object(Closure), 'trim' => true, 'required' => true, 'read_only' => false, 'max_length' => null, 'pattern' => null, 'property_path' => null, 'mapped' => true, 'by_reference' => true, 'error_bubbling' => true, 'label_attr' => array(), 'virtual' => null, 'inherit_data' => false, 'compound' => true, 'method' => 'POST', 'action' => '', 'csrf_protection' => true, 'csrf_field_name' => '_token', 'csrf_message' => 'The CSRF token is invalid. Please try to resubmit the form.', 'csrf_token_manager' => object(CsrfProviderAdapter), 'csrf_token_id' => null, 'csrf_provider' => object(CsrfTokenManagerAdapter), 'intention' => null, 'validation_groups' => null, 'error_mapping' => array(), 'constraints' => array(), 'cascade_validation' => false, 'invalid_message' => 'This value is not valid.', 'invalid_message_parameters' => array(), 'extra_fields_message' => 'This form should not contain extra fields.', 'post_max_size_message' => 'The uploaded file was too large. Please try to upload a smaller file.', 'data' => object(PhoneBook))) in phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/vendor/symfony/form/Symfony/Component/Form/Form.php line 1027
at Form->createView() in phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/src/Octivi/Controller/ContactController.php line 45
at ContactController->indexAction(object(Request), 'contacts.xml')
at call_user_func_array(array(object(ContactController), 'indexAction'), array(object(Request), 'contacts.xml')) in phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php line 126
at HttpKernel->handleRaw(object(Request), '1') in phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php line 66
at HttpKernel->handle(object(Request), '1', true) in phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/vendor/silex/silex/src/Silex/Application.php line 516
at Application->handle(object(Request)) in phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/vendor/silex/silex/src/Silex/Application.php line 493
at Application->run() in phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/web/index.php line 10
at require_once('phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/web/index.php') in phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/index.php line 3
at include('phar:///home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar/index.php') in /home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar line 9
at require_once('/home/dev/polyteck_pms_v2/phone1/yealink-phonebook.phar') in /home/dev/polyteck_pms_v2/phone1/index.php line 17

ERROR: manifest lenght

After unpacking to a webserver we get this message after opening in the browser:

ERROR: manifest length read was "11636290" should be "182976516"

Any ideas?

greetz from Holland

Connect Error!

Not sure is#f this is being maintained, or whether it works with latest phones (W52P) but would appreciate some help to get it fully working.
Installed application on server - all working well. Can add contacts, numbers - all good.
In application the link shown is: https://www.mydomain.com/pb/index.php/pb/contacts.xml
Cannot access that link, but can access xml file using: https://www.mydomain.com/pb/pb/contacts.xml
This shows the entries made - all seems to be ok.
However,
Have entered this URL in phone remote phonebook - seems to be ok.
BUT
When trying to access directory from phone I get Connect Error!

Any thoughts / suggestions?

Thanks
Nigel

Need some help getting started

I have a .htaccess file but I've never encountered a .htpasswd file. Was this a type in the directions?

I need to add an IP address for each of my Yealink phones to the .htaccess file using the example below? Am I reading this correctly?

Thanks!

.htaccess password protection

It's possible to configure a .htaccess file to ensure Basic access authentication protection. All you have to do is to uncomment last comment block in the .htaccess file, and set the right path of your .htpasswd file.

AuthUserFile /path/to/your/directory/.htpasswd

Yealink phones still can't get access through basic auth, so to allow them to read your phone book files, you must edit line:

Allow from 127.0.0.1

where 127.0.0.1 has to be your phone IP address.

Multi IPs

Its possible to have it configured to allow all ips to have acces to the phonebook if i have a dinamic ip?

Contact Limit ?

Hey guys, wondering if there is a limitation on the number of contacts we can enter?

if we add a contact to a phonebook with 500 contacts it won't save.

If there is a limitation, there is a way to increase it?

Many thanks.

PHP updated to 7 now its broken

We updated to PHP7 as we now get this error

Any ideas? is it compatible with PHP7?

[Mon Apr 09 12:14:16.802334 2018] [:error] [pid 23635] [client 77.76.73.254:60591] PHP Fatal error: Uncaught Error: Call to undefined function Octivi\\Service\\simplexml_load_string() in phar:///var/www/domains/fuse2.net/yealinkpb/foams4sport/yealink-phonebook.phar/src/Octivi/Service/XMLFileService.php:44\nStack trace:\n#0 phar:///var/www/domains/fuse2.net/yealinkpb/foams4sport/yealink-phonebook.phar/src/Octivi/Controller/ContactController.php(133): Octivi\\Service\\XMLFileService->loadFile()\n#1 phar:///var/www/domains/fuse2.net/yealinkpb/foams4sport/yealink-phonebook.phar/src/Octivi/Controller/ContactController.php(34): Octivi\\Controller\\ContactController->generateFormModel('contacts.xml')\n#2 [internal function]: Octivi\\Controller\\ContactController->indexAction(Object(Symfony\\Component\\HttpFoundation\\Request), 'contacts.xml')\n#3 phar:///var/www/domains/fuse2.net/yealinkpb/foams4sport/yealink-phonebook.phar/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php(126): call_user_func_array(Array, Array)\n#4 phar:///var/www/domains/fuse2.net/yealinkpb/foams4sport/yealink-phonebook.phar/vendor/symfony/ in phar:///var/www/domains/fuse2.net/yealinkpb/foams4sport/yealink-phonebook.phar/src/Octivi/Service/XMLFileService.php on line 44 [Mon Apr 09 12:15:01.759825 2018] [:error] [pid 23634] [client 77.76.73.254:60609] PHP Fatal error: Uncaught Error: Call to undefined function Octivi\\Service\\simplexml_load_string() in phar:///var/www/domains/fuse2.net/yealinkpb/foams4sport/yealink-phonebook.phar/src/Octivi/Service/XMLFileService.php:44\nStack trace:\n#0 phar:///var/www/domains/fuse2.net/yealinkpb/foams4sport/yealink-phonebook.phar/src/Octivi/Controller/ContactController.php(133): Octivi\\Service\\XMLFileService->loadFile()\n#1 phar:///var/www/domains/fuse2.net/yealinkpb/foams4sport/yealink-phonebook.phar/src/Octivi/Controller/ContactController.php(34): Octivi\\Controller\\ContactController->generateFormModel('contacts.xml')\n#2 [internal function]: Octivi\\Controller\\ContactController->indexAction(Object(Symfony\\Component\\HttpFoundation\\Request), 'contacts.xml')\n#3 phar:///var/www/domains/fuse2.net/yealinkpb/foams4sport/yealink-phonebook.phar/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php(126): call_user_func_array(Array, Array)\n#4 phar:///var/www/domains/fuse2.net/yealinkpb/foams4sport/yealink-phonebook.phar/vendor/symfony/ in phar:///var/www/domains/fuse2.net/yealinkpb/foams4sport/yealink-phonebook.phar/src/Octivi/Service/XMLFileService.php on line 44

unable to save phonebook - array_key_exists()

Hi octivi

I am trying to work with the yealink phonebook manager.
i finally managed to get a simple php server going on windows 10, using php7.2.
the php runs and i can create a phonebook and enter numbers., just that the phonebook doesnt save.

this is in the error log.

[13-Dec-2019 14:25:49 UTC] PHP Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in phar://C:/yealinkweb/yealink-phonebook.phar/vendor/twig/twig/lib/Twig/Template.php on line 408

if you have an idea for a fix up that would be great.
thank you

ben fox

create a new phar file

I extracted the phar file to made some changes to let i work with a other brand of phones.
Now I would like to create a new phar file, but how can I do this the right way ?

Shows IIS Password error

Hi,

I am unable to install the application. I have extracted the file and edited the .htaccess and also created a a file .htpasswd and put an user name and encrypted password as it should be. When I try to access the site, I get an error IISpassword. error 500.

Can you help and let me know where I am going wrong.

Many Thanks
Mitu

Zip files appear muddled

Hi
I have downloaded the zip files but have encountered a number of issues.
The original file downloaded was titled yealink-phonebook-master.zip this extracts, with an impressive file structure, but I cannot get it to run. it looks in the index.php then hangs on a white screen.
Next I tried yealink-phonebook-ver1.0.zip (which extracts same structure as the tar.gz). This extracted with a much less impressive file structure. The index.php loads and then calls for SERVER/contac/contact.xml - that folder does not exist. if I rename pb folder to contact then it loads contact.xml with the warning that no file is associated with it.
I have tried a few variations by renaming and trying to build a folder structure that works, I can get as far as it looking for a folder or file, named source but that is it.
Am I being a bit dense or missing something?
Help!

Can't add * or # to phonebook number

That is needed for some feature codes like *43 or *78. I would like to have them in phonebook. It's possible to edit the xml manually and it works in the phone so I don't see any problem there. It's a limitation on the php site.

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.