JSON API for SatSite Configuration

From YateBTS
Jump to: navigation, search

Generic requests

get_available_modes

Retrieve available modes from your SatSite/Labkit:

  • nib
  • roaming
  • dataroam
  • enb

Depending on your software version (public/private) you might have some of the above modes available

Usage:

{"request":"get_available_modes","node":"sdr"}
Returns:
{"code":0,"modes": ["nib", "roaming", "enb"] }

get_node_type

Retrieve installed nodes on equipment and configured sdr_mode. The available nodes are:

  • bts
  • enb

Depending on your installation you will have one of them or both.
The "sdr_mode" represents the working mode of the equipment. There are four working modes:

  • nib
  • roaming
  • dataroam
  • enb

Depending on the configured working mode the LMI interface will enable specific modules.
Changing between the sdr_modes doesn't imply losing settings for the old mode. The API will try to keep as much of the settings from the other modes as possible.

Usage:
{"request":"get_node_type","node":"sdr","params":[]}
Returns:
{"code":0,"node_type":[{"type":"bts","version":"unknown","sdr_mode":"roaming"},{"type":"enb","version":"unknown","sdr_mode":"roaming"}]}

set_sdr_mode

Sets the "sdr_mode" that represents the working mode of the equipment. There are four working modes tat can be set:

  • nib
  • roaming
  • dataroam
  • enb
Usage:
{"request":"set_sdr_mode","node":"sdr","params":{"sdr_mode":"dataroam"}}
Returns:
{"code":0}

BTS specific requests

set_bts_node

Sets the parameters for a BTS node.


Usage:

