Pas d'audio lors d'un appel

22 views
Skip to first unread message

Hamza Khait

unread,
Sep 23, 2015, 8:39:16 AM9/23/15
to Emerginov Community Discussions
Hello everyone,

J'ai réussi à résoudre mon problème d'appel SIP. C'était à cause d'une erreur dans le fichier extensions.conf d'Asterisk.
J'arrive bien à établir la communication avec le projet concerné sur Dev, par contre l'audio ne marche pas. 

Voici le résultat de "rtp set debug on" lors d'un appel sur la machine Dev : 
[Sep 23 10:06:46] WARNING[22160][C-00000000]: format_wav.c:159 check_header: Does not begin with RIFF
[Sep 23 10:06:46] WARNING[22160][C-00000000]: file.c:398 fn_wrapper: Unable to open format wav
[Sep 23 10:06:47] WARNING[22160][C-00000000]: format_wav.c:159 check_header: Does not begin with RIFF
[Sep 23 10:06:47] WARNING[22160][C-00000000]: file.c:398 fn_wrapper: Unable to open format wav
[Sep 23 10:06:47] WARNING[22160][C-00000000]: format_wav.c:159 check_header: Does not begin with RIFF
[Sep 23 10:06:47] WARNING[22160][C-00000000]: file.c:398 fn_wrapper: Unable to open format wav
[Sep 23 10:06:47] WARNING[22160][C-00000000]: format_wav.c:159 check_header: Does not begin with RIFF
[Sep 23 10:06:47] WARNING[22160][C-00000000]: file.c:398 fn_wrapper: Unable to open format wav
[Sep 23 10:06:47] WARNING[22160][C-00000000]: file.c:1017 ast_streamfile: Unable to open /var/lib/asterisk/emerginov-projects/media-out/testVoix/for_english_press_2Yu9JkVzutt (format (ulaw)): No such file or directory


Voici le code de l'application :
<?php
// Load required configuration & Emerginov Class
require_once("passwords.php");
require_once("Emerginov.php");

// Answer the call
$call->Answer();

$call->Say("Bienvenu sur la plateforme Emerginov !", $api_login, $api_password, "Fr");
$call->Say("Welcome to Emerginov platform !", $api_login, $api_password, "En");

    do{
            $call->Say("Pour le Français. Appuyez sur 1", $api_login, $api_password, "Fr");
            $menu = $call->Ask("For English. Press 2", $api_login, $api_password, "En");
            
            $dtmf = $menu['result'];
                
            if($dtmf==1){
                $call->Say("Ceci est un test des appels en Français.", $api_login, $api_password, "Fr");
                $call->Say("Merci de votre appel.", $api_login, $api_password, "Fr");
                $call->Say("Au revoir!", $api_login, $api_password, "Fr");                    
            }            
            else if($dtmf==2){
                $call->Say("This a vocal calls test in English", $api_login, $api_password, "En");
                $call->Say("Thank you for you call.", $api_login, $api_password, "En");
                $call->Say("Goodbye!", $api_login, $api_password, "En");                    
            }
            else
                $call->Say("Je n'ai pas compris votre demande. Veuillez réessayer.", $api_login, $api_password, "Fr");
            
    }while($dtmf!=1 && $dtmf!=2);


// Hangup the line
$call->Hangup();
?>

D'après les recherches sur internet, ça pourrait être lié au NAT. Mais je n'arrive pas à trouver l'endroit exact. Avez-vous des idées svp ?

En vous remerciant,
Hamza

Arnaud MORIN

unread,
Sep 25, 2015, 5:24:39 AM9/25/15
to Hamza Khait, Emerginov Community Discussions
Hum, 

Es-tu sur que les fichiers wav générés par la méthode Say sont bien des fichiers sons?
Essaye avec la méthode play et des fichiers sons de tests. 
Tu peux télécharger ce fichier là pour tester :

Arnaud.

Hamza Khait

unread,
Sep 25, 2015, 9:15:44 AM9/25/15
to Emerginov Community Discussions, hamza...@gmail.com
Bonjour Arnaud,

Je vois quelques fichiers wav générés par la méthode Say dans /var/www/projects/VoiceTest/media/ par contre pas tous. 


La méthode Play ne génère pas d'erreur, par contre je n'ai toujours pas d'audio. voici le résultat : 

Sent RTP packet to      192.100.100.154:12588 (type 00, seq 001449, ts 076480, len 4294967283)

........

........

........

.......


Sent RTP packet to      192.100.100.154:12588 (type 00, seq 001461, ts 078400, len 4294967283)

Sent RTP packet to      192.100.100.154:12588 (type 00, seq 001462, ts 078560, len 4294967283)

Sent RTP packet to      192.100.100.154:12588 (type 00, seq 001463, ts 078720, len 4294967283)

Sent RTP packet to      192.100.100.154:12588 (type 00, seq 001464, ts 078880, len 4294967283)

    -- <SIP/192.100.100.154-00000002>AGI Script agi://dev.emerginov.localnet/VoiceTest/incoming.php completed, returning 4

[Sep 25 14:58:50] ERROR[6462][C-00000002]: utils.c:1321 ast_carefulwrite: write() returned error: Broken pipe

  == Spawn extension (default, VOICETEST, 2) exited non-zero on 'SIP/192.100.100.154-00000002'


192.100.100.154 c'est l'adresse de l'interface eth0 de ma Gateway qui est connectée au routeur pour accéder à internet. Normalement je suis sensé avoir Sent rtp packet to et Got RTP packet from non ? 


Une autre chose que j'ai remarqué aussi : quand je modifie le code source d'un projet depuis le portail et j'enregistre, j'ai bien un message de confirmation. Par contre, le code n'est pas pris en compte sur la machine Dev... Je suis obligé de l'updater manuellement.


Hamza

Morgan Richomme

unread,
Sep 25, 2015, 9:37:20 AM9/25/15
to Hamza Khait, Emerginov Community Discussions

L erreur ressemble à un problème de format. Mais comme ça utilise le TTS, il est possible que ça n ait rien à voir.
Est ça tu peux lire les fichiers générés?
Sinon je tenterais un redémarrage d Astérisk

Morgan

Hamza Khait

unread,
Sep 25, 2015, 10:21:08 AM9/25/15
to Morgan Richomme, Emerginov Community Discussions
Non je n'arrive pas à les lire (http://projects.emerginov.apitech.eu/VoiceTest/media/). Bizarre..
Je ne sais pas si je réinstalle la machine Dev. Cela ne va pas gêner le fonctionnement des autres machines ?
J'ai essayé de redémarrer Asterisk plusieurs fois mais toujours le même résultat..  
--
______________________________________________
Hamza Khait

Arnaud MORIN

unread,
Sep 25, 2015, 11:21:44 AM9/25/15
to Hamza Khait, Morgan Richomme, Emerginov Community Discussions
l'api de google a du évoluer, fait un cat d'un des fichiers wav tu vas voir.
Si tu as le temps, tu peux modifier la manière dont le TTS génère ce fichier.
Pour cela, recherche la fonction TextToSpeech dans le fichier :
/usr/local/emerginov/php_class/Emerginov.php

Arnaud.

Hamza Khait

unread,
Sep 25, 2015, 11:24:39 AM9/25/15
to Arnaud MORIN, Morgan Richomme, Emerginov Community Discussions
​D'accord, merci pour la réponse rapide. 
Je vais travailler sur ça et je vous tiens au courant.​
--
______________________________________________
Hamza Khait
Reply all
Reply to author
Forward
0 new messages