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
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.