<syntaxhighlight lang="php">
<?php
- //This example logs into OpenSPOT, shows some information (if 'debug' is set to true)
- // and sends an SMS to a local tranceiver (via the modem, not via the network)
- // ----------- configuration :
- $debug = false;
- $server = "http://my.openspot.ip.address";
- $password = "openspot";
- $sms_dst = 0000000; // THE DESTINATION DMRid GOES HERE;
- $sms_src = 0000000; // THE SOURCE DMRid GOES HERE;
- $sms_fmt = 2; // format: 0 - ETSI, 1 - UDP, 2 - UDP/Chinese
- $msg="This is a test message from ON7LDS";
- // ---------------------------------------------------------------------------------
- $token=file_get_contents ("$server/gettok.cgi");
- $data=json_decode($token,true);
- if ($debug) print_r($data);
- $digest = hash("sha256", $data['token'].$password); //binair
- if ($debug) echo "Digest : $digest\n\n";
- $data = array(
- 'token' => $data['token'],
- 'digest' => $digest
- );
- $opts=array(
- "http" => array(
- // http://www.php.net/manual/en/context.http.php
- 'method' => 'POST',
- 'header' => "Authorization: Bearer null\r\n".
- "Content-type: application/json\r\n",
- 'content' => json_encode($data)
- )
- );
- // Create the context for the request
- $context = stream_context_create($opts);
- $response = @file_get_contents("$server/login.cgi", false, $context);
- // Check for errors
- if($response === false){
- if ($debug) die('Failed '.print_r(error_get_last(),true)."\n");
- die("Login failed\n");
- }
- // Decode the response
- $responseData = json_decode($response, true);
- if ($debug) print_r($responseData);
- $jwt=$responseData['jwt'];
- if ($debug) echo "\njwt = $jwt\n\n";
- if ($debug) print "Authorisation status : \n" . @file_get_contents("$server/checkauth.cgi")."\n";
- $opts=array(
- "http" => array(
- 'method' => 'GET',
- 'header' => "Authorization: Bearer $jwt\r\n"
- )
- );
- $context = stream_context_create($opts);
- if ($debug) {
- $response = file_get_contents("$server/info.cgi", false, $context);
- $responseData = json_decode($response, true);
- print "Openspot Device Info :\n";
- print_r($responseData);
- }
- if ($debug) {
- $response = file_get_contents("$server/modemfreq.cgi", false, $context);
- $responseData = json_decode($response, true);
- print "Openspot Modem Frequency : \n";
- print_r($responseData);
- }
- $response = file_get_contents("$server/status-dmrsms.cgi", false, $context);
- $responseData = json_decode($response, true);
- if ($debug) { print "Openspot SMS status : \n"; print_r($responseData); }
- $data = array(
- "only_save" => 0,
- "intercept_net_msgs" => 1,
- "send_dstid" => $sms_dst,
- "send_calltype" => 0,<-><------>// 0 = private, 1 = group
- "send_srcid" => $sms_src,
- "send_format" => $sms_fmt,<---><------>// 0 - ETSI, 1 - UDP, 2 - UDP/Chinese
- "send_tdma_channel" => 0,
- "send_to_modem" => 1,
- "send_msg" => bin2hex(mb_convert_encoding($msg, "UTF-16"))
- );
- $opts=array(
- "http" => array(
- 'method' => 'POST',
- 'header' => "Authorization: Bearer $jwt\r\n".
- "Content-type: application/json\r\n",
- 'content' => json_encode($data)
- )
- );
- $smscontext = stream_context_create($opts);
- $response = @file_get_contents("$server/status-dmrsms.cgi", false, $smscontext);
- if ($response===false) {
- print "Send SMS failed\n\n";
- } else {
- print "SMS sent\n\n";
- }
?> </syntaxhighlight>