Integration G729 in Moby Dick 6 Community

Hallo,

vielleicht für den einen oder anderen interessant, um die Sprachqualität bei 3G Verbindungen mit mobilen Clients zu verbessern.

DISCLAIMER: Die Benutzung der commerciellen G729/723 Codes ist mit Lizenzgebühren verbunden; es gibt aber auch eine Engenier-Free Version.

Es gibt verschiedene Meinungen im Web, ob die Commercial und Free Version des Codes Qualitätsunterschiede haben. Ich denke es verhält sich ähnlich wie bei den ersten MP3 Codecs: Manche waren qualitativ gut, andere schlecht. Der G729 Algorytmus arbeitet nicht mit Kompression des Tonmaterials, sondern mit Phonetischen Phrasen und greift auf ein Dictionary zurück, welches sich nur auf Sprachlaute bezieht. Es werden nur mathematische Daten übertragen, welche von der Gegenstelle dann interpretiert werden (daher auch die schlechte Qualität von Wartemusik) .DiesesDictionary und die Berechnung kann natürlich je nach verwendetem Codec stark varieren.

Mit der hier aufgezeigten Konstellation haben wir gute Erfahrung gemacht, sprich das Klassenziel, bessere Sprachqualität bei 3G Verbindungen über VPN-Tunnel ist erreicht worden.

Das Einrichten sollte nicht länger als 10 Minuten dauern, es folgt eine Zusammenstellung der Schritte, welche ich mir selber im Web zusammengesucht habe.

HOWTO:

Die Auswahl des Codecs ist normalerweise abhängig von der Prozessor Architektur und der Asterisk Version,
bei der von mir benutzen Moby Dick 6 Community Edition ist es eine 64 bit Linux Engine & Asterisk 1.2.4.

Stelle fest, was für eine Asterisk Engine von Deiner Moby Dick Community verwendet wird:

login via ssh -> asterisk -V

Stelle fest, was für eine Architektur dein Server verwendet:

admin@host: uname -a

Navigiere zum Modul-Ordner von Asterisk:

cd /usr/var/lib/asterisk/modules

Asterisk fähige Codecs gibt es bei http://asterisk.hosting.lv (Und noch viele nützliche Infos auf englisch)

Nun downloaden wir uns den Codec, der zum System passt, in meinem Fall codec_g729-ast12-icc-glibc-x86_64-pentium4.so

Diesen kopieren wir uns nun in den Modul Ordner mit :

wget http://asterisk.hosting.lv/bin12/codec_g729-ast12-icc-glibc-x86_64-pentium4.so

Als nächstes wird der Codec umbenannt:

mv codec_g729-ast12-icc-glibc-x86_64-pentium4.so codec_g729.so

Eine Anpassung der isp.conf ist evtl. notwendig, um dem G729 zu erlauben.

**
Nun wird die Asterisk Engine neu gestarte**t:

/etc/init.d/asterisk restart

Jetzt überpfrüfen wir, ob der Codec integriert wurde:

Mit der Asterisk Konsole verbinden:
asterisk -r

Nun lassen wir uns die verfügbaren Codecs anzeigen:

host*CLI> show translation

Nun solltet Ihr den G729 Code in der folgenden Tabelle auffinden und die Zeit in Millisekunden sehen, welche die Codec-Translation in Anspruch nimmt.

Fertig !

Wenn der Codec nicht angezeigt wird, habt Ihr höchstwahrscheinlich den falschen Codec heruntergeladen; überprüft noch einmal die Hardware-Vorraussetzungen und Versionen der Engines.

Ich setzte z.B. auf dem iPhone erfolgreich von 5Media das 5MEdia-fon mit demG729 Codec über VPN ein. ( Ich hoffe dies wird nicht als Schleichwerbung gewertet !)

Ich hoffe, dieses kleine HOWTO kann jemanden helfen.

Beste Grüße,

OD

COBED IT

Hallo,

danke für Dein schönes HowTo. Noch eine Ergänzung:

/usr/var/lib/asterisk/modules

liegt bei der MobyDick 6 und 7 im RAM und ist nach einem Reboot wieder Standard. Meine Empfehlung:

Den Codec nach z.B. /var legen und in /etc/rc2.d ein Startskript VOR dem Asterisk erstellen der das Modul dann an die richtige Stelle kopiert.

LG
Mathias

Ich habe es auf meiner 7.02.01 einfach in

/TARGET/SHARE/usr/lib/asterisk/modules

geht 1A