{"request":"set_bts_node",
 "node":"sdr",
 "params":{
          "ybts":{
                 "gsm":{
                        "Radio.Band":"850","Radio.C0":"130","Identity.MCC":"001","Identity.MNC":"05","Identity.LAC":"1000"," 
                        "Identity.CI":"10","Identity.BSIC.BCC":"2","Identity.BSIC.NCC":"0","Identity.ShortName":"YateBTS",
                        "Radio.PowerManager.MaxAttenDB":"10","Radio.PowerManager.MinAttenDB":"0"},
                 "gprs":{"Enable":"off","RAC":"0","RA_COLOUR":"0"},
                 "gsm_advanced":{
                         "Channels.NumC1s":"7","Channels.NumC7s":"0","Channels.C1sFirst":"off","Channels.SDCCHReserve":"0",
                         "CCCH.AGCH.QMax":"5","CCCH.CCCH-CONF":"1","CellOptions.RADIO-LINK-TIMEOUT":"15","CellSelection.CELL-RESELECT-HYSTERESIS":"3",
                         "CellSelection.MS-TXPWR-MAX-CCH":"0","CellSelection.NCCsPermitted":"-1","CellSelection.NECI":"1",
                         "CellSelection.RXLEV-ACCESS-MIN":"0","Cipher.CCHBER":"0.0","Cipher.Encrypt":"off","Cipher.RandomNeighbor":"0.0",
                         "Cipher.ScrambleFiller":"off","Control.GPRSMaxIgnore":"5","Handover.InitialHoldoff":"5000","Handover.RepeatHoldoff":"3000",
                         "Handover.LocalRSSIMin":"-80","Handover.ThresholdDelta":"10","MS.Power.Damping":"50","MS.Power.Max":"33",
                         "MS.Power.Min":"5","MS.TA.Damping":"50","MS.TA.Max":"62","MaxSpeechLatency":"2","Neighbors.NumToSend":"8",
                         "Ny1":"5","RACH.AC":"0x0400","RACH.MaxRetrans":"1","RACH.TxInteger":"14","Radio.ARFCNs":"1","Radio.MaxExpectedDelaySpread":"2",
                         "Radio.NeedBSIC":"off","Radio.PowerManager.NumSamples":"10","Radio.PowerManager.Period":"6000",
                         "Radio.PowerManager.SamplePeriod":"2000","Radio.PowerManager.TargetT3122":"5000",
                         "Radio.RSSITarget":"-50","Radio.RxGain":"","ShowCountry":"off","Timer.T3103":"5000","Timer.T3105":"50","Timer.T3113":"10000",
                         "Timer.T3122Max":"255000","Timer.T3122Min":"2000","Timer.T3212":"24"},
                "gprs_advanced":{
                          "Debug":"off","MS.Power.Alpha":"10","MS.Power.Gamma":"31","MS.Power.T_AVG_T":"15","MS.Power.T_AVG_W":"15",
                          "Multislot.Max.Downlink":"3","Multislot.Max.Uplink":"2","Codecs.Downlink":"14","Codecs.Uplink":"14",
                          "Uplink.KeepAlive":"300","Uplink.Persist":"4000","TBF.Downlink.Poll1":"10","TBF.EST":"off","TBF.Expire":"30000",
                          "TBF.KeepExpiredCount":"20","TBF.Retry":"1","advanceblocks":"10","CellOptions.T3168Code":"5",
                          "CellOptions.T3192Code":"0","ChannelCodingControl.RSSI":"-40","Channels.Congestion.Threshold":"200",
                          "Channels.Congestion.Timer":"60","Channels.Min.C0":"3","Channels.Min.CN":"0","Channels.Max":"4","Counters.Assign":"10",
                          "Counters.N3101":"20","Counters.N3103":"8","Counters.N3105":"12","Counters.Reassign":"6","Counters.TbfRelease":"5",
                          "Downlink.KeepAlive":"300","Downlink.Persist":"0","LocalTLLI.Enable":"off","MS.KeepExpiredCount":"20",
                          "NC.NetworkControlOrder":"2","NMO":"2","PRIORITY-ACCESS-THR":"6","RRBP.Min":"0","Reassign.Enable":"off",
                          "SendIdleFrames":"off","SGSN.port":"1920","Timers.Channels.Idle":"6000","Timers.MS.Idle":"600",
                          "Timers.MS.NonResponsive":"6000","Timers.T3169":"5000","Timers.T3191":"5000","Timers.T3193":"0","Timers.T3195":"5000"},
               "control":{"VEA":"off","LUR.AttachDetach":"off","SACCHTimeout.BumpDown":"1"},
               "roaming":{
                          "expires":"3600","reg_sip":"192.168.1.245:5058","nodes_sip":"","nnsf_bits":"8","gstn_location":"5",
                          "text_sms":"off","my_sip":"192.168.168.208"},
               "handover":{"enable":"on","neighbors":"","reason":"GSM;text=\"Handover\""},
               "ybts":{
                       "mode":"roaming","heartbeat_ping":"3000","heartbeat_timeout":"60000","handshake_start":"60000","max_restart":"10",
                       "peer_cmd":"${modulepath}\/server\/bts\/mbts","peer_arg":"","peer_dir":"${modulepath}\/server\/bts",
                       "print_msg":"yes","print_msg_data":"verbose","imei_request":"off","tmsi_expire":"864000","t305":"30000",
                       "t308":"5000","t313":"5000","sms.timeout":"300000","ussd.session_timeout":"600000","export_xml_as":"object"},
              "security":{"t3260":"720000","auth.call":"off","auth.sms":"off","auth.ussd":"off"},
              "transceiver":{"Path":".\/transceiver","Args":"","MinimumRxRSSI":"-63","RadioFrequencyOffset":"","TxAttenOffset":"","Timeout.Clock":"10"},
              "test":{"SimulatedFER.Downlink":"0","SimulatedFER.Uplink":"0","UplinkFuzzingRate":"0"},
              "tapping":{"GSM":"off","GPRS":"off","TargetIP":"127.0.0.1"}
              }
      }
}


Returns:
{"code":0,"node":null} - on success or 
{"code":"401","message":"ybts: Field 'expires' should be numeric in section 'roaming'."} - for errors

get_bts_node

Retrieve the BTS configuration of an equipment. That means the parameters set in ybts, sdr and ybladerf.

Usage:

{"request":"get_bts_node","node":"sdr","params":[]}

Returns:

