Remote Call Control (RCC)



This GraphQL API allows remote control of Communicator application. You can control calls from your external application e.g. CRM, ERP, helpdesk system.

Standard SIP client, which is implemented inside the Communicator, is connected to the PBX. Communicator application must be installed on a user system and it runs on the background of the system.

Main benefits of RCC are:

  • Direct call  - we provide direct dialling of an outgoing call from your application, which is the key benefit. With standard integration you must use the click2dial function. This means that during making an outgoing call you must accept an incoming call first and only then the call is routed outside of the PBX. The main disadvantages of click2dial function are it is not very user-friendly for common users and it is slower than a direct call.
  • No audio streams in your CRM - voice call consumes around 100Kbps. If you must process a voice call in your CRM, the browser can be more resource-intensive and can make the CRM unstable. If you use our API,  you will be able to avoid this problem because our API is only signalization.
  • Answer call - it is possible to answer the call using API. This is not possible with Hardware and Software SIP phones. You do not have to answer the call on end SIP device. You just click on the answer button in your application and the call will be answered in Communicator application, where you can set up audio devices. 

Use Cases

  • CRM/helpdesk integration (widget which looks like a phone)
  • Call automation


Topology

Functions

  • Outgoing call (including ringing event)
  • Incoming call (ringing event)
  • Answer call
  • Hang-up
  • Hold
  • Transfer
  • DTMF



Example Application

Requirements

  • user credentials (for communicator)
  • git,node.js


Install instructions


API Documentation

Documentation is based on GraphQL Playground - https://www.apollographql.com/docs/apollo-server/features/graphql-playground/

Mutation
sendRemoteCommand - Send remote command

Subscriptions
callEvents - Incoming command notification


API endpoint https://ipbxapi.voipex.io/graphql

Get token in browser console (DevTools - F12)


fetch('https://restapi.ipex.cz/v1/sso/login', {
  method: 'POST',
  body: JSON.stringify({
    email: 'your_login i.e. jiri.nova@ipex.cz',
    password: 'your_password'
  })
})
.then(res => res.json())
.then(({access_token}) => console.log(`"Authorization": "Bearer ${access_token}"`))


Put output to the HTTP Headers


FAQ

Q: What is the difference between click2dial and RCC?

A: For click2dial you must answer an incoming call and only then the call is routed outside of the PBX. RCC calls a callee directly.


Q: Can I use RCC with standard HW or SW SIP phone?

A: No. It's not technologically possible. 


Q: What kind of signalization is between CRM and your API?

A: It's based on GraphQL scheme.