# Record via API non lié à un CDR / Impossible de record avec les variables de channel

**URL:** <https://wazo-platform.discourse.group/t/record-via-api-non-lie-a-un-cdr-impossible-de-record-avec-les-variables-de-channel/1044>\
**Category:** Développement: API/Events\
**Created:** [April 12, 2022, 8:47am UTC](https://wazo-platform.discourse.group/t/record-via-api-non-lie-a-un-cdr-impossible-de-record-avec-les-variables-de-channel/1044 "2022-04-12T08:47:58Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ZWF](https://avatars.discourse-cdn.com/v4/letter/z/f475e1/32.png) [@ZWF](https://wazo-platform.discourse.group/u/ZWF)\
**Post date:** [April 12, 2022, 8:47am UTC](https://wazo-platform.discourse.group/t/record-via-api-non-lie-a-un-cdr-impossible-de-record-avec-les-variables-de-channel/1044/1 "2022-04-12T08:47:58Z")

</div>

Bonjour,

Merci pour votre travail sur WAZO.

Avant la mise à jour de wazo en 22.05 j’étais en version 20.04 et les appels sortants étaient enregistrés sans avoir à appeler l’API pour démarrer le record (ni à spécifier des variables spéciales lors de la création de l’appel).  
Après la mise à jour j’ai donc activé le call recordinf sur l’utilisateur :  
PUT /users/{user\_uuid}  
{  
“call\_record\_outgoing\_internal\_enabled”: true,  
“call\_record\_outgoing\_external\_enabled”: true,  
“call\_record\_incoming\_internal\_enabled”: true,  
“call\_record\_incoming\_external\_enabled”: true  
}  
Puis j’ai dans un premier temps utilisé l’API (en POST) pour faire les appels sortants.  
En voyant qu’aucun des appels sortants n’étaient enregistrés je suis passé sur l’API /api/calld/1.0/users/me/calls (POST) :

- Création du token d’authorisation avec le call\_id et le refresh\_token de l’utilisateur qui fait l’appel
- Envoi des informations nécessaire pour passer l’appel :  
array(  
‘all\_lines’ =\> true,  
‘extension’ =\> “06xxxxxx38”,  
‘variables’ =\> array(  
‘WAZO\_CALL\_RECORD\_ACTIVE’ =\> ‘1’,  
‘XIVO\_USERUUID’ =\> “d8a5c9b7-xxxx-xxxx-xxxx-72df1a33c8fc”,  
‘WAZO\_TENANT\_UUID’ =\> “b8d37776-xxxx-xxxx-xxxx-cca62fcf23be”  
)  
)
- Utilisation du token généré pour le header :  
header : X-Auth-Token: token\_genere\r\nContent-Type: application/json\r\n

Voici la réponse de l’API :  
answer\_time: null  
bridges: Array []  
call\_id: “1649747591.24”  
caller\_id\_name: “06xxxxxx38”  
caller\_id\_number: “06xxxxxx38”  
conversation\_id: “1649747591.24”  
creation\_time: “2022-04-12T09:13:11.041+0200”  
dialed\_extension: “06xxxxxx38”  
hangup\_time: null  
is\_caller: true  
is\_video: false  
line\_id: null  
muted: false  
on\_hold: false  
peer\_caller\_id\_name: “06xxxxxx38”  
peer\_caller\_id\_number: “06xxxxxx38”  
record\_state: “active”  
sip\_call\_id: null  
status: “Down”  
talking\_to: Array []  
user\_uuid: null

Après l’ajout des variables dans l’appel le record\_state est passé à active là où il était en inactive avant.  
Variables en question :  
‘variables’ =\> array(  
‘WAZO\_CALL\_RECORD\_ACTIVE’ =\> ‘1’,  
‘XIVO\_USERUUID’ =\> “d8a5c9b7-xxxx-xxxx-xxxx-72df1a33c8fc”,  
‘WAZO\_TENANT\_UUID’ =\> “b8d37776-xxxx-xxxx-xxxx-cca62fcf23be”  
)

Cependant, à la fin de l’appel le record n’est pas indiqué dans le CRD dans la rubrique recordings et le fichier n’est pas enregistré.  
Réponse de l’API lors de la recherche du CDR :  
answer: “2022-04-12T09:13:17.459058+02:00”  
answered: true  
call\_direction: “outbound”  
destination\_extension: “06xxxxxx38”  
destination\_internal\_context: null  
destination\_internal\_extension: null  
destination\_line\_id: null  
destination\_name: “”  
destination\_user\_uuid: null  
duration: 10  
end: “2022-04-12T09:13:28.288673+02:00”  
id: 1698  
recordings: Array []  
requested\_context: null  
requested\_extension: null  
requested\_internal\_context: null  
requested\_internal\_extension: null  
requested\_name: null  
source\_extension: “10”  
source\_internal\_context: “interne”  
source\_internal\_extension: “10”  
source\_internal\_name: null  
source\_line\_id: 10  
source\_name: “Pascal Martin”  
source\_user\_uuid: “d8a5c9b7-xxxx-xxxx-xxxx-72df1a33c8fc”  
start: “2022-04-12T09:13:11.042009+02:00”  
tags: Array []  
tenant\_uuid: “b8d37776-21b8-4967-9819-cca62fcf23be”

Exemple de la rubrique recordings sur un appel entrant :  
​​​​​recordings: Array[  
0: {  
deleted: false  
end\_time: “2022-04-12T10:05:46.034618+02:00”  
filename: “2022-04-12T08\_04\_47UTC-1719-959def52-3477-4172-8fd6-16dcae6c283b.wav”  
start\_time: “2022-04-12T10:04:47.058735+02:00”  
uuid: “959def52-3477-4172-8fd6-16dcae6c283b”  
}  
]

Pour résumer :  
Quand on fait un appel sortant avec un compte SIP, l’appel s’enregistre et se met dans le dossier /var/lib/wazo/sounds/tenants/{tenant\_uuid}/monitor/.  
Quand on fait un appel sortant mais cette fois-ci en utilisant l’API (/api/calld/1.0/users/me/calls ou /api/calld/1.0/calls avec et sans les variables) l’appel ne s’enregistre pas  
Quand on fait un appel sortant avec /api/calld/1.0/users/me/calls et qu’on utilise l’API pour record l’appel, il s’enregistre mais n’est pas présent dans les informations du CDR dans la rubrique recordings

Le but :  
Enregistrer les appels sortants pour les récupérer avec l’API /api/1.0/cdr/{cdr\_id}/recordings/{recording\_uuid}/media

Savez-vous pourquoi je n’ai pas d’enregistrement lors de l’utilsation des variables ? Il m’en manque peut-être une mais je ne vois pas laquelle.

L’enregistrement se fait lors de l’appel à l’API une foit l’appel créé (/api/1.0/users/me/calls/{call\_id}/record/start) mais aucune information dans le CRD donc impossible de récupérer le recording

J’ai l’impression que ce que je tente de réalisé est lié au bug/ticket suivant :  
[https://wazo-dev.atlassian.net/browse/WAZO-2350](https://wazo-dev.atlassian.net/browse/WAZO-2350)

Cependant, je ne vois pas pourquoi le record\_state passe en active (grâce à WAZO\_CALL\_RECORD\_ACTIVE) sans enregister l’appel…

Merci d’avance pour votre aide et n’hésitez évidemment pas à demander plus de précisions / code si nécessaire .

MARTIN Pascal.

---

<div class="post-metadata">

**Author:** ![quintana](https://yyz2.discourse-cdn.com/free1/user_avatar/wazo-platform.discourse.group/quintana/32/916_2.png) [@quintana](https://wazo-platform.discourse.group/u/quintana)\
**Post date:** [April 20, 2022, 11:44pm UTC](https://wazo-platform.discourse.group/t/record-via-api-non-lie-a-un-cdr-impossible-de-record-avec-les-variables-de-channel/1044/2 "2022-04-20T23:44:12Z")

</div>

Allo, on a pas connaissance de regression de ce côté là. Je ne suis pas complètement sûr de comprendre pourquoi tu passes des variables. Normalement dès qu’il y a un me dans le endpoint d’une API c’est qu’il représente l’utilisateur par son token. Par contre, oui le ticket WAZO-2350 est pour améliorer l’API qui a quelques lacunes pour simplifier la récupération des infos sur les enregistrements d’appel. Je vais essayer de trouver le temps de reproduire pour mieux te répondre.

Sylvain

---

<div class="post-metadata">

**Author:** ![ZWF](https://avatars.discourse-cdn.com/v4/letter/z/f475e1/32.png) [@ZWF](https://wazo-platform.discourse.group/u/ZWF)\
**Post date:** [April 21, 2022, 7:14am UTC](https://wazo-platform.discourse.group/t/record-via-api-non-lie-a-un-cdr-impossible-de-record-avec-les-variables-de-channel/1044/3 "2022-04-21T07:14:04Z")

</div>

Merci pour la réponse !  
En fait je passe des variables pour tenter de record l’appel car sans utiliser WAZO\_CALL\_RECORD\_ACTIVE le record\_state est en ‘inactive’. Avec, il passe en ‘active’ mais sans pour autant record l’appel.  
Je me suis donc dit qu’il fallait trigger le record en fournissant plus de variables de channel. D’ou l’ajout de XIVO\_USERUUID et WAZO\_TENANT\_UUID qui sont les seules variables que j’ai trouvé dans le code de l’API qui semblait pouvoir être utile mais sans succès.

> [@quintana](#):
>
> Par contre, oui le ticket WAZO-2350 est pour améliorer l’API qui a quelques lacunes pour simplifier la récupération des infos sur les enregistrements d’appel.

D’accord, si c’est juste pour simplifier la récupération ça n’est pas vraiment en lien avec mon soucis du coup.

> [@quintana](#):
>
> Normalement dès qu’il y a un me dans le endpoint d’une API c’est qu’il représente l’utilisateur par son token.

De ce côté là je suppose qu’il n’y a aucun soucis vu que je récupère bien le token d’authorisation de l’utilisateur et que l’appel est bien enregistré sur cet utilisateur. Par contre peut-être qu’en faisant un appel via l’API les authorisations de record de l’utilisateur (call\_record\_outgoing\_internal\_enabled, call\_record\_outgoing\_external\_enabled) ne sont pas récupérées ?

---

<div class="post-metadata">

**Author:** ![quintana](https://yyz2.discourse-cdn.com/free1/user_avatar/wazo-platform.discourse.group/quintana/32/916_2.png) [@quintana](https://wazo-platform.discourse.group/u/quintana)\
**Post date:** [April 22, 2022, 11:06am UTC](https://wazo-platform.discourse.group/t/record-via-api-non-lie-a-un-cdr-impossible-de-record-avec-les-variables-de-channel/1044/4 "2022-04-22T11:06:44Z")

</div>

Salut,

Entre la version 20.04 et aujourd’hui on a fait des changements important sur l’enregistrement et via l’api qui simule du click du call cela ne semble pas fonctionner. As tu essayé de lancer un enregistrement après ton post avec l’api pour le faire ? C’est un workaround pas parfait mais qui peut déjà régler ton problème. Nous avons noté ce point et on le priorisera dans le futur.

Sylvain

---

<div class="post-metadata">

**Author:** ![ZWF](https://avatars.discourse-cdn.com/v4/letter/z/f475e1/32.png) [@ZWF](https://wazo-platform.discourse.group/u/ZWF)\
**Post date:** [April 25, 2022, 7:25am UTC](https://wazo-platform.discourse.group/t/record-via-api-non-lie-a-un-cdr-impossible-de-record-avec-les-variables-de-channel/1044/5 "2022-04-25T07:25:47Z")

</div>

Bonjour,

> [@quintana](#):
>
> C’est un workaround pas parfait mais qui peut déjà régler ton problème.

Oui en effet, j’y avais pensé :

> [@ZWF](#):
>
> Quand on fait un appel sortant avec /api/calld/1.0/users/me/calls et qu’on utilise l’API pour record l’appel, il s’enregistre mais n’est pas présent dans les informations du CDR dans la rubrique recordings

Mais malheureusement ça n’indique rien dans le CDR (la rubrique “recordings” reste un tableau vide) donc impossible de le récupérer avec /api/1.0/cdr/{cdr\_id}/recordings/{recording\_uuid}/media.  
C’est un comportement normal ?

Par contre oui il enregistre bien l’appel et le sauve au bon endroit.

> [@quintana](#):
>
> Nous avons noté ce point et on le priorisera dans le futur.

Parfait je garderai un oeil sur les nouvelles versions alors !

Merci encore pour la réponse.

---

<div class="post-metadata">

**Author:** ![quintana](https://yyz2.discourse-cdn.com/free1/user_avatar/wazo-platform.discourse.group/quintana/32/916_2.png) [@quintana](https://wazo-platform.discourse.group/u/quintana)\
**Post date:** [April 25, 2022, 10:38am UTC](https://wazo-platform.discourse.group/t/record-via-api-non-lie-a-un-cdr-impossible-de-record-avec-les-variables-de-channel/1044/6 "2022-04-25T10:38:16Z")

</div>

Non c’est pas normal, mais c’est sûrement lié au fait qu’on ne gère pas correctement cette api pour l’enregistrement.
