[HowTo] GS 3.1 auf debian wheezy

INVALIDEMAILFTW

Neuer User
Mitglied seit
23 Feb 2012
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Direktes upgrade ging bei mir daneben meldete zuviele Scriptfehler(aufpassen blacklist.conf wird bei upgrade nicht übernommen dadurch hatte ich zusätzlich gleich mal kernel panic)


Neu Installation funktionierte bei mir jedoch mit folgenden Anpassungen (ohne Gewähr, Rein und Raustelefonieren ging einwandfrei, weitere Tests folgen)

Installation, wie hier beschrieben: https://github.com/amooma/GS3/wiki/Installation nur

Script anpassen (install.sh) bei abfrage 6->7 und squeeze->wheezy
angepaste version unter: https://raw.github.com/xeniter/GS3/master/install.sh

Nach installation musste ich noch asterisk dahdi installieren:
Code:
sudo apt-get install asterisk-dahdi

Danach blieb im Webinterface die Anzeige bei Benutzer und anderen Kategorien leer.
Schuld daran ist Änderung von php durch Update, siehe log: (/var/log/gs.log)
PHP: preg_replace(): Compilation failed: character value in \x{...} sequence is too large at offset
lib/utf8-normalize/gs_utf_normal.php

gelöst durch anpassen der /opt/gemeinschaft/lib/utf8-normalize/gs_utf_normal.php

Funktion utf8ToUnicode von

http://stackoverflow.com/questions/3673639/how-to-filter-a-font-character-in-php
http://hsivonen.iki.fi/php-utf8/

genommen, hinzugefügt und bei utf8_to_unicode_uhex verwendet siehe code:

PHP:
  /**
 * Takes an UTF-8 string and returns an array of ints representing the 
 * Unicode characters. Astral planes are supported ie. the ints in the
 * output can be > 0xFFFF. Occurrances of the BOM are ignored. Surrogates
 * are not allowed.
 *
 * Returns false if the input string isn't a valid UTF-8 octet sequence.
 */
function utf8ToUnicode(&$str)
{
  $mState = 0;     // cached expected number of octets after the current octet
                   // until the beginning of the next UTF8 character sequence
  $mUcs4  = 0;     // cached Unicode character
  $mBytes = 1;     // cached expected number of octets in the current sequence

  $out = array();

  $len = strlen($str);
  for($i = 0; $i < $len; $i++) {
    $in = ord($str{$i});
    if (0 == $mState) {
      // When mState is zero we expect either a US-ASCII character or a
      // multi-octet sequence.
      if (0 == (0x80 & ($in))) {
        // US-ASCII, pass straight through.
        $out[] = $in;
        $mBytes = 1;
      } else if (0xC0 == (0xE0 & ($in))) {
        // First octet of 2 octet sequence
        $mUcs4 = ($in);
        $mUcs4 = ($mUcs4 & 0x1F) << 6;
        $mState = 1;
        $mBytes = 2;
      } else if (0xE0 == (0xF0 & ($in))) {
        // First octet of 3 octet sequence
        $mUcs4 = ($in);
        $mUcs4 = ($mUcs4 & 0x0F) << 12;
        $mState = 2;
        $mBytes = 3;
      } else if (0xF0 == (0xF8 & ($in))) {
        // First octet of 4 octet sequence
        $mUcs4 = ($in);
        $mUcs4 = ($mUcs4 & 0x07) << 18;
        $mState = 3;
        $mBytes = 4;
      } else if (0xF8 == (0xFC & ($in))) {
        /* First octet of 5 octet sequence.
         *
         * This is illegal because the encoded codepoint must be either
         * (a) not the shortest form or
         * (b) outside the Unicode range of 0-0x10FFFF.
         * Rather than trying to resynchronize, we will carry on until the end
         * of the sequence and let the later error handling code catch it.
         */
        $mUcs4 = ($in);
        $mUcs4 = ($mUcs4 & 0x03) << 24;
        $mState = 4;
        $mBytes = 5;
      } else if (0xFC == (0xFE & ($in))) {
        // First octet of 6 octet sequence, see comments for 5 octet sequence.
        $mUcs4 = ($in);
        $mUcs4 = ($mUcs4 & 1) << 30;
        $mState = 5;
        $mBytes = 6;
      } else {
        /* Current octet is neither in the US-ASCII range nor a legal first
         * octet of a multi-octet sequence.
         */
        return false;
      }
    } else {
      // When mState is non-zero, we expect a continuation of the multi-octet
      // sequence
      if (0x80 == (0xC0 & ($in))) {
        // Legal continuation.
        $shift = ($mState - 1) * 6;
        $tmp = $in;
        $tmp = ($tmp & 0x0000003F) << $shift;
        $mUcs4 |= $tmp;

        if (0 == --$mState) {
          /* End of the multi-octet sequence. mUcs4 now contains the final
           * Unicode codepoint to be output
           *
           * Check for illegal sequences and codepoints.
           */

          // From Unicode 3.1, non-shortest form is illegal
          if (((2 == $mBytes) && ($mUcs4 < 0x0080)) ||
              ((3 == $mBytes) && ($mUcs4 < 0x0800)) ||
              ((4 == $mBytes) && ($mUcs4 < 0x10000)) ||
              (4 < $mBytes) ||
              // From Unicode 3.2, surrogate characters are illegal
              (($mUcs4 & 0xFFFFF800) == 0xD800) ||
              // Codepoints outside the Unicode range are illegal
              ($mUcs4 > 0x10FFFF)) {
            return false;
          }
          if (0xFEFF != $mUcs4) {
            // BOM is legal but we don't want to output it
            $out[] = $mUcs4;
          }
          //initialize UTF8 cache
          $mState = 0;
          $mUcs4  = 0;
          $mBytes = 1;
        }
      } else {
        /* ((0xC0 & (*in) != 0x80) && (mState != 0))
         * 
         * Incomplete multi-octet sequence.
         */
        return false;
      }
    }
  }
  return $out;
}

# escapes non-ASCII characters in an UTF-8 string to JavaScript
# style \uXXXX sequences
function utf8_to_unicode_uhex( $str )
{
        return utf8ToUnicode($str);

        return preg_replace(
                '/[\x{00}-\x{1F}\x{7F}-\x{7FFFFFFF}]/uSe',
                'sPrintF("\\u%04x", utf8ToCodepoint("$0"))',
                str_replace(
                        array( '\\'  , "\x08", "\x0C", "\n" , "\r" , "\t"  ),
                        array( '\\\\', '\\b' , '\\f' , '\\n', '\\r', '\\t' ),
                        $str
                        )
                );
}




bugfix für rufumleitung mit externe nummern nicht vergessen:
https://github.com/amooma/GS3/pull/13/files

für b410p isdn Karten nützer:

/etc/modprobe.d/blacklist.conf isdn treiber blacklisten:

#blacklist für b410p ISDN card:
blacklist mISDN_dsp
blacklist hfcmulti
blacklist mISDN_core
blacklist lcr_chan

System hängt schon beim ersten start, also live cd hochfahren und treiber blacklisten

danach:
/etc/dahdi/modules datei anlegen mit folgenden inhalt:

# Digium B410P: 4 NT/TE BRI ports
wcb4xxp

und wie gehabt konfigurieren
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.