source: jabberbot/jabber.php @ 1

Revision 1, 21.2 KB checked in by henning, 2 years ago (diff)

added jabberbot project

  • Property svn:executable set to *
Line 
1#!/usr/bin/php
2<?php
3    require "class.jabber.php";
4
5    error_reporting(0);
6
7    $trusted_users = array("helios@cyb0rg.org");
8    $trust_users = array();
9    $check_hosts = array("adesiv.de", "quasar-net.de", "hellzilla.de", "konsulschmidt.de");
10    $rooms = array("blackhole@conference.cyb0rg.org");
11
12    $tel_nr["04211676136"] = "helios@cyb0rg.org";
13    $tel_nr["04211676379"] = "anykey@quasar-net.de";
14
15#    $mysql_host = "localhost";
16#    $mysql_user = "mysqluser";
17#    $mysql_pass = "mysqlpass";
18#    $mysql_dtba = "datenbank";
19
20    $owner = "helios@cyb0rg.org";
21
22    $online_msg = "foo";
23    $logdir = "/home/helios/src/yoda/logs";
24    $logday = "";
25
26    $JABBER = new Jabber;
27    $JABBER->server = "server.de";
28    $JABBER->port = "5222";
29    $JABBER->username = "user";
30    $JABBER->password = "pewe";
31
32    $JABBER->iq_version_name = "foobot";
33    $JABBER->iq_version_version = "0.01";
34    $JABBER->iq_version_os = "funix";
35
36    $JABBER->resource = "foobar";
37
38    $JABBER->enable_logging = true;
39    $JABBER->log_filename = "logfile.txt";
40    $JABBER->Connect() or die("Couldn't connect!");
41    $JABBER->SendAuth() or die("Couldn't authenticate!");
42    $JABBER->SendPresence(NULL, NULL, $online_msg);
43
44    foreach($rooms as $room)
45    {
46        $JABBER->SendPacket("<presence to=\"" . $room . "/" . $JABBER->username . "\" xml:lang=\"en\">\n<x xmlns=\"http://jabber.org/protocol/muc\" />\n</presence>\n");
47    }
48
49    function chkserver($host, $port)
50    { 
51        $hostip = @gethostbyname($host);
52
53        if ($hostip == $host)
54        {
55            return false;
56        }
57        else
58        {
59            if (!$x = @fsockopen($hostip, $port, $errno, $errstr, 5))
60            {
61                return false;
62            }
63            else
64            {
65                return true;
66
67                if ($x)
68                {
69                    @fclose($x);
70                }
71            } 
72        }
73    }
74
75    function gethostbyname6($host, $try_a = false)
76    {
77        $dns = gethostbynamel6($host, $try_a);
78        if ($dns == false) { return false; }
79        else { return $dns[0]; }
80    }
81
82    function gethostbynamel6($host, $try_a = false)
83    {
84        $dns6 = dns_get_record($host, DNS_AAAA);
85
86        if ($try_a == true)
87        {
88            $dns4 = dns_get_record($host, DNS_A);
89            $dns = array_merge($dns4, $dns6);
90        }
91        else
92        {
93            $dns = $dns6;
94        }
95
96        $ip6 = array();
97        $ip4 = array();
98
99        foreach ($dns as $record)
100        {
101            if ($record["type"] == "A")
102            {
103                $ip4[] = $record["ip"];
104            }
105
106            if ($record["type"] == "AAAA")
107            {
108                $ip6[] = $record["ipv6"];
109            }
110        }
111
112        if (count($ip6) < 1)
113        {
114            if ($try_a == true)
115            {
116                if (count($ip4) < 1)
117                {
118                    return false;
119                }
120                else
121                {
122                    return $ip4;
123                }
124            }
125            else
126            {
127                return false;
128            }
129        }
130        else
131        {
132            return $ip6;
133        }
134    }
135
136    function zufallszahl($x = 0, $y = 1000)
137    {
138        list($u, $s) = explode(" ", microtime());
139        mt_srand((float) $s + ((float) $u * 100000));
140        $z = mt_rand($x, $y);
141        return $z;
142    }
143
144    function extractstring($str, $start, $end)
145    {
146        $str_low = strtolower($str);
147        $pos_start = strpos($str_low, $start);
148        $pos_end = strpos($str_low, $end, ($pos_start + strlen($start)));
149
150        if (($pos_start !== false) && ($pos_end !== false))
151        {
152            $pos1 = $pos_start + strlen($start);
153            $pos2 = $pos_end - $pos1;
154            return substr($str, $pos1, $pos2);
155        }
156    }
157
158    function lookuptel($number)
159    {
160        $input = @file_get_contents("http://www1.dasoertliche.de/?form_name=search_inv&ph=" . $number);
161        $input = extractstring($input, 'class="entry">', '</a>');
162        return $input;
163    }
164
165    $pid = pcntl_fork();
166
167    if ($pid == -1)
168    {
169        exit(1);
170    }
171    elseif($pid)
172    {
173#       $link = mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die("Could not connect: " . mysql_error());
174#       mysql_select_db($mysql_dtba) or die("Could not select database");
175
176        function Handler_presence_subscribed($message)
177        {
178            global $JABBER;
179
180            $jid = $JABBER->GetInfoFromPresenceFrom($message);
181            $JABBER->RosterUpdate();
182        }
183
184        function Handler_presence_available($message)
185        {
186            global $JABBER;
187            global $trust_users;
188            global $trusted_users;
189
190            $jid = $JABBER->StripJID($JABBER->GetInfoFromPresenceFrom($message));
191            $jid = split("/", $jid);
192            $jid = $jid[0];
193
194            if(in_array($jid, $trusted_users))
195            {
196                if(!in_array($jid, $trust_users))
197                {
198#                   $fp = mysql_query("SELECT * FROM `status` WHERE `jid` = '" . $jid . "';") or die("Failed Query");
199#                   $lines = mysql_num_rows($fp);
200
201#                   if($lines < 1)
202#                   {
203#                       $fp = mysql_query("INSERT INTO `status` ( `id` , `jid` , `status` ) VALUES (NULL , '" . $jid . "', '1');") or die("Failed Query");
204#                   }
205#                   else
206#                   {
207#                       $fp = mysql_query("UPDATE `status` SET `status` = '1' WHERE `status`.`jid` ='" . $jid . "' LIMIT 1 ;") or die("Failed Query");
208#                   }
209
210                    $trust_users[] = $jid;
211                }
212            }
213        }
214
215        function Handler_presence_unavailable($message)
216        {
217            global $JABBER;
218            global $trust_users;
219            global $trusted_users;
220
221            $jid = $JABBER->StripJID($JABBER->GetInfoFromPresenceFrom($message));
222
223            $jid = split("/", $jid);
224            $jid = $jid[0];
225
226            if(in_array($jid, $trusted_users))
227            {
228                if(in_array($jid, $trust_users))
229                {
230#                   $fp = mysql_query("SELECT * FROM `status` WHERE `jid` = '" . $jid . "';") or die("Failed Query");
231#                   $lines = mysql_num_rows($fp);
232
233#                   if($lines < 1)
234#                   {
235#                   }
236#                   else
237#                   {
238#                       $fp = mysql_query("UPDATE `status` SET `status` = '0' WHERE `status`.`jid` ='" . $jid . "' LIMIT 1 ;") or die("Failed Query");
239#                   }
240
241                    foreach($trust_users as $trust_user)
242                    {
243                        if($jid != $trust_user)
244                        {
245                            $trust_users2[] = $trust_user;
246                        }
247                    }
248                    $trust_users = $trust_users2;
249                }
250            }
251        }
252
253        function Handler_presence_subscribe($message)
254        {
255            global $JABBER;
256
257            $jid = $JABBER->GetInfoFromPresenceFrom($message);
258            $JABBER->SubscriptionAcceptRequest($jid);
259            $JABBER->RosterUpdate;
260            $JABBER->Subscribe($jid);
261        }
262
263        function Handler_message_groupchat($message)
264        {
265            global $JABBER;
266            global $check_hosts;
267            global $trusted_users;
268            global $trust_users;
269            global $owner;
270            global $done;
271            global $logdir;
272
273            $from2 = $JABBER->GetInfoFromMessageFrom($message);
274
275            $from_temp = split("/", $from2);
276            $from = $from_temp[0];
277            $user = $from_temp[1];
278
279            $msg = $JABBER->GetInfoFromMessageBody($message);
280
281            if($done == true)
282            {
283                $timestmp = date("Y-m-d H:i:s");
284                $logday2 = date("Y-m-d");
285
286                if($logday2 != $logday)
287                {
288                    $logday = $logday2;
289
290                   
291                    if(!is_dir($logdir . "/" . $from))
292                    {
293                        system("mkdir -p " . $logdir . "/" . $from);
294                    }
295
296                    @fclose($handle);
297                    $handle = fopen($logdir . "/" . $from . "/" . $logday . ".log", "a");
298                }
299
300                ob_start();
301                system('perl << EOF
302                \$msg = "' . addslashes($msg) . '";
303                \$msg =~ s/\n/\n>> /g;
304                print \$msg;');
305                $msg2 = ob_get_contents();
306                ob_end_clean();
307
308                fwrite($handle, $timestmp . " " . $from . ": <" . $user . "> " . $msg2 . "\n");
309            }
310
311            if(preg_match("/ has set the subject to: /i", $msg))
312            {
313                $done = true;
314            }
315            elseif($msg == $JABBER->username . " has become available")
316            {
317                $done = true;
318            }
319            elseif(preg_match('/^!topic (.*)/i', $msg) && ($done == true) && ($user != $JABBER->username))
320            {
321                $msg2 = str_replace("!topic ", "", $msg);
322                $JABBER->SendPacket("<message to=\"" . $from . "\" type=\"groupchat\"><subject>" . $msg2 . "</subject></message>");
323            }
324            elseif(($msg == "!modme") && ($done == true) && ($user != $JABBER->username))
325            {
326                $JABBER->SendPacket("<iq to=\"" . $from . "\" type=\"set\"><query xmlns=\"http://jabber.org/protocol/muc#admin\"><item nick=\"" . $user . "\" role=\"moderator\" /></query></iq>");
327            }
328            elseif(($msg == "!help") && ($done == true) && ($user != $JABBER->username))
329            {
330                $helptext = "!fortune - shows random fortune\n!quote - shows random quote\n";
331                $helptext .= "!moo <name> - moo at <name>\n!wikipedia <pattern> - returns link of the wikipedia article\n";
332                $helptext .= "!google <pattern> - returns link of the first google hit\n";
333                $helptext .= "!topic <pattern> - sets topic to <pattern>\n!help - returns this helptext\n";
334                $helptext .= "!gbo - shows a quote of germanbash.org\n!number - shows a random number\n";
335                $helptext .= "!pi - shows pi\n!date - shows actually date\n!bash - shows quote of bash.org\n";
336                $helptext .= "!wetter <pattern> - search temperature for the PLZ of <pattern>";
337
338                $helptext = htmlentities($helptext);
339
340                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode($helptext)));
341            }
342            elseif (($msg == "!pi") && ($done == true) && ($user != $JABBER->username))
343            {
344                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode(pi())));
345            }
346            elseif (($msg == "!fortune") && ($done == true) && ($user != $JABBER->username))
347            {
348                ob_start();
349                system("/usr/games/fortune -aeo");
350                $fortune = rtrim(ob_get_contents());
351                ob_end_clean();
352
353                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode($fortune)));
354            }
355            elseif (($msg == "!number") && ($done == true) && ($user != $JABBER->username))
356            {
357                ob_start();
358                system("makepasswd --string=0123456789 --chars 10");
359                $number = rtrim(ob_get_contents());
360                ob_end_clean();
361
362                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode($number)));
363            }
364            elseif (($msg == "!gbo") && ($done == true) && ($user != $JABBER->username))
365            {
366                $url = "http://german-bash.org/action/random";
367
368                $inputfile = `wget -q -O - $url`;
369                $temp = extractstring($inputfile, '<div class="zitat">', '</div>');
370                $temp = strip_tags($temp);
371                $temp = utf8_decode($temp);
372                $temp = html_entity_decode($temp);
373                $temp = str_replace("\n", "", $temp);
374                $temp = htmlspecialchars($temp);
375                $gbo = trim($temp);
376
377                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode($gbo)));
378            }
379            elseif (($msg == "!bash") && ($done == true) && ($user != $JABBER->username))
380            {
381                $url = "http://bash.org/?random";
382               
383                $inputfile = `wget -q -O - $url`;
384                $temp = extractstring($inputfile, '<p class="qt">', '</p>');
385                $temp = strip_tags($temp);
386                $temp = html_entity_decode($temp);
387                $temp = htmlspecialchars($temp);
388                $bash = trim($temp);
389
390                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode($bash)));
391            }
392            elseif (($msg == "!quote") && ($done == true) && ($user != $JABBER->username))
393            {
394                $tmpfile = "/var/tmp/quotes.tmp";
395                $url = "https://yoda@cyb0rg.org:T4qKjwnBJyZWWpPd@cyb0rg.org/trac/wiki/Zitate?format=txt";
396
397                if(@filemtime($tmpfile) <= time() - 900 || @filesize($tmpfile) == 0)
398                {
399                    $inputfile = @file_get_contents($url);
400
401                    if($inputfile != "")
402                    {
403                        $tmpfiles = @fopen($tmpfile, w);
404                        flock($tmpfiles, LOCK_EX);
405                        fwrite($tmpfiles, $inputfile);
406                        flock($tmpfiles, LOCK_UN);
407                        fclose($tmpfiles);
408                    }
409                }
410
411                $endcontent = "";
412
413                $content = @file($tmpfile);
414                $content = array_reverse($content);
415
416                $k = 0;
417
418                foreach($content as $cont)
419                {
420                    $k++;
421                    $endcontent .= $cont;
422                }
423
424                $content = $endcontent;
425                $contentline = split("\n", $content);
426
427                $zahl = zufallszahl(0, $k);
428
429                $contline = $contentline[$zahl];
430                $contline = str_replace("[[BR]]", "\n    ", $contline);
431                $typus = split("\|\|", $contline);
432
433                if($typus[4] != "")
434                {
435                    $quote = utf8_decode($typus[4]);
436                }
437
438                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode($quote)));
439            }
440            elseif (($msg == "!date") && ($done == true) && ($user != $JABBER->username))
441            {
442                $date = date("d.m.Y W.") . " Woche " . date("H:i:s");
443
444                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode($date)));
445            }
446            elseif (($msg == "cow") && ($done == true) && ($user != $JABBER->username))
447            {
448                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode("moo!")));
449            }
450            elseif (preg_match('/^!google (.*)/i', $msg) && ($done == true) && ($user != $JABBER->username))
451            {
452                $msg2 = str_replace("!google ", "", $msg);
453
454                ob_start();
455                system("ruby << EOF
456                require 'rubygems'
457                require 'mechanize'
458               
459                agent = WWW::Mechanize.new
460                page = agent.get(\"http://www.google.com/\")
461                search_form = page.forms.with.name(\"f\").first
462                search_form.q = \"" . $msg2 . "\"
463                agent.redirect_ok = false
464                results = agent.submit(search_form, search_form.buttons.with.name(\"btnI\").first)
465                puts results.header[\"location\"]");
466                $google = rtrim(ob_get_contents());
467                ob_end_clean();
468
469                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode($google)));
470            }
471            elseif (preg_match('/^!wikipedia (.*)/i', $msg) && ($done == true) && ($user != $JABBER->username))
472            {
473                $msg2 = str_replace("!wikipedia ", "", $msg);
474
475                ob_start();
476                system("ruby << EOF
477                require 'rubygems'
478                require 'mechanize'
479               
480                agent = WWW::Mechanize.new
481                agent.user_agent_alias = 'Mac Safari' # wikipedia doesn't like bots
482                page = agent.get(\"http://de.wikipedia.org/wiki/Hauptseite\")
483                search_form = page.forms.first
484                search_form.search = \"" . $msg2 . "\"
485                agent.redirect_ok = false
486                results = agent.submit(search_form, search_form.buttons.with.name(\"go\").first)
487                puts results.header[\"location\"]");
488                $wikipedia = rtrim(ob_get_contents());
489                ob_end_clean();
490
491                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode($wikipedia)));
492            }
493            elseif(preg_match('/^!wetter (.*)/i', $msg) && ($done == true) && ($user != $JABBER->username))
494            {
495                $msg2 = str_replace("!wetter ", "", $msg);
496
497                if(is_numeric($msg2))
498                {
499                    $url = "http://wetter.com/v2/?SID=&LANG=DE&LOC=7004&LOCFROM=0001&LOCFULL=7000&x=0&y=0&search=" . $msg2;
500               
501                    $inputfile = file_get_contents($url);
502                    $inputfile = `wget -q -O - '$url'`;
503                    $temp = extractstring($inputfile, '<span class="temp_observe">', '</span>');
504                    $temp = strip_tags($temp);
505                    $temp = html_entity_decode($temp);
506                    $temp = htmlspecialchars($temp . " °C");
507                    $wetter = trim($temp);
508                }
509                else
510                {
511                    $wetter = "please give PLZ";
512                }
513
514                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode($wetter)));
515            }
516            elseif (preg_match('/^!moo (.*)/i', $msg) && ($done == true) && ($user != $JABBER->username))
517            {
518                $msg2 = str_replace("!moo ", "", $msg);
519
520                if($msg2 == $JABBER->username)
521                {
522                  $numsg = "fuck you!";
523                }
524                elseif($msg2 == $user)
525                {
526                  $numsg = "moo at yourself...";
527                }
528                else
529                {
530                  $numsg = "i moo at you, " . $msg2;
531                }
532
533                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode($numsg)));
534            }
535            elseif (($msg == "hello " . $JABBER->username) && ($done == true) && ($user != $JABBER->username))
536            {
537                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode("hello")));
538            }
539            elseif (($msg == "badger badger badger badger badger badger badger badger badger badger badger badger") && ($done == true) && ($user != $JABBER->username))
540            {
541                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode("mushroom mushroom!")));
542            }
543            elseif (($msg == "snake") && ($done == true) && ($user != $JABBER->username))
544            {
545                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode("Ah snake a snake! Snake, a snake! Ooooh, it's a snake!")));
546            }
547            elseif (($msg == "moo?") && ($done == true) && ($user != $JABBER->username))
548            {
549                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode("To moo, or not to moo, that is the question. Whether 'tis nobler in the mind to suffer the slings and arrows of outrageous fish...")));
550            }
551            elseif (($msg == "martian") && ($done == true) && ($user != $JABBER->username))
552            {
553                $JABBER->SendMessage($from, "groupchat", NULL, array("body" => utf8_encode("Don't run! We are your friends!")));
554            }
555        }
556
557        function Handler_message_chat($message)
558        {
559            global $JABBER;
560            global $check_hosts;
561            global $trusted_users;
562            global $trust_users;
563            global $owner;
564            global $pid;
565
566            $from = $JABBER->GetInfoFromMessageFrom($message);
567
568            $from = split("/", $from);
569            $from = $from[0];
570
571            $message = $JABBER->GetInfoFromMessageBody($message);
572
573            if(($message == "die") && ($from == $owner))
574            {
575                $JABBER->Disconnect();
576#               mysql_close($link);
577                fclose($fp);
578                posix_kill($pid, SIGTERM);
579                die("");
580            }
581            elseif($message == "fortune")
582            {
583                ob_start();
584                system("/usr/games/fortune -aeo");
585                $msg = rtrim(ob_get_contents());
586                ob_end_clean();
587                $JABBER->SendMessage($from, "chat", NULL, array("body" => utf8_encode($msg)));
588            }
589            elseif($message == "uptime")
590            {
591                ob_start();
592                system("/usr/bin/uptime");
593                $msg = rtrim(ob_get_contents());
594                ob_end_clean();
595                $JABBER->SendMessage($from, "chat", NULL, array("body" => utf8_encode($msg)));
596            }
597            elseif($message == "hello")
598            {
599                $JABBER->SendMessage($from, "chat", NULL, array("body" => utf8_encode("hi")));
600            }
601            elseif($from == "hulk@chaosnase.de")
602            {
603                $JABBER->SendMessage("blackhole@conference.cyb0rg.org", "groupchat", NULL, array("body" => utf8_encode(htmlentities($message))));
604            }
605            elseif(preg_match('/^host6 (.*)/i', $message))
606            {
607                $msg = split(" ", $message);
608                $msg = gethostbyname6($msg[1]);
609                $JABBER->SendMessage($from, "chat", NULL, array("body" => utf8_encode($msg)));
610            }
611            elseif(preg_match('/^host (.*)/i', $message))
612            {
613                $msg = split(" ", $message);
614                $msg = gethostbyname($msg[1]);
615                $JABBER->SendMessage($from, "chat", NULL, array("body" => utf8_encode($msg)));
616            }
617            elseif(preg_match('/^whois (.*)/i', $message))
618            {
619                $msg = split(" ", $message);
620                ob_start();
621                system("whois '" . $msg[1] . "'");
622                $msg = rtrim(ob_get_contents());
623                ob_end_clean();
624                $JABBER->SendMessage($from, "chat", NULL, array("body" => utf8_encode($msg)));
625            }
626            elseif($message == "hello")
627            {
628                $JABBER->SendMessage($from, "chat", NULL, array("body" => utf8_encode("hi")));
629            }
630            elseif($message == "help")
631            {
632                $msg = "uptime - shows actual server uptime\n";
633                $msg .= "fortune - shows random fortune\n";
634                $msg .= "host hostname - lookup A-Record\n";
635                $msg .= "host6 hostname - lookup AAAA-Record\n";
636                $msg .= "whois hostname - makes whois on hostname";
637
638                if(in_array($from, $trust_users))
639                {
640                    $msg .= "\nchecksites - check availibility of websites";
641                }
642
643                if($from == $owner)
644                {
645                    $msg .= "\ndie - kills bot";
646                }
647
648                $JABBER->SendMessage($from, "chat", NULL, array("body" => utf8_encode($msg)));
649            }
650            elseif(($message == "checksites") && (in_array($from, $trust_users)))
651            {
652                $msg = "";
653
654                foreach($check_hosts as $check_host)
655                {
656                    if(chkserver($check_host, 80))
657                    {
658                        $msg .= $check_host . " (" . gethostbyname($check_host) . ") answered\n";
659                    }
660                    else
661                    {
662                        $msg .= $check_host . " (" . gethostbyname($check_host) . ") did NOT answer\n";
663                    }
664                }
665
666                $msg = rtrim($msg);
667
668                $JABBER->SendMessage($from, "chat", NULL, array("body" => utf8_encode($msg)));
669            }
670        }
671
672        $i = 0;
673
674        while(1 != 0)
675        {
676            $JABBER->CruiseControl(1);
677
678            if(($i%900 == 0) && ($i != 0))
679            {
680                foreach($check_hosts as $check_host)
681                {
682                    if(!chkserver($check_host, 80))
683                    {
684                        $msg .= $check_host . " (" . gethostbyname($check_host) . ") did NOT answer\n";
685                    }
686                }
687
688                if($msg != "")
689                {
690                    foreach($trust_users as $trust_user)
691                    {
692                        $JABBER->SendMessage($trust_user, "chat", NULL, array("body" => utf8_encode($msg)));
693                    }
694                }
695            }
696
697            $i++;
698        }
699
700        $JABBER->Disconnect();
701#       mysql_close($link);
702        posix_kill($pid, SIGTERM);
703        die("");
704    }
705    else
706    {
707        while($nummer = 1)
708        {
709            $fp = fsockopen("192.168.178.1", 1012, $errno, $errstr, 30);
710
711            if (!$fp)
712            {
713                die("$errstr ($errno)\n");
714            }
715
716            while($fp)
717            {
718                $in = fgets($fp, 128);
719                $in = split(";", $in);
720
721                if($in[1] == "RING")
722                {
723                    $lookedup = lookuptel($in[3]);
724
725                    if($lookedup != "")
726                    {
727                        $msg = "Incoming call from " . $in[3] . " (" . $lookedup . ")";
728                    }
729                    else
730                    {
731                        $msg = "Incoming call from " . $in[3];
732                    }
733
734                    global $tel_nr;
735
736                    if($tel_nr[$in[4]] != "")
737                    {
738                        $JABBER->SendMessage($tel_nr[$in[4]], "chat", NULL, array("body" => utf8_encode($msg)));
739                    }
740                }
741            }
742
743            @fclose($fp);
744        }
745    }
746?>
Note: See TracBrowser for help on using the repository browser.