diff options
-rw-r--r-- | plugins/huawei/mm-broadband-modem-huawei.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/plugins/huawei/mm-broadband-modem-huawei.c b/plugins/huawei/mm-broadband-modem-huawei.c index 873c13b1..055ac0b7 100644 --- a/plugins/huawei/mm-broadband-modem-huawei.c +++ b/plugins/huawei/mm-broadband-modem-huawei.c @@ -99,6 +99,7 @@ struct _MMBroadbandModemHuaweiPrivate { GRegex *conn_regex; GRegex *cend_regex; GRegex *ddtmf_regex; + GRegex *cschannelinfo_regex; /* Regex to ignore */ GRegex *boot_regex; @@ -2997,6 +2998,12 @@ set_voice_unsolicited_events_handlers (MMBroadbandModemHuawei *self, enable ? (MMPortSerialAtUnsolicitedMsgFn)huawei_voice_received_dtmf: NULL, enable ? self : NULL, NULL); + + /* Ignore this message (Huawei ME909s-120 firmware. 23.613.61.00.00) */ + mm_port_serial_at_add_unsolicited_msg_handler ( + port, + self->priv->cschannelinfo_regex, + NULL, NULL, NULL); } g_list_free_full (ports, (GDestroyNotify)g_object_unref); @@ -4189,6 +4196,13 @@ mm_broadband_modem_huawei_init (MMBroadbandModemHuawei *self) self->priv->ddtmf_regex = g_regex_new ("\\r\\n\\^DDTMF:\\s*([0-9A-D\\*\\#])\\r\\n", G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL); + /* Voice: Unknown message that's broke ATA command + * <CR><LF>^CSCHANNELINFO: <number>,<number><CR><LF> + * Key should be 0-9, A-D, *, # + */ + self->priv->cschannelinfo_regex = g_regex_new ("\\r\\n\\^CSCHANNELINFO:\\s*(\\d+),(\\d+)\\r\\n", + G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL); + self->priv->ndisdup_support = FEATURE_SUPPORT_UNKNOWN; self->priv->rfswitch_support = FEATURE_SUPPORT_UNKNOWN; |