From b314380065323f4f21edb7ec6f0cd55a21e8d1b3 Mon Sep 17 00:00:00 2001 From: Ivan Kluchnikov Date: Mon, 21 Dec 2015 12:31:06 +0300 Subject: sms: Add new socket for forwarding/receiving SMS in RP format to/from external application --- openbsc/include/openbsc/gsm_data.h | 1 + openbsc/src/libmsc/vty_interface_layer3.c | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h index 606ea61a1..de2cd34d1 100644 --- a/openbsc/include/openbsc/gsm_data.h +++ b/openbsc/include/openbsc/gsm_data.h @@ -326,6 +326,7 @@ struct gsm_network { struct bsc_api *bsc_api; struct gprs_gsup_client *hlr_sup_client; struct gprs_gsup_client *ussd_sup_client; + struct gprs_gsup_client *sms_client; unsigned int num_bts; struct llist_head bts_list; diff --git a/openbsc/src/libmsc/vty_interface_layer3.c b/openbsc/src/libmsc/vty_interface_layer3.c index 9583a5b29..071de1479 100644 --- a/openbsc/src/libmsc/vty_interface_layer3.c +++ b/openbsc/src/libmsc/vty_interface_layer3.c @@ -1053,6 +1053,28 @@ DEFUN(sup_ussd_destination, sup_ussd_destination_cmd, return CMD_SUCCESS; } +DEFUN(sms_destination, sms_destination_cmd, + "sms destination ADDR <0-65535>", + "Enable SMS socket to a given address/port" "destination\n" "address or hostname\n" "port number\n") +{ + struct gsm_network *gsmnet = gsmnet_from_vty(vty); + + if (gsmnet->sms_client) { + LOGP(DSUP, LOGL_FATAL, "Can't create two SMS clients\n"); + vty_out(vty, "%%SMS client already configured%s", VTY_NEWLINE); + return CMD_WARNING; + } + + gsmnet->sms_client = gprs_gsup_client_create( + argv[0], atoi(argv[1]), &sup_read_cb); + if (!gsmnet->sms_client) { + LOGP(DSUP, LOGL_FATAL, "Cannot set up SMS socket\n"); + vty_out(vty, "%%Cannot set up SMS socket%s", VTY_NEWLINE); + return CMD_WARNING; + } + + return CMD_SUCCESS; +} DEFUN(logging_fltr_imsi, logging_fltr_imsi_cmd, -- cgit v1.2.3