Have ideas to improve npm?Join in the discussion! »

xphone

1.0.5 • Public • Published

XPhone.js

The JS library for develop WebSocket/WebRTC phone apps based on lirax.net (Phone Cloud System)

Download

Full build

Installation

In a browser:

<script src="dist/xphone.js"></script>

CDN:

<script src="https://cdn.jsdelivr.net/npm/xphone@latest/dist/xphone.js"></script>

Using npm:

npm install xphone --save

Usage

Initialization

ES6

import XPhone from 'xphone';

Make calls

/* Initialization */
const phone = new XPhone(); 
 
/* Call to echo-test */
phone.onOpen = () => {
  phone.makeCall("200");
};
 
/* Connection closed */
phone.onClose = () => console.log("Connection closed");
 
/* Icomming call */
phone.onCreate = call => {
  if (call.type === phone.INCOMING) {
    setTimeout(() => phone.acceptCall(call.line), 3000);
  }
};
 
/* Handling errors */
phone.onError = error => console.log("error", error);
 
/* Change the call parameters */
phone.onChange = call => {
  console.log("change", call);
};
 
/* Destroying the call */
phone.onDestroy = call => {
  console.log("destroy", call);
};
 
/* Authorization to LiraX */
phone.init({
  login: "1011011",
  password: "mypassword"
});

Build Setup

# copy config file 
cp .env.example.js .env.js
 
# install dependencies 
npm install
 
# build for production with minification 
npm run build
 
# build for production and view the bundle analyzer report 
npm run build --report
 
# run all tests 
npm test

Tests

npm test

Support

Tested in Chrome 54-61, Firefox 49-56

Documentation

Instance Methods

init(credentials)

Connection to the service

Parameters

Name Type Description
credentials Object Object with parameters (see below)
credentials.login String SIP number
credentials.password String SIP password

Example

phone.init({
  login: '1111111',
  password: 'secret_password',
});

close()

Close the connection

Example

phone.close();

isOpen()

Check the connection

Returns

Type Description
Boolean true if the WebSocket connection is established, false otherwise

Example

phone.isOpen() && console.log('Connection established');

makeCall(phoneNumber)

Make a call

Parameters

Name Type Description
phoneNumber String A Phone Number

Returns

Type Description
Integer The number of line

Example

let line = phone.makeCall('380442388744');

finishCall(line)

Hungup a call

Parameters

Name Type Description
line Integer The number of line

Example

let line = phone.makeCall('380442388744');
setTimeout(() => phone.finishCall(line), 10000);

acceptCall(line)

Accept a call

Parameters

Name Type Description
line Integer The number of line

Example

phone.onCreate = call => {
  if (call.type === phone.INCOMING) {
    setTimeout(() => phone.acceptCall(call.line), 10000);
  }
};

sendDTMF(line, symbol)

Send a DTMF

Parameters

Name Type Description
line Integer The number of line
symbol String The symbol 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, *, #

Example

phone.onCreate = call => {
  setTimeout(() => {
    phone.sendDTMF(call.line, '5');
    phone.sendDTMF(call.line, '7');
    phone.sendDTMF(call.line, '9');
    phone.sendDTMF(call.line, '#');
  }, 5000);
};

holdCall(line)

Hold a call

Parameters

Name Type Description
line Integer The number of line

Example

phone.onCreate = call => {
  const line = call.line;
  setTimeout(() => phone.holdCall(line), 10000);
};

conferenceCall(line)

Enable conferencing mode

Parameters

Name Type Description
line Integer The number of line

Example

phone.onCreate = call => {
  const line = call.line;
  setTimeout(() => phone.conferenceCall(line), 3000);
};

forwardCall(line)

Enable redirection mode

Parameters

Name Type Description
line Integer The number of line

Example

// Call forwarding 380442388744 to 380442388745
const lineFoo = phone.makeCall('380442388744');
const lineBar = phone.makeCall('380442388745');
 
setTimeout(() => {
  phone.forwardCall(lineFoo);
  phone.forwardCall(lineBar);
}, 5000);

getCalls()

Returns the array of all active calls

Returns

Type Description
Array The Array of calls

Example

console.log(phone.getCalls());

Events

onOpen()

Connection is established

Example

phone.onOpen = () => console.log('Connection is established');

onClose()

Connection is closed

Example

phone.onClose = () => console.log('Connection is closed');

onError(error)

Application error

Parameters

Name Type Description
error Object The Error message

Example

phone.onError = error => console.log(error);

onCreate(call)

The call is created

Parameters

Name Type Description
call Object The Object with call properties (see below)
call.line Integer The number of line
call.startDate Object The date of start call
call.connectDate Object The date of connection call
call.phoneNumber String The phone number
call.type Integer The type of call (0 - incoming, 1 - outgoing)
call.hold Boolean The hold mode of call, true if the hold mode is enabled, false otherwise
call.conference Boolean The conference mode of call, true if the hold mode is enabled, false otherwise
call.forward Boolean The forward mode of call, true if the hold mode is enabled, false otherwise
call.file String Link to the voice file

Example

phone.onCreate = call => {
  console.log(call);
};

onChange(call)

The properties of the call have changed

Parameters

Name Type Description
call Object The Object with call properties (see onCreate event)

Example

phone.onChange = call => {
  console.log(call);
};

onDestroy(call)

Call ended

Parameters

Name Type Description
call Object The Object with call properties (see onCreate event)

Example

phone.onDestroy = call => {
  console.log(call);
};

Instance Variables

wsURL

(String) The URL to which to connect, Default: 'wss://lirax***:1887'

Example

phone.wsURL = 'wss://test.com:1887';

callOut

(String) External number, Default: ''

Example

phone.callOut = '380001234567';

reConnect

(Boolean) Automatic reconnection when disconnected, Default: true

Example

phone.reConnect = false;

Official Site

http://www.lirax.net

Install

npm i xphone

DownloadsWeekly Downloads

15

Version

1.0.5

License

MIT

Unpacked Size

44.8 kB

Total Files

19

Last publish

Collaborators

  • avatar
  • avatar