static void
print_messaging_status (void)
{
    MMSmsStorage *supported = NULL;
    guint supported_len = 0;
    gchar *supported_str = NULL;

    mm_modem_messaging_get_supported_storages (ctx->modem_messaging,
                                               &supported,
                                               &supported_len);
    if (supported)
        supported_str = mm_common_build_sms_storages_string (supported, supported_len);

#undef VALIDATE_UNKNOWN
#define VALIDATE_UNKNOWN(str) (str ? str : "unknown")

    g_print ("\n"
             "%s\n"
             "  ----------------------------\n"
             "  Messaging | supported storages: '%s'\n"
             "            |    default storage: '%s'\n",
             mm_modem_messaging_get_path (ctx->modem_messaging),
             VALIDATE_UNKNOWN (supported_str),
             VALIDATE_UNKNOWN (mm_sms_storage_get_string (
                                   mm_modem_messaging_get_default_storage (
                                       ctx->modem_messaging))));
    g_free (supported_str);
}
示例#2
0
static void
print_sms_info (MMSms *sms)
{
    /* Not the best thing to do, as we may be doing _get() calls twice, but
     * easiest to maintain */
#undef VALIDATE
#define VALIDATE(str) (str ? str : "unknown")

    g_print ("SMS '%s'\n",
             mm_sms_get_path (sms));
    g_print ("  -------------------------\n"
             "  Content    |      text: '%s'\n"
             "             |    number: '%s'\n"
             "  -------------------------\n"
             "  Properties |     state: '%s'\n"
             "             |      smsc: '%s'\n"
             "             | timestamp: '%s'\n"
             "             |  validity: '%u'\n"
             "             |     class: '%u'\n"
             "             |   storage: '%s'\n",
             VALIDATE (mm_sms_get_text (sms)),
             VALIDATE (mm_sms_get_number (sms)),
             mm_sms_state_get_string (mm_sms_get_state (sms)),
             VALIDATE (mm_sms_get_smsc (sms)),
             VALIDATE (mm_sms_get_timestamp (sms)),
             mm_sms_get_validity (sms),
             mm_sms_get_class (sms),
             mm_sms_storage_get_string (mm_sms_get_storage (sms)));
}
static gboolean
is_storage_supported (GArray *supported,
                      MMSmsStorage preferred,
                      const gchar *action,
                      GError **error)
{
    guint i;

    if (supported) {
        for (i = 0; i < supported->len; i++) {
            if (preferred == g_array_index (supported, MMSmsStorage, i))
                return TRUE;
        }
    }

    g_set_error (error,
                 MM_CORE_ERROR,
                 MM_CORE_ERROR_UNSUPPORTED,
                 "Storage '%s' is not supported for %s",
                 mm_sms_storage_get_string (preferred),
                 action);
    return FALSE;
}
static void
load_initial_sms_parts_ready (MMIfaceModemMessaging *self,
                              GAsyncResult *res,
                              EnablingContext *ctx)
{
    GError *error = NULL;

    MM_IFACE_MODEM_MESSAGING_GET_INTERFACE (self)->load_initial_sms_parts_finish (self, res, &error);
    if (error) {
        StorageContext *storage_ctx;

        storage_ctx = get_storage_context (ctx->self);
        mm_dbg ("Couldn't load SMS parts from storage '%s': '%s'",
                mm_sms_storage_get_string (g_array_index (storage_ctx->supported_mem1,
                                                          MMSmsStorage,
                                                          ctx->mem1_storage_index)),
                error->message);
        g_error_free (error);
    }

    /* Go on with the storage iteration */
    ctx->mem1_storage_index++;
    load_initial_sms_parts_from_storages (ctx);
}
示例#5
0
static void
print_sms_info (MMSms *sms)
{
    MMSmsPduType pdu_type;
    const guint8 *data;
    gsize data_size;

    /* Not the best thing to do, as we may be doing _get() calls twice, but
     * easiest to maintain */
#undef VALIDATE
#define VALIDATE(str) (str ? str : "unknown")

    pdu_type = mm_sms_get_pdu_type (sms);

    g_print ("SMS '%s'\n",
             mm_sms_get_path (sms));
    g_print ("  -----------------------------------\n"
             "  Content    |              number: '%s'\n",
             VALIDATE (mm_sms_get_number (sms)));

    if (mm_sms_get_text (sms))
        g_print ("             |                text: '%s'\n",
                 VALIDATE (mm_sms_get_text (sms)));

    data = mm_sms_get_data (sms, &data_size);
    if (data) {
        gchar *data_hex;

        data_hex = mm_utils_bin2hexstr (data, data_size);
        g_print ("             |                data: '%s'\n",
                 VALIDATE (data_hex));
        g_free (data_hex);
    }

    g_print ("  -----------------------------------\n"
             "  Properties |            PDU type: '%s'\n"
             "             |               state: '%s'\n",
             mm_sms_pdu_type_get_string (pdu_type),
             mm_sms_state_get_string (mm_sms_get_state (sms)));

    if (mm_sms_get_validity_type (sms) == MM_SMS_VALIDITY_TYPE_RELATIVE)
        g_print ("             | validity (relative): '%u'\n",
                 mm_sms_get_validity_relative (sms));

    g_print ("             |             storage: '%s'\n",
             mm_sms_storage_get_string (mm_sms_get_storage (sms)));

    /* Print properties which are set, regardless of the pdu type */

    if (mm_sms_get_smsc (sms))
        g_print ("             |                smsc: '%s'\n",
                 mm_sms_get_smsc (sms));

    if (mm_sms_get_class (sms) >= 0)
        g_print ("             |               class: '%d'\n",
                 mm_sms_get_class (sms));

    if (mm_sms_get_teleservice_id (sms) != MM_SMS_CDMA_TELESERVICE_ID_UNKNOWN)
        g_print ("             |      teleservice id: '%s'\n",
                 mm_sms_cdma_teleservice_id_get_string (mm_sms_get_teleservice_id (sms)));

    if (mm_sms_get_service_category (sms) != MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN)
        g_print ("             |    service category: '%s'\n",
                 mm_sms_cdma_service_category_get_string (mm_sms_get_service_category (sms)));

    /* Delivery report request just in 3GPP submit PDUs */
    if (pdu_type == MM_SMS_PDU_TYPE_SUBMIT)
        g_print ("             |     delivery report: '%s'\n",
                 mm_sms_get_delivery_report_request (sms) ? "requested" : "not requested");

    if (mm_sms_get_message_reference (sms) != 0)
        g_print ("             |   message reference: '%u'\n",
                 mm_sms_get_message_reference (sms));

    if (mm_sms_get_timestamp (sms))
        g_print ("             |           timestamp: '%s'\n",
                 mm_sms_get_timestamp (sms));

    if (mm_sms_get_delivery_state (sms) != MM_SMS_DELIVERY_STATE_UNKNOWN)
        g_print ("             |      delivery state: '%s' (0x%X)\n",
                 VALIDATE (mm_sms_delivery_state_get_string_extended (mm_sms_get_delivery_state (sms))),
                 mm_sms_get_delivery_state (sms));

    if (mm_sms_get_discharge_timestamp (sms))
        g_print ("             | discharge timestamp: '%s'\n",
                 mm_sms_get_discharge_timestamp (sms));
}