diff --git a/src/gsm.c b/src/gsm.c index 61679cd..85b2ac1 100644 --- a/src/gsm.c +++ b/src/gsm.c @@ -348,6 +348,14 @@ void gsm_set_callback(GSM * gsm, GSMCallback callback, gpointer data) } +/* gsm_set_call_presentation */ +int gsm_set_call_presentation(GSM * gsm, int set) +{ + return gsm_modem_set_call_presentation(gsm->modem, (set != 0) ? TRUE + : FALSE); +} + + /* gsm_set_extended_errors */ int gsm_set_extended_errors(GSM * gsm, int extended) { @@ -371,6 +379,14 @@ int gsm_set_functional(GSM * gsm, int functional) } +/* gsm_set_line_presentation */ +int gsm_set_line_presentation(GSM * gsm, int set) +{ + return gsm_modem_set_line_presentation(gsm->modem, (set != 0) ? TRUE + : FALSE); +} + + /* gsm_set_operator_format */ int gsm_set_operator_format(GSM * gsm, GSMOperatorFormat format) { diff --git a/src/gsm.h b/src/gsm.h index 7bc6cd3..5abad02 100644 --- a/src/gsm.h +++ b/src/gsm.h @@ -266,8 +266,10 @@ void gsm_delete(GSM * gsm); void gsm_set_callback(GSM * gsm, GSMCallback callback, gpointer data); unsigned int gsm_get_retry(GSM * gsm); +int gsm_set_call_presentation(GSM * gsm, int set); int gsm_set_extended_ring_reports(GSM * gsm, int extended); int gsm_set_functional(GSM * gsm, int functional); +int gsm_set_line_presentation(GSM * gsm, int set); int gsm_set_operator_format(GSM * gsm, GSMOperatorFormat format); int gsm_set_operator_mode(GSM * gsm, GSMOperatorMode mode); int gsm_set_registration_report(GSM * gsm, GSMRegistrationReport report); diff --git a/src/modem.c b/src/modem.c index 586827a..a6e236c 100644 --- a/src/modem.c +++ b/src/modem.c @@ -540,6 +540,16 @@ int gsm_modem_set_extended_ring_reports(GSMModem * gsmm, gboolean extended) } +/* gsm_modem_set_line_presentation */ +int gsm_modem_set_line_presentation(GSMModem * gsmm, gboolean set) +{ + char cmd[] = "AT+COLP=X"; + + cmd[8] = set ? '1' : '0'; + return (gsm_queue(gsmm->gsm, cmd) != NULL) ? 0 : 1; +} + + /* gsm_modem_set_functional */ static void _modem_set_functional_callback(GSM * gsm); diff --git a/src/modem.h b/src/modem.h index aa90f74..104af90 100644 --- a/src/modem.h +++ b/src/modem.h @@ -76,6 +76,7 @@ int gsm_modem_set_call_presentation(GSMModem * gsmm, gboolean set); int gsm_modem_set_echo(GSMModem * gsmm, gboolean echo); int gsm_modem_set_extended_errors(GSMModem * gsmm, gboolean extended); int gsm_modem_set_extended_ring_reports(GSMModem * gsmm, gboolean extended); +int gsm_modem_set_line_presentation(GSMModem * gsmm, gboolean set); int gsm_modem_set_functional(GSMModem * gsmm, gboolean functional); int gsm_modem_set_message_format(GSMModem * gsmm, GSMMessageFormat format); int gsm_modem_set_operator_format(GSMModem * gsmm, GSMOperatorFormat format);