<?xml version="1.0" encoding="UTF-8"?>
<wiki-pages type="array">
  <wiki-page>
    <can-be-changed-by-anybody type="boolean">false</can-be-changed-by-anybody>
    <created-at type="datetime">2010-02-26T10:02:24+01:00</created-at>
    <description>Import eines Telefonbuchs z.B Globales Firmentelefonbuch</description>
    <id type="integer">14</id>
    <page>h2. Konfiguration gemeinschaft.php

Einstellung in der Konfig-Datei @/etc/gemeinschaft/gemeinschaft.php@:

@$PB_IMPORTED_ENABLED    = true;@

h2. /tmp/gs-ldap-phonebook.tsv

Da das einzige Wildcard in LDAP-Abfragen * ist, kann so keine Suche mit Pattern implementiert
werden, die f&#252;r die Namens-Suche per Telefon-Ziffernblock notwendig w&#228;re. Aus diesem Grund besteht
die M&#246;glichkeit, ein Telefonbuch in Form einer TSV2-Datei zu importieren (die z.B. aus dem LDAP
exportiert wurde). Das Skript @/opt/gemeinschaft/sbin/gs-ldap-phonebook-import@ pr&#252;ft beim
Aufruf, ob die Datei @/tmp/gs-ldap-phonebook.tsv@ vorhanden ist. Erwartet wird eine TSV-Datei,
UTF-8 kodiert, mit den 4 folgenden Feldern:

bc. user_code lastname firstname number

Das Skript liest die Datei ein und speichert die Eintr&#228;ge in der Datenbank-Tabelle @pb_ldap@. Danach
werden aus der Tabelle alle Eintr&#228;ge &#228;lter als 2 Tage gel&#246;scht.

h3. Beispiel /tmp/gs-ldap-phonebook.tsv

bc. 1 &lt;tab&gt; Mustermann &lt;tab&gt; Hans &lt;tab&gt; 2001
2 &lt;tab&gt; Mustermann &lt;tab&gt; Petra &lt;tab&gt; 2002
3 &lt;tab&gt; Mustermann &lt;tab&gt; Teo &lt;tab&gt; 2003

h2. Cron

Um das Skript t&#228;glich per cron aufzurufen legt man (am besten auf dem Master) im Verzeichnis
@/etc/cron.d/@ eine Datei @gs-phonebook-import@ an, mit folgendem Inhalt:

bc. # run Gemeinschaft phonebook importer once every day at 4:45:
45 4 * * * root /opt/gemeinschaft/sbin/gs-ldap-phonebook-import@

h2. Hinweis

Nat&#252;rlich gibt das nur Sinn, wenn Sie auch ein Skript haben, das jeden Tag mit einiger Puffer-Zeit vorher
eine entsprechende Datei dort ablegt.</page>
    <title>Import eines externen Telefonbuchs</title>
    <updated-at type="datetime">2010-02-26T10:16:34+01:00</updated-at>
    <user-id type="integer">14</user-id>
  </wiki-page>
  <wiki-page>
    <can-be-changed-by-anybody type="boolean" nil="true"></can-be-changed-by-anybody>
    <created-at type="datetime">2010-02-26T09:35:12+01:00</created-at>
    <description>Interne Anrufer h&#246;ren Wartemusik in einer Queue. Externe Anrufer h&#246;ren nichts.</description>
    <id type="integer">13</id>
    <page>L&#246;sung:

/opt/gemeinschaft/etc/asterisk/e-internal.ael &#246;ffnen.


Diese Zeilen suchen:

else {
      Set(ring_instead_of_moh=);
      Progress();  // SIP: "183 Session Progress" with early media
                                }


Das Progress durch Answer ersetzen.

/opt/gemeinschaft/sbin/start-asterisk --dialplan

Jetzt sollte es gehen.

Hintergrund:

Du bekommst aus irgend einem Grund kein Early Media nach draussen.


</page>
    <title>Keine Wartemusik bei externen Anrufen</title>
    <updated-at type="datetime">2010-02-26T09:35:12+01:00</updated-at>
    <user-id type="integer">10</user-id>
  </wiki-page>
  <wiki-page>
    <can-be-changed-by-anybody type="boolean" nil="true"></can-be-changed-by-anybody>
    <created-at type="datetime">2010-02-04T17:34:43+01:00</created-at>
    <description>Wie bekomme ich eine AVM B1 PCI-Karte mit Gemeinschaft zum laufen.</description>
    <id type="integer">12</id>
    <page>Zuerst installiert man die Gemeinschaft ganz normal von der CD.

Anschlie&#223;end kann man pr&#252;fen, ob die AVM B1 PCI im System erkannt wird. Dazu gibt man auf der root-Shell "lspci" ein. Es werden alle PCI-Devices im System aufgelistet. Eine B1 sieht so aus (die Zahlen vorne k&#246;nnen variieren):

&lt;pre&gt;
00:09.0 Network controller: AVM Audiovisuelles MKTG &amp; Computer System GmbH B1 ISDN
&lt;/pre&gt;

Da der Linux-Kernel bereits Unterst&#252;tzung f&#252;r die aktiven AVM-Karten bietet, m&#252;ssen nur die capiutils und die libcapi20 installiert werden:

&lt;pre&gt;
aptitude install capiutils
&lt;/pre&gt;

Da die "capiutils" von der "libcapi20" abh&#228;ngig sind, kommt eine Frage, ob diese auch installiert werden soll. Dies ist nat&#252;rlich mit Ja ("y") zu beantworten. Die Pakete werden heruntergeladen und installiert. Danach muss man dem System noch bekannt machen, dass man eine B1 PCI benutzen m&#246;chte. Dazu muss man die Datei "/etc/isdn/capi.conf"  editieren. Das Kommentarzeichen vor "b1pci" muss entfernt werden:

&lt;pre&gt;
# card          file            proto   io      irq     mem     cardnr  options
#b1isa          b1.t4           DSS1    0x150   7       -       -       P2P
b1pci           b1.t4           DSS1    -       -       -       -
#c4             c4.bin          DSS1    -       -       -       -
#c4             -               DSS1    -       -       -       -
#c4             -               DSS1    -       -       -       -       P2P
#c4             -               DSS1    -       -       -       -       P2P
[&#8230;]
&lt;/pre&gt;

Gegebenenfalls muss f&#252;r einen Anlagenanschluss unter "options" noch "P2P" angegeben werden.

Nun fehlt nur noch das Firmware-File "b1.t4". Diese kann man aus dem Treiberpaket der B1 PCI f&#252;r SuSE Linux extrahieren. Zuerst l&#228;dt man sich den Treiber von AVM herunter:
ftp://ftp.avm.de/cardware/b1_pci/linux/suse.81/b1-suse8.1-03.10.02.tar.gz

Um nicht extra RPM unter Linux installieren zu m&#252;ssen, kann man diese Datei auch prima unter Windows mit 7-ZIP entpacken. Das gesuchte Firmware-File ist in der "c4l-b1-2003.01.28-1.i386.rpm" enthalten. Nach einen Entpack-L&#228;ufen (RPM -&gt; CPIO.gz -&gt; CPIO &#8230;) hat man die Firmware-Files unter usr/lib/isdn liegen.

Eine alternative Quelle f&#252;r "b1.t4" ist hier:
ftp://ftp.in-berlin.de/pub/capi4linux/firmware/b1/3-11-03/b1.t4

Diese Datei muss auf dem Gemeinschafts-Server unter "/usr/lib/isdn" abgelegt werden.

Anschlie&#223;end kann man den Server sicherheitshalber einmal neu starten. Nach dem Neustart kann man mit "capiinfo" testen, ob eine CAPI zur Verf&#252;gung steht. Die Ausgabe sollte so aussehen:

&lt;pre&gt;
Number of Controllers : 1
Controller 1:
Manufacturer: AVM GmbH
CAPI Version: 2.0
Manufacturer Version: 3.11-03  (49.19)
Serial Number: 0400576
BChannels: 2
Global Options: 0x00000039
   internal controller supported
   DTMF supported
   Supplementary Services supported
   channel allocation supported (leased lines)
B1 protocols support: 0x4000001f
   64 kbit/s with HDLC framing
   64 kbit/s bit-transparent operation
   V.110 asynconous operation with start/stop byte framing
   V.110 synconous operation with HDLC framing
   T.30 modem for fax group 3
B2 protocols support: 0x00000b1b
   ISO 7776 (X.75 SLP)
   Transparent
   LAPD with Q.921 for D channel X.25 (SAPI 16)
   T.30 for fax group 3
   ISO 7776 (X.75 SLP) with V.42bis compression
   V.120 asyncronous mode
   V.120 bit-transparent mode
B3 protocols support: 0x8000003f
   Transparent
   T.90NL, T.70NL, T.90
   ISO 8208 (X.25 DTE-DTE)
   X.25 DCE
   T.30 for fax group 3
   T.30 for fax group 3 with extensions

  0100
  0200
  39000000
  1f000040
  1b0b0000
  3f000080
  00000000 00000000 00000000 00000000 00000000 00000000
  01000001 00020000 00000000 00000000 00000000

Supplementary services support: 0x000003ff
   Hold / Retrieve
   Terminal Portability
   ECT
   3PTY
   Call Forwarding
   Call Deflection
   MCID
   CCBS
&lt;/pre&gt;

In Gemeinschaft wird die Karte als ISDN-Gateway eingerichtet. Der Typ ist nat&#252;rlich "Capi". Folgender W&#228;hlbefehl funktioniert:

&lt;pre&gt;
Capi/g1/{number:1}
&lt;/pre&gt;

Da die Karten C2 und C4 von AVM sehr &#228;hnlich zur B1 sind und ebenfalls vom Standard-Kernel erkannt werden, d&#252;rfte die Installation sehr &#228;hnlich zu dieser Anleitung sein. Unterschiede sind nat&#252;rlich in der Datei "/etc/isdn/capi.conf" und des benutzten Firmware-Files.

Viel Spa&#223; damit,
Dirk Markwardt
</page>
    <title>Gemeinschaft mit einer AVM B1 PCI-Karte</title>
    <updated-at type="datetime">2010-02-04T17:34:43+01:00</updated-at>
    <user-id type="integer">732</user-id>
  </wiki-page>
  <wiki-page>
    <can-be-changed-by-anybody type="boolean">true</can-be-changed-by-anybody>
    <created-at type="datetime">2010-01-03T18:37:36+01:00</created-at>
    <description>Provisioning mit Snom M3</description>
    <id type="integer">11</id>
    <page>Am Server in der Datei /etc/gemeinschaft/gemeinschaft.php folgende Einstellung &#228;ndern:

$SNOM_PROV_M3_ACCOUNTS=1; //Wert auf die Anzahl der vorhandenen mobilen Telefone &#228;ndern

DHCP Server gem&#228;&#223; Screencast von AMOOMA installieren.

Mehrere Telefone funktionieren nur wenn man gem&#228;&#223;
https://bugs.launchpad.net/gemeinschaft/+bug/389927
die Datenbank &#228;ndert.

mysql -uroot;
use asterisk;
ALTER TABLE `phones` CHANGE `mac_addr` `mac_addr` varchar(14) character set ascii NOT NULL default '';
quit


L&#246;schen der MAC Adresse aus der Datenbank: (Nur erforderlich wenn man sich mit einem Snom angemeldet hat bevor man die Datenbank ge&#228;ndert hat)

mysql -uroot;
use asterisk;
SELECT * FROM phones;

Die id vom M3 merken!

DELETE FROM phones WHERE id = 1; //wobei die Nummer durch die tats&#228;chliche id ersetzt werden mu&#223;
Datenbank mit 
quit;
verlassen</page>
    <title>Provisioning mit Snom M3</title>
    <updated-at type="datetime">2010-01-03T23:33:49+01:00</updated-at>
    <user-id type="integer">98</user-id>
  </wiki-page>
  <wiki-page>
    <can-be-changed-by-anybody type="boolean">false</can-be-changed-by-anybody>
    <created-at type="datetime">2009-11-29T18:39:15+01:00</created-at>
    <description>Einige SIP-Provider senden bei kommenden Anrufen die Zielrufnummer in der To-Header-URI statt in der Request-URI des INVITE-Requests.</description>
    <id type="integer">10</id>
    <page>Einige SIP-Provider &#252;bermitteln bei eingehenden Anrufen die Zielrufnummer in der To-Header-URI statt in der Request-URI des INVITE-Requests im SIP-Protokoll. Hier eine technische Betrachtung dieser Vorgehensweise:

"Request-URI vs. To-Header-URI beim eingehenden Routing in SIP":http://www.kempgen.net/voip/sip-request-uri-vs-to-header-routing.html


 
.
</page>
    <title>Eingehendes Routing anhand der To-Header-URI</title>
    <updated-at type="datetime">2009-11-29T18:42:25+01:00</updated-at>
    <user-id type="integer">3</user-id>
  </wiki-page>
  <wiki-page>
    <can-be-changed-by-anybody type="boolean">false</can-be-changed-by-anybody>
    <created-at type="datetime">2009-11-11T10:59:10+01:00</created-at>
    <description>Grandstream Firmware Update am Beispiel der Firmware Version 1.2.2.14.</description>
    <id type="integer">9</id>
    <page>*Folgende Befehle als @root@ in der Konsole eingeben.*

h3. @unzip@ installieren:

bc. aptitude install unzip

h3. Firmware herunterladen und entpacken:

bc. cd /opt/gemeinschaft/htdocs/prov/grandstream/fw
mkdir 01.02.02.14
cd 01.02.02.14
wget -c http://www.grandstream.com/DOWNLOAD/FIRMWARE/BT200_GXP/Release_BT200_GXP_1.2.2.14.zip
unzip Release_BT200_GXP_1.2.2.14.zip
rm -f Release_BT200_GXP_1.2.2.14.zip (optional)

h3. Ein Grandstream Telefon updaten (zum testen):

Man sollte erstmal ein Grandstream Telefon testen. Hier im Beispiel wird ein Grandstream mit dem Nobody-User @950016@ verwendet.

bc. /opt/gemeinschaft/scripts/gs-phones-firmware-upgrade --by-exten=950016 --vers=01.02.02.14
/opt/gemeinschaft/scripts/gs-prov-phone-checkcfg --ext=950016

h3. Alle Grandstream Telefone updaten:

Wenn ihr mit der Firmware Version zufrieden seit, k&#246;nnt ihr in der @/etc/gemeinschaft/gemeinschaft.php@ die Variablen:

bc. //$GRANDSTREAM_PROV_FW_DEFAULT_BT200   = '1.2.1.4';
//$GRANDSTREAM_PROV_FW_DEFAULT_BT201   = '1.2.1.4';

bc. //$GRANDSTREAM_PROV_FW_DEFAULT_GXP280  = '1.2.1.4';
//$GRANDSTREAM_PROV_FW_DEFAULT_GXP1200 = '1.2.1.4';
//$GRANDSTREAM_PROV_FW_DEFAULT_GXP2000 = '1.2.1.4';
//$GRANDSTREAM_PROV_FW_DEFAULT_GXP2010 = '1.2.1.4';
//$GRANDSTREAM_PROV_FW_DEFAULT_GXP2020 = '1.2.1.4';

bc. //$GRANDSTREAM_PROV_FW_DEFAULT_GXV3000 = '1.1.3.50';
//$GRANDSTREAM_PROV_FW_DEFAULT_GXV3005 = '1.1.3.50';
//$GRANDSTREAM_PROV_FW_DEFAULT_GXV3140 = '1.0.1.6';

erstmal auskommentieren (@//@ am Anfang der Zeile l&#246;schen) und die Firmware Version rein schreiben.

Beispiel:
@$GRANDSTREAM_PROV_FW_DEFAULT_GXP2020 = '01.02.02.14';@

Beim n&#228;chsten Provisionieren wird die Firmware auf die oben angegeben Version upgedatet.</page>
    <title>Wie mache ich ein Firmware-Update bei Grandstream Telefonen?</title>
    <updated-at type="datetime">2009-11-11T11:22:50+01:00</updated-at>
    <user-id type="integer">14</user-id>
  </wiki-page>
  <wiki-page>
    <can-be-changed-by-anybody type="boolean">false</can-be-changed-by-anybody>
    <created-at type="datetime">2009-11-11T10:28:36+01:00</created-at>
    <description>Sprach-Paket f&#252;r Grandstream Telefone installieren</description>
    <id type="integer">8</id>
    <page>*Folgende Befehle als @root@ in der Konsole eingeben.*

h3. @unzip@ installieren:

bc. aptitude install unzip

h3. BT2x0 und GXP Serie:

bc. cd /opt/gemeinschaft/htdocs/prov/grandstream
wget -c http://www.grandstream.com/DOWNLOAD/FIRMWARE/BT200_GXP/GXP_Language_Pack.zip
unzip GXP_Language_Pack.zip German.zip
unzip German.zip gxp.lpf
mv gxp.lpf gxp_German.lpf
rm -f GXP_Language_Pack.zip German.zip

h3. GXV300x Serie:

bc. cd /opt/gemeinschaft/htdocs/prov/grandstream
wget -c http://www.grandstream.com/DOWNLOAD/FIRMWARE/GXV3000/GXV_Language_Pack.zip
unzip GXV_Language_Pack.zip German.zip
unzip German.zip gxv.lpf
mv gxv.lpf gxv_German.lpf
rm -f GXV_Language_Pack.zip German.zip


Beim n&#228;chsten Provisionieren wird das Grandstream auf Deutsch umgestellt.</page>
    <title>Wie stelle ich meine Grandstream Telefone auf Deutsch um?</title>
    <updated-at type="datetime">2009-11-11T11:20:28+01:00</updated-at>
    <user-id type="integer">14</user-id>
  </wiki-page>
  <wiki-page>
    <can-be-changed-by-anybody type="boolean">true</can-be-changed-by-anybody>
    <created-at type="datetime">2009-11-02T16:55:14+01:00</created-at>
    <description>Erfahrungswerte mit den verschiedenen Firmware Versionen</description>
    <id type="integer">2</id>
    <page>h2. Welche Versionen kommen nicht in Frage?

Alle Versionen kleiner 7 sind f&#252;r die 300er und 320er unbrauchbar, da weder die serverseitigen Anruflisten noch die Telefonb&#252;cher in Gemeinschaft funktionieren.

Alle von mir getesten 7.3 (auch die VPN) Versionen hatten st&#228;ndig oder sporadisch folgendes Problem:

Laufendes Gespr&#228;ch.
Zweitanruf kommt an.
Laufendes Gespr&#228;ch wird beendet.
N&#228;chstes Gespr&#228;ch angenommen.

-&gt; Telefon st&#252;rzt ab und bootet neu

Beta Versionen?

Wer es unbedingt probieren muss ....


h2. Welche Versionen kommen &#252;berhaupt in Frage?

Es bleiben nur die 7.1er Versionen &#252;brig.

h3. Bis 7.1.32

Einzige stable war 7.1.30

Probleme:

Sporadische Probleme mit DTMF 
Pickup Info mit gepatchtem Asterisk funktioniert nicht. (Wer ruft die &#220;berwachte Extension an?)

h3. 7.1.33

Ab dieser Version &#228;ndert sich das Verhalten der BLF Tasten.

Vorher: 

&#220;berwachte Nummer wird als Typ Extension angegeben.
==*81*== wird per default bei Pickup gew&#228;hlt.

Nachher:

&#220;berwachte Extension wird als Typ BLF angegeben.
==*82*== ist jetzt default f&#252;r Pickup.

-&gt; settings.php muss angepasst werden da so nur Pickup bei Rufannahmegruppen funktioniert

*Problem ist in der 2.3 gefixed!*

["(Siehe auch)":https://bugs.launchpad.net/gemeinschaft/+bug/418011]

h4. Bugs:

Snom 370:

Warnung auf Display "Kein HTTP Passwort!" kann nicht abgeschaltet werden.

Snom 320 (mit Hintergrundbeleuchtung):

Beleuchtung ist immer an. Beim ersten Tastendruck geht sie aus.

Sehr sinnvolles feature ;-)


h3. Ab 7.1.33

Die letzte stable *7.1.39* hat keine mir bekannten Probleme. 

-&gt; ["(*7.1.39*)":http://provisioning.snom.com/download/fw/snom360-7.1.39-SIP-f.bin]
</page>
    <title>Welche Firmware soll ich f&#252;r mein Snom Telefon verwenden?</title>
    <updated-at type="datetime">2009-11-11T01:24:37+01:00</updated-at>
    <user-id type="integer">10</user-id>
  </wiki-page>
  <wiki-page>
    <can-be-changed-by-anybody type="boolean">false</can-be-changed-by-anybody>
    <created-at type="datetime">2009-11-09T13:04:33+01:00</created-at>
    <description>Welche Firmware bei welcher Gemeinschafts Version</description>
    <id type="integer">7</id>
    <page>h3. Hinweis zum BT1x0

Die Firmware f&#252;r die BudgeTone 100 Serie wird nicht mehr weiterentwickelt (letzte Firmware Version 1.0.8.33)

h2. Gemeinschaft 2.2

|_. Grandstream Model|_. Firmware Version|
|BT1x0 Serie|1.0.8.33|
|BT20x und GXP Serie|1.1.6.46|
|GXV300x Serie|wird nicht unterst&#252;tzt|
|GXV3140 Serie|wird nicht unterst&#252;tzt|

h2. Gemeinschaft 2.3

|_. Grandstream Model|_. Firmware Version|
|BT1x0 Serie|1.0.8.33|
|BT20x und GXP Serie|1.2.1.4|
|GXV300x Serie|1.2.1.13|
|GXV3140 Serie|1.0.1.18|
</page>
    <title>Welche Firmware soll ich f&#252;r mein Grandstream Telefon verwenden?</title>
    <updated-at type="datetime">2009-11-09T13:27:35+01:00</updated-at>
    <user-id type="integer">14</user-id>
  </wiki-page>
  <wiki-page>
    <can-be-changed-by-anybody type="boolean">false</can-be-changed-by-anybody>
    <created-at type="datetime">2009-11-03T18:06:41+01:00</created-at>
    <description>Anleitung zum erstmaligen Provisionieren der Grandstream BT- und GXP-Serien in Gemeinschaft</description>
    <id type="integer">4</id>
    <page>h2. Konfiguration in Gemeinschaft

Einstellung in der Konfig-Datei @/etc/gemeinschaft/gemeinschaft.php@:

@$GRANDSTREAM_PROV_ENABLED   = true;@

h2. Browser

Auf dem PC im Web-Browser die IP des Grandstreams eingeben.
(Die IP wird auf dem Display des Telefons angezeigt)

h2. Anmeldemaske

Grandstream Login
Mit dem Passwort "admin" einloggen.

h2. Advanced Settings

Folgende Einstellungen unter "Grandstream Config Server" machen:
"Upgrade Via" = "HTTP"
"Config Server Path" = "@{IP-Gemeinschaft}/gemeinschaft/prov/grandstream@"
"Allow DHCP Option 66 to override server" = "No" (BT-Serie hat diese Option nicht)

Ganz unten:
Grandstream Update
auf "Update" klicken.

h2. Grandstream Reboot

auf "Reboot" klicken.

Nun holt sich das Grandstream die Einstellungen vom Gemeinschafts-Server. Das booten des Grandstream erkennt man daran, dass die Message-LED leuchtet. </page>
    <title>Grandstream-Provisioning (BT- und GXP-Serie)</title>
    <updated-at type="datetime">2009-11-09T13:05:07+01:00</updated-at>
    <user-id type="integer">14</user-id>
  </wiki-page>
  <wiki-page>
    <can-be-changed-by-anybody type="boolean">false</can-be-changed-by-anybody>
    <created-at type="datetime">2009-11-06T13:42:15+01:00</created-at>
    <description>Wie bekomme ich eine Eicon/Dialogics Diva Server 4BRI-8 PCI-Karten mit Gemeinschaft zum laufen</description>
    <id type="integer">6</id>
    <page>Eicon/Dialogic Diva Server 4BRI-8 PCI-Karten werden derzeit ( Version 2.3) nicht von Gemeinschaft unterst&#252;tzt. Es gibt zwar billigere aktive vierfach ISDN-Karten, aber der eine oder andere hat vielleicht gerade eine Diva zur Hand, z.B. aus einer alten Telefonanlage.

Sprachqualit&#228;t und Stabilit&#228;t sind mit diesen Karten &#252;brigens hervorragend.

Ich beschreibe hier EINEN Weg diese Karten mit Gemeinschaft zum laufen zu bekommen. Es mag andere geben. Auch habe ich den Weg nicht mit den Treibern von Dialogic sondern mit den "Melware"-Treibern gew&#228;hlt.

Eine wichtige Vorbemerkung noch: 
Da im Laufe der Installation Linux Kernel-Treiber kompiliert und installiert werden, sollte man im Paketmanager den Kernel auf "hold" stellen. Andernfalls wird unter Umst&#228;nden bei einem Update eine neue Kernel-Version installiert und die ISDN-Karte l&#228;uft nicht mehr. 
Oder anders ausgedr&#252;ckt: bei einem Update des Kernel MUSS auch der Diva-Treiber neu &#252;bersetzt werden.

Zun&#228;chst einmal m&#252;ssen die Kernel-Header nachinstalliert werden:

__cd /usr/src__
__apt-get update__
__apt-get install linux-headers-`uname -r`__

Jetzt einen Link von der aktuellen Header-Version auf /usr/src/linux anlegen (falls es "linux" bereits gibt: vorher umbenennen/l&#246;schen).

__ln ==-s  linux==-headers-`uname -r` linux__

Die Melware-Treiber holen und entpacken:
(vorher mal auf dem Melware-Server nachsehen, welchen den gerade die
aktuelle Version ist)

__mkdir /usr/src/diva ; cd /usr/src/diva__
__wget ftp://ftp.melware.net/divas/v3/divas4linux-melware-3.1.4-109.75-1.tar.bz2__
__tar -jxvf divas4linux-melware-3.1.4-109.75-1.tar.bz2__

In das entstandene Verzeichnis wechseln und die Treiber kompilieren:

__cd divas4linux-melware-3.1.4-109.75-1__
__make__

Ich habe alle Fragen mit den Default-Werten beantwortet. Eine Frage ist aber wichtig falls man gleichzeitig mit der Diva-Karte andere CAPI-Karten betreiben will (ich gehe hier davon aus das dem nicht so ist):

__Do you want to use the Diva optimized CAPI interface? Note: if you say 'y' here, the common kernelcapi is not used and therefore other CAPI cards than Diva are not usable. If you use Diva cards only, you can say 'y'.__
__Your selection (y/n)[y]:__
__Yes, using optimized Diva CAPI.__

Danach ein:

__make install__

start-script: /usr/lib/divas/divas_cfg.rc
stop-script: /usr/lib/divas/divas_stop.rc

Jetzt m&#252;ssen die Kernel-Treiber an die richtige Stelle kopiert werden:

__rmmod `lsmod |grep diva |cut -d " " -f 1`__
__cp /usr/lib/divas/*ko /lib/modules/`uname -r`/kernel/drivers/isdn/hardware/eicon/__

Als n&#228;chstes muss die Karte konfiguriert werden:

__/usr/lib/divas/Config__

Man kann eine ganze Menge an den Karten einstellen. Im Prinzip sind aber erst einmal nur zwei Einstellungen wichtige: Jeder einzelne Port muss entweder auf TE oder NT-Mode konfiguriert werden (also: externer oder interner S0) und es muss festgelegt werden, ob es ein Point-to-Point (Analgenanschlu&#223;) oder ein Point-to-Multipoint (Mehrger&#228;teanschlu&#223;) sein soll. Der Rest kann erst einmal so bleiben wie es die Default-Werte vorsehen.

Das mitgelieferte Start-Stript ist leider nicht im &#252;blichen Format von Debian. Wer will kann sich ein solches nat&#252;rlich aus /etc/init.d/skeleton stricken. The quick&amp;dirty way:

__cp /usr/lib/divas/divas_cfg.rc /etc/init.d/divas_cfg__
__ln -s /etc/init.d/divas_cfg /etc/rc2.d/S13divas_cfg__

Danach das System booten.

Ob die Karte funktioniert, kann man jetzt z.B. mit dem mitgelieferten D-Kanalmonitor testen (Karte nat&#252;rlich vorher mit dem ISDN-Bus verbinden!)

Hier der Befehl f&#252;r den ersten S0 der Karte:

__/usr/lib/divas/divactrl mlog -c 1 -o__

Hinweis: Das Tool nicht im normalen Betrieb mitlaufen lassen! Bei mir fror der ganze Rechner nach 15 Minuten ein und die ISDN-Karte hat sich derma&#223;en verabschiedet, das die Karte erst nach dem Abziehen der ISDN-Leitungen und einem Reboot wieder funktionierte. Ein Reboot bei eingesteckten ISDN-
Leitungen reichte nicht!

Das ist aber wirklich das einzige Problem das ich mit der Karte hatte.

Jetzt habe ich noch die Capiutils und "chan-capi" nachinstalliert.

[ Mag sein, das der Schritt bei Gemeinschaft 2.3 nicht mehr n&#246;tig ist, ich bin mir gerade nicht sicher. Aber mit diesem Schritt geht es auf alle F&#228;lle.]

__cd /usr/src/__
__apt-get install capiutils libcapi20-dev__
__wget ftp://ftp.chan-capi.org/chan-capi/chan_capi-1.1.2.tar.gz__
(Auch hier vorher mal nachsehen, ob das noch die 
aktuelle Version ist)

__tar -zxvf chan_capi-1.1.2.tar.gz__
__cd chan_capi-1.1.2__
__make__
__make install__
__make_install_config__


Original "capi.conf" von Gemeinschaft sichern und durch neue ersetzen:

__mv /opt/gemeinschaft/etc/asterisk/capi.conf /opt/gemeinschaft/etc/asterisk/capi.conf.orig__
__ln -s /usr/src/gemeinschaft/etc/asterisk/capi.conf /opt/gemeinschaft/etc/asterisk/capi.conf__

In "capi.conf" die Eintr&#228;ge "context=isdn-in" ersetzen durch "context=from-gg-isdn-bri".

Jetzt mu&#223; noch ein wenig an den MySQL-Tabellen von Gemeinschaft ge&#228;ndert werden. Und zwar der Dialstring f&#252;r die BRI-Port die man bei der Diva-Karte verwenden will. Die befinden sich in der Tabelle "gates".

Beispiel f&#252;r den ersten BRI-Port der Diva:

__gemeinschaft:~# mysql -u root -p__
(default: leeres Passwort)

__use asterisk;__
__select * from gates where title="BRI Port 1";__


Lieferte bei mir:
 
__| id | grp_id | type  | name                | title             | allow_out | dialstr                    |...__
__| 16 |     12 | misdn | gw_16_briport1      | BRI Port 1        |         1 | mISDN/g:{gateway}/{number} |...__

Den Dialstring jetzt auf CAPI &#228;ndern mit:

__update gates set dialstr="CAPI/ISDN1/{number}" where title="BRI Port 1";__

Die MySQL-Kommandozeile mit "quit;" verlassen.

Oder, wenn mehrere Interfaces zu einer Gruppe zusammen gefast werden sollen: In capi.conf "group=1" bei den Interfaces eintragen, dann &#228;ndert sich der dialstring in "CAPI/g1/{number}". Alternativ in der GUI mehrere Interfaces anlegen und bei jedem den Dialstring in der Datenbank entsprechend &#228;ndern.

System neu starten und schauen, ob alles sauber durchl&#228;uft.

Jetzt sind die konfigurierten S0-Ports der Diva ganz normal mit Gemeinschaft benutzbar. Zumindest als externe S0-Anschl&#252;&#223;e (TE-Mode). Da die Karte in der Regel kein Speisespannungsmodul mitbringt, mu&#223; man f&#252;r den Betrieb im NT-Mode den S0 noch irgendwie mit Spannung versorgen. Das geht z.B. prima mit einem alten NTBA:

Ein normales ISDN- oder Netzwerkkabel mit zwei RJ45 steckern nehmen und einen Stecker abschneiden/abisolieren. Dann die Dr&#228;hte aus dem Kabel nach folgendem Schema auf dem Klemmblock des NTBA anlegen:

pre.. RJ45   NTBA
------------
3      b1
4      b2
5      a2
6      a1

p. NTBA mit dem Stromnetz verbinden, RJ45 Stecker in die Diva-Karte. Dann kann man z.B. ein ISDN-Telefon in eine der RJ45 Buchsen des NTBA stecken.

Viel Spa&#223; damit,
  Martin Markgraf

</page>
    <title>Gemeinschaft mit Eicon/Dialogics Diva Server 4BRI-8 PCI-Karten</title>
    <updated-at type="datetime">2009-11-06T14:11:17+01:00</updated-at>
    <user-id type="integer">53</user-id>
  </wiki-page>
  <wiki-page>
    <can-be-changed-by-anybody type="boolean">true</can-be-changed-by-anybody>
    <created-at type="datetime">2009-11-05T17:26:08+01:00</created-at>
    <description>Login leicht gemacht</description>
    <id type="integer">5</id>
    <page>h2. Mein Telefon wurde provisioniert, hat aber eine komische Nummer. 

h3. Was muss ich tun?

Am Telefon anmelden.

h3. Wie geht das?

Einfach am Telefon *0NEBENSTELLE w&#228;hlen und abheben.

Bsp. User mit der Durchwahl 100 w&#228;hlt *0100

Eine freudnliche Stimme fragt nach der PIN gefolgt von der Raute Taste.

Nach erfolgreicher Eingabe bootet das Telefon und hat die richtigen Daten.

h3. Wo finde ich meine PIN?

Die PIN wird auch zum Login im Webinterface ben&#246;tigt.

Wenn sie nicht bekannt ist einfach als Admin User anmelden und hier nachsehen:

"Administration"
"Benutzer"
User ausw&#228;hlen und bearbeiten.

Die PIN ist jetzt im Klartext zu sehen.
</page>
    <title>Wie bekommt ein provisioniertes Telefon die richtige Durchwahl</title>
    <updated-at type="datetime">2009-11-05T17:33:44+01:00</updated-at>
    <user-id type="integer">10</user-id>
  </wiki-page>
  <wiki-page>
    <can-be-changed-by-anybody type="boolean">true</can-be-changed-by-anybody>
    <created-at type="datetime">2009-11-03T10:22:51+01:00</created-at>
    <description>Anmeldung von Telefonen ohne Provisioning</description>
    <id type="integer">3</id>
    <page>h2. Ist meine Pin auch das SIP Passwort

Nein!

h2. Wo finde ich die Informationen?

h3. SIP User und Passwort

1. Als Admin am Webinterface anmelden.
2. "Administration"
3. "Benutzer"
4. Den Benutzer bearbeiten.

SIP User = Durchwahl
Passwort = "Sip-Pa&#223;wort"

h3. Was ist mein Registrar?

Die IP oder der FQDN des Gemeinschafts Servers.


["Ausf&#252;hrliche Anleitung als Screencast":http://www.youtube.com/watch?v=M4etiVX_RRM]</page>
    <title>Wie melde ich ein  Softphone oder ein Telefon an, das nicht provisioniert werden kann?</title>
    <updated-at type="datetime">2009-11-03T12:14:03+01:00</updated-at>
    <user-id type="integer">10</user-id>
  </wiki-page>
  <wiki-page>
    <can-be-changed-by-anybody type="boolean">true</can-be-changed-by-anybody>
    <created-at type="datetime">2009-11-01T20:08:37+01:00</created-at>
    <description>Eine Beschreibung zu den M&#246;glichkeiten des Routings in Gemeinschaft</description>
    <id type="integer">1</id>
    <page>Sie werden vermutlich schon gemerkt haben da&#223; die Einstellungen zum Routing in Gemeinschaft recht umfangreich sind und viel m&#228;chtiger als in anderen Systemen auf Asterisk-Basis. Das alles hat aber seinen Grund. Dieser Artikel soll Ihnen helfen das Routing in Gemeinschaft zu verstehen.
Ortsspezifische Einstellungen (E.164/Kanonisierung)

Bitte &#246;ffnen Sie in einem Text-Editor Ihrer Wahl (vim, emacs o.&#228;.) die Konfigurationsdatei /etc/gemeinschaft/gemeinschaft.php.

Suchen Sie den folgenden Abschnitt:

/***********************************************************
*    CANONICAL PHONE NUMBERS (FQTN)
***********************************************************/

$CANONIZE_OUTBOUND      = true;     # canonize numbers before matching
                                    # against routes? also determines
                                    # whether we dial in national form or
                                    # as is
$CANONIZE_INTL_PREFIX   = '00';     # international prefix. Do not use "+"
                                    # (we know the canonical format is "+"!)
                                    # in Germany: 00, USA: 011
$CANONIZE_COUNTRY_CODE  = '49';     # country code (Landesvorwahl) without
                                    # prefix
                                    # Germany: 49, USA: 1
$CANONIZE_NATL_PREFIX   = '0';      # National prefix
                                    # (Verkehrsausscheidungsziffer)
                                    # in Germany: 0
$CANONIZE_NATL_PREFIX_INTL = false; # Whether the area code needs the
                                    # national prefix even when dialing
                                    # in international format (in Italy)
$CANONIZE_AREA_CODE     = '251';    # Area code (Ortsvorwahl) without
                                    # national prefix
$CANONIZE_LOCAL_BRANCH  = '702';    # Private branch (private Kopfnummer).
                                    # If all you have is a single phone
                                    # number put your local number in here,
                                    # i.e. the rest after the area code
$CANONIZE_SPECIAL       = '/^1(?:1[0-9]{1,5}|9222)/';
                                    # numbers matching this pattern will
                                    # not be prefixed with anything
$CANONIZE_CBC_PREFIX    = '010';    # Call-by-Call prefix (Germany: 010)


Die Voreinstellungen sind bereits passend f&#252;r Deutschland. Nur zwei Werte m&#252;ssen editiert werden:

CANONIZE_AREA_CODE
    Ortsvorwahl/Ortsnetzkennziffer ohne f&#252;hrende "0", also z.B. "261" f&#252;r Koblenz.
CANONIZE_LOCAL_BRANCH
    Kopfnummer: Bei Anlagenanschlu&#223;: Kopfnummer des Anschlusses (ohne "0" am Ende). Bei Mehrger&#228;teanschlu&#223;: "99999999"

Hinweis f&#252;r Nutzer eines SIP-Providers wie "sipgate" bei dem man keine Rufnummer aus dem eigenen Ortsnetz hat: Hier mu&#223; u.U. der Wert von CANONIZE_AREA_CODE leer sein ("") und CANONIZE_LOCAL_BRANCH vermutlich wie f&#252;r Mehrger&#228;teanschl&#252;sse "99999999".
Gateways

In Gemeinschaft hei&#223;en alle Verbindungen zu Au&#223;enwelt Gateways, egal ob es sich dabei um SIP-Provider oder um ISDN-Karten handelt.

Gateways lassen sich zu Gruppen zusammenfassen. Ein einzelner ISDN-Port w&#228;re z.B. ein Gateway, mehrere Ports kann man zu einer Gateway-Gruppe zusammenfassen. (Siehe Men&#252;punkt Routen -&gt; Gateway-Gruppen.)

Wozu Gateway-Gruppen? Das dient bei ISDN-Ports (PRI und BRI) zum automatischen Failover und/oder zur Last-Verteilung. Man kann z.B. 4 (oder mehr) PRI-Ports zu einer Gruppe zusammenfassen. Wenn man dann an einem das Kabel aussteckt werden Anrufe ab da sofort zu einem der anderen geroutet.

Pro Gateway-Gruppe stellt man ein, ob eingehende Anrufe m&#246;glich sein sollen. Au&#223;erdem mu&#223; man je nach Anschlu&#223; ggf. ein Pr&#228;fix wegschneiden, das vom Netzbetreiber bei eingehenden Anrufen mitgesendet wird.

Normalerweise empfiehlt sich hier folgendes Suchmuster: "^(?:(?:0049|0)2631)?1234" (ohne Anf&#252;hrungszeichen). Verwenden Sie dieses Suchmuster bitte exakt so. Ersetzen Sie aber "2631" durch Ihre Ortsvorwahl ohne f&#252;hrende "0". Ersetzen Sie "1234" bei einem Anlagenanschlu&#223; durch die Kopfnummer (ohne "0" am Ende), bei einem Mehrger&#228;teanschlu&#223; durch "" (also nichts mehr nach dem Fragezeichen).

Lassen Sie im Normalfall die 2. Zeile des Suchen-/Ersetzen-Musters leer.

Zus&#228;tzlich kann man hier die eigene augehend gesendete Anrufer-Kennung (Caller-ID) ver&#228;ndern. Im Normalfall ist das aber nicht notwendig.

Hinweis f&#252;r Nutzer eines SIP-Providers wie "sipgate" der keine richtigen SIP-Trunks anbietet: Hier mu&#223; als Caller-ID immer die Sipgate-ID gesendet werden. Dazu tr&#228;gt man in der ersten Zeile "^(.*)" ein und in der zweiten die Sipgate-SIP-ID, also z.B. "1234567e0".
BRI-Gateways

Hier sollte f&#252;r die ISDN-Ports jeweils ein BRI-Gateway erstellt werden. F&#252;r ISDN-Ports die nicht mit einem Anschlu&#223; verbunden sind deaktivieren Sie bitte "ausgehende Anrufe zulassen" und w&#228;hlen Sie als Gruppe "&#8211; nicht zugeordnet &#8211;".
SIP-Gateways

Tragen Sie hier ggf. einen Account bei einem SIP-Provider ein. I.d.R. ist es nicht sinnvoll, mehrere SIP-Gateways zu einer Gruppe zusammenzufassen. Erstellen Sie jeweils eine Gruppe f&#252;r jedes SIP-Gateway.
Benutzer

Sinnvollerweise sollten Sie zun&#228;chst ein paar Benutzer anlegen. Als Benutzername (username) sollte man alphanumerische [a-z0-9] Namen (anna, lisa, ...) vergeben, kann aber auch die Durchwahl (extension) benutzen. Die Durchwahl mu&#223; nicht mit der Nummer &#252;bereinstimmen, die von au&#223;en zum Erreichen dieses Benutzers gew&#228;hlt werden soll, allerdings ist das nat&#252;rlich oft einfacher. Bei einem Mehrger&#228;teanschlu&#223; w&#228;ren das die MSN-Nummern, bei einem Anlagenanschlu&#223; die Durchwahlen des Rufnummernblocks.
Eingehende Routen

F&#252;r jede Gateway-Gruppe k&#246;nnen Sie hier festlegen, welche eingehend gew&#228;hlten Nummern zu welchen internen Durchwahlen durchgestellt werden sollen, auch in Abh&#228;ngigkeit von Wochentag und Uhrzeit. Die Regeln werden immer von oben nach unten abgearbeitet bis eine Regel zutrifft.
Ausgehende Routen

Im Men&#252;punkt Routen -&gt; Routen &amp; LCR legt man die Routen f&#252;r ausgehend gew&#228;hlte Nummern fest. I.d.R. k&#246;nnen Sie einfach die Voreinstellungen belassen. Jede Regel k&#246;nnen Sie aktivieren oder deaktivieren und bestimmen, bei welchem Suchmuster &#252;ber welche Ihrer Gateways rausgew&#228;hlt werden soll.
Routing-Test

Hier k&#246;nnen Sie &#252;berpr&#252;fen wie eine von Ihnen gew&#228;hlte Nummer tats&#228;chlich nach au&#223;en gew&#228;hlt werden w&#252;rde. Geben Sie hier diezu testende Nummer ohne f&#252;hrende "0" zur Amtsholung ein. Am Telefon m&#252;&#223;ten die Nummern nat&#252;rlich &#8211; wie bei einer Telefonanlage &#252;blich &#8211; mit der "0" zu Amtsholung gew&#228;hlt werden.</page>
    <title>Routing und Gateways in Gemeinschaft</title>
    <updated-at type="datetime">2009-11-01T20:10:54+01:00</updated-at>
    <user-id type="integer">2</user-id>
  </wiki-page>
</wiki-pages>
