asterisk VOIP

wall < "asterisk, Jabber und GTalk"

Broadcast message from spillerm@unixe.de (pts/1) (Mi Jul 04 11:57:40 2007):
4
Diesen Beitrag schrieb ich vor 11 Jahren. Behalte das beim Lesen bitte im Hinterkopf.

Hier folgt nun eine ganz kurz gefasste Anleitung, wie sich asterisk an Jabber/GTalk knüppeln lässt.

$ apt-get install libgnutls-dev
$ cd /usr/src
$ wget http://jabberstudio.rediris.es/iksemel/iksemel-1.2.tar.gz
$ tar xvfz iksemel-1.2.10.tar.gz
$ cd iksemel-1.2.10
$ ./configure
$ make
$ make install
$ echo "/usr/local/lib" &gt;&gt; /etc/ld.so.conf.d/i486-linux-gnu.conf
$ ldconfig

Danach muss auch asterisk neu übersetzt werden, aber das ist ja das Übliche, deshalb gehe ich da nun nicht näher darauf ein. Nach dem Installieren kann im asterisk-CLI nun Verschiedenes gesehen werden, Bsp.:

CLI> jabber show connected
Jabber Users and their status:
----
   Number of users: 0

Klar, wir haben ja noch keine Konfiguration hinterlegt. Wenn sich jabber schon nicht per TAB expanden lässt, ist was schiefgegangen; in dem Fall asterisk mal so starten:

$ asterisk -vvvv 2>&1 | grep -i jabber

Kommen dann irgendwelche Meldungen nach dem Motto libiksemel.so.3 not found, sollte ein ldconfig und anschliessender Neustart Abhilfe schaffen. Soweit so gut. Für die Telefonanlage selbst habe ich einen eigenen GMail-Account eingerichtet, PBX@gmail.com. Nun wird dem asterisk verklickert, dass er den benutzen soll:

/etc/asterisk/jabber.conf

[general]
debug             = yes
autoprune       = no
autoregister    = no
 
[PBX]
type            = client
serverhost      = talk.google.com
username        = PBX@gmail.com
secret          = ********
port            = 5222
usetls          = yes
usesasl         = yes
buddy           =
statusmessage   = "I am 'PBX' asterisk server!"
timeout         = 100

/etc/asterisk/gtalk.conf

[general]
context         = default
aloowguest      = no
 
;----------------------------------------------------------------------
; Hier folgen nun die einzelnen Buddies (?)
;
[User-1]
username        = User-1@gmail.com
disallow        = all
allow           = ulaw
context         = default
connection      = PBX

Im asterisk-CLI kann man nun mittels jabber reload und gtalk reload die neue Konfig einlesen und mittels jabber show connected sollte man auch sehen, dass unser PBX@gmail.com nun verbunden ist. Auch kann User-1 unseren PBX nun als Buddy hinzufügen und in der Kontaktliste sehen — natürlich mit der Status-Message »I am ‚PBX‘ asterisk server!«. Man kann dem asterisk nun Nachrichten tickern; diese erscheinen vorerst lediglich auf dem CLI. Sende ich beispielsweise ein BLA an den asterisk, erscheint auf dem CLI folgendes:

JABBER: sirrixPBX INCOMING: < message type="chat" id="gaim5bc58863" to="PBX@gmail.com" from="User-1@gmail.com/Talk@talk.0862DFEE" >< body >BLA< /body >< html xmlns="http://jabber.org/protocol/xhtml-im" >< body xmlns="http://www.w3.org/1999/xhtml" >BLA< /body >< /html >< nos:x value="disabled" xmlns:nos="google:nosave"/ >< arc:record otr="false" xmlns:arc="http://jabber.org/protocol/archive"/ >< /message>

Das allein hilft uns erst einmal nichts; der umgekehrte Weg ist vorerst der interessantere. Ich möchte nämlich per Ticker-Fenster informiert werden, wer mich zu welcher Uhrzeit zu erreichen versucht hat; zudem kann ich dann die akustische Signalisierung an meinen Telefonen abstellen, da ich sie nicht mehr benötige — so ist es gleich viel stiller im Büro. Da meine Durchwahl die 129 ist, bastle ich mir in der extensions.conf also eine entsprechende (hier: stark vereinfachte) Wählanweisung:

exten => 129,1,Set(JIDMARIANNE="PBX,${GTALKMARIANNE}")
exten => 129,n,JABBERSend(${JIDMARIANNE},Incoming call from "${CALLERID(name)} <${CALLERID(num)}>;"!)
exten => 129,n,Dial(SIP/129)

Wichtig hierbei ist, dass ich unter [globals] die Variable ${GTALKMARIANNE} definiert habe — sie ist natürlich User-1@gmail.com, wie in der asterisk-Konfig auch.

Und so funktioniert der Unsinn tatsächlich; indem ein Anruf hereinkommt, erhalte ich entsprechende Meldung im Ticker-Fenster… Man braucht es initial erstmal nicht, aber es ist nett es zu haben. Und vor allem — man lernt den Umgang mit der Software. asterisk hat 1000 Tücken wie mir scheint, und nur die kontinuierliche Arbeit mit dem System beseitigt die Unklarheiten auf Dauer — vielleicht…

4