Guest User

Untitled

a guest
Jul 4th, 2018
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 KB | None | 0 0
  1. #!/usr/bin/php -q
  2. <?php
  3. echo "PORTECH MV-370 SMS Communicator\n";
  4. echo "Version 1.2\n";
  5. echo "===============================\n";
  6. echo "\n\n";
  7. $host = '192.168.0.100';
  8. $username = 'voip';
  9. $password = '1234';
  10. $from_email = 'sms@domain.com';
  11. $to_email = 'test@domain.com';
  12. $debug = false;
  13. $delete_read = true;
  14. function parse_csv($str, $options = null)
  15. {
  16. $delimiter = empty($options['delimiter']) ? "," : $options['delimiter'];
  17. $to_object = empty($options['to_object']) ? false : true;
  18. $expr="/,(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))/"; // added
  19.  
  20. $fields = preg_split($expr,trim($str)); // added
  21. $fields = preg_replace("/^\"(.*)\"$/","$1",$fields); //added
  22.  
  23. return $fields;
  24. }
  25.  
  26. function caller_name($number)
  27. {
  28. //Function to Lookup Caller Name from Contact Database...
  29.  
  30. return '';
  31. }
  32. function add_sms($from, $date, $body)
  33. {
  34. $fromname = "$from";
  35. $name = caller_name($from);
  36.  
  37. if ($name != '')
  38. $fromname = "$name ($from)";
  39.  
  40. echo "==========\nNEW SMS: $date\nFROM: $fromname\n\n$body\n==========\n";
  41. mail($to_email, "New SMS from: $fromname", "NEW SMS: $date \nFROM: $fromname\n$body\n", "from: $from_email\r\n");
  42. }
  43. function send_sms($to, $body)
  44. {
  45. //Select SMS Message Format... (0=PDU Mode, 1=Text Mode)
  46. $cmd = "at+cmgf=1\r";
  47. fputs($fp, $cmd, strlen($cmd));
  48.  
  49. if ($debug)
  50. echo fread($fp, 128);
  51. sleep(2);
  52. //Send SMS Message...
  53. $cmd = "at+cmgs=\"$to\"\r";
  54. fputs($fp, $cmd, strlen($cmd));
  55. sleep(2);
  56. //Body...
  57. $cmd = "$body\r\x1a"; //Ctrl-Z
  58. fputs($fp, $cmd, strlen($cmd));
  59.  
  60. sleep(2);
  61. if ($debug)
  62. echo fread($fp, 128);
  63. fclose($fp);
  64. }
  65. $fp = fsockopen("$host", 23, $errno, $errstr, 30);
  66. if (!$fp)
  67. {
  68. echo "$errstr ($errno)<br />\n";
  69. die;
  70. }
  71.  
  72. sleep(2);
  73. $cmd = "$username\r";
  74. fputs($fp, $cmd, strlen($cmd));
  75.  
  76. if ($debug)
  77. echo fread($fp, 128);
  78.  
  79. sleep(1);
  80. $cmd = "$password\r";
  81. fputs($fp, $cmd, strlen($cmd));
  82. if ($debug)
  83. echo fread($fp, 128);
  84. sleep(1);
  85. $cmd = "module\r";
  86. fputs($fp, $cmd, strlen($cmd));
  87. if ($debug)
  88. echo fread($fp, 128);
  89. sleep(2);
  90. $cmd = "ate1\r";
  91. fputs($fp, $cmd, strlen($cmd));
  92. if ($debug)
  93. echo fread($fp, 128);
  94. sleep(1);
  95. //Select SMS Message Format... (0=PDU Mode, 1=Text Mode)
  96. $cmd = "at+cmgf=1\r";
  97. fputs($fp, $cmd, strlen($cmd));
  98. sleep(1);
  99.  
  100. if ($debug)
  101. echo fread($fp, 128);
  102. sleep(1);
  103. //List SMS Messages...
  104. $cmd = "AT+CMGL=\"REC UNREAD\"\r";
  105. //$cmd = "AT+CMGL=\"ALL\"\r";
  106. fputs($fp, $cmd, strlen($cmd));
  107. sleep(1);
  108.  
  109. $res = " ";
  110. $ttlres = "";
  111.  
  112. stream_set_timeout($fp, 5); //5 seconds read timeout
  113. while ($res != "")
  114. {
  115. $res = fread($fp, 256);
  116. if ($debug)
  117. echo $res;
  118.  
  119. $ttlres .= $res;
  120. }
  121.  
  122. echo "SMS Read Finished!\n";
  123.  
  124. $sms_list = explode('+CMGL: ', $ttlres);
  125.  
  126. //print_r($sms_list);
  127.  
  128. foreach($sms_list as $sms)
  129. {
  130. $sms_hdr = explode("\n", $sms, 2);
  131.  
  132. $arr_sms = parse_csv($sms_hdr[0]);
  133. //print_r($arr_sms);
  134.  
  135. if ((count($arr_sms) > 2))
  136. {
  137. add_sms($arr_sms[2], $arr_sms[4], trim($sms_hdr[1]));
  138. if ($delete_read)
  139. {
  140. //Delete Message...
  141. $cmd = "at+cmgd={$arr_sms[0]}\r";
  142. fputs($fp, $cmd, strlen($cmd));
  143.  
  144. sleep(1);
  145. }
  146. }
  147.  
  148. if ($debug)
  149. echo fread($fp, 128);
  150. }
  151.  
  152. fclose($fp);
  153. ?>
Add Comment
Please, Sign In to add comment