{"code":0,
"node":{
         "ybts":{
                "general":{"updated":"Wednesday, 20-Jul-16 12:36:40 GMT from 172.31.0.108","locked":"false"},
                "gsm":{      
                      "Radio.Band":"850","Radio.C0":"130","Identity.MCC":"001","Identity.MNC":"05",
                      "Identity.LAC":"1000","Identity.CI":"10","Identity.BSIC.BCC":"2","Identity.BSIC.NCC":"0",
                      "Identity.ShortName":"YateBTS","Radio.PowerManager.MaxAttenDB":"10",
                      "Radio.PowerManager.MinAttenDB":"0"},
                 "gprs":{"Enable":"off","RAC":"0","RA_COLOUR":"0"},
                 "ggsn":{ 
                        "Firewall.Enable":"1","IP.MaxPacketSize":"1520","IP.ReuseTimeout":"180","IP.TossDuplicatePackets":"off",
                        "Logfile.Name":"ggsn.log","MS.IP.Base":"192.168.99.1","MS.IP.MaxCount":"254","TunName":"sgsntun"},
                 "transceiver":{"Path":".\/transceiver","MinimumRxRSSI":"-23","Timeout.Clock":"10"},
                 "control":{"VEA":"off","LUR.AttachDetach":"off","SACCHTimeout.BumpDown":"1"},
                 "tapping":{"GSM":"off","GPRS":"off","TargetIP":"127.0.0.1"},
                 "gsm_advanced":{"Channels.NumC1s":"7","Channels.NumC7s":"0","Channels.C1sFirst":"off","Channels.SDCCHReserve":"0",
                                 "CCCH.AGCH.QMax":"5","CCCH.CCCH-CONF":"1","CellOptions.RADIO-LINK-TIMEOUT":"15",
                                 "CellSelection.CELL-RESELECT-HYSTERESIS":"3","CellSelection.MS-TXPWR- MAX-CCH":"0",
                                 "CellSelection.NCCsPermitted":"-1","CellSelection.NECI":"1",
                                 "CellSelection.RXLEV-ACCESS-MIN":"0","Cipher.CCHBER":"0.0","Cipher.Encrypt":"off",
                                 "Cipher.RandomNeighbor":"0.0","Cipher.ScrambleFiller":"off",
                                 "Control.GPRSMaxIgnore":"5","Handover.InitialHoldoff":"5000","Handover.RepeatHoldoff":"3000",
                                 "Handover.LocalRSSIMin":"- 80","Handover.ThresholdDelta":"10","MS.Power.Damping":"50",
                                 "MS.Power.Max":"33","MS.Power.Min":"5","MS.TA.Damping":"50","MS.TA.Max":"62",
                                 "MaxSpeechLatency":"2","Neighbors.NumToSend":"8","Ny1":"5","RACH.AC":"0x0400",
                                 "RACH.MaxRetrans":"1",RACH.TxInteger":"14","Radio.ARFCNs":"1","Radio.MaxExpectedDelaySpread":"2",
                                 "Radio.NeedBSIC":"off","Radio.PowerManager.NumSamples":"10","Radio.PowerManager.Period":"6000",
                                 "Radio.PowerManager.SamplePeriod":"2000","Radio.PowerManager.TargetT3122":"5000",
                                 "Radio.RSSITarget":"-50","ShowCountry":"off","Timer.T3103":"5000","Timer.T3105":"50",
                                 "Timer.T3113":"10000","Timer.T3122Max":"255000","Timer.T3122Min":"2000","Timer.T3212":"24"}, 
                                                                 
                 "gprs_advanced": {"Debug":"off","MS.Power.Alpha":"10","MS.Power.Gamma":"31","MS.Power.T_AVG_T":"15",
                                  "MS.Power.T_AVG_W":"15","Multislot.Max.Downlink":"3",
                                   "Multislot.Max.Uplink":"2","Codecs.Downlink":"14","Codecs.Uplink":"14",
                                  "Uplink.KeepAlive":"300","Uplink.Persist":"4000","TBF.Downlink.Poll1":"10","TBF.EST":"off",         
                                  "TBF.Expire":"30000","TBF.KeepExpiredCount":"20","TBF.Retry":"1","advanceblocks":"10",
                                  "CellOptions.T3168Code":"5","CellOptions.T3192Code":"0","ChannelCodingControl.RSSI":"-40",
                                   "Channels.Congestion.Threshold":"200","Channels.Congestion.Timer":"60","Channels.Min.C0":"3",
                                  "Channels.Min.CN":"0","Channels.Max":"4","Counters.Assign":"10","Counters.N3101":"20","Counters.N3103":"8",
                                   "Counters.N3105":"12","Counters.Reassign":"6","Counters.TbfRelease":"5","Downlink.KeepAlive":"300",
                                  "Downlink.Persist":"0","LocalTLLI.Enable":"off","MS.KeepExpiredCount":"20","NC.NetworkControlOrder":"2","NMO":"2",
                                   "PRIORITY-ACCESS-THR":"6","RRBP.Min":"0","Reassign.Enable":"off","SendIdleFrames":"off","SGSN.port":"1920",
                                   "Timers.Channels.Idle":"6000","Timers.MS.Idle":"600","Timers.MS.NonResponsive":"6000",
                                   "Timers.T3169":"5000","Timers.T3191":"5000","Timers.T3193":"0","Timers.T3195":"5000"},
                "sgsn":{"Debug":"off","Timer.ImplicitDetach":"3480","Timer.MS.Idle":"600","Timer.RAUpdate":"3240","Timer.Ready":"44"},
                "test":{"SimulatedFER.Downlink":"0","SimulatedFER.Uplink":"0","UplinkFuzzingRate":"0"},
                "ybts":{"mode":"dataroam","heartbeat_ping":"3000","heartbeat_timeout":"60000","handshake_start":"60000","max_restart":"10",
"peer_cmd":"${modulepath}\/server\/bts\/mbts","peer_dir":"${modulepath}\/server\/bts","print_msg":"yes","print_msg_data":"verbose","imei_request":"off","tmsi_expire":"864000","t305":"30000","t308":"5000",
"t313":"5000","sms.timeout":"300000","ussd.session_timeout":"600000","export_xml_as":"object"},
                "security":{"t3260":"720000","auth.call":"off","auth.sms":"off","auth.ussd":"off"}
         },
         "sdr":{
                       "general":{"updated":"","locked":"","sdr_mode":"bts"},
                       "basic":{}, 
                       "site-equipment":{},
                       "test":{}},
         "ybladerf":{
                       "general":[],
                       "libusb":[],
                       "filedump":[]
          }
    }
}

