Contents
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.
Requests
{
"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'."
}
}
Responses
{
"code": 0,
"node": null
}
Errors
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.
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.
Requests
{
"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."
}
}
}
Responses
{
"code": 0,
"smsc_node": "Name of the node."
}
Errors
{
"code": 401,
"message": "Invalid 'sms_cleanup' value '366' - out of range."
}
{
"code": 401,
"message": "Invalid 'sgsn_sms' value 'test' - not a boolean."
}
{
"code": 402,
"message": "Missing all parameters."
}
Examples: set_smsc_node
Set SMSC node
Request
{
"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
}
}Response
{
"code": 0,
"smsc_node": "smsc"
}Request: set_smpp_node
Configure SMPP settings for a YateSMSC server.
Requests
{
"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": []
}
}
}
Responses
{
"code": 0,
"smpp_node": "Name of the node."
}
Errors
{
"code": 401,
"message": "SMPP: Invalid 'name' value - empty."
}
{
"code": 401,
"message": "SMPP: Invalid 'system_password' value - It must have maximum 9 characters."
}
{
"code": 402,
"message": "Missing all parameters."
}
{
"code": 402,
"message": "SMPP: Missing 'addr' parameter."
}
Examples: set_smpp_node
Configure SMPP server (Non-SSL)
Request
{
"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"
}
]
}
}
}Response
{
"code": 0,
"smpp_node": "smsc"
}Configure SMPP client (Non-SSL)
Request
{
"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
}
]
}
}
}Response
{
"code": 0,
"smpp_node": "smsc"
}Configure SMPP server (SSL)
Request
{
"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"
}
]
}
}
}Response
{
"code": 0,
"smpp_node": "smsc"
}Configure SMPP client (SSL)
Request
{
"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
}
]
}
}
}Response
{
"code": 0,
"smpp_node": "smsc"
}Request: set_ss7_node
Configure SS7 settings for a YateSMSC server.
More information about this request here
More information about this request here
Request: set_diam_node
Configure diameter settings for a YateSMSC server.
More information about this request here
More information about this request here
Request: set_regexroute
Configure regexroute rules for a YateSMSC server.
More information about this request here
More information about this request here
Request: set_javascript
Configure javascript scripts for a YateSMSC server.
More information about this request here
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
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
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
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
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