Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/11/2023, à 16:22

xunil2003

Commande Modem AT sur modem classique RTC

Bonjour,

Dans un script bash, je souhaite être avertie quand mon alarme ce déclenche avec un modem RTC classique.
J'arrive a composer un numéro mais je ne sais pas comment diffuser sur le modem le message vocal en 8k mono (sans le balise .wav) sur l'appel en cous.
Pouvez-vous m'aider ?
Un exemple svp.
Merci d'avance pour vos avis et conseils.

Script bash

#!/bin/bash
# ===========================================================
#                        VARIABLES
# ===========================================================
PERIFERIQUE_MODEM="/dev/ttyACM0"
COMPOSE_NUM="07xxxxxxxx"
FICHIER_AUDIO="$HOME/Langages/bash/ubuntu-20.04/message-alerte-alarme.mp3"

# ===========================================================
#                        CODES
# ===========================================================
(/usr/sbin/chat -v "" ATH0 OK ATDT$COMPOSE_NUM CONNECT) < $PERIFERIQUE_MODEM > $PERIFERIQUE_MODEM
exit 0

Dernière modification par xunil2003 (Le 16/11/2023, à 16:23)


- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 /  Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE

Hors ligne

#2 Le 16/11/2023, à 16:48

diesel

Re : Commande Modem AT sur modem classique RTC

Ben..., un modem, ce n'est pas un téléphone. Ça ne sait passer (a priori) que du numérique et pas de l'audio.

Et c'est fait pour discuter avec un autre modem à l'autre bout de la ligne, pas avec un téléphone.

Amicalement.

Jean-Marie

Dernière modification par diesel (Le 16/11/2023, à 16:49)


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#3 Le 16/11/2023, à 17:15

bruno

Re : Commande Modem AT sur modem classique RTC

Bah si : https://en.wikipedia.org/wiki/Voice_modem_command_set

Je vais demander à François Bayrou le rapport avec Ubuntu.


Attention, les bouteilles vendues par Nestlé Waters sont contaminées au monoxyde de dihydrogène.

Hors ligne

#4 Le 16/11/2023, à 22:25

Nuliel

Re : Commande Modem AT sur modem classique RTC

Hello,
Première question: tu as un abonnement téléphone Free? La raison: free a une option pour avoir des notifications par sms. Et ce serait clairement plus simple que passer par le modem. C'est pas un appel mais ça pourrait aussi faire l'affaire.

En faisant quelques recherches je suis tombé sur https://serverfault.com/questions/15224 … -recording . Je sais pas ce que vaut ce script perl. Faut peut-être prendre un format de fichier libre, donc éviter le mp3.
Sinon perso j'aurais tendance à creuser la doc de chat.

The  chat  program defines a conversational exchange between the computer and the modem. Its primary purpose is to establish the connection
       between the Point-to-Point Protocol Daemon (pppd) and the remote's pppd process.

Donc je pense que chat ne sert qu'à établir la connection, et qu'il faut utiliser autre chose pour envoyer du son.

Dernière modification par Nuliel (Le 16/11/2023, à 22:35)

Hors ligne

#5 Le 17/11/2023, à 08:35

bruno

Re : Commande Modem AT sur modem classique RTC

On ne sait pas du tout de quel type d'alarme il s'agit. On ne sait pas du tout de quel type de modem il s'agit. De toute façon les lignes RTC sont progressivement désactivées.

Dernière modification par bruno (Le 17/11/2023, à 08:42)


Attention, les bouteilles vendues par Nestlé Waters sont contaminées au monoxyde de dihydrogène.

Hors ligne

#6 Le 19/11/2023, à 04:49

xunil2003

Re : Commande Modem AT sur modem classique RTC

Bonjour,

j'ai un modem usb avec chipset Connexant qui prend en charge le codage 8 bits U-Law/A-Law (G.711) et du codage linéaire 8 / 16 bits.. Taux d'échantillonnage de soutien 8KHz

Extrait lsusb

Bus 001 Device 015: ID 0572:1329 Conexant Systems (Rockwell), Inc. 

Lien pour les caractéristiques du modem
https://fr.aliexpress.com/item/20324561 … Dfqk4upDCX

j'ai trouvé un script python que j'ai légèrement modifié mais je suis pas un spécialiste de la commande chat AT de modem.

