Enrico/Denis,

 

I did all the changes required inside the respective sources as per Enrico’s patch 1/2 & 2/2.

I still have some issues. Not sure what is the exact reason for this. We tried checking if the sim itself is non-functional.

However, the sim seems to be working, we did a small test & we were able to ping using some scripts.

 

I have attached all the sources which I modified as required.

 

Let me know if I am doing anything wrong. On the device there is some process ‘pppd’ which was also looked to be using ttyACM0.

I tried stopping it though. Thinking that it could be blocking certain things.

 

Regards,

<Ram>

 

From: ofono [mailto:ofono-bounces@ofono.org] On Behalf Of Enrico Sau
Sent: Friday, March 06, 2015 9:38 PM
To: ofono@ofono.org
Subject: [PATCH 2/2] Telit HE910 general fixes for gprs, sms and voicecall

 

diff --git a/drivers/atmodem/sms.c b/drivers/atmodem/sms.c

index f93dd23..7aa90dc 100644

--- a/drivers/atmodem/sms.c

+++ b/drivers/atmodem/sms.c

@@ -396,7 +396,7 @@ static void at_cds_notify(GAtResult *result, gpointer user_data)

        decode_hex_own_buf(hexpdu, -1, &pdu_len, 0, pdu);

        ofono_sms_status_notify(sms, pdu, pdu_len, tpdu_len);

 

-       if (data->cnma_enabled)

+       if (data->cnma_enabled && data->vendor != OFONO_VENDOR_TELIT)

                at_ack_delivery(sms);

 

        return;

@@ -429,7 +429,8 @@ static void at_cmt_notify(GAtResult *result, gpointer user_data)

        decode_hex_own_buf(hexpdu, -1, &pdu_len, 0, pdu);

        ofono_sms_deliver_notify(sms, pdu, pdu_len, tpdu_len);

 

-       if (data->vendor != OFONO_VENDOR_SIMCOM)

+       if (data->vendor != OFONO_VENDOR_SIMCOM &&

+               data->vendor != OFONO_VENDOR_TELIT)

                at_ack_delivery(sms);

 }

 

diff --git a/drivers/atmodem/ussd.c b/drivers/atmodem/ussd.c

index 2e45317..7c6cd43 100644

--- a/drivers/atmodem/ussd.c

+++ b/drivers/atmodem/ussd.c

@@ -63,6 +63,18 @@ static void read_charset_cb(gboolean ok, GAtResult *result,

        at_util_parse_cscs_query(result, &data->charset);

 }

 

+static void charset_cb(gboolean ok, GAtResult *result,

+                               gpointer user_data)

+{

+       struct ussd_data *data = user_data;

+

+       if (!ok)

+               return;

+

+       g_at_chat_send(data->chat, "AT+CSCS?", cscs_prefix,

+                       read_charset_cb, data, NULL);

+}

+

 static const unsigned char *ucs2_gsm_to_packed(const char *content,

                                                long *msg_len,

                                                unsigned char *msg)

@@ -308,8 +320,12 @@ static int at_ussd_probe(struct ofono_ussd *ussd, unsigned int vendor,

 

        ofono_ussd_set_data(ussd, data);

 

-       g_at_chat_send(data->chat, "AT+CSCS?", cscs_prefix,

-                       read_charset_cb, data, NULL);

+       if(vendor == OFONO_VENDOR_TELIT)

+               g_at_chat_send(data->chat, "AT+CSCS=GSM", cscs_prefix,

+                                       charset_cb, data, NULL);

+       else

+               g_at_chat_send(data->chat, "AT+CSCS?", cscs_prefix,

+                               read_charset_cb, data, NULL);

 

        g_at_chat_send(data->chat, "AT+CUSD=1", NULL,

                        at_ussd_register, ussd, NULL);

diff --git a/drivers/atmodem/voicecall.c b/drivers/atmodem/voicecall.c

index 7d823a2..7bfa65f 100644

--- a/drivers/atmodem/voicecall.c

+++ b/drivers/atmodem/voicecall.c

@@ -1116,8 +1116,12 @@ static int at_voicecall_probe(struct ofono_voicecall *vc, unsigned int vendor

        g_at_chat_send(vd->chat, "AT+CRC=1", NULL, NULL, NULL, NULL);

        g_at_chat_send(vd->chat, "AT+CLIP=1", NULL, NULL, NULL, NULL);

-       g_at_chat_send(vd->chat, "AT+CDIP=1", NULL, NULL, NULL, NULL);

-       g_at_chat_send(vd->chat, "AT+CNAP=1", NULL, NULL, NULL, NULL);

+

+       if (vd->vendor != OFONO_VENDOR_TELIT)

+       {

+               g_at_chat_send(vd->chat, "AT+CDIP=1", NULL, NULL, NULL, NULL);

+               g_at_chat_send(vd->chat, "AT+CNAP=1", NULL, NULL, NULL, NULL);

+       }

 

        switch (vd->vendor) {

        case OFONO_VENDOR_QUALCOMM_MSM: