JSON API for YateSMSC Configuration

Easy to operate SMSC server for MNOs, MVNOs, private networks and labs using a JSON API through YateMMI web-interface. JSON API for configuration can be used to setup SS7/SMPP interfaces, configure general network settings, request delivery of SMS and others.

Request: set_smsc_node

Configure SMSC settings for a YateSMSC server.
Section 'common' can be manually added from MMI.
If a parameter is missing in main 'params' is taken from 'common'.
{
    "request": "set_smsc_node",
    "node": "smsc",
    "params": {
        "my_cc": "Mandatory, string. Network country code.",
        "skip_cc": "Optional, boolean. Don't add CC to a number entered starting with CC but no +.",
        "sgsn_sms": "Optional, boolean. Indicate during SRI-SM that we support delivering SMS via SGSN.",
        "home_mt_sms": "Optional, boolean. Accept home routed MT SMS; ATI is used by default to retrieve MSISDN.",
        "alpha_ms_sms": "Optional, boolean. Accept home routed MT SMS with alphanumeric originator.",
        "auth_mo_sms": "Optional, boolean. Authorize MO SMS - by default making Any Time Interrogation to HLR.",
        "stat_unknown": "Optional, boolean. Send status reports for unknown or unexpected errors.",
        "empty_force": "Optional, boolean. Require all senders to use TCAP handshake.",
        "empty_begin": "Optional, boolean or integer. TPDU size limit at which start using TCAP handshake, true to use always, false to not use.",
        "sms_attempts": "Optional, integer, range[1,30]. How many attempts to make to deliver each SMS.",
        "sms_cleanup": "Optional, integer, range[7,365]. After how many days clean up failed SMS from the database.",
        "sms_clean_ok": "Optional, integer, range [3,365]. After how many days clean up delivered SMS from the database.",
        "sms_routers": "Optional, integer, range [0,25]. How many SMS to attempt to route and deliver simultaneously.",
        "sms_maxruns": "Optional, integer, range [1,20]. How many SMS to attempt to route and deliver in a single action run.",
        "sms_segment": "Optional, integer, range [16,240]. Maximum size of a SMS segment in octets.",
        "sms_expire": "Optional, integer, range [8,2400]. Default SMS expiration interval in hours.",
        "max_expire": "Optional, integer, range [8,8766]. Maximum SMS expiration interval in hours.",
        "map_interval": "Optional, integer, range [250,2000]. Timer interval in msec for handling MAP/TCAP messages.",
        "map_ver": "Optional, integer, range [1,3]. MAP version to use with HLR and MSC.",
        "receive_more": "Optional, integer, range [0,254]. How many more MT SMS to receive in same TCAP dialog.",
        "deliver_more": "Optional, integer, range [0,254]. How many more MT SMS to deliver in same TCAP dialog",
        "complete_max": "Optional, integer, range [10,200]. Maximum number of items to insert on  key completion.",
        "peek_submit": "Optional, boolean. Peek into submitted messages and add their TPDU and text to CDR (can cause privacy legal issues!).",
        "peek_deliver": "Optional, boolean. Peek into delivered messages and add their TPDU and text to CDR (can cause privacy legal issues!).",
        "url_deliver": "Optional, string. URL to deliver SMS over HTTP.",
        "user_agent": "Optional, string. User agent to report.",
        "json_body": "Optional, boolean. Send a HTTP POST with JSON encoded content.",
        "hlr_gt": "Optional, string. Explicit HLR GT for reaching the HLR, bypasses MSISDN, E.212 or E.214 addressing.",
        "hlr_e212": "Optional, boolean. Use E.212 instead of E.214 addressing for making Any Time Interrogation to HLR by IMSI.",
        "route_mt_sms": "Optional, boolean. Handle SRI-SM for routing of MT SMS.",
        "delay_failed": "Optional, integer, range[60,3600]. Retry delay when delivery failed for non-specific reason.",
        "delay_absent": "Optional, integer, range[300,86400]. Retry delay when subscriber is absent (not registered).",
        "sri_timeout": "Optional, integer, range[2,15]. Timeout for sendRoutingInfoForSM operation in seconds.",
        "smpp_fragment": "Optional, boolean. Automatically fragment large messages received over SMPP.",
        "smpp_receive": "Optional, boolean. Accept SMS received on client SMPP connection.",
        "smpp_receipt": "Optional, boolean. Send SMPP final receipts if requested by sender.",
        "smpp_notify": "Optional, boolean. Send SMPP intermediate notifications if requested.",
        "smpp_dlr": "Optional, boolean. Send a DLR body in SMPP notifications.",
        "smpp_msgid": "Optional, boolean. Set a message_id in submit_sm response even if we won't generate notifications or receipts.",
        "smppgw_trusted": "Optional, boolean. Trust the SMPP GW enough to act on the permanent errors.",
        "backup_smpp_gw": "Optional, string. Set system_id from SMPP client connection for backup gateway.",
        "prefix_smpp_gw": "Optional, string. SMPP gateway prefix.",
        "smppgw_address": "Optional, string. Address to use in CDR if resolving SMPP GW name fails.",
        "smpp_enc_def": "Optional, string. Message encoding to assume when SMPP received 'default' without UDH.",
        "smpp_enc_udh": "Optional, string. Message encoding to assume when SMPP received 'default' with UDH indication.",
        "smpp_tx_enc": "Optional, string. Format to use to send DCS=0 (GSM-7) as default SMPP, empty, 'gsm7bit' or 'latin1'",
        "common": {
            "empty_begin": "Optional, boolean or integer. TPDU size limit at which start using TCAP handshake, true to use always, false to not use.",
            "empty_force": "Optional, boolean. Require all senders to use TCAP handshake.",
            "home_mt_sms": "Optional, boolean. Accept home routed MT SMS; ATI is used by default to retrieve MSISDN.",
            "peek_submit": "Optional, boolean. Peek into submitted messages and add their TPDU and text to CDR (can cause privacy legal issues!).",
            "peek_deliver": "Optional, boolean. Peek into delivered messages and add their TPDU and text to CDR (can cause privacy legal issues!).",
            "url_deliver": "Optional, string. URL to deliver SMS over HTTP."
        }
    }
}
Examples: set_smsc_node
Set SMSC node
{
    "request": "set_smsc_node",
    "node": "smsc",
    "params": {
        "my_cc": "882",
        "skip_cc": false,
        "sgsn_sms": true,
        "stat_unknown": false,
        "auth_mo_sms": true,
        "home_mt_sms": false,
        "sms_attempts": 10,
        "sms_cleanup": 365,
        "sms_clean_ok": 3,
        "sms_routers": 25,
        "sms_maxruns": 20,
        "sms_segment": 240,
        "sms_expire": 8,
        "max_expire": 8766,
        "map_interval": 250,
        "map_ver": 3,
        "complete_max": 200,
        "user_agent": "test",
        "hlr_e212": "true",
        "hlr_gt": 250
    }
}

