diff -urN gnokii-0.6.30+dfsg.orig/common/phones/atgen.c gnokii-0.6.30+dfsg/common/phones/atgen.c --- gnokii-0.6.30+dfsg.orig/common/phones/atgen.c 2010-10-08 11:49:43.000000000 +0200 +++ gnokii-0.6.30+dfsg/common/phones/atgen.c 2011-07-14 15:10:16.000000000 +0200 @@ -1036,7 +1036,7 @@ if (ret) return ret; memset(number, 0, sizeof(number)); - if (drvinst->encode_number) + if (drvinst->encode_number && !drvinst->write_unencoded_number) at_encode(drvinst->charset, number, sizeof(number), data->phonebook_entry->number, strlen(data->phonebook_entry->number)); @@ -1047,9 +1047,14 @@ number, data->phonebook_entry->number[0] == '+' ? "145" : "129"); tmp = req + ofs; - len = at_encode(drvinst->charset, tmp, sizeof(req) - ofs, - data->phonebook_entry->name, - strlen(data->phonebook_entry->name)); + if (drvinst->write_unencoded_name) { + len = snprintf(tmp, sizeof(req) - ofs, "%s", data->phonebook_entry->name) + 1; + if (len > (sizeof(req) - ofs)) + len = sizeof(req) - ofs; + } else + len = at_encode(drvinst->charset, tmp, sizeof(req) - ofs, + data->phonebook_entry->name, + strlen(data->phonebook_entry->name)); tmp[len-1] = '"'; tmp[len++] = '\r'; len += ofs; @@ -3253,6 +3258,8 @@ drvinst->availcharsets = 0; drvinst->encode_memory_type = 0; drvinst->encode_number = 0; + drvinst->write_unencoded_number = 0; + drvinst->write_unencoded_name = 0; drvinst->lac_swapped = 0; drvinst->extended_phonebook = 0; drvinst->ucs2_as_utf8 = 0; diff -urN gnokii-0.6.30+dfsg.orig/common/phones/atsam.c gnokii-0.6.30+dfsg/common/phones/atsam.c --- gnokii-0.6.30+dfsg.orig/common/phones/atsam.c 2009-12-27 23:57:33.000000000 +0100 +++ gnokii-0.6.30+dfsg/common/phones/atsam.c 2011-07-14 15:10:16.000000000 +0200 @@ -58,6 +58,12 @@ if (foundmodel && !strncasecmp("SGH-L760", foundmodel, 8)) AT_DRVINST(state)->ucs2_as_utf8 = 1; + if (foundmodel && !strncasecmp("SAMSUNG B2100", foundmodel, 13)) { + AT_DRVINST(state)->encode_number = 1; + AT_DRVINST(state)->write_unencoded_name = 1; + AT_DRVINST(state)->write_unencoded_number = 1; + } + /* phone lacks many usefull commands :( */ at_insert_send_function(GN_OP_GetBatteryLevel, Unsupported, state); at_insert_send_function(GN_OP_GetPowersource, Unsupported, state);