2 namespace callnotifier;
10 public function __construct()
17 $this->config = new Config();
19 $result = $this->cliParser->parse();
20 } catch (\Exception $exc) {
21 $this->cliParser->displayError($exc->getMessage());
24 $this->fillConfig($this->config, $result);
27 if ($result->options['debug'] || $result->options['debugEdss1']) {
28 $debugLogger = new Logger_Debug();
29 $log->addLogger($debugLogger, '*');
30 if ($result->options['debugEdss1']) {
31 $debugLogger->edss1MsgOnly = true;
35 new Logger_CallEcho(), array('startingCall', 'finishedCall')
38 $callMonitor = new CallMonitor($this->config, $log);
40 $callMonitor->addDetailler(
41 new CallMonitor_Detailler_LDAP(
43 'host' => 'ldap.home.cweiske.de',
44 'basedn' => 'ou=adressbuch,dc=cweiske,dc=de',
45 'binddn' => 'cn=readonly,ou=users,dc=cweiske,dc=de',
46 'bindpw' => 'readonly'
50 $callMonitor->addDetailler(
51 new CallMonitor_Detailler_OpenGeoDb(
52 'mysql:host=dojo;dbname=opengeodb',
60 new Logger_CallFile('incoming.log', 'i', '40862'),
64 new Logger_CallFile('all.log'),
68 $handler = new MessageHandler($this->config, $log, $callMonitor);
70 if ($this->config->replayFile !== null) {
71 $sourceClass = 'callnotifier\Source_File';
73 $sourceClass = 'callnotifier\Source_Remote';
75 $source = new $sourceClass($this->config, $handler);
79 public function setupCli()
81 $p = new \Console_CommandLine();
82 $p->description = 'Notifies about incoming calls on an Auerswald COMpact 3000';
83 $p->version = '0.0.1';
89 'long_name' => '--host',
90 'description' => 'IP of COMpact 3000',
92 'action' => 'StoreString'
99 'long_name' => '--dump',
100 'description' => 'dump messages into file for later replay',
101 'help_name' => 'FILE',
102 'action' => 'StoreString'
108 'long_name' => '--replay',
109 'description' => "Replay messages from file instead from network",
110 'help_name' => 'FILE',
111 'action' => 'StoreString'
118 'short_name' => '-d',
119 'long_name' => '--debug',
120 'description' => "Debug mode: Echo all received messages and events",
121 'action' => 'StoreTrue'
127 'short_name' => '-e',
128 'long_name' => '--debug-edss1',
129 'description' => "Debug mode: Show EDSS1 messages only",
130 'action' => 'StoreTrue'
134 $this->cliParser = $p;
137 protected function fillConfig($config, $result)
139 $config->setIfNotEmpty('host', $result->options['host']);
140 $config->setIfNotEmpty('dumpFile', $result->options['dumpFile']);
141 $config->setIfNotEmpty('replayFile', $result->options['replayFile']);