目前,我正在使用simcom SIM7600G-H (使用AT-command set)创建语音呼叫,以通知用户一些指定的通知。我可以创建语音呼叫并将其挂断,但不知道如何在其中播放预先录制的音频。有没有办法完成这项任务。我使用simcom创建语音呼叫的代码如下:
import serial
import time
ser = serial.Serial("COM5", 115200)
ser.flushInput()
phone_number = '09xxxxxxx'
text_message = 'test simcom 7600'
def checkStart():
while True:
ser.write(('AT\r\n').encode())
time.sleep(0.1)
if ser.inWaiting():
time.sleep(0.01)
recBuff = ser.read(ser.inWaiting())
print('try to start\r\n' + recBuff.decode() )
print(recBuff.decode())
if 'OK' in recBuff.decode():
print("ok")
recBuff = ''
return
else:
time.sleep(1)
def sendAt(command,back,timeout):
rec_buff = ''
ser.write((command+'\r\n').encode())
time.sleep(timeout)
if ser.inWaiting():
time.sleep(0.01 )
rec_buff = ser.read(ser.inWaiting())
if back not in rec_buff.decode():
print(command + ' ERROR')
print(command + ' back:\t' + rec_buff.decode())
return 0
else:
print(rec_buff.decode())
return 1
def PhoneCall(phone_number):
sendAt('ATD'+phone_number+';','OK',1)
time.sleep(20)
ser.write('AT+CHUP\r\n'.encode())
print('Call disconnected')
try:
checkStart()
PhoneCall(phone_number)
time.sleep(20)
sendAt("ATH")
except:
print("Unable to connect!")
if ser != None:
ser.close()发布于 2021-02-11 05:33:57
我一直在忙于解决同样的问题。我已经使用QMI接口启用了PCM。我已经使用ModemManager添加了qmi_wwan,并通过QMI启用了音频。使用ModemManager时,mmcli -m 0会显示一个音频串行端口,可能是/dev/ttyUSB4,要在7600上启用PCM,您应该执行AT+CPCMREG=1。之后,您可以使用串行连接将音频数据流式传输到串行端口。
我使用sox将音频数据转换为8k 16位格式:
sox input.wav -r 8000 -b 16 out.wav您可以使用wave加载到wave文件https://docs.python.org/3/library/wave.html中
不要忘记禁用串行的xonxoff rtscts。
我建议您使用dbus与7600通信。
https://stackoverflow.com/questions/65118679
复制相似问题