Affichage des résultats 1 à 7 sur 7

Discussion: [RESOLU] queues et conversion a MP3

  1. #1
    Membre Senior
    Date d'inscription
    avril 2013
    Messages
    104
    Downloads
    0
    Uploads
    0

    [RESOLU] queues et conversion a MP3

    Bonjour à tous,
    Une question:
    J'ai une file d'attente (queue ) et cette queue est paramétrée pour enregistrer les conversations en WAV.

    J'aurais besoin d'exécuter un script qui convertit la conversation en mp3 une fois l'appel terminé.

    Je souhaiterais connaître la meilleure façon de le faire. Jusqu'à présent je faisais un cron qui, chaque minute, convertissait tous les .wav du répertoire en mp3
    Code:
    # wav to mp3 
    cd /var/spool/asterisk/monitor
    for i in *.wav; do
    	if [ -e "$i" ]; then
    		file=`basename "$i" .wav`
    		#lame -h -b 192 "$i" "$file.mp3"
    		sox -r 8000 -c 1 "$i" "$file.mp3"
    	fi 
    done
    Cette solution ne fonctione pas, car si une conversation est en cours, un fichier wav existe dans le répertoire et ce fichier se convertit mal, car le wav est ouvert.

    Donc je souhaiterais exécuter un script une fois que l'appel est terminé. Je sais exécuter un script dans le cas où c'est une conversation "normale", c'est à dire PAS dans une queue.

    J'ai essayé ça:
    Code:
    exten => 500,1,Queue(support,wtTr)
    exten => 500,2,System(/bin/sh /etc/asterisk/test.sh ${MONITOR_FILE} /var/spool/asterisk/monitor/mp3/{$MONITOR_FILE})
    Mais la seconde ligne n'est pas exécutée.

    J'espère avoir été clair.

    Merci de votre aide.
    Dernière modification par sbeu ; 08/09/2015 à 15h34.

  2. #2
    Membre Association Avatar de quintana
    Date d'inscription
    août 2010
    Localisation
    Québec
    Messages
    1 084
    Downloads
    0
    Uploads
    0
    Salut,

    Il faut utiliser l'extension h.

    ++
    Découvrez Wazo sous licence GPLv3 et accessible pour tous : http://www.wazo.community
    Blog Wazo : http://blog.wazo.community
    Wazo est un fork de XiVO.
    Suivez moi sur Twitter !

  3. #3
    Membre Senior
    Date d'inscription
    avril 2013
    Messages
    104
    Downloads
    0
    Uploads
    0

    Question Comment identifier le fichier wav à convertir?

    Merci beaucoup Quintana.
    Dans l'extension h, je pourrai connaître quel fichier il faut convertir?
    Car je dois convertir uniquement le fichier wav qui correspond à la communication qui vient de terminer, et pas TOUS les fichiers wav que je trouve. En effet si il y a des communications en cours et si je convertis TOUS les fichiers wav présents, alors que convertirais aussi les fichiers wav qui sont en cours de communication. Et je retomberai dans le même problème que le problème initial.

  4. #4
    Membre Senior
    Date d'inscription
    janvier 2011
    Localisation
    Villejuif 94
    Messages
    337
    Downloads
    0
    Uploads
    0
    Bonjour,


    les variables de la session sont passées à h, tu peux utiliser {$MONITOR_FILE}. Utilise plutôt la commande agi pour appeler un script externe.


    A+

  5. #5
    Membre Senior
    Date d'inscription
    avril 2013
    Messages
    104
    Downloads
    0
    Uploads
    0

    OK, résolu

    Merci à tous les deux,
    Je vais maintenant voir comment fonctionnent les appels vía AGI.

  6. #6
    Membre Association
    Date d'inscription
    septembre 2010
    Messages
    1 236
    Downloads
    0
    Uploads
    0
    Je vais coller une solution que j'ai utilisé dans le temps, on peut faire mieux mais bon.

    En gros j'enregistre l'entrant et sortant dans les répertoires séparées, de plus je crée les sous dossiers avec ANEE-MOIS/JOUR

    Par exemple 2015-09/01

    Le fichier est APPELE-APPELANT-HH-MM-SS.mp3

    Par exemple 0199967575-0888854284-15-52-55.mp3

    La conversion est lancée par Mixmonotor j'ai pas besoin de l'extension h, mais la ligne est longue car j'ai du mettre l'ensemble d'opérations dedans.

    A la fin je fais in chmod pour les droits, en sorte que le mp3 soit disponible pour le client en ftp.


    J'ai également une petite fonctionnalité de Liste Blanche qui est très simple, si le numéro est dans la AstDB, nous n'allons pas enregistrer l'appel.
    Pour importer les numéros, je lis un fichier txt avec un script bash, et je l'import dans la base.

    Comment sont enregistrés les numéros dans txt:

    999999999
    888888888


    Le script:

    #!/bin/bash

    /usr/sbin/asterisk -r -x "database deltree ListeBlanche"


    /usr/bin/dos2unix /home/CLIENT/ListeBlanche.txt #Il faut convertir en format unix pour enlever les caracteres AINSI

    while IFS= read -r line;do
    fields=($(printf "%s" "$line"|/bin/cat -))
    command /usr/sbin/asterisk -x "database put ListeBlanche ${fields[0]} 1"
    command /bin/echo "database put ListeBlanche ${fields[0]} 1"
    done < /home/CLIENT/ListeBlanche.txt



    extensions.conf

    [general]

    DIRNAMESORTANT=/home/CLIENT/Sortant
    DIRNAMEENTRANT=/home/CLIENT/Entrant


    [Entrant]
    exten => _X.,1,Gotoif($["${DB(ListeBlanche/${CUT(CUT(SIP_HEADER(To),@,1),:,2)})}" = "1"]?dial_direct)
    exten => _X.,n,Set(DIRNAME1=/home/CLIENT/Entrant/${STRFTIME(${EPOCH},,%Y-%m/%d)})
    exten => _X.,n,Set(FILENAME1=${CUT(CUT(SIP_HEADER(To),@,1), :,2)}-${CALLERID(num)}-${STRFTIME(${EPOCH},,%H-%M-%S)})
    exten => _X.,n,System(/bin/mkdir -p ${DIRNAME1} && /bin/chmod -R 777 ${DIRNAMEENTRANT}/${STRFTIME(${EPOCH},,%Y-%m)})
    exten => _X.,n,MixMonitor(${DIRNAME1}/${FILENAME1}.wav,b,/usr/bin/lame --quiet "${DIRNAME1}/${FILENAME1}.wav" "${DIRNAME1}/${FILENAME1}.mp3" && /bin/rm -rf ${DIRNAME1}/${FILENAME1}.wav && /bin/chmod -R 777 ${DIRNAME1}/${FILENAME1}.mp3 && /bin/chown CLIENT:CLIENT -R ${DIRNAMEENTRANT}/${STRFTIME(${EPOCH},,%Y-%m)})
    exten => _X.,n,Dial(SIP/IPBX/${CUT(CUT(SIP_HEADER(To),@,1),:,2)})
    exten => _X.,n(dial_direct),Dial(SIP/IPBX/${CUT(CUT(SIP_HEADER(To),@,1),:,2)})


    [Sortant]
    exten => _X.,1,Gotoif($["${DB(ListeBlanche/${CALLERID(num)})}" = "1"]?dial_direct)
    exten => _X.,n,Set(DIRNAME2=/home/CLIENT/Sortant/${STRFTIME(${EPOCH},,%Y-%m/%d)})
    exten => _X.,n,Set(FILENAME2=${EXTEN:1}-${CALLERID(num)}-${STRFTIME(${EPOCH},,%H-%M-%S)})
    exten => _X.,n,System(/bin/mkdir -p ${DIRNAME2} && /bin/chmod -R 777 ${DIRNAMESORTANT}/${STRFTIME(${EPOCH},,%Y-%m)})
    exten => _X.,n,MixMonitor(${DIRNAME2}/${FILENAME2}.wav,b,/usr/bin/lame --quiet "${DIRNAME2}/${FILENAME2}.wav" "${DIRNAME2}/${FILENAME2}.mp3" && /bin/rm -rf ${DIRNAME2}/${FILENAME2}.wav && /bin/chmod -R 777 ${DIRNAME2}/${FILENAME2}.mp3 && /bin/chown CLIENT:CLIENT -R ${DIRNAMESORTANT}/${STRFTIME(${EPOCH},,%Y-%m)})
    exten => _X.,n,Dial(SIP/FOURNISSEUR/${EXTEN},,g)
    exten => _X.,n(dial_direct),Dial(SIP/FOURNISSEUR/${EXTEN},,g)


    En terme de charge, je dois avoir une trentaine d'appels en simultané et elle est faible.

    Cpu(s): 0.8%us, 0.4%sy, 0.0%ni, 98.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
    Mem: 1026908k total, 1007168k used, 19740k free, 228588k buffers
    Swap: 1324024k total, 552k used, 1323472k free, 667184k cached

    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    20289 root 20 0 695m 31m 8836 S 6.0 3.1 713:40.07 asterisk

    Bon voila si c'est utile pour quelqu’un un jour.

  7. #7
    Membre Senior
    Date d'inscription
    avril 2013
    Messages
    104
    Downloads
    0
    Uploads
    0

    extension h, ok

    En utilisant l'extension h, j'appelle un script .sh avec AGI qui réalise la conversion du wav au mp3, et ça marche nickel.
    Une petite remarque sur les utilitaires de conversion:

    1) LAME: en utilisant LAME, j'ai des problèmes sur les PETITS fichiers wav. La conversion ne se fait pas, ou se fait mal, c'est à dire que le début du son n'est pas converti.
    2) SOX: aucun problème en utilisant sox, je recommande.

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •