snom_tel.search.ch_lookup
Snom tel.search.ch lookup
Snom Phones are able to call Action URLs on incomin calls.
Just put this line into: Setup → Action URL Settings → Incoming call:
http://www.spacerat.ch/call.php?caller=$remote&line=$local
<?php // Adressabfrage via tel.search.ch v1.0 // Siehe http://picks.ch/voip-telefon-snom-370/ // Server interessiert nicht. Wir brauchen die Rufnummer. $tmp = explode('@', $_GET['caller']); $caller = $tmp[0]; $origin = $caller; askTelsearch($caller); // Falls wir keine Resultate haben verkürzen wir die Rufnummer um max. 3 Ziffern. // Eventuell stammt der Anruf aus einem Durchwahlbereich. for ($i = 1; $i <= 3 && count($name[1]) == 0; $i++) { $caller = substr($caller, 0, strlen($caller)-1); $modcaller = true; askTelsearch($caller); } $body = ''; $title = 'Anruf von '.$origin; // Mehrere Resultate für diese Rufnummer. // Wir zeigen alle Namen als Liste. if (count($name[1]) > 1) { $title .= ' ('.count($name[1]).' Resultate)'; $i = 0; if ($modcaller) { $body .= 'Keine exakten Treffer!!!<br/>'; } foreach ($name[1] as $eintrag) { $body .= $eintrag; if ($modcaller) { $body .= ' ('.$phone[1][$i].')'; } $body .= '<br/>'; $i++; } // Nur 1 Resultat für diese Rufnummer. // Wir zeigen die vollständige Adresse. } elseif (count($name[1]) == 1) { preg_match_all('/<content\ type=\"text\">(.*?)<\/content>/i', $atom, $single); if ($modcaller) { $body .= 'Keine exakten Treffer!!!<br/>'; } $body .= $single[1][0]; } else { $body = 'Keine Resultate gefunden :-('; } // XML für das SNOM 370 ausgeben echo '<?xml version="1.0" encoding="UTF-8"?>'; ?><SnomIPPhoneText> <Title><?=$title?></Title> <Prompt><?=$title?></Prompt> <Text> <?=$body?> </Text> </SnomIPPhoneText> <?php // Funktion zur API-Abfrage von tel.search.ch function askTelsearch($caller) { global $atom, $name, $phone; $atom = file_get_contents("http://tel.search.ch/api/?was=$caller"); $atom = str_replace("\n", '<br/>', $atom); $atom = utf8_encode($atom); $offset = strpos($atom, '<entry>', $offset); if ($offset) { preg_match_all('/<title\ type=\"text\">(.*?)<\/title>/i', $atom, $name, PREG_PATTERN_ORDER, $offset); preg_match_all('/<br\/>\ *\*{0,1}([0-9 ]*?)<\/content>/i', $atom, $phone, PREG_PATTERN_ORDER, $offset); } }
credits goes to: http://geekbox.ch/voip-telefon-snom-370/ Author: Matthias.
snom_tel.search.ch_lookup.txt · Last modified: 2016/09/15 11:34 by admin