如何识别来电类型? (数据通话或语音通话)

时间:2015-07-01 07:35:47

标签: python gsm at-command modem dial-up

考虑一种情况,即您将GSM调制解调器(在我的情况下为DLink DWM-156)安装到您的计算机上。然后你编写了以下Python程序来接受所有来电:

import serial

phone = serial.Serial("COM10",  115200, timeout=5)

try:
    time.sleep(1)
    while(1):
        x = phone.readline()
        print(x)
        if (x == b'RING\r\n'):
            phone.write(b'ATA\r')
            time.sleep(2)

finally:
    phone.close()

现在,问题是:

  1. 有没有办法检测来电是语音电话还是数据电话?
  2. 拨号调制解调器是否也能启动数据通话,或者只能拨打语音电话?

2 个答案:

答案 0 :(得分:1)

您可以查看有关语音调制解调器命令的here

我认为,如果您收到AT+VTX,则回复CONNECT,该点的数据将是波形音频数据。

它也可以反过来启动语音通话。

答案 1 :(得分:1)

您拥有的调制解调器是3G(HSDPA)数据调制解调器 - 它旨在建立与运营商PS网络(分组交换网络)的数据连接。

3G核心网络有两个主要部分,即语音电路交换和数据分组交换。

因为你可以通过CS语音网络进行调制解调器呼叫(数据通过语音信道转换为“音调”,作为一个非常高级别的解释),事情会变得混乱,你可以通过PS数据网络。

对于前一种情况,大多数时候你都不想这样做,因为你将在PS网络上获得更高的速度。对于后一种情况,您的运营商可能阻止(或试图阻止......)VoIP流量,尽管现在很多人现在都没有,因为现在许多计划的语音分钟都很便宜,所以这对他们来说不再是这样的威胁。

虽然你所拥有的调制解调器可能没有设置为发送和接收语音呼叫,但是有些指令可以让某些3G加密狗更新它们以允许这样做,例如这个视频解释了如何为华为加密狗这样做:{{ 3}}。您的调制解调器似乎支持轻松设置以重定向呼叫或应用忙音等快速查看手册,但这不是您想要的。