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
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.
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_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'",
"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.",
"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_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
}
}
Responses
{
"code": 0,
"smsc_node": "smsc"
}
Request: set_smpp_node
Configure SMPP settings for a YateSMSC server.
Request
{
"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."
}
],
"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."
}
],
"comment__users": "Collection 'users' is not mandatory."
},
"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."
}
]
}
}
}
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.
Request: set_diam_node
Configure diameter settings for a YateSMSC server.
Request: set_regexroute
Configure regexroute rules for a YateSMSC server.
Request: set_javascript
Configure javascript scripts for a YateSMSC server.
Request: get_node_type
Retrieve a list of all installed node types with their versions.
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.
Request: get_net_address
Retrieves a list of network interface information from the equipment.
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.
This documentation was generated on 07 June 2022