PIOPIY Client JS SDK
PIOPIY WebRTC SDK allows you to make and receive voice calls, where making voice calls can be made to a public switched telephone network(PSTN), APP to APP calling and browser to browser calling.
Package Installation
Using NPM
npm install piopiyjs
Using YARN
yarn add piopiyjs
Using Bower
bower install telecmi/piopiy_client_js
Monolithic Import
In Browser
<script src="dist/piopiy.min.js" type="text/javascript"></script>
In ESM/Typescript
import PIOPIY from 'piopiyjs';
In CommonJS
var PIOPIY = require('piopiyjs');
Initializing the PIOPIY Object
const piopiy = new PIOPIY({
name: "Display Name",
debug: false,
autoplay: true,
ringTime: 60,
});
Configuration Parameters
Below is the configuration parameters
Attribute | Description | Allowed Values | Default Value |
---|---|---|---|
name | Your Display Name in App | string | none |
debug | Enable debug message in browser console | Boolean | false |
autoplay | Handle media stream automatically | Boolean | true |
ringTime | Your incoming call ringing time in seconds | number | 60 |
PIOPIY Methods
Login
Using this method user can able to connect with TeleCMI SBC.
piopiy.login("user_id", "password", "SBC_URI");
Configuration Parameters
Parameter Name | Type | Description |
---|---|---|
user_id | string | The user login ID |
password | string | The user login Password |
SBC_URI | url |
|
Make call
Using this method user can able to make call to PSTN or Other user extension.
piopiy.call("PHONE_NUMBER", options);
Configuration Parameters
Parameter Name | Type | Description |
---|---|---|
PHONE_NUMBER | string | Enter phone number or user extention number ,Phone number start with country code example '13158050050' |
Send DTMF
Using this method user can able to send DTMF tone to ongoing call.
piopiy.sendDtmf("DTMF_TONE");
Configuration Parameters
Parameter Name | Type | Description |
---|---|---|
DTMF_TONE | string | Your DTMF tone input |
Hold Call
Using this method user can able to hold ongoing call.
piopiy.hold();
Unhold Call
Using this method user can able to unhold ongoing call.
piopiy.unHold();
Mute Call
Using this method user can able to mute ongoing call.
piopiy.mute();
Unmute Call
Using this method user can able to unmute ongoing call.
piopiy.unMute();
Answer call
Using this method user can able to answer incoming call.
piopiy.answer();
Reject call
Using this method user can able to reject or disconnect incoming call.
piopiy.reject();
Hangup call
Using this method user can able to hangup ongoing call.
piopiy.terminate();
Logout
Using this method user can able to logout from SBC session.
piopiy.logout();
PIOPIY Call Event Handler
Login
This event will triger when user login sucessfully
piopiy.on("login", function (object) {
// Data is JSON it contain event and status.
});
Example
piopiy.on("login", function (object) {
if (object.code == 200) {
// Login successfully and do your stuff here.
}
});
List of event and status
code | status |
---|---|
200 | Login Successfully |
LoginFailed
This event will trigger when user authentication failed.
piopiy.on("loginFailed", function (object) {
// Data is JSON it contain event and status.
});
Example
piopiy.on("loginFailed", function (object) {
if (object.code == 401) {
// Verify that the user_id and password are correct.
}
});
List of event and status
code | status |
---|---|
401 | Invalid user_id or password |
Trying
This event will trigger when user make call to phone number or extention (Destination Number)
piopiy.on("trying", function (object) {
// Data is JSON it contain event and status.
});
Example
piopiy.on("trying", function (object) {
if (object.code == 100) {
// The outgoing call is currently being started.
}
});
List of event and status
code | status | type | call_id |
---|---|---|---|
100 | trying | ougoing | 95ea3424-d77e-123b-0ca1-463d48e96190 |
Ringing
This event will trigger when call start ringing.
piopiy.on("ringing", function (object) {
// Data is JSON it contain event and status.
});
Example
piopiy.on("ringing", function (object) {
if (object.code == 183) {
// An incoming or outgoing call is ringing.
}
});
List of event and status
code | status | type | call_id |
---|---|---|---|
183 | ringing | outgoing & incoming | 95ea3424-d77e-123b-0ca1-463d48e96190 |
Answered
This event will trigger when ongoing call was answered.
piopiy.on("answered", function (object) {
// Data is JSON it contain event and status.
});
Example
piopiy.on("answered", function (object) {
if (object.code == 200) {
// An incoming or outgoing call is answered.
}
});
List of event and status
code | status | call_id |
---|---|---|
200 | answered | 95ea3424-d77e-123b-0ca1-463d48e96190 |
CallStream
This event will trigger when mediastream established.
piopiy.on("callStream", function (object) {
// Data is JSON it contain event and status.
});
Example
piopiy.on("callStream", function (object) {
// MediaStream has been established.
});
List of event and status
code | status | call_id |
---|---|---|
200 | MediaStream | 95ea3424-d77e-123b-0ca1-463d48e96190 |
InComingCall
This event will trigger when user recive incmoing call.
piopiy.on("inComingCall", function (object) {
// Data is JSON it contain event and status.
});
Hangup
This event will trigger when user reject or hangup incmoing call.
piopiy.on("hangup", function (object) {
// Data is JSON it contain event and status.
});
Example
piopiy.on("hangup", function (object) {
if (object.code == 200) {
// to hangup the incoming and ongoing calls.
}
});
List of event and status
code | status | call_id |
---|---|---|
200 | call hangup | 95ea3424-d77e-123b-0ca1-463d48e96190 |
Ended
This event will trigger when ongoing call end.
piopiy.on("ended", function (object) {
// Data is JSON it contain event and status.
});
Example
piopiy.on("ended", function (object) {
if (object.code == 200) {
// An incoming or outgoing call is ended.
}
});
List of event and status
code | status | call_id |
---|---|---|
200 | call ended , Unavailable , Busy & Canceled | 95ea3424-d77e-123b-0ca1-463d48e96190 |
Hold
This event will trigger when ongoing call on hold.
piopiy.on("hold", function (object) {
// Data is JSON it contain event and status.
});
Example
piopiy.on("hold", function (object) {
if (object.code == 200) {
// The call is now being hold.
}
});
List of event and status
code | status | whom | call_id |
---|---|---|---|
200 | call on hold | myself | 95ea3424-d77e-123b-0ca1-463d48e96190 |
UnHold
This event will trigger when ongoing call on unhold.
piopiy.on("unhold", function (object) {
// Data is JSON it contain event and status.
});
Example
piopiy.on("unhold", function (object) {
if (object.code == 200) {
// The call is now being released.
}
});
List of event and status
code | status | whom | call_id |
---|---|---|---|
200 | call on active | myself | 95ea3424-d77e-123b-0ca1-463d48e96190 |
Error
This event will trigger when error will occurr.
piopiy.on("error", function (object) {
// Data is JSON it contain event and status.
});
Example
piopiy.on("error", function (object) {
if (object.code == 1001 || object.code == 1002) {
// If there are any incorrect commands in the function, displays error.
}
});
List of event and status
code | status |
---|---|
1001 & 1002 | common error |
Logout
This event will trigger when user logout .
piopiy.on("logout", function (object) {
// Data is JSON it contain event and status.
});
Example
piopiy.on("logout", function (object) {
if (object.code == 200) {
// The user logged out successfully.
}
});
List of event and status
code | status |
---|---|
200 | logout successfully |