#!/usr/bin/env python2
#-*- coding: utf-8 -*-

import serial
import wave
import time

FICHIER_AUDIO = "/home/laurent/record2.wav"
PHONE = "07xxxxxxxxxx"

ser = serial.Serial('/dev/ttyACM0', 115200, timeout=3)

ser.write("AT\r\n".encode())
ser.write("ATZ3\r\n".encode())
#ser.write("ATV1\r\n".encode())
#ser.write("ATE1\r\n".encode())
#ser.write("AT+VCID=1\r\n".encode())
print("ser.read(16) : ",ser.read(16))
ser.write("AT+FCLASS=8\r\n".encode())
print("ser.read(16) : ",ser.read(16))
ser.write("AT+VSM=128,8000\r\n".encode())
#ser.write('AT+VLS=1\r\n'.encode())
ser.write("ATDT"+PHONE+"\r\n".encode())
print("ser.read(16) : ",ser.read(16))
print("")

while True:
        res = ser.readline()
        print("res : ",res)
        if res == "OK\r\n":
            break
ser.write("AT+FLO=1 // XonXoff\r\n".encode())
ser.write("AT+VTX\r\n".encode())
while True:
        res = ser.readline()
        print("res : ",res)
        if res == "CONNECT\r\n":
            break
music = wave.open(FICHIER_AUDIO, 'r')

cont = True
while cont:
    frame = music.readframes(1024)
    if frame == '':
        cont = False
    ser.write(b"".join(frame))

    ser.write("ATH0\r\n".encode())
    

Le numéro est composé mais il y a un bruit de fond comme un soufflement les paroles son hachuré.

Pour le fichier audio, dans  un terminal j'ai tapé :

arecord -r 8000 -c 1  $HOME/record.wav
sox $HOME/record.wav -r 8000 -c 1 -b 8 $HOME/record2.wav
sox --i  $HOME/record2.wav
Input File     : '/home/laurent/record2.wav'
Channels       : 1
Sample Rate    : 8000
Precision      : 8-bit
Duration       : 00:00:03.34 = 26705 samples ~ 250.359 CDDA sectors
File Size      : 26.8k
Bit Rate       : 64.1k
Sample Encoding: 8-bit Unsigned Integer PCM

Je rappel que l'objectif est de pouvoir envoyer sur un modem classique un son audio (message d'alerte) au numéro composé pour la domotique x10 (message de confirmation de l’ordre domotique exécuté) depuis une ligne ADSL, Fibre, telecom vers une ligne fixe ou mobile.
Tout le monde n'a pas FreeMobile.

Pouvez vous m'aider.
Merci d'avance pour vos avis et conseils.

Dernière modification par xunil2003 (Le 19/11/2023, à 05:16)


- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 /  Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE

Hors ligne

#7 Le 19/11/2023, à 08:49

bruno

Re : Commande Modem AT sur modem classique RTC

Je n'y connais a peu près rien donc je suis incapable de le voir dans les caractéristiques techniques si c'est un modem vocal ou pas.

J'ai trouve ceci pour savoir si c'est le cas avec des commandes AT :

AT+FCLASS=?

doit renvoyer 8.

https://www.tek-tips.com/faqs.cfm?fid=3944 a écrit :

Type AT+FCLASS=? and you should receive a response that contains a 0 and one or more of the following: 1, 2, 2.0, 8 or 8.0.

    0      Data
    1      Class 1 Fax
    2      Class 2 Fax
    2.0    Class 2.0 Fax
    8      Voice
    8.0    Voice View


Attention, les bouteilles vendues par Nestlé Waters sont contaminées au monoxyde de dihydrogène.

Hors ligne

#8 Le 19/11/2023, à 12:16

xunil2003

Re : Commande Modem AT sur modem classique RTC

Bonjour,

voila ce que me retour le modem avec

ser.write("AT+FCLASS=?\r\n".encode())
print("ser.read(16) : ",ser.read(16))

retour

('ser.read(16) : ', 'AT+FCLASS=?\r\r\n0,')
('ser.read(16) : ', '1,1.0,8\r\n\r\nOK\r\n\n')

donc
1 Class 1 Fax
1 Class 1 Fax
0 Data
8 Voice

Merci.


- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 /  Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE

Hors ligne