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
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 :
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.
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 |
$ 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'
{
"callcenter_id": "2",
"account_id": "5",
"contact_id": "your contact id",
"lastname" : "nomfamille",
"firstname" : "prenom",
"phone_number" : "+33685124545",
"type_phone" : "mobile"
}
{
"status": "1",
"message": "OK",
"ipbx_contact_id": "{integer}",
"contact_id": "your contact id"
}
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 |
$ 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'
{
"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"
}
{
"status": "1",
"message": "OK",
"ipbx_contact_id": "{integer}",
"contact_id": "your contact id"
}
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 |
$ 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"}]'
{
"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"
}
]
}
{
"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"
}
]
}
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 |
$ 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'
{
"callcenter_id": "2",
"account_id": "5",
"contact_id": "id1",
"type_phone" : "mobile"
}
{
"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"
}
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 |
$ 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'
{
"callcenter_id": "2",
"account_id": "5",
"contact_id": "id1",
"uuid" : "7e1460c5-d9b4-40e8-a764-d0d4c65b012f"
}
Cette rubrique va vous permettre de manager vos télé-opérateurs .
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 |
$ 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'
{
"callcenter_id": "2",
"account_id": "5",
"platform_ids": "56,45,65",
"lastname" : "albert",
"firstname" : "daniel",
"nickname" : "adaniel",
"email" : "adaniel@mondomaine.com"
}
{
"status": "1",
"message": "OK",
"agent_id": "500"
}
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 |
$ 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'
{
"callcenter_id": "2",
"account_id": "5",
"agent_id": "500",
"platform_ids": "56,45,65",
"lastname" : "albert",
"firstname" : "daniel",
"nickname" : "adaniel",
"email" : "adaniel@mondomaine.com"
}
{
"status": "1",
"message": "OK",
"agent_id": "500"
}
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 |
$ 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'
{
"callcenter_id": "2",
"account_id": "5",
"platform_id": "3"
}
{
"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"
}]
}
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 |
$ 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'
{
"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"
}
{
"status": "1",
"message": "OK inserted"
}
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 |
$ 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'
{
"callcenter_id": "2",
"account_id": "5",
"platform_id": "3",
"dateStartSession":"12:00:00",
"dateEndSession":"14:00:00",
"code_agent":"2345",
"priority":"1",
"dow":"2"
}
{
"status": "1",
"message": "OK inserted"
}
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.
$ 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"}'
{
"callcenter_id": "2",
"account_id": "5",
"platform_id": "3",
"agent_id" : "500",
"extension" : "1001",
"url" : "http://crm.mondomaine.com/contact?contact_id={contact_id}"
}
{
"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> "
}
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 |
$ 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'
{
"callcenter_id": "2",
"account_id": "5",
"platform_id": "3",
"agent_id" : "500",
"token" : "5da4f2c9-1263-435d-88e5-0285eb70108b"
}
{
"status": "1",
"message": "OK"
}
Couplage Téléphonie Internet. Génération automatique d'appels.
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 |
$ 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'
{
"callcenter_id": "2",
"account_id": "5",
"platform_id": "3",
"agent_id" : "500",
"phone_number" : "+33243434343",
"sda" : "+33147202020"
}
HTTP 204
{
"status": "1",
"message": "OK"
"uuid" : "9d622ccb-f72b-48f1-94df-707299cf76a8"
}
Couplage Téléphonie Internet. Déconnection d'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 |
$ 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'
{
"callcenter_id": "2",
"account_id": "5",
"platform_id": "3",
"uuid" : "70d0b1b5-5a6e-423b-aa95-6dc093c46f5a"
}
HTTP 204
{
"status": "1",
"message": "OK"
}
Dans une configuration call center, permettre au manager de continuer sa formation en continue et ecouter les conversations entre ses collaborateurs et leur interlocuteur
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 |
$ 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'
{
"callcenter_id": "2",
"account_id": "5",
"platform_id": "3",
"agent_id" : "500",
"uuid" : "6b264491-c464-4377-a04d-0c4d13998c29"
}
HTTP 204
{
"status": "1",
"message": "OK"
}
Couplage Téléphonie Internet. Transfert automatique d'appels.
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 |
$ 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'
{
"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"
}
HTTP 204
{
"status": "1",
"message": "OK"
}
Une URL de notification devra nous être transmise afin de vous notifier :
3 types d'événements seront réceptionnés :
type=START, début d'un appel entranttype=IN, fin d'un appel entranttype=OUT, fin d'un appel sortantLes 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 :
{
"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"
}