API IPBX

Bienvenu sur La plateforme de développement IPBX ! Ceci est la documentation de notre API.

L’API fonctionne sur le format REST et uniquement sous le protocole HTTPS. Le format de sortie de l’API peut être JSON ou XML.

Par défaut, l'API délivre du JSON. Si vous souhaitez que'elle délivre du XML, il faut suffixer chacun des service avec l'extension .xml.

Exemple :

POST /ipbx/addContact délivrera une réponse au format JSON.

POST /ipbx/addContact.xml délivrera une réponse au format XML.

L’API est protégée par une clé API d’authentification. Cette clé fournie est à transmettre dans les headers sous le paramètre X-API-KEY à chaque ressource appelée. Cette clé API d'authentification est transmise au partenaire à l'inscription au service.

Le point d'entrée de l'API est https://api.ipbx.io

Introduction

L'API IPBX permet d'intéragir sur votre système de téléphonie.

Afin de vous identifier sur les différentes ressources disponibles sur IPBX, Le Kiosqueur vous fournit les paramètres suivants :

  • account_id : votre numéro de compte chez le kiosqueur
  • callcenter_id : votre identifiant de call center chez le kiosqueur
  • platform_id(s) : l'ensemble des identifiants de plateaux de téléopérateurs que vous possédez

Contacts

Vous avez la possibilité de gérer une liste de contacts dans votre carnet d'adresse.

A la réception d'un appel, nous affichons sur le terminal téléphonique le nom et le prénom du contact si celui-ci est enregistré. Par ailleurs, ce carnet d'adresse facilitera la remontée de fiche sur votre CRM.

Ajouter un contact

Permet d'ajouter un contact à votre carnet d'adresse.

En entrée :

Paramètre Type Description
callcenter_id int (obligatoire) l'identifiant du callcenter
account_id int (obligatoire) l'identifiant de compte
contact_id text (optionnel) votre identifiant de contact dans votre base de données. Important pour s'interfacer avec votre CRM
lastname text (obligatoire) Nom du contact
firstname text (obligatoire) Prénom du contact
company_name text (optionel) Nom de la société
phone_number text (obligatoire) Numéro de téléphone du contact au format international (ex:+33123232323)
type_phone text (obligatoire) valeurs possibles : mobile, fix, work, home
type_contact text (optionnel) valeurs possibles : CLIENT, COLLABORATEUR, PROSPECT, FOURNISSEUR, AGENT, BLACKLIST par default CLIENT

Attention : le couple (contact_id,type_phone) doit être unique en base de données ainsi que le trio (phone_number, lastname, firstname)

En sortie :

Paramètre Type Description
status int Code erreur =1 en cas de succès
message text Description de l'erreur
ipbx_contact_id int identifiant du contact chez ipbx
contact_id text votre identifiant de contact
POST
/ipbx/addContact

Example request

$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/addContact' -d '{"callcenter_id":"5","account_id":"1","contact_id":"moncontactid1","lastname":"mechineau","firstname":"franck","phone_number":"+33685127671","type_phone":"mobile"}'
$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5'  -d callcenter_id='5' -d account_id='1' -d contact_id='moncontactid2' -d lastname='doe' -d firstname='john' -d phone_number='+33251943232' -d type_phone='home' 'https://api.ipbx.io/ipbx/addContact'

Example request body

{
  "callcenter_id": "2",
  "account_id": "5",
  "contact_id": "your contact id",
  "lastname" : "nomfamille",
  "firstname" : "prenom",
  "phone_number" : "+33685124545",
  "type_phone" : "mobile"
}

Example response

{
"status": "1",
"message": "OK",
"ipbx_contact_id": "{integer}",
"contact_id": "your contact id"
}

Mettre à jour un contact

Permet de mettre à jour un contact de votre carnet d'adresse.

En entrée :

Paramètre Type Description
callcenter_id int (obligatoire) l'identifiant du callcenter
account_id int (obligatoire) l'identifiant de compte
contact_id text (optionnel) votre identifiant de contact dans votre base de données. Important pour s'interfacer avec votre CRM
ipbx_contact_id int (optionnel) identifiant de contact chez IPBX
lastname text (obligatoire) Nom du contact
firstname text (obligatoire) Prénom du contact
company_name text (optionel) Nom de la société
phone_number text (obligatoire) Numéro de téléphone du contact au format international (ex:+33123232323)
type_phone text (obligatoire) valeur possible : mobile, fix, work, home
type_contact text (optionnel) valeurs possibles : CLIENT, COLLABORATEUR, PROSPECT, FOURNISSEUR, AGENT, BLACKLIST par default CLIENT

Attention : le couple (contact_id,type_phone) doit être unique en base de données ainsi que le trio (phone_number, lastname, firstname)

un des 2 paramètres contact_idou ipbx_contact_id doit être renseigné au minimum.

En sortie :

Paramètre Type Description
status int Code erreur =1 en cas de succès
message text Description de l'erreur
ipbx_contact_id int identifiant du contact chez ipbx
contact_id text votre identifiant de contact
POST
/ipbx/updateContact

Example request

$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/updateContact' -d '{"callcenter_id":"5","account_id":"1","contact_id":"moncontactid1","lastname":"mechineau","firstname":"franck","phone_number":"+33685127671","type_phone":"mobile"}'
$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5'  -d callcenter_id='5' -d account_id='1' -d contact_id='moncontactid2' -d lastname='doe' -d firstname='john' -d phone_number='+33251943232' -d type_phone='home' 'https://api.ipbx.io/ipbx/updateContact'

Example request body

{
  "callcenter_id": "2",
  "account_id": "5",
  "contact_id": "your contact id",
  "lastname" : "nomfamille",
  "firstname" : "prenom",
  "phone_number" : "+33685124545",
  "type_phone" : "mobile"
}
{
  "callcenter_id": "2",
  "account_id": "5",
  "ipbx_contact_id": 12,
  "lastname" : "nomfamille",
  "firstname" : "prenom",
  "phone_number" : "+33685124545",
  "type_phone" : "mobile"
}

Example response

{
"status": "1",
"message": "OK",
"ipbx_contact_id": "{integer}",
"contact_id": "your contact id"
}

Ajouter Contact Multiple

Permet d'ajouter plusieurs contacts à votre carnet d'adresse.

En entrée :

Paramètre Type Description
callcenter_id int (obligatoire) l'identifiant du callcenter
account_id int (obligatoire) l'identifiant de compte
contacts json[] (obligatoire) Tableau de contact json de contacts à ajouter

Objet contact :

Paramètre Type Description
contact_id text (optionnel) votre identifiant de contact dans votre base de données. Important pour s'interfacer avec votre CRM
lastname text (obligatoire) Nom du contact
firstname text (obligatoire) Prénom du contact
company_name text (optionel) Nom de la société
phone_number text (obligaoire) Numéro de téléphone du contact au format international (ex:+33123232323)
type_phone text (obligaoire) valeur possible : mobile, fix, work, home
type_contact text (optionnel) valeurs possibles : CLIENT, COLLABORATEUR, PROSPECT, FOURNISSEUR, AGENT, BLACKLIST par default CLIENT

Attention : le couple (contact_id,type_phone) doit être unique en base de données ainsi que le trio (phone_number, lastname, firstname)

En sortie, un tableau de :

Paramètre Type Description
status int Code erreur =1 en cas de succès
message text Description de l'erreur
ipbx_contact_id int identifiant du contact chez ipbx
contact_id text votre identifiant de contact
type_phone text type de la ligne. valeur possible : mobile, fix, work, home
POST
/ipbx/addMultipleContact

Example request

$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5'   'https://api.ipbx.io/ipbx/addMultipleContact' -d callcenter_id='5' -d account_id='1' -d contacts='[{"contact_id" : "id1","lastname" : "nom1","firstname" : "prenom1","phone_number" : "+33685124512","type_phone" : "mobile"},{"contact_id" : "id2","lastname" : "nom2","firstname" : "prenom2","phone_number" : "+33685124513","type_phone" : "home"}]'

Example request body

{
  "callcenter_id": "2",
  "account_id": "5",
  "contacts": [{
	  				"contact_id" : "id1",
	  				"lastname" : "nom1",
	  				"firstname" : "prenom1",
	  				"phone_number" : "+33685124544",
	  				"type_phone" : "mobile"
	  			},
	  			{
		  			"contact_id" : "id2",
	  				"lastname" : "nom2",
	  				"firstname" : "prenom2",
	  				"phone_number" : "+33685124545",
	  				"type_phone" : "mobile"
		  		}
		  	  ]
}

Example response

{
	"status": "1",
	"message": "View Results",
	"results": [{
				"status" : "1",
				"message" : "OK",
				"ipbx_contact_id" : "{integer}",
				"contact_id" : "id1",
				"type_phone" : "mobile"
			},
			{
				"status" : "1",
				"message" : "OK",
				"ipbx_contact_id" : "{integer}",
				"contact_id" : "id2",
				"type_phone" : "mobile"
			}
		   ]
}

Retrouver un contact

Permet de retrouver les information sur un contact enregistré sur votre carnet d'adresse. L'identifiant de contact passé en paramètre est soit contact_id (votre identifiant de contact), soit ipbx_contact_id, l'identifiant de contact de IPBX obtenu lors de l'ajout du contact dans le carnet d'adresse.

En entrée :

Paramètre Type Description
callcenter_id int (obligatoire) l'identifiant du callcenter
account_id int (obligatoire) l'identifiant de compte
contact_id text (optionnel) votre identifiant de contact dans votre base de données. Important pour s'interfacer avec votre CRM
ipbx_contact_id int (optionnel) identifiant de contact chez IPBX. Il faut au moins un des paramètres : contact_id ou ipbx_contact_id
type_phone text (obligaoire) valeur possible : mobile, fix, work, home

En sortie :

Paramètre Type Description
status int Code erreur =1 en cas de succès
message text Description de l'erreur
ipbx_contact_id int identifiant du contact chez ipbx
contact_id int Votre identifiant de contact
firstname text Prénom du contact
lastname text Nom du contact
phone_number text numero de téléphone du contact au format international (ex:+33123232323)
type_phone text type de la ligne, valeur possible : mobile, fix, work, home
nb_call int nombre d'appels effectués
lastcall datetime date du dernier appel au format YYYY-MM-DD HH:MM:SS
type_contact text valeurs possibles : CLIENT, COLLABORATEUR, PROSPECT, FOURNISSEUR, AGENT, BLACKLIST par default CLIENT
POST
/ipbx/getContact

Example request

$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/getContact' -d '{"callcenter_id":"5","account_id":"1","contact_id":"moncontactid1","type_phone":"mobile"}'
$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -d callcenter_id='5' -d account_id='1' -d contact_id='moncontactid1' -d type_phone='mobile' 'https://api.ipbx.io/ipbx/getContact'

Example request body

{
  "callcenter_id": "2",
  "account_id": "5",
  "contact_id": "id1",
  "type_phone" : "mobile"
}

Example response

{
  "status": "1",
  "message": "OK",
  "ipbx_contact_id": "{integer}",
  "contact_id": "id1",
  "lastname" : "nom1",
  "firstname" : "prenom1",
  "phone_number" : "+33685124544",
  "type_phone" : "mobile",
  "nb_call" : 3,
  "last_call" : "2017-06-22 12:34:54"
}

Enregistrements

Retrouver un enregistrement

A partir d'un identifiant de communication au format UUID, il est possible de retrouver l'enregistrement de la conversation, si et seulement si cette option a été activée. Attention : la période de rétention de l'enregistrement est de 15 jours.

Le format de sortie du son est MP3.

En entrée :

Paramètre Type Description
callcenter_id int (obligatoire) l'identifiant du callcenter
account_id int (obligatoire) l'identifiant de compte
platform_id int (obligatoire) l'identifiant de plateau
uuid uuid (obligatoire) identifiant de la communication fourni par IPBX par notification au début de l'appel et à la fin de l'appel

En sortie :

Le fichier sonore en MP3 ou bien un json en cas d'erreur :

Paramètre Type Description
status int Code erreur =1 en cas de succès
message text Description de l'erreur
POST
/ipbx/getRecord

Example request

$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/getRecord' -d '{"callcenter_id":"5","account_id":"1","platform_id":"3","uuid":"7e1460c5-d9b4-40e8-a764-d0d4c65b012f"}'
$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' 'https://api.ipbx.io/ipbx/getRecord' -d callcenter_id='5' -d account_id='1' -d platform_id='3' -d uuid='7e1460c5-d9b4-40e8-a764-d0d4c65b012f'

Example request body

{
  "callcenter_id": "2",
  "account_id": "5",
  "contact_id": "id1",
  "uuid" : "7e1460c5-d9b4-40e8-a764-d0d4c65b012f"
}

Téléopérateur

Cette rubrique va vous permettre de manager vos télé-opérateurs .

Ajouter un téléopérateur

Ajouter un Télé-opérateur à votre infrastructure.

En entrée :

Paramètre Type Description
callcenter_id int (obligatoire) l'identifiant du callcenter
account_id int (obligatoire) l'identifiant de compte
platform_ids text (obligatoire) identifiants de plateau où le télé-opérateur peut agir au format : platform_id1,platform_id2...
firstname text (obligatoire) Prénom du télé-opérateur à ajouter
lastname text (obligatoire) Nom du télé-opérateur à ajouter
nickname text (obligatoire) Identifiant du télé-opérateur à ajouter
email text (obligatoire) Email du télé-opérateur à ajouter
password text (optionnel) Mot de passe attribué au télé-opérateur. Si pas précisé, un mot de passe aléatoire sera généré.

En sortie :

Paramètre Type Description
status int Code erreur =1 en cas de succès
message text Description de l'erreur
agent_id int identifiant du télé-opérateur chez ipbx
POST
/ipbx/addAgent

Example request

$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/addAgent' -d '{"callcenter_id":"5","account_id":"1","platform_ids":"56,45,65","lastname":"albert","firstname":"daniel","nickname":"adaniel","email":"adaniel@mondomaine.com"}'
$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' 'https://api.ipbx.io/ipbx/addAgent' -d callcenter_id='5' -d account_id='1' -d platform_ids='56,45,65' -d lastname='durand' -d firstname='paul' -d nickname='pdurand' -d email='pdurand@mondomaine.com'

Example request body

{
  "callcenter_id": "2",
  "account_id": "5",
  "platform_ids": "56,45,65",
  "lastname" : "albert",
  "firstname" : "daniel",
  "nickname" : "adaniel",
  "email" : "adaniel@mondomaine.com"
}

Example response

{
"status": "1",
"message": "OK",
"agent_id": "500"
}

Modifier un téléopérateur

Modifier un Télé-opérateur existant

En entrée :

Paramètre Type Description
callcenter_id int (obligatoire) l'identifiant du callcenter
account_id int (obligatoire) l'identifiant de compte
agent_id int (obligatoire) l'identifiant du téléopérateur à modifier
platform_ids text (obligatoire) identifiants de plateau où le télé-opérateur peut agir au format : platform_id1,platform_id2...
firstname text (obligatoire) Prénom du télé-opérateur à modifier
lastname text (obligatoire) Nom du télé-opérateur à ajouter
nickname text (obligatoire) Identifiant du télé-opérateur à modifier
email text (obligatoire) Email du télé-opérateur à modifier
password text (optionnel) Mot de passe attribué au télé-opérateur. Si pas précisé, un mot de passe aléatoire sera généré.

En sortie :

Paramètre Type Description
status int Code erreur =1 en cas de succès
message text Description de l'erreur
agent_id int identifiant du télé-opérateur chez ipbx
POST
/ipbx/updateAgent

Example request

$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/updateAgent' -d '{"callcenter_id":"5","account_id":"1","agent_id":"569","platform_ids":"56,45,65","lastname":"albert","firstname":"daniel","nickname":"adaniel","email":"adaniel@mondomaine.com"}'
$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' 'https://api.ipbx.io/ipbx/addAgent' -d callcenter_id='5' -d account_id='1' -d platform_ids='56,45,65' -d agent_id=569 -d lastname='durand' -d firstname='paul' -d nickname='pdurand' -d email='pdurand@mondomaine.com'

Example request body

{
  "callcenter_id": "2",
  "account_id": "5",
  "agent_id": "500",
  "platform_ids": "56,45,65",
  "lastname" : "albert",
  "firstname" : "daniel",
  "nickname" : "adaniel",
  "email" : "adaniel@mondomaine.com"
}

Example response

{
"status": "1",
"message": "OK",
"agent_id": "500"
}

Liste téléopérateurs

Permet de lister tous les télé-opérateurs et leurs caractéristiques au niveau d'un plateau

En entrée :

Paramètre Type Description
callcenter_id int (obligatoire) l'identifiant du callcenter
account_id int (obligatoire) l'identifiant de compte
platform_id int (obligatoire) l'identifiant de plateau

En sortie :

Paramètre Type Description
status int Code erreur =1 en cas de succès
message text Description de l'erreur
agents [] Un tableau d' agent

Objet agent:

Paramètre Type Description
agent_id int (obligatoire) l'identifiant du téléopérateur
login text (obligatoire) login d'accès à la plateforme ipbx
firstname text (obligatoire) Prénom du télé-opérateur
lastname text (obligatoire) Nom du télé-opérateur
nickname text (obligatoire) Identifiant du télé-opérateur
email text (obligatoire) Email du télé-opérateur
extension text (obligatoire) Extension téléphonique actuelle
POST
/ipbx/listAgent

Example request

$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/listAgent' -d '{"callcenter_id":"5","account_id":"1","platform_id":"3"}'
$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' 'https://api.ipbx.io/ipbx/listAgent' -d callcenter_id='5' -d account_id='1' -d platform_id='3'

Example request body

{
  "callcenter_id": "2",
  "account_id": "5",
  "platform_id": "3"
}

Example response

{
"status": "1",
"message": "OK",
"agents": [{
			"agent_id": "500",
			"login": "56-adaniel",
			"lastname" : "albert",
			"firstname" : "daniel",
			"nickname" : "adaniel",
			"email" : "adaniel@mondomaine.com",
			"extension" : "1001"
			},
		   {
			"agent_id": "501",
			"login": "56-adaniel",
			"lastname" : "doe",
			"firstname" : "john",
			"nickname" : "jdoe",
			"email" : "jdoe@mondomaine.com",
			"extension" : "1002"
		   }]
}

Programmer un téléopérateur

Permet de planifier un téléopérateur sur le planning au niveau d'un plateau

En entrée :

