[Gelöst] Wie Asterisk auf den Pi installieren und an Fritzbox als Gerät anmelden?

Ich bekomme jetzt "hello-world" abgespielt. Die Datei ist mit .gsm. Wie bekomme ich meine wav in dieses Format, oder wie sage ich asterisk, auch wav abzuspielen?
 
Das geht am Einfachsten mit MoH, hat dann aber nichts mehr mit der Spracheinstellung zu tun. :(
In der Extension dann: same => n,StartMusicOnHold()
 
Zuletzt bearbeitet:
Es funktioniert endlich! Es war die wav-Datei. Sie muss umgewandelt werden. Danach funktioniert es. Telefon klingelt, wav wird abgespielt, Asterisk legt auf. Alles wie es soll.

Nochmal vielen Dank. Ohne Hilfe hätte ich vermutlich sehr viel länger gebraucht. :)


Nachtrag: Die erzeugte wav von espeak muss mit ffmpeg in 16bit/8000/1ch umgewandelt werden. Danach wird diese auch abgespielt.
 
Zuletzt bearbeitet:
Da mich das immer ärgert, wenn man auf der Internetsuche endlich einen Thread findet, der eine Lösung verspricht und dieser mit "Problem gelöst" aber nicht wie es gemacht wurde, endet, so hier die Vorgehensweise, wo es bei mir endlich funktioniert hat.

Auf der Fritzbox muss ein Telefon -> LAN/WLAN (IP-Telefon) mit Bezeichnung SAS und einem KENNWORT angelegt werden. Der von der Fritzbox vergebene Benutzername ist im folgenden Beispiel 621. Ggf. muss dies unten bei differierendem Wert angepasst werden.

Folgende Pakete habe ich dafür auf dem Pi installiert:
(alles als root)
Code:
apt-get -y install asterisk-prompt-de
apt-get -y install espeak
apt-get -y install ffmpeg

Nun folgende Dateien bearbeiten:
/etc/asterisk/sip.conf
Code:
;
; SIP Configuration for Asterisk
;
[general]
language=de
tonezone=de
context=default
allowoverlap=no
udpbindaddr=0.0.0.0
tcpenable=no
tcpbindaddr=0.0.0.0
transport=udp
srvlookup=yes
register => [SIZE=3][B][COLOR=#008000]621[/COLOR][/B][/SIZE]:[SIZE=3][COLOR=#0000ff][B]KENNWORT[/B][/COLOR][/SIZE]@[SIZE=3][B][COLOR=#0000ff]IPDERFRITZBOX[/COLOR][/B][/SIZE]:5060/[SIZE=3][B][COLOR=#008000]621[/COLOR][/B][/SIZE]

[authentication]

[gateway](!)
        description=Fritz!Box Registrar
        context=sastalk
        call-limit=15
        type=friend
        insecure=invite
        nat=force_rport,comedia
        fromdomain=fritz.box
        secret=[SIZE=3][B][COLOR=#0000ff]KENNWORT[/COLOR][/B][/SIZE]
        host=[SIZE=3][COLOR=#0000ff][B]IPDERFRITZBOX[/B][/COLOR][/SIZE]
        canreinvite=yes
        directmedia = no
        dtmfmode=rfc2833
        allow=!all,g722,alaw,ulaw

[fbgateway](gateway)
        defaultuser=[SIZE=3][B][COLOR=#008000]621[/COLOR][/B][/SIZE]
        fromuser=[SIZE=3][B][COLOR=#008000]621[/COLOR][/B][/SIZE]
(blau muss mit den eigenen Angaben ersetzt werden. Obiger Text ersetzt die bestehende Konfigurationsdatei)

/etc/asterisk/extensions.conf
(dies muss am Ende hinzugefügt werden)
Code:
[sastalk]
exten => s,1(start),NoOp(${CHANNEL} ${CALLERID(all)} ruft ${EXTEN})
same => n,Answer()
same => n,Wait(1)
same => n,Playback(play)
same => n,Wait(1)
same  => n(exit),Hangup()

Nun am besten asterisk neu starten:
Code:
service asterisk stop
service asterisk start
...oder einmalig...
Code:
service asterisk restart

Nun ein kleines Skript, welches den Bau und das Verschieben der Call-Datei automatisch erledigt:
/bin/telefoniere
Code:
#!/bin/bash
rm /usr/share/asterisk/sounds/de/playx.wav 2>/dev/null >/dev/null
rm /usr/share/asterisk/sounds/de/play.wav 2>/dev/null >/dev/null
echo -e "Channel: SIP/$1@fbgateway\nCallerid: SaS\nContext: sastalk\nExtension: s\nArchive: no" >/etc/asterisk/hallo.call
espeak -v german-mbrola-7 "$2" -w /usr/share/asterisk/sounds/de/playx.wav 2>/dev/null >/dev/null
ffmpeg -i /usr/share/asterisk/sounds/de/playx.wav -ar 8000 -ac 1 /usr/share/asterisk/sounds/de/play.wav 2>/dev/null >/dev/null
mv /etc/asterisk/hallo.call /var/spool/asterisk/outgoing/hallo.call 2>/dev/null >/dev/null
Die Datei muss mit
Code:
chmod 0777 /bin/telefoniere
ausführbar gemacht werden.

Nun kann diese mit
Code:
telefoniere "[SIZE=3][B][COLOR=#0000ff]NUMMER[/COLOR][/B][/SIZE]" "[SIZE=3][B][COLOR=#0000ff]ZU SPRECHENDER TEXT[/COLOR][/B][/SIZE]"
aufgerufen werden. Die Nummer wird angerufen und beim Annehmen des Gespräches wird der angegebene Text gesprochen und wieder aufgelegt.

Ein Beispiel für intern:
Code:
telefoniere "**610" "Hallo, dies ist ein Test. "
Auf der internen Nummer 610 wird angerufen und beim Annehmen wird "Hallo, dies ist ein Test." gesprochen und wieder aufgelegt.

Ein Beispiel für extern:
Code:
telefoniere "0049VORWAHLOHNE0RUFNUMMER" "Hallo, dies ist ein Testanruf. "
Auf der externen Nummer Länderkennung Deutschland (49) wird angerufen und beim Annehmen wird "Hallo, dies ist ein Testanruf." gesprochen und wieder aufgelegt.

Sinn und Zweck der Übung ist es, z. B. mit SAS und einem psgbs bei einem Sensorereignis eine Nummer anzurufen und dies mitzuteilen. ;)
 
Zuletzt bearbeitet:
:motz: Nicht die harte Tour
Das geht so...
service asterisk stop
service asterisk start
...oder einmalig...
service asterisk restart
 
Stimmt, das macht mehr Sinn. Habs oben abgeändert. ;)
 

Zurzeit aktive Besucher

Neueste Beiträge

Statistik des Forums

Themen
244,916
Beiträge
2,220,873
Mitglieder
371,678
Neuestes Mitglied
fibre
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.