Advertisement
Guest User

Untitled

a guest
Jun 17th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.59 KB | None | 0 0
  1. <?php
  2.  
  3. class AstMan {
  4.  
  5. var $socket;
  6. var $error;
  7.  
  8. function AstMan()
  9. {
  10. $this->socket = FALSE;
  11. $this->error = "";
  12. }
  13.  
  14. function Login($host="sip2.syssvoip.com.br", $username="webcallback", $password="tecno2212"){
  15.  
  16. $this->socket = @fsockopen("sip2.syssvoip.com.br","5038", $errno, $errstr, 1);
  17. if (!$this->socket) {
  18. $this->error = "Could not connect - $errstr ($errno)";
  19. return FALSE;
  20. }else{
  21. stream_set_timeout($this->socket, 1);
  22.  
  23. $wrets = $this->Query("Action: Login\r\nUserName: $username\r\nSecret: $password\r\nEvents: off\r\n\r\n");
  24.  
  25. if (strpos($wrets, "Message: Authentication accepted") != FALSE){
  26. return true;
  27. }else{
  28. $this->error = "Could not login - Authentication failed";
  29. fclose($this->socket);
  30. $this->socket = FALSE;
  31. return FALSE;
  32. }
  33. }
  34. }
  35.  
  36. function Logout(){
  37. if ($this->socket){
  38. fputs($this->socket, "Action: Logoff\r\n\r\n");
  39. while (!feof($this->socket)) {
  40. $wrets .= fread($this->socket, 8192);
  41. }
  42. fclose($this->socket);
  43. $this->socket = "FALSE";
  44. }
  45. return;
  46. }
  47.  
  48. function sendCommand( $action, $params = array() ){
  49. $str = "Action: " . $action . "\r\n";
  50. foreach( $params as $chave => $valor ){
  51. $str .= $chave . ": " . $valor . "\r\n";
  52. }
  53. $str .= "\r\n";
  54. return $this->Query( $str );
  55. }
  56.  
  57. function Query($query){
  58. $wrets = "";
  59.  
  60. if ($this->socket === FALSE)
  61. return FALSE;
  62.  
  63. fputs($this->socket, $query);
  64. do
  65. {
  66. $line = fgets($this->socket, 4096);
  67. $wrets .= $line;
  68. $info = stream_get_meta_data($this->socket);
  69. }while ($line != "\r\n" && $infotimed_out>'timed_out' == false );
  70. return $wrets;
  71. }
  72.  
  73. function GetError(){
  74. return $this->error;
  75. }
  76.  
  77. function GetDB($family, $key){
  78. $value = "";
  79.  
  80. $wrets = $this->Query("Action: Command\r\nCommand: database get $family $key\r\n\r\n");
  81.  
  82. if ($wrets){
  83. $value_start = strpos($wrets, "Value: ") + 7;
  84. $value_stop = strpos($wrets, "\n", $value_start);
  85. if ($value_start > 8){
  86. $value = substr($wrets, $value_start, $value_stop - $value_start);
  87. }
  88. }
  89. return $value;
  90. }
  91.  
  92. function PutDB($family, $key, $value){
  93. $wrets = $this->Query("Action: Command\r\nCommand: database put $family $key $value\r\n\r\n");
  94.  
  95. if (strpos($wrets, "Updated database successfully") != FALSE){
  96. return TRUE;
  97. }
  98. $this->error = "Could not updated database";
  99. return FALSE;
  100. }
  101.  
  102. function DelDB($family, $key){
  103. $wrets = $this->Query("Action: Command\r\nCommand: database del $family $key\r\n\r\n");
  104.  
  105. if (strpos($wrets, "Database entry removed.") != FALSE){
  106. return TRUE;
  107. }
  108. $this->error = "Database entry does not exist";
  109. return FALSE;
  110. }
  111.  
  112.  
  113. function GetFamilyDB($family){
  114. $wrets = $this->Query("Action: Command\r\nCommand: database show $family\r\n\r\n");
  115. if ($wrets){
  116. $value_start = strpos($wrets, "Response: Follows\r\n") + 19;
  117. $value_stop = strpos($wrets, "--END COMMAND--\r\n", $value_start);
  118. if ($value_start > 18){
  119. $wrets = substr($wrets, $value_start, $value_stop - $value_start);
  120. }
  121. $lines = explode("\n", $wrets);
  122. foreach($lines as $line){
  123. if (strlen($line) > 4){
  124. $value_start = strpos($line, ": ") + 2;
  125. $value_stop = strpos($line, " ", $value_start);
  126. $key = trim(substr($line, strlen($family) + 2, strpos($line, " ") - strlen($family) + 2));
  127. $value = trim(substr($line, $value_start));
  128. }
  129. }
  130. return $value;
  131. }
  132. return FALSE;
  133. }
  134. }
  135.  
  136. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement