使用ec20ce hdlg与ec20 ce fag模块进行volte通话时,模块无上行pcm(对方听不到语音,python代码无报错无阻塞)且通话10s或20s后会自动挂断,在at设置不变情况下,偶尔会出现功能正常情况(对方可以听到语言且不会自动挂断,偶尔也会出现对方能听见语音自动挂断)。拨打10086测试时不会自动挂断,对方是否能听见语音未知。 iPhone13在10s自动挂断,小米13在20s自动挂断,个人推测由接收端检测条件并挂断。
在使用ec20 ce fag模块时,发现异常情况后我将模块的DIV天线插上后情况正常,两天后环境无变动前提下再次测试时发现异常,又将DIV天线拔下后情况恢复正常,再后来一直异常,更换ec20ce hdlg模块依然异常。
重启模块后AT+CEER 输出 +CEER: 0,-1
在通话自动挂断后重新查询AT+CEER 输出 +CEER: 6,256
环境:
固件版本:
ec20ce hdlg:EC20CEHDLGR08A06M1G
ec20 ce fag:EC20CEFAGR08A03M4G
at设置:
AT+QAUDMOD=1
AT+QPCMV=1,1
AT+QDAI=1,1,1,0,0,0
宿主机环境:
windows11
驱动:quectel_windows_usb_driverq_ndis_v2-8_en
at连接工具:putty
语音接收与发送通过python调用nmea口
+CSQ: 25,99 +CREG: 0,1 +CPIN: READY
核心代码:
self.frame_duration = 20
self.ser = serial.Serial(port, baudrate=115200, timeout=1)
self.frame_bytes = int(self.sample_rate=8000 * 2 * self.frame_duration / 1000)
读取数据
while True:
data = self.ser.read(self.frame_bytes)
发送数据
frame_size = 160
interval = frame_size / self.sample_rate
while True:
wf = wave.open(wav_file, 'rb')
start = time.perf_counter()
data = wf.readframes(frame_size)
self.ser.write(data)
elapsed = time.perf_counter() - start
to_wait = interval - elapsed
if to_wait > 0:
time.sleep(to_wait)