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_node

This request is used to configure product specific settings for a YateSMSC.
{
    "node_type": "smsc",
    "restart": "Boolean. Whether to restart now and apply settings sent in the same request or previously.",
    "smsc": {
        "$ref": "#/@name=set_smsc_node/requests/params"
    },
    "ss7": {
        "$ref": "#/@name=set_ss7_node/requests/params"
    },
    "diameter": {
        "$ref": "#/@name=set_diam_node/requests/params"
    },
    "smpp": {
        "$ref": "#/@name=set_smpp_node/requests/params"
    },
    "regexroute": {
        "$ref": "#/@name=set_regexroute/requests/params"
    },
    "javascript": {
        "$ref": "#/@name=set_javascript/requests/params"
    },
    "instances": {
        "$ref": "#/@name=set_instances/requests/params"
    },
    "diam_charging": {
        "$ref": "#/@name=set_diam_charging/requests/params"
    },
    "common": {
        "comment__common": "Extra params or common network settings. Ex: 'my_cc', 'my_mnc'."
    }
}
Examples: set_node

Request: set_smsc_node

Main product configurations for YateSMSC.
Parameters from section 'common' can be set by defining 'Extra params' in YateSMSC wizard or Network wizard from MMI.
If a parameter is missing in main 'params' it's taken from 'common', if present.
{
    "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_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'",
        "codec_unknown_gsm7bit_chars": "String. Specify how the text coder should handle non-printable characters for GSM7Bit. Possible values: skip - skip over unhandled characters, fail - abort GSM7Bit encoding (default), or a char that should be used for replacing non-printable characters.",
        "tenant_ignore_no_match_mosms_begin_empty": "Optional, boolean. Do not set tenant when handling an incoming TCAP with empty Begin and no tenant matches.",
        "recv_mt_deliver_sync": "Optional, boolean. Synchronosly deliver a received MT SMS.",
        "recv_mt_deliver_save_route": "Optional, boolean. Save first proxied MT SMS deliver route parameters.",
        "recv_mt_deliver_save_location": "Optional, boolean. Save first proxied MT SMS deliver SRI-SM location parameters",
        "sched_track_proxy": "Optional, boolean. Instruct the scheduler module to track MT SMS deliver from other modules.",
        "sched_track_proxy_enforce_limit": "Optional, string. Reason used to reject a proxied MT SMS if scheduler's max routing/delivering values were reached.",
        "sri_sm_silent_errors": "Optional, string. Comma separated list of silent (use lower debug level) SRI-SM errors.",
        "mt_sms_silent_errors": "Optional, string. Comma separated list of silent (use lower debug level) MT SMS deliver errors.",
        "delivery_timer": "Optional, integer. Timeout in seconds for SMS delivery. Range is 5-60 seconds, defaults to 36.",
        "mt_session_timeout": "Optional, interger. Timeout in seconds for receiving a new SMS for delivery after one was already delivered in a session that specified multiple SMSs for delivery. Range is 2-60 seconds, default is 35.",
        "delivery_proto_pref": "Optional, keyword. Specify which protocol is preferred for SMS delivery. Options are: routing (use the same protocol as the one that was used for SRI-SM), map, diameter. Default is routing.",
        "sri_diameter_realm": "Optional, string. Diameter realm of HSS to interrogate with SRI-SM for an SMS delivery. This address is used only if not given from internal routing decision",
        "sri_diameter_host": "Optional, string. Diameter host of HSS to interrogate with SRI-SM for an SMS delivery. This address is used only if not given from internal routing decision",
        "mo_sms_missing_imsi": "Optional, boolean. Accept (check) MO SMS with missing IMSI. MO SMS will be authorized regardless the value of 'auth_mo_sms' value, SMS will be rejected if an IMSI is not available after authorization. Application default: false (reject).",
        "delay_busy": "Optional, integer. Retry delay (in seconds) when MT SMS receives an error indicating target is busy for MT SMS. Allowed interval: 0..60. Application default: 0 (do nothing, use 'delay_failed').",
        "busy_restore_attempts": "Optional, boolean. Restore previous SMS attempts counter when MT SMS receives an error indicating target is busy for MT SMS. Application default: false.",
        "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_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": "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.",
            "listeners": [
                {
                    "name": "Mandatory, string. Name of the listener.",
                    "addr": "Mandatory, string. The address on which to listen for incoming connections.",
                    "port": "Mandatory, integer. The port on which to listen for incoming connections.",
                    "sslcontext": "Optional, string. Server certificate to enable SSL mode. Setting SSL Context activates SSL / TLS on the socket. Example of values for SSL context: self_signed, server.pem.",
                    "sslverify": "Optional, string, default='none', allowed values: 'peer', 'only', 'once', 'must', 'none'. SSL client certificate verification mode.",
                    "enable": "Optional, boolean, default=true. Enable or disable this listener."
                }
            ],
            "comment__users": "Collection 'users' is not mandatory.",
            "users": [
                {
                    "system_id": "Mandatory, string. Client system id used for authentication.",
                    "system_password": "Optional, string. Client system password used for authentication. If password is not specified, it will have the same value as system_id.",
                    "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.",
                    "in_dcs0_udh": "Optional, string, allowed values: 'ia5','gsm7bit', 'gsm8bit', 'ucs2', 'latin1', '8bit'. DCS (data coding scheme) used for decoding SMS messages arrived with DCS0 ('default' encoding) from SMPP with UDH. If not set, it will have the same value as in_dcs0",
                    "out_dcs0_udh": "Optional, string, allowed values: 'ia5','gsm7bit', 'gsm8bit', 'ucs2', 'latin1', '8bit'. DCS used to determine if encoding 'default' should be set for messages sent on SMPP with UDH. If not set, it will have the same value as out_dcs0.",
                    "out_dcs_pref_udh": "Optional, string, allowed values: 'ia5','gsm7bit', 'gsm8bit', 'ucs2', 'latin1', '8bit'. Preferred DCS to use for encoding SMS messages sent on SMPP with UDH. If not set, it will have the same value as out_dcs_pref.",
                    "groups": "Optional, string. Comma separated list of groups this user belongs to. Group(s) MUST be present in server's 'groups' list."
                }
            ],
            "comment__groups": "Known server session groups.",
            "groups": [
                {
                    "name": "Required, string. Group name",
                    "algorithm": "Optional, keyword. Algorithm to use for session selection: rotate (round robin), last (always use last selected session, go to next on failure), fixed (always start from first session), random (start from a random point in list). Default: rotate",
                    "compact_percent": "Optional, integer. Percent (count/length) to compact the held sessions list. Interval: 20..100. Default: 75."
                }
            ]
        },
        "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 client.",
            "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 transmitter 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.",
                    "in_dcs0_udh": "Optional, string, allowed values: 'ia5','gsm7bit', 'gsm8bit', 'ucs2', 'latin1', '8bit'. DCS (data coding scheme) used for decoding SMS messages arrived with DCS0 ('default' encoding) from SMPP with UDH. If not set, it will have the same value as in_dcs0",
                    "out_dcs0_udh": "Optional, string, allowed values: 'ia5','gsm7bit', 'gsm8bit', 'ucs2', 'latin1', '8bit'. DCS used to determine if encoding 'default' should be set for messages sent on SMPP with UDH. If not set, it will have the same value as out_dcs0.",
                    "out_dcs_pref_udh": "Optional, string, allowed values: 'ia5','gsm7bit', 'gsm8bit', 'ucs2', 'latin1', '8bit'. Preferred DCS to use for encoding SMS messages sent on SMPP with UDH. If not set, it will have the same value as out_dcs_pref.",
                    "enable": "Optional, boolean, default=true. Enable or disable this connection.",
                    "bind_params": {
                        "system_type": "Optional. String. Type of system that is binding.",
                        "addr_ton": "Optional. Keyword/integer: Address Type of Number for SME address parameters. Defined values are unknown(0), international(1), national(2), network-specific(3), subscriber(4), alphanumeric(5), abbreviated(6). Any integer value will be encoded as is.",
                        "addr_npi": "Optional. Keyword/integer: Numeric Plan Indicator (NPI)for SME address parameters. Defined values are unknown(0), isdn(1), data(3), telex(4), land-mobile(5), national(8), private(9), ERMES(10), internet(14), WAP-ClientId(18).  Any integer value will be encoded as is.",
                        "address_range": "Optional. String: String containing regexp or IP address specifying a set of SME addresses serviced by the ESME client."
                    },
                    "comment__bind_params": "Extra parameters to be passed to bind request. Below are parameters documented that can be added. Other undefined parameters could be added.",
                    "groups": "Optional, string. Comma separated list of groups this user belongs to. Group(s) MUST be present in client's 'groups' list."
                }
            ],
            "comment__groups": "Known client session groups. Group description is the same as server groups.",
            "groups": []
        }
    }
}
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 21 April 2026

Our solutions