Paramètre Type Description
callcenter_id int (obligatoire) l'identifiant du callcenter
account_id int (obligatoire) l'identifiant de compte
platform_id int (obligatoire) l'identifiant de plateau
destination text (obligatoire) numéro de telephone ou compte SIP du téléopérateur
dateStartSession date (obligatoire) Date de début de la plage à alimenter dans le planning au format YYYY-MM-DD HH:MM:SS
dateEndSession date (obligatoire) Date de fin de la plage à alimenter dans le planning au format YYYY-MM-DD HH:MM:SS
code_agent numeric (obligatoire) code téléoperateur (si le code n'existe pas un téléoperateur avec ce code agent est automatiquement créé)
priority int (optionnel) Ordre de priorité du téléopérateur si plusieurs téléopérateurs sont programmés sur la même plage
erase int (optionnel) positionné à 1 il permet d'effacer la tranche horaire en question pour le code_agent

En sortie :

Paramètre Type Description
status int Code erreur =1 en cas de succès
message text Description de l'erreur
POST
/ipbx/pushCalendar

Example request

$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/pushCalendarHebdo' -d '{"callcenter_id":"5","account_id":"1","platform_id":"3","dateStartSession":"2018-05-25 12:00:00","dateEndSession":"2018-05-25 14:00:00","code_agent":"2345","priority":"1"}'
$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' 'https://api.ipbx.io/ipbx/pushCalendarHebdo' -d callcenter_id='5' -d account_id='1' -d platform_id='3' -d dateStartSession='2018-05-25 12:00:00' -d dateEndSession='2018-05-25 14:00:00' -d code_agent='2345' -d priority='1' 

Example request body

{
  "callcenter_id": "2",
  "account_id": "5",
  "platform_id": "3",
  "dateStartSession":"2018-05-25 12:00:00",
  "dateEndSession":"2018-05-25 14:00:00",
  "code_agent":"2345",
  "priority":"1"
}

Example response

{
"status": "1",
"message": "OK inserted"
}

Programmer un téléopérateur de façon hebdomadaire

Permet de planifier un téléopérateur sur le planning au niveau d'un plateau de façon hebdomadaire

En entrée :

Paramètre Type Description
callcenter_id int (obligatoire) l'identifiant du callcenter
account_id int (obligatoire) l'identifiant de compte
platform_id int (obligatoire) l'identifiant de plateau
destination text (obligatoire) numéro de telephone ou compte SIP du téléopérateur
dateStartSession hour (obligatoire) Heure de début de la plage à alimenter dans le planning au format HH:MM:SS
dateEndSession hour (obligatoire) Heure de fin de la plage à alimenter dans le planning au format HH:MM:SS
code_agent numeric (obligatoire) code téléoperateur (si le code n'existe pas un téléoperateur avec ce code agent est automatiquement créé)
priority int (optionnel) Ordre de priorité du téléopérateur si plusieurs téléopérateurs sont programmés sur la même plage
erase int (optionnel) positionné à 1 il permet d'effacer la tranche horaire en question pour le code_agent
dow int (obligatoire) Le jour de la semaine ou le teleopérateur sera planifié. Valeurs possibles  : 0 pour Dimanche, 1 pour Lundi, 2 pour Mardi, 3 pour Mercredi, 4 pour Jeudi, 5 pour Vendredi, 6 pour Samedi

En sortie :

Paramètre Type Description
status int Code erreur =1 en cas de succès
message text Description de l'erreur
POST
/ipbx/pushCalendarHebdo

Example request

$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/pushCalendarHebdo' -d '{"callcenter_id":"5","account_id":"1","platform_id":"3","dateStartSession":"12:00:00","dateEndSession":"14:00:00","code_agent":"2345","priority":"1","dow":"2"}'
$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' 'https://api.ipbx.io/ipbx/pushCalendarHebdo' -d callcenter_id='5' -d account_id='1' -d platform_id='3' -d dateStartSession='12:00:00' -d dateEndSession='14:00:00' -d code_agent='2345' -d priority='1' -d dow='2'

Example request body

{
  "callcenter_id": "2",
  "account_id": "5",
  "platform_id": "3",
  "dateStartSession":"12:00:00",
  "dateEndSession":"14:00:00",
  "code_agent":"2345",
  "priority":"1",
  "dow":"2"
}

Example response

{
"status": "1",
"message": "OK inserted"
}

Connection téléopérateur

Permet d'affecter une extension téléphoniques à un Télé-opérateur. Pour modifier l'extension d'un télé-opérateur, il faudra rappeler cette ressource avec une nouvelle extension. Par ailleurs, cette ressource va permettre de paramétrer le widget IPBX qui servira à la remontée de fiche lors d'un appel entrant.

En entrée :

Paramètre Type Description
callcenter_id int (obligatoire) l'identifiant du callcenter
account_id int (obligatoire) l'identifiant de compte
agent_id int (obligatoire) l'identifiant du télé-opérateur qui se connecte
platform_id int (obligatoire) identifiant du plateau sur lequel le télé-opérateur se connecter
extension text (obligatoire) Extension du poste à attribuer au télé-opérateur
url_file_contact text (optionnel) Url de la fiche contact dans votre CRM, pour la remontée de fiche automatique lors d'un appel entrant. Vous avez la possibilité de passer dans votre URL les 3 paramètres suivant : {phone},{contact_id} ou {ipbx_contact_id}. Ces paramètres seront remplacés automatiquement par les bonnes valeurs à la réception d'un appel
disposition text (optionnel) Disposition du widget web : valeur disponible : vertical,horizontal
iframe text (optionnel) "true" pour affichage du widget en iframe, "false"pour intégration en Javascript. Par défaut "true"
auto_load text (optionnel) "true" pour affichage de la page url_file_contact automatiquement, "false" l'action d'appui sur un lien/bouton sera nécessaire. Par défaut "false"
load_target text (optionnel) popup ou location. Dans le cas de auto_load=true, on affiche la fiche contact dans un popup ou sur la même page location
https text (optionnel) "true" ou "false". Si "true", les scripts fournis dans url_widget seront appelés en HTTPS. Par défaut "false"
background_color text (optionnel) Dans le cas de l'intégration par iframe. Couleur de personnalisation du fond du widget (format #xxxxxx)
police_color text (optionnel) Dans le cas de l'intégration par iframe. Couleur de personnalisation de la police du widget (format #xxxxxx)
icon_color text (optionnel) Dans le cas de l'intégration par iframe. Couleur de personnalisation des icônes du widget (format #xxxxxx)

En sortie :

Paramètre Type Description
status int Code erreur =1 en cas de succès
message text Description de l'erreur
token uuid Token de la connection du télé-opérateur
url_widget text Url du widget à afficher en iframe par exemple dans votre CRM ou bien Script Javascript à insérer

Note : Dans le cas d'une intégration en javascript, vous avez la possibilité de rajouter sur votre SI les zones HTML dynamiques suivantes où vous le souhaitez :

<div id='ipbx_name'></div>

<div id='ipbx_phone'></div>

<div id='ipbx_link'></div>

Lors d'un nouvel appel, le widget ira remplir automatiquement ces zones avec le nom (zone ipbx_name), le téléphone (zone ipbx_phone) et l'url de la fiche contact (zone ipbx_link) de l'appelant.

POST
/ipbx/login

Example request

$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/login' -d '{"callcenter_id":"5","account_id":"1","platform_id":"3","agent_id":"569","extension":"33173435451","url_file_contact":"http://crm.mondomaine.com/contact?contact_id={contact_id}"}'
$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5'  'https://api.ipbx.io/ipbx/login' -d callcenter_id='5' -d account_id='1' -d platform_id='3' -d agent_id='569' -d extension='33173435451'
$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/login' -d '{"callcenter_id":"5","account_id":"1","platform_id":"3","agent_id":"9","extension":"33173435452","url_file_contact":"http://crm.mondomaine.com/contact?contact_id={contact_id}","iframe":"false","auto_load":"false","load_target":"location","police_color":"#1f1f1f","auto_load":"t","load_target":"popup"}'

Example request body

{
  "callcenter_id": "2",
  "account_id": "5",
  "platform_id": "3",
  "agent_id" : "500",
  "extension" : "1001",
  "url" : "http://crm.mondomaine.com/contact?contact_id={contact_id}"
}

Example response

{
"status": "1",
"message": "OK",
"token" : "5da4f2c9-1263-435d-88e5-0285eb70108b",
"url_widget" : "http://api.api2call.com/ipbx/widget/5da4f2c9-1263-435d-88e5-0285eb70108b"
}
{
"status":"1",
"message":"OK",
"token":"da9e5589-655c-40f7-b606-3df4292e3aa4",
"url_widget":"<script type='text/javascript'>  var ipbx_uuid = 'da9e5589-655c-40f7-b606-3df4292e3aa4'  </script>  <script src='http://js.api2call.com:8081/socket.io/socket.io.js'></script>  <script src='http://api.ipbx.io/assets/js/widget.js'></script>  "
}

Déconnection téléopérateur

Permet de déconnecter un Télé-opérateur et libérer l'extension de poste.

En entrée :

Paramètre Type Description
callcenter_id int (obligatoire) l'identifiant du callcenter
account_id int (obligatoire) l'identifiant de compte
agent_id int (obligatoire) l'identifiant du télé-opérateur à déconnecter
platform_id int (obligatoire) identifiant du plateau sur lequel le télé-opérateur se connecter
token uuid (obligatoire) Token de la connection qu'il faut déconnecter

En sortie :

Paramètre Type Description
status int Code erreur =1 en cas de succès
message text Description de l'erreur
POST
/ipbx/logout

Example request

$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/logout' -d '{"callcenter_id":"5","account_id":"1","platform_id":"3","agent_id":"569","token":"310a11cc-041e-4145-be78-b0333652d3e9"}'
$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' 'https://api.ipbx.io/ipbx/logout'  -d callcenter_id='5' -d account_id='1' -d platform_id='3' -d agent_id='569' -d token='310a11cc-041e-4145-be78-b0333652d3e9'

Example request body

{
  "callcenter_id": "2",
  "account_id": "5",
  "platform_id": "3",
  "agent_id" : "500",
  "token" : "5da4f2c9-1263-435d-88e5-0285eb70108b"
}

Example response

{
"status": "1",
"message": "OK"
}

Clic To Call

Couplage Téléphonie Internet. Génération automatique d'appels.

Générer un appel

Génération d'un appel à partir du poste informatique du télé-opérateur. L'appel à cette ressource appelera directement le correspondant à partir du poste du téléopérateur.

En entrée :

Paramètre Type Description
callcenter_id int (obligatoire) l'identifiant du callcenter
account_id int (obligatoire) l'identifiant de compte
agent_id int (obligatoire) l'identifiant du télé-opérateur à déconnecter
platform_id int (obligatoire) identifiant du plateau sur lequel le télé-opérateur se connecter
phone_number text (obligatoire) Numéro de téléphone à appeller au format international. (ex:+33243434343)
sda text (obligatoire) ligne téléphonique au format international à partir de laquelle se fera l'appel. Cette ligne doit appartenir à votre compte
auto_answering text (optionnel) yes ou no par defaut yes. Est ce que le téléphone de l'agent décroche automatiquement
display_name text (optionnel) le nom qui va s'afficher sur le téléphone de l'opérateur
data text (optionnel) autre donnée qui pourra être transmis dans les différents notifications de l'appel
call_timeout integer (optionnel) durée en seconde à partir de laquelle la communication est coupée automatiquement

En sortie :

Paramètre Type Description
status int Code erreur =1 en cas de succès
message text Description de l'erreur
uuid uuid Identifiant de la communication
POST
/ipbx/webCallBack

Example request

$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/webCallBack' -d '{"callcenter_id":"5","account_id":"1","platform_id":"3","agent_id":"500","phone_number":"+33243434343","sda":"+33147202020'}'
$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/webCallBack'

Example request body

{
  "callcenter_id": "2",
  "account_id": "5",
  "platform_id": "3",
  "agent_id" : "500",
  "phone_number" : "+33243434343",
  "sda" : "+33147202020"
}

Example response

HTTP 204

{
"status": "1",
"message": "OK"
"uuid" : "9d622ccb-f72b-48f1-94df-707299cf76a8"
}

Déconnection

Couplage Téléphonie Internet. Déconnection d'un appel

Déconnecter un appel

Génération d'un appel à partir du poste informatique du télé-opérateur. L'appel à cette ressource appelera directement le correspondant à partir du poste du téléopérateur.

En entrée :

Paramètre Type Description
callcenter_id int (obligatoire) l'identifiant du callcenter
account_id int (obligatoire) l'identifiant de compte
platform_id int (obligatoire) identifiant du plateau sur lequel le télé-opérateur se connecter
uuid uuid (obligatoire) identifiant de la communication au format uuid

En sortie :

Paramètre Type Description
status int Code erreur =1 en cas de succès
message text Description de l'erreur
POST
/ipbx/disconnect

Example request

$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/disconnect' -d '{"callcenter_id":"5","account_id":"1","platform_id":"3","uuid":"70d0b1b5-5a6e-423b-aa95-6dc093c46f5a"}'
$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/disconnect'

Example request body

{
  "callcenter_id": "2",
  "account_id": "5",
  "platform_id": "3",
  "uuid" : "70d0b1b5-5a6e-423b-aa95-6dc093c46f5a"
  }

Example response

HTTP 204

{
"status": "1",
"message": "OK"
}

Ecoute passive d'une conversation

Dans une configuration call center, permettre au manager de continuer sa formation en continue et ecouter les conversations entre ses collaborateurs et leur interlocuteur

Générer une écoute

L'appel à cette ressource permettra de connecter un poste téléphonique autre à une conversation existante

En entrée :

Paramètre Type Description
callcenter_id int (obligatoire) l'identifiant du callcenter
account_id int (obligatoire) l'identifiant de compte
agent_id int (obligatoire) l'identifiant du télé-opérateur à déconnecter
platform_id int (obligatoire) identifiant du plateau sur lequel le télé-opérateur se connecter
uuid uuid (obligatoire) identifiant d'une communication téléphonique (retourné par un clic to call par exemple)
auto_answering text (optionnel) yes ou no par defaut yes. Est ce que le téléphone de l'agent décroche automatiquement

En sortie :

Paramètre Type Description
status int Code erreur =1 en cas de succès
message text Description de l'erreur
POST
/ipbx/passiveListen

Example request

$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/passiveListen' -d '{"callcenter_id":"5","account_id":"1","platform_id":"3","agent_id":"500","uuid":"6b264491-c464-4377-a04d-0c4d13998c29"}'
$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/passiveListen'

Example request body

{
  "callcenter_id": "2",
  "account_id": "5",
  "platform_id": "3",
  "agent_id" : "500",
  "uuid" : "6b264491-c464-4377-a04d-0c4d13998c29"
 }

Example response

HTTP 204

{
"status": "1",
"message": "OK"
}

Transfert d'appel

Couplage Téléphonie Internet. Transfert automatique d'appels.

Transferer un appel sur une autre ligne

Après avoir effectué 2 clics to call, il est possible que l'agent transfert son 1er correspondant au 2ieme correspondant. Pour cela il faut récupérer les 2 uuid des communications, retournés par webCallBack

En entrée :

Paramètre Type Description
callcenter_id int (obligatoire) l'identifiant du callcenter
account_id int (obligatoire) l'identifiant de compte
platform_id int (obligatoire) identifiant du plateau sur lequel le télé-opérateur se connecter
uuid_a text (obligatoire) L'identifiant de la 1ere communication
uuid_b text (obligatoire) L'identifiant de la 2ieme communication

En sortie :

Paramètre Type Description
status int Code erreur =1 en cas de succès
message text Description de l'erreur
POST
/ipbx/transferCall

Example request

$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/transferCall' -d '{"callcenter_id":"5","account_id":"1","platform_id":"3","uuid_a":"cfd88887-03cc-4859-bde5-fca9f182bd85","uuid_b":"9d622ccb-f72b-48f1-94df-707299cf76a8"}'
$ curl --insecure -X POST -H 'X-API-KEY: 59c57f26232d5' -H "Content-Type: application/json" 'https://api.ipbx.io/ipbx/transferCall'

Example request body

{
  "callcenter_id": "2",
  "account_id": "5",
  "platform_id": "3",
  "uuid_a" : "500",
  "uuid_b" : "cfd88887-03cc-4859-bde5-fca9f182bd85",
  "sda" : "9d622ccb-f72b-48f1-94df-707299cf76a8"
}

Example response

HTTP 204

{
"status": "1",
"message": "OK"
}

Notification

Une URL de notification devra nous être transmise afin de vous notifier :

  • du début de l'appel
  • de la fin de l'appel

3 types d'événements seront réceptionnés :

  • type=START, début d'un appel entrant
  • type=IN, fin d'un appel entrant
  • type=OUT, fin d'un appel sortant

Les paramètres pourront être transmis en POST ou en GET.

Les paramètres envoyés au client sont :

Paramètre Type Description
platform_id int (obligatoire) l'identifiant du plateau
type text (obligatoire) START, IN ou OUT
phone_number text (obligatoire) numéro du correspondant au format international (ex:+33123232323)
uuid uuid (obligatoire) identifiant de la communication
contact_id text (optionnel) identifiant du contact, si disponible
ipbx_contact_id int (optionnel) identifiant du contact chez IPBX, si disponible
agent_id int (optionnel) identifiant du téléopérateur
agent_id int (optionnel) identifiant du téléopérateur
service_id int (optionnel) identifiant du service chez IPBX (représente en général une SDA)
start_call datetime (obligatoire) Date de début de la communication au format YYYY-MM-DD HH:MM:SS
end_call datetime (obligatoire) Date de fin de la communication au format YYYY-MM-DD HH:MM:SS
duration datetime (obligatoire) Durée de la communication au format HH:MM:SS
disconnection_cause text (optionnel) raison de la déconnection

Si l'appel à l'URL de notification ne retourne pas le code 200 HTTP, IPBX tentera à nouveau de délivrer la notification :

  • dans 1 mn;
  • puis en cas de nouveau échec, dans 5 mn,
  • puis enfin 1h après

Example request body

{
  "platform_id": "3",
  "type": "IN",
  "contact_id": "id1",
  "ipbx_contact_id" : "{integer}",
  "phone_number" : "+33685124544",
  "uuid" : "7e1460c5-d9b4-40e8-a764-d0d4c65b012f",
  "service_id" : "23",
  "start_call" : "2017-06-20 12:30:00",
  "end_call" : "2017-06-20 12:30:30",
  "duration" : "00:00:30"
}
Show examples in:
IPBX API Documentation