[Eisfair] [e1] asterisk-dahdi-hfcs mit 2 Karten

Stefan Welte post at stefan-welte.de
Mi Apr 20 04:38:13 CEST 2016


Hallo Holger,

Am 14.04.2016 um 23:32 schrieb Holger Bruenjes:
> Doch jetzt, dass kommt daher, das wenn dahdi gestoppt wird und
> Asterisk mit dahdi Modulen laeuft wird asterisk angehalten und ein
> Skript abgelegt um die gestoppten Dienste beim start von dahdi
> wieder zu starten.
> 
> Wenn Du nun aber asterisk startest, startet der dahdi mit, wenn
> erforderlich, so schliesst sich da leider der Kreis, ich werde das
> Skript beim Start vom Asterisk loeschen.

jetzt ist besser, wenn ich auch nicht weiss, wie du das gelöst hast. :)
Denn meine Vermutung, nun klappt der Start von asterisk nicht mehr, weil dahdi noch nicht läuft und erst von
Hand angeworfen werden muss, ist nicht eingetroffen:
> root at eis2 2.7.1:~ # /etc/init.d/asterisk stop
>  * Stopping Asterisk ...                               [  OK  ]
>  * Stopping Asterisk Webinterface ...                  [  OK  ]
> root at eis2 2.7.1:~ # /etc/init.d/dahdi stop
>  * Stopping Asterisk ...                               [  OK  ]
>  * Unloading DAHDI hardware modules:                   [  OK  ]
> root at eis2 2.7.1:~ # /etc/init.d/asterisk start
>  * Loading DAHDI hardware modules:  dahdi_hfcs:        [  OK  ]
>  * Running dahdi_cfg:                                  [  OK  ]
>  * Starting Asterisk ...
> Unable to access the running directory (Permission denied).  Changing to '/' for compatibility.                                                                    [  OK  ]
>  * Starting Asterisk Webinterface ...                  [  OK  ]
> root at eis2 2.7.1:~ #


Bzgl. Webinterface habe ich noch ein paar Ideen:
1. In /var/lib/asterisk/webinterface/htdocs/config.php ist in Zeile 23:
> 23    $url = 'https://'.$_SERVER['HTTP_HOST'];
das "URL-Protokoll" fix gesetzt. Falls ASTERISK_WEBINTERFACE_FORCE_SSL=no gesetzt, passen die Links zu den
Details nicht. (SOLL: http, IST:https). Entweder sollte das Protokoll von der URL getrennt werden oder die
Links in /var/lib/asterisk/webinterface/htdocs/modules/protocol/index.php statt absolut relativ sein. Bin
mir aber nicht sicher, welcher Weg sinnvoller ist.

2. In /var/lib/asterisk/webinterface/htdocs/modules/protocol/index.php die Einträge pro Seite konfigurierbar
machen über einen Parameter:
> 145     $maxPerPage = $ASTERISK_WEBINTERFACE_MPP;
Fixe 20 sind mir zu wenig, speziell vor dem Hintergrund, dass z.B. die Filterfunktion "Ausgegangene Anrufe"
nach der maxperpage-Selektion stattfindet. Es kommt vor, dass auf Seite 1 gar kein Eintrag erscheint,
auf Seite 2 jedoch zehn. Wenn die cdr-csv-Datei sehr gross ist, ist die jetzige Vorgehensweise die rechen-
leistungschonendere, vermute ich. Falls ich falsch vermute, könnte man auch zuerst alle "Ausgehenden Anrufe"
filtern und danach maxperpage machen...

3. In /var/lib/asterisk/webinterface/htdocs/modules/protocol/index.php die Spaltenbeschriftung erweitern:
> 136     $t->setCol("MSN (int.)", "header");
> 137     $t->setCol("Rufrichtung", "header");
> 138     $t->setCol("CallerID (ext.)", "header");
Schön wäre, wenn die Einträge/Pfeile unter Rufrichtung zentriert wären, aber dazü müsste man sich wohl eher
übel mit /var/lib/asterisk/webinterface/htdocs/functionsOutput.inc.php näher auseinandersetzen:
> 153                 if (preg_match("/header/", $col["params"])) {
> 154                     $start_tagname = "th id=\"".$this->thId."\"";
> 155                     $end_tagname ='th';
> 156                     if($this->innerBorder) $class = "border_bottom ";
> 157                 } elseif (empty($col["params"])) {
> 158                     $style = '';
> 159                     $start_tagname = "td id=\"".$this->tdId."\"";
> 160                     $end_tagname ='td';
> 161                 } else {
> 162                     $class = $col["params"];
> 163                     $start_tagname = "td id=\"".$this->tdId."\"";
> 164                     $end_tagname ='td';
> 165                 }

4. In /var/lib/asterisk/webinterface/htdocs/modules/protocol/index.php wird die Uhrzeit statt in TIME_ZONE
(base-Parameter) in UTC dargestellt.

5. In /var/lib/asterisk/webinterface/htdocs/modules/protocol/index.php bei Detailanzeige ein zusätzliches
Feld, über welchen Weg das Telefonat ging einfügen:
>  82     $t->setRow();
>  83     $t->setCol("Via:", "header");
>  84     $t->setCol($call["dstchannel"]);

6. Ein zusätzlicher Menüpunkt (linke Spalte) mit allen aktiven internen Telefonen, welcher eine einfache
Liste anzeigt:
Alle Telefone mit ASTERISK_PHONES_X_ACTIVE='yes':
ASTERISK_PHONES_X_MSN='12344' : ASTERISK_PHONES_X_OUTGOING_NAME='SIP-Telefon EG'
ASTERISK_PHONES_X_MSN='12345' : ASTERISK_PHONES_X_OUTGOING_NAME='ISDN-Telefon OG'
...

ggf. noch eine erweiterte Liste, welche weitere interessante Parameter wie z.B.
ASTERISK_PHONES_X_OUTGOING_SIP
ASTERISK_PHONES_X_OUTGOING_IAX
ASTERISK_PHONES_X_OUTGOING_MSN
enthält.

Gruss,
Stefan

PS: die Ideen sind nicht geordnet, manche leicht, manche aufwändig zu implementieren. Die
Zeilennummerierungen sind (hoffentlich) exakt bzgl. der Originaldateien.


Mehr Informationen über die Mailingliste Eisfair