ENB specific requests

set_enb_node

Sets the ENB configurations. That means that the parameters set in openenb object will be written in openenb.conf, and the parameters from 'gtp' object will be written in file gtp.conf. Before writting all parameters will be validated.

Usage:
{"request":"set_enb_node",
 "node":"sdr",
 "params":{
     "gtp":{
         "ran_u":{"addr6":"","addr4":"::1:222"}
      },
     "yateenb":{
         "basic":{"enodebId":"10","MCC":"001","MNC":"55","TAC":"10","CellIdentity":"0000001","Name":"EnbMonica","Band":"3","Bandwidth":"25","EARFCN":"1575","NID1":"4","NID2":"2","Prach.RootSequence":"0","Prach.FreqOffset":"9","Pusch.RefSigGroup":"2","OutputLevel":"40","CrestFactor":"13","DistributedVrbs":"on","SiWindowLength":"20","SiPeriodicity":"8","SiRedundancy":"2","DefaultPagingCycle":"32","RxLevelMinimum":"-22","Pdsch.RefPower":"-20","Pusch.Qam64":"off","Pusch.CyclicShift":"3","Pucch.Delta":"1","Pucch.RbCqi":"3","Pucch.CsAn":"3","Pucch.An":"45","Prach.Preambles":"4","Prach.PowerStep":"4","Prach.InitialTarget":"-90","Prach.TransMax":"200","Prach.ResponseWindow":"10","Prach.ContentionTimer":"64","Prach.ConfigIndex":"14","Prach.ZeroCorr":"1","CFI":"2","Ng":"one","PdcchFormat":"2"},
         "bearers":{"Srb1.mode":"unacknowledged","Srb2.mode":"acknowledged"},
         "advanced":{"GridLength":"8","LeadModulation":"14","LeadScheduling":"2","RadioPriority":"high","ModulatorPriority":"high","SchedulerPriority":"normal"},
         "scheduler":{"SibModulationRate":"2","SibDci":"dci1a","PcchMcs":"2","PcchDci":"dci1a","RarMcs":"2","RarDci":"dci1a","downlinkDci":"dci1a","uplinkDci":"dci0","UplinkRbs":"1","UplinkRbStartIndex":"5","DistributedVrbs":"on","PrachResponseDelay":"5"},
         "radiohardware":{"MaximumOutput":"43","ReceiverReference":"-20"},
         "measurements":{"reportingPeriod":"15","reportingPath":""}, 
         "mme1": {"address":"192.167.1.1", "local":"10.1.1.1"}, 
         "mme2": {"address":"192.1.1.1", "local":"10.1.1.1"}
     }
  }
}

