Skip to content

Nodejs module for create a simple search form on Cisco IP Phones

License

Notifications You must be signed in to change notification settings

arseniosiani/cisco-directory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cisco-directory

A simple provider for the /phones/directory.xml file to use with the Cisco Ip Phones as external service

Installation

npm i cisco-directory --save

Usage

let cisco_directory = require('cisco-directory');


let phone_book = [
  { name: "John", phone:"+44012345678"},
  { name: "Mary", phone:"+44112223321"},
  { name: "Tom", phone:"+4401321"}
];

let opts = {
  ip: '<your_local_ip>',
  no_results_message: "No results was found",  
  directory: {
    title: "Results",
    prompt: "Select an entry to call"
  },
  form: {
    title: "Search a number",                 // the title of the form
    prompt: "Type the name or the surname",   // the propt to the user
    fields: [                                 // you can add as many fields you want
      {
        name: "name",                         // the name of the var tha will be passed to the search_func  
        label: "Name",                        // the label the user will see on his phone
        type: "A",                            // can be: A:Text, T:Phone num, N:numeric, E:equaion, U:only uppercase, L:only lowercase, P:password
        default:""
      }
    ]
  },
  search_func: (params) => { 
    // this funcion will be invoken when the user perform a form submit
    // here you should return the results based ont the search criteria
    // you defined in the form
    // you can return a Promise as well
    let results = phone_book.filter(e => {
      if (params.name) { 
        let name = params.name.toLowerCase();
        return e.name.toLowerCase().indexOf(name) > -1 || e.phone.indexOf(name) > -1
      }
      return false;
    });
    return results;
  }
}
cisco_directory.listen(80, "0.0.0.0", opts);

Configure the Phone

To configure your Cisco Ip Phone, you should referer to the guide of your model.
For conveniente I add the config for the 79X1 models.
You sould modify the provisioning configuration adn add the url into the section serviceURL

<device>
    <!-->Other config infos <-->
    <servicesURL>http://your_local_server/phones/directory.xml</servicesURL>
</device>

Make sure tha the Ip Phone and the server are on the same network.

DEMO

Demo

Reference

For the Types, refer to this If you have thruble to config, you can refer to this awesome post

About

Nodejs module for create a simple search form on Cisco IP Phones

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages