WebRTC SDK
PIOPIY Client JS SDK for voice
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
Monolithic Import
In Browser
Clone the repository
Use command git clone to clone the SDK from our TeleCMI github repository.
git clone https://github.com/telecmi/piopiy_client_js.git
Add SDK library to your webpage
<script src="dist/piopiy.min.js" type="text/javascript"></script>
In ESM/Typescript
import PIOPIY from 'piopiyjs';
In CommonJS
var PIOPIY = require('piopiyjs');
Get Started
Initializing the PIOPIY SDK Object
var 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');
Configuration Parameters
Parameter Name | type | Description |
---|---|---|
PHONE_NUMBER | string | Enter phone number or user extension number, Phone number start with country code example '13158050050' |
Make call with Extra params
Using this method user can able to make call to PSTN or Other user extension with added extra parameters.
piopiy.call('PHONE_NUMBER', { extra_param: 'lead' });
Configuration Parameters
Parameter Name | type | Description |
---|---|---|
PHONE_NUMBER | string | Enter phone number or user extension number, Phone number start with country code example '13158050050' |
extra_param | JSON object | An optional object containing additional parameters for the call. |
Get Call Id
Using this method, user's call_id information can be retrieved.
piopiy.getCallId();
Transfer call
Using this method, users can transfer the call to a user extension number or phone number with a country code.
piopiy.transfer('USER_EXTENSION_NUMBER OR PHONE_NUMBER');
Configuration Parameters
Parameter Name | type | Description |
---|---|---|
USER_EXTENSION_NUMBER OR PHONE_NUMBER | string | Enter phone number or user extension number ,Phone number start with country code example '13158050050' |
Merge Call
Using this method, the user can merge the transferred call.
piopiy.merge();
Cancel Call
Using this method, user can cancel transfer call.
piopiy.cancel();
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 |
Trying
This event will trigger when user make call to phone number or extension (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 |
---|---|---|
100 | trying | outgoing |
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 |
---|---|---|
183 | ringing | outgoing & incoming |
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 |
---|---|
200 | answered |
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 | stream |
---|---|
200 | MediaStream |
Transfer
This event will be triggered when a user transfers a call to a user extension number or a phone number with a country code.
piopiy.on( 'transfer', function ( object ) {
// Data is JSON it contain event and status.
});
Example
piopiy.on( 'transfer', function ( object ) {
if(object.code == 100) {
// An incoming or outgoing call is transfered.
}
});
List of event and status
code | global | state |
---|---|---|
100 | true | init,started,bridged,ended |
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 |
---|---|
200 | call hangup |
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 |
---|---|
200 | call ended |
408 | Request Timeout |
480 | Temporarily Unavailable |
484 | Address Incomplete |
486 | Busy Here |
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 |
---|---|---|
200 | call on hold | myself |
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 |
---|---|---|
200 | call on active | myself |
RTCStats
This event will trigger when user RTCStats .
piopiy.on( 'RTCStats', function ( object ) {
// Data is JSON it contain event and status.
});
Example
piopiy.on( 'RTCStats', function ( object ) {
if(object.codec == “audio/PCMU” ) {
// The user logged out successfully.
}
});
List of event and status
Paratameter | Value |
---|---|
codec | “audio/PCMU” |
delay | 0.042 |
fractionLost | 0 |
jitter | 0.000125 |
network | “wifi” |
packetLostRate | 0 |
rountTrip | 0.07360799999999999 |
totalPacketLost | 1 |
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 |