get_enb_node

Retrieve the ENB configuration of an equipment.

Usage:
{"request":"get_enb_node","node":"sdr","params":[]}
Response:

{"code":0,"node":{
               "gtp":{"general":{"updated":"Monday, 18-Jul-16 13:15:49 GMT from 172.31.0.108","locked":"false"},
                      "ran_u":{"addr4":"192.168.168.208","type":"gtp-access"}
                   },
               "yateenb":{"general":{"updated":"Monday, 18-Jul-16 11:56:51 GMT from 172.31.0.108","locked":"false"},
                          "basic":{
                                   "enodebId":"10","MCC":"001","MNC":"55","TAC":"10","CellIdentity":"0000001","Name":"Enb",
                                   "Band":"3","Bandwidth":"25","EARFCN":"1575","NID1":"4","NID2":"2","Prach.RootSequence":"0",
                                   "Prach.FreqOffset":"9","Pusch.RefSigGroup":"2","OutputLevel":"40","CrestFactor":"13",
                                   "DistributedVrbs":"on","SiWindowLength":"20","SiPeriodicity":"8","SiRedundancy":"2",
                                   "DefaultPagingCycle":"32","RxLevelMinimum":"-22","Pdsch.RefPower":"-20","Pusch.Qam64":"off",
                                   "Pusch.CyclicShift":"3","Pucch.Delta":"1","Pucch.RbCqi":"3","Pucch.CsAn":"3","Pucch.An":"45",
                                   "Prach.Preambles":"4","Prach.PowerStep":"4","Prach.InitialTarget":"-90",
                                   "Prach.TransMax":"200","Prach.ResponseWindow":"10","Prach.ContentionTimer":"64","Prach.ConfigIndex":"14",
                                   "Prach.ZeroCorr":"1","CFI":"2","Ng":"one","PdcchFormat":"2"},
                          "scheduler":{
                                   "SibModulationRate":"2","SibDci":"dci1a","PcchMcs":"2","PcchDci":"dci1a","RarMcs":"2","RarDci":"dci1a",
                                   "downlinkDci":"dci1a","uplinkDci":"dci0","UplinkRbs":"1","UplinkRbStartIndex":"5",
                                   "DistributedVrbs":"on","PrachResponseDelay":"5"}                               
                          "bearers":{"Srb1.mode":"unacknowledged","Srb2.mode":"acknowledged"},
                          "radiohardware":{"MaximumOutput":"43","ReceiverReference":"-20"},
                          "advanced":{
                                    "GridLength":"8","LeadModulation":"14","LeadScheduling":"2","RadioPriority":"high",
                                    "ModulatorPriority":"high","SchedulerPriority":"normal"},
                          "mme1":{"address":"192.167.1.1","local":"fe80::96de:80ff:fe7b:36fa"}
              },
              "sdr":{ "general":{"updated":"","locked":""},
                      "basic":{},
                      "site-equipment":{}
                   },
              "ybladerf":{"general":[],"libusb":[],"filedump":[]}
     }
}

NIB specific requests

set_nib_subscribers

Request that writes the received parameters in subscribers.conf file.

Add subscriber

Usage:
{"request":"set_nib_subscribers","node":"sdr",
"params":{
   "subscribers":{
           "001010000000001":{"msisdn":"88250001","short_number":"001","active":"on","ki":"*","op":"","imsi_type":"2G"},
   }
 }
}
Response:
{"code":0} - on success
{"code":!0, "message": "Error message"} - on failure

Edit subscriber

The request is similar with the one for adding, just that you add imsi inside parameters defining subscriber. 
Usage:
{"request":"set_nib_subscribers","node":"sdr",
"params":{
   "subscribers":{
           "001010000000001":{"imsi":"001010000000001","msisdn":"88250001","short_number":"001","active":"on","ki":"*","op":"","opc":true/false,"imsi_type":"3G"},
   }
 }
}
Response:
{"code":0} - on success
{"code":!0, "message": "Error message"} - on failure