Request: set_smpp_node

Configure SMPP settings for a YateSMSC server.
{
    "request": "set_smpp_node",
    "node": "smsc",
    "params": {
        "server": {
            "bind_interval": "Optional, integer, range[10000,300000], default=60000. Interval, in milliseconds, to try listener re-bind on failure.",
            "codec_warndefaults": "Optional, boolean, default=true. Show debug message if a default value is used for mandatory parameters.",
            "system_id": "Mandatory, string. Default system id used for authentication.",
            "system_password": "Optional, string. Default password used for authentication.",
            "default_encoding_type": "Optional, string, allowed values:'ascii','gsm7bit'. Specify how payload data is encoded on SMPP for the default encoding.",
            "emit_deliver": "Optional, boolean. default=false. True if the engine should emit sms deliver messages. False for submit.",
            "print-messages": "Optional, string, default='no', allowed values: 'no', 'yes', 'verbose', 'extended'. Debugging option to print sent/received PDUs (messages).",
            "enable": "Optional, boolean, default=true. Enable or disable SMPP server.",
            "listeners": [
                {
                    "name": "Mandatory, string. Name of the listener.",
                    "addr": "Mandatory, string. The address on which to listen for incoming connections.",
                    "port": "Optional, integer. The port on which to listen for incoming connections.",
                    "sslcontext": "Optional, string. Server certificate to enable SSL mode.",
                    "sslverify": "Optional, string, default='none', allowed values: 'peer', 'only', 'once', 'must', 'none'. Optional client certificate check mode.",
                    "enable": "Optional, boolean, default=true. Enable or disable this listener."
                }
            ],
            "users": [
                {
                    "system_id": "Mandatory, string. Default system id used for authentication.",
                    "system_password": "Optional, string. Default password used for authentication.",
                    "in_dcs0": "Optional, string, allowed values: 'ia5','gsm7bit', 'gsm8bit', 'ucs2', 'latin1', '8bit'. DCS associated with 'default' encoding for inbound SMS messages.",
                    "out_dcs0": "Optional, string, allowed values: 'ia5','gsm7bit', 'gsm8bit', 'ucs2', 'latin1', '8bit'. DCS associated with 'default' encoding for outbound SMS messages.",
                    "out_dcs_pref": "Optional, string, allowed values: 'ia5','gsm7bit', 'gsm8bit', 'ucs2', 'latin1', '8bit'. Preferred DCS to use for outbound SMPP SMS messages."
                }
            ],
            "comment__users": "Collection 'users' is not mandatory. If this collection is missing, a default smpp user will be created using default system_id and default system_password."
        },
        "client": {
            "bind_interval": "Optional, integer, range[10000,300000], default=60000. Interval, in milliseconds, to try listener re-bind on failure.",
            "codec_warndefaults": "Optional, boolean, default=true. Show debug message if a default value is used for mandatory parameters.",
            "system_id": "Optional, string. Default system id used for authentication.",
            "system_password": "Optional, string. Default password used for authentication.",
            "default_encoding_type": "Optional, string, allowed values:'ascii','gsm7bit'. Specify how payload data is encoded on SMPP for the default encoding.",
            "emit_deliver": "Optional, boolean. default=false. True if the engine should emit sms deliver messages. False for submit.",
            "print-messages": "Optional, string, default='no', allowed values: 'no', 'yes', 'verbose', 'extended'. Debugging option to print sent/received PDUs (messages).",
            "enable": "Optional, boolean, default=true. Enable or disable SMPP server.",
            "connections": [
                {
                    "name": "Mandatory, string. Name of the connection.",
                    "server": "Mandatory, string. IP address of the SMPP server.",
                    "port": "Optional, integer. Port of the SMPP server",
                    "sslcert": "Optional, string. SSL client certificate file.",
                    "sslkey": "Optional, string. Unencrypted key file for client SSL certificate.",
                    "sslverify": "Optional, string, default='none', allowed values: 'none', 'peer'. SSL server certificate verification mode.",
                    "sslmode": "Optional, boolean. Enable simple SSL client mode with no verification.",
                    "system_id": "Optional, string. The id of this client.",
                    "system_password": "Optional, string.Password used in authentication process.",
                    "instances": "Optional integer. Number of instances for this client.",
                    "flags": "Optional, string, default='bindtx', allowed values: 'bindtx','bindrx','bindtrx'. Set transmiter mode.",
                    "in_dcs0": "Optional, string, allowed values: 'ia5','gsm7bit', 'gsm8bit', 'ucs2', 'latin1', '8bit'. DCS associated with 'default' encoding for inbound SMS messages.",
                    "out_dcs0": "Optional, string, allowed values: 'ia5','gsm7bit', 'gsm8bit', 'ucs2', 'latin1', '8bit'. DCS associated with 'default' encoding for outbound SMS messages.",
                    "out_dcs_pref": "Optional, string, allowed values: 'ia5','gsm7bit', 'gsm8bit', 'ucs2', 'latin1', '8bit'. Preferred DCS to use for outbound SMPP SMS messages."
                }
            ]
        }
    }
}
Examples: set_smpp_node
Configure SMPP server (Non-SSL)
{
    "request": "set_smpp_node",
    "node": "smsc",
    "params": {
        "server": {
            "system_id": "yate",
            "listeners": [
                {
                    "name": "yate_server",
                    "addr": "10.10.15.25",
                    "port": 2775
                },
                {
                    "name": "yate_server2",
                    "addr": "10.10.15.25",
                    "port": 2776
                }
            ],
            "users": [
                {
                    "system_id": "yate"
                },
                {
                    "system_id": "yate2",
                    "system_password": "test"
                }
            ]
        }
    }
}
Configure SMPP client (Non-SSL)
{
    "request": "set_smpp_node",
    "node": "smsc",
    "params": {
        "client": {
            "system_id": "yate",
            "connections": [
                {
                    "name": "yate_client",
                    "server": "10.10.15.25",
                    "port": 2775
                },
                {
                    "name": "yate_client2",
                    "system_id": "yate2",
                    "system_password": "test",
                    "server": "10.10.15.25",
                    "port": 2776
                }
            ]
        }
    }
}
Configure SMPP server (SSL)
{
    "request": "set_smpp_node",
    "node": "smsc",
    "params": {
        "server": {
            "system_id": "yate",
            "listeners": [
                {
                    "name": "yate_server",
                    "addr": "10.10.15.25",
                    "port": 2775
                },
                {
                    "name": "yate_server_ssl",
                    "addr": "10.10.15.25",
                    "port": 2776,
                    "sslcontext": "self_signed"
                }
            ],
            "users": [
                {
                    "system_id": "yate"
                },
                {
                    "system_id": "yate2",
                    "system_password": "test"
                }
            ]
        }
    }
}
Configure SMPP client (SSL)
{
    "request": "set_smpp_node",
    "node": "smsc",
    "params": {
        "client": {
            "system_id": "yate",
            "connections": [
                {
                    "name": "yate_client",
                    "server": "10.10.15.25",
                    "port": 2775
                },
                {
                    "name": "yate_client2",
                    "system_id": "yate2",
                    "system_password": "test",
                    "server": "10.10.15.25",
                    "port": 2776,
                    "sslmode": true
                }
            ]
        }
    }
}

Request: set_ss7_node

Configure SS7 settings for a YateSMSC server.
More information about this request here

Request: set_diam_node

Configure diameter settings for a YateSMSC server.
More information about this request here

Request: set_regexroute

Configure regexroute rules for a YateSMSC server.
More information about this request here

Request: set_javascript

Configure javascript scripts for a YateSMSC server.
More information about this request here

Request: get_node_type

Retrieve a list of all installed node types with their versions.
More information about this request here

Request: get_node_config

Retrieve the specific node configurations (packaged and generated) as a tarball.
Note: In case of success, the response Content-Type is application/octet-stream.
More information about this request here

Request: get_net_address

Retrieves a list of network interface information from the equipment.
More information about this request here

Request: get_node_logs

Retrieve the logs of the specific node as text.
Note: In case of success, the response Content-Type is text/plain.
More information about this request here
This documentation was generated on 03 June 2020

Our solutions