Skip to main content

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.

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="piopiy.min.js" type="text/javascript"></script>

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

AttributeDescriptionAllowed ValuesDefault Value
nameYour Display Name in Appstringnone
debugEnable debug message in browser consoleBooleanfalse
autoplayHandle media stream automaticallyBooleantrue
ringTimeYour incoming call ringing time in secondsnumber60

PIOPIY Methods

Login

Using this method user can able to connect with TeleCMI SBC.

piopiy.login('user_id','password','SBC_URI');

Configuration Parameters

Parameter NametypeDescription
user_idstringThe user login ID
passwordstringThe user login Password
SBC_URIurl
  • Asia - sbcsg.telecmi.com
  • Europe - sbcuk.telecmi.com
  • America - sbcus.telecmi.com
  • India - sbcind.telecmi.com

Make call

Using this method user can able to make call to PSTN or Other user extension.

piopiy.call('PHONE_NUMBER');

Configuration Parameters

Parameter NametypeDescription
PHONE_NUMBERstringEnter 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 NametypeDescription
DTMF_TONEstringYour 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

codestatus
200Login 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

codestatus
401Invalid 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

codestatustypecall_id
100tryingoutgoing95ea3424-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

codestatustypecall_id
183ringingoutgoing & incoming95ea3424-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

codestatuscall_id
200answered95ea3424-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

codestreamcall_id
200MediaStream95ea3424-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

codestatuscall_id
200call hangup95ea3424-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

codestatuscall_id
200call ended , Unavailable , Busy & Canceled95ea3424-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

codestatuswhomcall_id
200call on holdmyself95ea3424-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

codestatuswhomcall_id
200call on activemyself95ea3424-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

codestatus
1001 & 1002common 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

codestatus
200logout successfully