get_nib_subscribers

Retrieve all the configuration from subscribers.conf if 'params' is empty. The parameters that can be requested are:

  • subscribers with {"limit": , "offset": } -- retrieve subscribers in parameter 'subscribers'
  • subscribers with no parameters {} -- retrieve subscriber count in parameter 'count'
  • subscribers with { "imsi": ,/ "msisdn": } -- retrieve specific subscriber based of various criteria in parameter 'subscribers'
Usage:
{"request":"get_subscribers","node":"sdr","params":[]}
Returns:
{"code":0,
 "subscribers":{
           "001010000000001":{"msisdn":"88250001","short_number":"001","active":"on","ki":"*","op":"","imsi_type":"2G"},
           "001010000000002":{"msisdn":"88250002", "short_number":"002", "active":"on", "ki":"*","op":"","imsi_type":"2G"}
   },
 }  

Another example:

Usage:
{"request":"get_nib_subscribers","node":"sdr","params":{"imsi":"001010000000001"}}
Returns:
{  "code":0,
   "subscribers":{
           "001010000000001":{"msisdn":"88250001", "short_number":"001", "active":"on","Ki":"*", "OP":"",
                              "imsi_type":"2G"},
   }
 }

set_nib_system

Sets params in [general] section in subscribers.conf. The parameters that can be set:

  • regexp
  • country_code
  • SMSC
  • gw_sos
Usage:
{
  "request":"set_nib_system",
  "node":"sdr",
  "params":{
       "regexp":"^001",
       "gw_sos":"112",
       "smsc":"2222",
       "country_code":"001"
    }
}
Returns:
{"code":0}

get_nib_system

Retrieves the parameter set in [general] section from subscribers.conf

Usage:
{
  "request":"get_nib_system",
  "node":"sdr",
  "params":[]
}
Returns:
{
   "code":0",
   "nib_system":{"country_code":"0040","smsc":"2222","gw_sos":"112"}
 }

delete_nib_subscriber

Deletes a specified subscriber.

Usage:
{"request":"delete_nib_subscriber","node":"sdr","params":{"imsi":"001012531201012"}}
Returns:
{"code":0}

get_online_nib_subscribers

Retrieve the subscribers that are online in the request is done.

Usage:
{"request":"get_online_nib_subscribers","node":"sdr","params":{"limit":20, "offset":0}}
Returns:
{"code":0, "subscribers": [{"imsi":"001011601284670", "msisdn":""}, {"imsi":"001990010001014", "msisdn":"882005"}]}

get_rejected_nib_subscribers

Retrieve rejected IMSIs.

Usage:
{"request":"get_rejected_nib_subscribers","node":"sdr","params":{"limit":20, "offset":0}}
Returns:
{"code":0, "imsis":[{"imsi":"00130040050033","no":2},{"imsi":"00130040050034","no":1},{"imsi":"00130040050035","no":5}] }
no - number of register attempts


set_nib_outbound

Sets outbound connection in accfile.conf. The following parameters usually define a valid account:

  • protocol: The protocol to register on (sip or iax)
  • username: Account username
  • password: Account password
  • interval: Registration interval (in seconds) to request from server
  • server: Registrar IP address
  • enabled: yes/no

An account is valid if it has parameter enabled set to true or if parameter enabled is missing but the parameter username is set.

In some cases, depending on the gateway you wish to connect to, you might need to set some protocol specific information.

1. For SIP:

  • description: Caller name to set on outgoing calls on this account if none specified when routing
  • registrar: Registrar address. A port can be specified here (e.g. 1.2.3.4:7999)
  • authname: Authentication name to use instead of username when authenticating
  • domain: Authentication domain if any
  • outbound: Optional outbound proxy server if different from registrar.
  • ip_transport: Optional SIP transport to use (udp, tcp, tls).
  • ip_transport_remoteip: IP address to connect to register the account.
  • ip_transport_remoteport: IP port to connect to register the account
  • ip_transport_localip: UDP: This parameter is used in conjuction ip_transport_localport to identify the transport to use
  • ip_transport_localport: Local port.
  • localaddress: Local address to set in sent messages
  • keepalive: Optional interval for NAT keep alive.

2. IAX:

  • server: Registrar address or domain. A port can be specified here (e.g. 1.2.3.4:7999)
  • port: Registrar port if not specified in 'server' parameter
  • connection_id: The name of the iax listener to use for registration and outgoing calls
  • ip_transport_localip: This parameter is used in conjuction ip_transport_localport to identify the listener to use for registration and outgoing calls
  • ip_transport_localport: Local port. This parameter is used to identify the listener to use for registration and outgoing calls
  • trunking: Enable trunking for outgoing calls sent on this line
  • trunk_timestamps: Configure how trunked audio data is sent, enable it for trunked data with timestamps and disable it to send trunked data without timestamps
  • trunk_sendinterval: Interval, in milliseconds, to send trunked trunked audio data
  • trunk_maxlen: Maximum value for trunked data frames
  • trunk_nominits_sync_use_ts: Configure how to re-build timestamps when processing incoming trunked audio without miniframe timestamps
  • trunk_nominits_ts_diff_restart: The difference (in milliseconds) between current timestamp and first timestamp of incoming trunked audio data without miniframe timestamps at which to restart timestamps build data
  • trunk_efficient_use: Use the trunk efficiently: don't send trunking data when there is only 1 call using it


Usage:
{"request":"set_nib_outbound",
 "node":"sdr",
 "params":{
       "protocol":"sip","username":"my_user", "password":"secret","server":"192.168.168.1",
       "enabled":"yes"
  }
}
Returns:
{"code":0}

get_nib_outbound

Retrieve the existing outbound connection:

Usage:
{"request":"get_nib_outbound","node":"sdr","params":[]}
Returns:
{"code":0,
 "outbound":{
       "protocol":"sip","username":"my_user", "password":"secret","server":"192.168.168.1",
       "enabled":"yes"
  }
}

Radio device requests

calibrate_start

This request is used to start radio device calibration.

{
  "node": "sdr",
  "request": "calibrate_start"
}

Success:

{
  "code":0,
  "calibrate_start": {
    "message":"Calibration postponed"
  }
}

Failure:

{
  "code":405,
  "message": "Calibration already running"
}

calibrate_poll

This request is used to retrieve calibration process status.

{
  "node": "sdr",
  "request": "calibrate_poll",
  "params": {
    "details": false
  }
}

params:
This field is optional.

  • details: Boolean, optional. Defaults to true if missing. Retrieve detailed state (last successful and/or failed calibration result if available)

Success without details (details=false):

{
  "code":0,
  "calibrate_status": {
    "state":"WaitCalibrate",
    "age":"16.944sec"
  }
}

Fields:

  • state: Calibration state. Any state other than Idle means calibration is running
  • age: Calibration process age. Present only when running (non idle)

Success with details (details parameter is missing or set to true):

{
  "code":0,
  "calibrate_status": {
    "state":"Idle",
    "last_calibration_ok": {
      "source_name":"api.request",
      "source_received":"Thursday, 26-Jan-17 11:36:31 GMT from 192.168.168.204",
      "start_time":"1485430591510",
      "end_time":"1485430921096",
      "frequency":"870600000",
      "samplerate":"2166667",
      "filter":"1500000",
      "cal_tx_dc_i":"13",
      "cal_tx_dc_q":"19",
      "cal_tx_fpga_corr_phase":"-947",
      "cal_tx_fpga_corr_gain":"722"
    },
    "last_calibration_failed": {
      "source_name":"api.request",
      "source_received":"Thursday, 26-Jan-17 11:36:07 GMT from 192.168.168.204",
      "start_time":"1485430567568",
      "end_time":"1485430575090",
      "frequency":"870600000",
      "samplerate":"2166667",
      "filter":"1500000",
      "error":"Radio calibration failed error=Saturation"
    }
  }
}

Fields:

  • last_calibration_ok: Last successful calibration
  • last_calibration_failed: Last failed calibration. The error field indicates the failure reason

NOTE: If both fields are present last calibration result may be detected by comparing the start time. Calibration result fields:

  • source_: Parameters starting with this prefix contain informations about calibration request source (may be requested by command, automatic ...)
  • start_time, end_time: Start/stop EPOCH time in milliseconds
  • frequency, samplerate, filter: Calibration parameters
  • cal_: Parameters starting with this prefix contain the calibration result