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

JL3

Aktives Mitglied
Mitglied seit
4 Dez 2010
Beiträge
1,995
Punkte für Reaktionen
8
Punkte
38
Es geht um Asterisk auf dem Pi. Ich weiß, dass es hier eine Menge Threads dazu gibt, doch diese alle durchzuarbeiten und die ganzen Links dazu durchzulesen ist sehr zeitaufwändig. Und diese Zeit würde mir für die Weiterentwicklung von SAS fehlen. Da ich hier also das Rad nicht nochmal neu erfinden möchte, die Frage an Euch, was es hier zu beachten gibt.

Was muss auf dem Pi installiert werden? Asterisk, Zusatzpakete?
Wie sehen die Eintragungen in den Konfigurationsdateien aus?
Was ist an der Fritzbox - außer dem Anlegen eines IP-Telefons - noch zu tun?

Ziel ist es, den Pi per SAS bei einer festgelegten Nummer automatisch anrufen zu lassen und ihn eine Statusmeldung sprechen zu lassen. ;)
 
Zuletzt bearbeitet:
Moinsen


Das kriegen wir schon hin. ;)
Frage vorweg: In deutsch oder english?
 
  • Like
Reaktionen: alme112
In deutsch wäre nicht verkehrt... :)
 
Sprachpaket installieren: apt-get -y install asterisk-prompt-de

sip.conf Spracheinstellung global setzen
Code:
language=de                     ; Default language setting for all users/peers
                                ; This may also be set for individual users/peers
tonezone=de                     ; Default tonezone for all users/peers
                                ; This may also be set for individual users/peers

sip.conf an Fritz!Box registrieren (wichtig ist die Zahl am Ende, später mehr dazu)
Code:
;Register at Fritz!Box (Modell: 7360SL OS: 6.30)
register => 620:[email protected]:5060/620
register => 621:[email protected]:5060/621
register => 622:[email protected]:5060/622
register => 623:[email protected]:5060/623
register => 624:[email protected]:5060/624
register => 625:[email protected]:5060/625
register => 626:[email protected]:5060/626
register => 627:[email protected]:5060/627
register => 628:[email protected]:5060/628
register => 629:[email protected]:5060/629

sip.conf Jetzt noch für jeden Register ein Gateway erstellen, Kontextangabe ist wichtig
Code:
; fbfgateway template
[gateway](!)
description=Fritz!Box Registrar
[COLOR=#ff0000][B]context=osmc[/B][/COLOR]
call-limit=15
type=friend
insecure=invite
nat=force_rport,comedia
fromdomain=fritz.box
secret=passwort
host=192.168.178.1
canreinvite=yes
directmedia = no
dtmfmode=rfc2833
allow=!all,g722,alaw,ulaw

[fbfgateway0](gateway)
defaultuser=620
fromuser=620

[fbfgateway1](gateway)
defaultuser=621
fromuser=621

[fbfgateway2](gateway)
defaultuser=622
fromuser=622

[fbfgateway3](gateway)
defaultuser=623
fromuser=623

[fbfgateway4](gateway)
defaultuser=624
fromuser=624

[fbfgateway5](gateway)
defaultuser=625
fromuser=625

[fbfgateway6](gateway)
defaultuser=626
fromuser=626

[fbfgateway7](gateway)
defaultuser=627
fromuser=627

[fbfgateway8](gateway)
defaultuser=628
fromuser=628

[fbfgateway9](gateway)
defaultuser=629
fromuser=629

Das war es soweit in der sip.conf, jetzt Kontext/Extension...

extensions.conf Kontext osmc
Code:
[osmc]
exten => s,1(strange),NoOp(Nummer unbekannt oder nicht abgefangener Fehler)
same  => n(nomatch),Answer()
same  => n(wait),Wait(1)
same  => n,Goto(exit)
same  => n(NOANSWER),NoOp(NOANSWER or TIMEOUT reached)
same  => n,VoiceMail(1005@default,su)
same  => n,Goto(exit)
same  => n(BUSY),NoOp(Is BUSY or has CANCELED)
same  => n(voicemail),VoiceMail(1005@default,sb)
same  => n,Goto(exit)
same  => n(CHANUNAVAIL),NoOp(CHANUNAVAIL or PEER NOT REGISTERED)
same  => n,VoiceMail(1005@default,su)
same  => n(exit),Hangup()

exten => _62.,1(start),NoOp("${CALLERID(num)}" "-->" "${EXTEN}")
same => n(snom_ringtone),SipAddHeader(Alert-Info: <http://osmc/ctu.wav>)
same => n,GotoIf($["${EXTEN}" = "620"]?dial1)
same => n,GotoIf($["${EXTEN}" = "621"]?dial2)
same => n,GotoIf($["${EXTEN}" = "622"]?dial3)
same => n,GotoIf($["${EXTEN}" = "623"]?dial4)
same => n,GotoIf($["${EXTEN}" = "624"]?dial5)
same => n,GotoIf($["${EXTEN}" = "625"]?dial6)
same => n,GotoIf($["${EXTEN}" = "626"]?dial7)
same => n,GotoIf($["${EXTEN}" = "627"]?dial8)
same => n,GotoIf($["${EXTEN}" = "628"]?dial9)
same => n,GotoIf($["${EXTEN}" = "629"]?dial10)
same => n(nomatch),Hangup()
same => n(dial1),Dial(SIP/1002)
same => n,Goto(exit)
same => n(dial2),Dial(SIP/1005)
same => n,Goto(exit)
same => n(dial3),Dial(SIP/1002)
same => n,Goto(exit)
same => n(dial4),Dial(SIP/1005)
same => n,Goto(exit)
same => n(dial5),Dial(SIP/1005)
same => n,Goto(exit)
same => n(dial6),Dial(SIP/1005)
same => n,Goto(exit)
same => n(dial7),Dial(SIP/1006)
same => n,Goto(exit)
same => n(dial8),Dial(SIP/1007)
same => n,Goto(exit)
same => n(dial9),Dial(SIP/1008)
same => n,Goto(exit)
same => n(dial10),Dial(SIP/1005)
same => n(exit),Goto(s,${DIALSTATUS})
...die Anrufe kommen im Kontext osmc immer vom ersten Gateway, fbfgateway0 und werden je nach Nummer (620 bis 629) herausgefiltert mit GotoIf() und an die entsprechenden Telefone weitergeleitet.
In der s Extension wird danach noch der ${DIALSTATUS} entsprechend abgearbeitet.
Der Anrufer steht in: ${CALLERID(all)}, ${CALLERID(name)} und ${CALLERID(num)}
Sprachausgabe machste mit Playback() oder Background().

Hier die beiden als Beispiel, können im Kontext ...
Code:
[osmc]
include => Zeitansage
include => ANI
... inkludiert werden und mit Gosub() angesprungen werden...
Code:
[ANI]
exten => _X.,50000(ani),NoOp(ANI: ${EXTEN})
same  => n,Wait(0.25)
same  => n,Answer()
same  => n,Playback(vm-from)
same  => n,SayDigits(${CALLERID(ani)})
same  => n,Wait(1.25)
same  => n,SayDigits(${CALLERID(ani)})  ; playback again in case of missed digit
same  => n,Return()

[Zeitansage]
exten => _X.,40000(Zeitansage),NoOp(Zeitansage: ${EXTEN})
same  => n,Answer()
same  => n,Wait(1)
same  => n,SayUnixTime(,UTC-1,akM)
same  => n,Return(0)
...springt nach Return() dahin zurück, von wo sie vorher aufgerufen wurden.

Anruf an 620 und 621 kommen beide von fbfgateway0
asterisk -rvvvvv (sip set debug off)
Code:
[Feb 11 01:17:56]   == Using SIP RTP CoS mark 5
[Feb 11 01:17:56]     -- Executing [620@osmc:1] NoOp("SIP/fbfgateway0-00000034", ""**626" "-->" "620"") in new stack
[Feb 11 01:17:56]     -- Executing [620@osmc:2] SIPAddHeader("SIP/fbfgateway0-00000034", "Alert-Info: <http://osmc/ctu.wav>") in new stack
[Feb 11 01:17:56]     -- Executing [620@osmc:3] GotoIf("SIP/fbfgateway0-00000034", "1?dial1") in new stack
[Feb 11 01:17:56]     -- Goto (osmc,620,14)
[Feb 11 01:17:56]     -- Executing [620@osmc:14] Dial("SIP/fbfgateway0-00000034", "SIP/1002") in new stack
[Feb 11 01:17:56]   == Using SIP RTP CoS mark 5
[Feb 11 01:17:56]     -- Called SIP/1002
[Feb 11 01:17:56]     -- SIP/1002-00000035 is ringing
[Feb 11 01:18:00]   == Spawn extension (osmc, 620, 14) exited non-zero on 'SIP/fbfgateway0-00000034'
[Feb 11 01:18:12]   == Using SIP RTP CoS mark 5
[Feb 11 01:18:12]     -- Executing [621@osmc:1] NoOp("SIP/fbfgateway0-00000036", ""**626" "-->" "621"") in new stack
[Feb 11 01:18:12]     -- Executing [621@osmc:2] SIPAddHeader("SIP/fbfgateway0-00000036", "Alert-Info: <http://osmc/ctu.wav>") in new stack
[Feb 11 01:18:12]     -- Executing [621@osmc:3] GotoIf("SIP/fbfgateway0-00000036", "0?dial1") in new stack
[Feb 11 01:18:12]     -- Executing [621@osmc:4] GotoIf("SIP/fbfgateway0-00000036", "1?dial2") in new stack
[Feb 11 01:18:12]     -- Goto (osmc,621,16)
[Feb 11 01:18:12]     -- Executing [621@osmc:16] Dial("SIP/fbfgateway0-00000036", "SIP/1005") in new stack
[Feb 11 01:18:12]   == Using SIP RTP CoS mark 5
[Feb 11 01:18:12]     -- Called SIP/1005
[Feb 11 01:18:12]     -- SIP/1005-00000037 is ringing
 
Zuletzt bearbeitet:
Erst einmal vielen Dank, aber ich denke, da setze ich erst morgen mit einem neuen Image auf. Das "Verbogene", mit dem ich selbst schon rumprobiert habe, ist wohl schon zu verbogen. ;)
Wenn ich soweit mit Installation und configs bin, melde ich mich wieder.

Mit der s Extention, da verstehe ich noch nicht, was da wie angegeben werden soll. Bin heute wohl auch inzwischen zu müde dazu. :gruebel:
 
Noch immer habe ich Probleme mit der extensions.conf.

Ziel ist es, dass SAS ein Shellscript startet, welches asterisk dazu veranlasst eine Nummer anzurufen und eine wav-Datei abzuspielen. Mehr darf es nicht sein. Was muss ich hier eintragen?

Was hier zu finden ist, funktioniert nicht, da asterisk hier nichts tut: http://www.forum-raspberrypi.de/Thr...ksensoren-ausloesen-mit-fritzbox-bzw-sip-voip

Was fehlt da an asterisk-Konfiguration?

Die VoIP-Nummer des Pi ist bei mir 621 (nur eine Nummer soll benutzt werden und nur raustelefonieren, nicht ankommende Anrufe)
 
Wenn SAS auf dem Pi läuft?

Dann mach das mit einem Callfile...
Code:
/bin/bash /etc/asterisk/wakeup.sh "SIP/1005" "Weckruf<200>" 3 60 10 osmc 200 no 1
...entweder aus Asterisk heraus, oder SaS füttert das Skript selber...
/etc/asterisk/wakeup.sh
Code:
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin
# Work with file...(will be created by this script)
file=/etc/asterisk/test.call

#Defining some functions first...

#Example: sh wakeup.sh "SIP/1007" "Weckruf<1005>" 0 60 10 context 200 no 1
testloop() {
cat << EOF > $file
#!/bin/bash
counter=0
for i in \$@
do
counter=\$((\$counter + 1))
echo \$counter": "\$i
done
EOF
}

#Example: mkcallfile "SIP/1007" "Weckruf<1005>" 0 60 10 context 200 no
mkcallfile()
{
cat << EOF > "${file}"
Channel: ${1}
Callerid: ${2}
MaxRetries: ${3}
RetryTime: ${4}
WaitTime: ${5}
Context: ${6}
Extension: ${7}
Archive: ${8}
EOF
}

#Example: prepcallfile 1 ( for 1 minute in future )
prepcallfile() {
chown asterisk.asterisk "${file}"
cat "${file}"
timer=$(date +"%Y%m%d%H%M")
echo "Debug: "${timer}" (realtime)"
timer=$((${timer} + $1))
echo "Debug: "${timer}" (ringtime)"
touch -t ${timer} "${file}"
}

#Example: mvcallfile ( needs: apt-get -y install apg )
mvcallfile() {
mv "${file}" /var/spool/asterisk/outgoing/"$(/usr/bin/apg -n1)"
}

#Now using functions in right order ;-)
testloop $@;. "${file}"
mkcallfile $@
prepcallfile "${9}"
cat ${file} > /etc/asterisk/tmp.call
mvcallfile

#EOF
Das muss aber unbedingt als Benutzer asterisk.asterisk geschehen.
Sonst kann Asterisk das abgearbeitete Callfile nicht löschen/verschieben.

Das Skript lässt ein Backup des Callfiles bis zum nächsten Aufruf in /etc/asterisk zum Überprüfen liegen...
tmp.call
Code:
Channel: SIP/1005
Callerid: Weckruf<200>
MaxRetries: 3
RetryTime: 60
WaitTime: 10
Context: osmc
Extension: 200
Archive: no

Achtung: Das Skript benutzt apg für einen uniquen (eindeutigen) Dateinamen

Beispiel:
Code:
 /bin/bash /etc/asterisk/wakeup.sh "SIP/[LAND][VORWAHL][NUMMER]@192.168.178.1" "Weckruf<200>" 3 60 10 osmc 200 no 1
wakeup_callfile_fritzbox_01.jpg
 
Zuletzt bearbeitet:
Wenn ich das richtig sehe, wird da keine wav-Datei abgespielt, wenn man rangeht.

Meine Frage ist damit auch noch offen. Was muss in die extensions.conf?

Wenn ich eine call-Datei nach /var/spool/asterisk/outgoing/ kopiere, verschwindet diese sofort, aber es passiert nichts.

Wo übergebe ich die (externe) Telefonnummer, die angerufen werden soll?
 
Zuletzt bearbeitet:
Egal, was ich probiere, es funktioniert nicht.

Nochmal was ich bis jetzt eingetragen habe (rot markiert ist für mich nicht einleuchtend, blau angepasstes Kennwort/Nummer ggf. verfremdet)

/etc/asterisk/sip.conf
Code:
[general]
language=de                     ; Default language setting for all users/peers
                                ; This may also be set for individual users/peers
tonezone=de                     ; Default tonezone for all users/peers
                                ; This may also be set for individual users/peers
...
Code:
; fbfgateway template
[gateway](!)
description=Fritz!Box Registrar
context=osmc
call-limit=15
type=friend
insecure=invite
nat=force_rport,comedia
fromdomain=fritz.box
secret=[B][COLOR=#0000ff]KENNWORT[/COLOR][/B]
host=[B][COLOR=#0000ff]192.168.1.1[/COLOR][/B]
canreinvite=yes
directmedia = no
dtmfmode=rfc2833
allow=!all,g722,alaw,ulaw

[fbfgateway0](gateway)
defaultuser=[B][COLOR=#0000ff]621[/COLOR][/B]
fromuser=[B][COLOR=#0000ff]621[/COLOR][/B]
(KENNWORT ist vergebenes Kennwort für die 621 in der Fritzbox)

/etc/asterisk/extensions.conf
Code:
[osmc]
exten => s,1(start),NoOp(${CHANNEL} ${CALLERID(all)} ruft ${EXTEN})
same  => n(),Answer()
same  => n(wait),Wait(1)
same  => n,Goto(restart)
same  => n(NOANSWER),NoOp(NOANSWER or TIMEOUT reached)
same  => n,VoiceMail([COLOR=#ff0000][B]1002[/B][/COLOR]@default,su)
same  => n,Goto(exit)
same  => n(BUSY),NoOp(Is BUSY or has CANCELED)
same  => n(voicemail),VoiceMail([B][COLOR=#ff0000]1002[/COLOR][/B]@default,sb)
same  => n,Goto(exit)
same  => n(CHANUNAVAIL),NoOp(CHANUNAVAIL or PEER NOT REGISTERED)
same  => n,VoiceMail([B][COLOR=#ff0000]1002[/COLOR][/B]@default,su)
same  => n(exit),Hangup()

exten => _62.,1(start),NoOp("${CALLERID(num)}" "-->" "${EXTEN}")
same => n([B][COLOR=#ff0000]snom[/COLOR][/B]_ringtone),SipAddHeader(Alert-Info: <http://osmc/ctu.wav>)
same => n,GotoIf($["${EXTEN}" = "[B][COLOR=#0000ff]621[/COLOR][/B]"]?dial1)
same => n(nomatch),Hangup()
same => n(dial1),Dial(SIP/[B][COLOR=#ff0000]1002[/COLOR][/B])
same => n,Goto(exit)
same => n(exit),Goto(s,${DIALSTATUS})

chown asterisk:asterisk hallo*.call
/etc/asterisk/hallo.call verschoben nach /var/spool/asterisk/outgoing/hallo.call
Code:
Channel: SIP/[B][COLOR=#0000ff]0049XXXXXXXXX[/COLOR][/B]@192.168.1.1
Application: Playback
Data: /var/lib/asterisk/sounds/custom/play
Callerid: SAS
Context: osmc
Extension: [B][COLOR=#ff0000]200[/COLOR][/B]
Archive: no
(192.168.1.1 ist die Fritzbox; in /var/lib/asterisk/sounds/custom/play liegt die wav-Datei)

Da ist der Wurm drin, denn es passiert nichts. Was habe ich falsch gemacht? :gruebel:
 
Weiss nicht was bei dir schiefläuft.

Lass mal eine zusätzliche Konsole mit...
asterisk -rvvvvv (sip set debug off)
...laufen und gib dem Callfile mal...
Archive: yes
...dann kannst du später in...
/var/spool/asterisk/outgoing_done/
...nachschauen was abgegangen ist.

Im Kontext osmc inkludiere ich ja die Zeitansage, was ruft die 200 dann wohl auf?
Genau, die Zeitansage...
Code:
exten => 200,1(start),Answer()
same  => n,Wait(1)
same  => n,Gosub(Zeitansage)
same  => n,Wait(1)
same  => n,Gosub(Zeitansage)
same  => n(stop),Hangup()
Im Übrigen sollte eben gerade diese Zeitansage auf deutsch erfolgen.

Den SIP Header ändern für ein snom hab ich mal plump als Beispiel genommen.
Wenn nicht im Spiel, lösch die Zeile einfach.
Die snom Datei muss auch dieses Format haben: WAV, 8000Hz, Mono


Die restlichen Roten sind angelegte User in der sip.conf, denen dieser Kontext zugewiesen wurde.
...und natürlich kannst du auch in der Fritz!Box eben an diesem eine Internettelefonnummer registrieren, die dann einem DECT oder sonsteinem Telefon an der Fritz!Box zugewiesen wird.

In der s Extension ists ein zugewiesener Anrufbeantworterbenutzerkontext :D
 
Zuletzt bearbeitet:
Fehlermeldung:
[Feb 12 00:12:54] NOTICE[4092]: chan_sip.c:20354 handle_response_invite: Failed to authenticate on INVITE to '"621" <sip:[email protected]>;tag=as28a1e0b8'
> Channel SIP/192.168.1.1-00000000 was never answered.
 
Code:
Channel: SIP/[B][COLOR=#0000ff]0049XXXXXXXXX[/COLOR][/B]@192.168.1.1
Lass mal die 2 Nullen von 0049 weg, also 49 dann Vorwahl ohne führende 0 gefolgt von der Nummer @192.168.1.1
 
Gleicher Fehler.
 
Wenn die gerufene Nummer keine in der Fritzbox unter eigene Telefonnummern definierte ist, sondern der Anruf in die weite Welt gehen soll, erwartet die Fritzbox eine Authentifizierung.
Es muss deshalb SIP/0049xxx@fbfgateway0 heißen.
 
Moins


Beispiel Callfile...
Code:
Channel: SIP/**610@fbfgateway1
Callerid: Weckruf<200>
MaxRetries: 3
RetryTime: 60
WaitTime: 10
Context: osmc
Extension: 200
Archive: no


Ergebnis:

Quellgerät = **621 (2. IP-Telefon)
Zielgerät = **610 (1. DECT)

Asterisk@CLI Ausgabe...
Code:
[Feb 12 10:35:40]     -- Attempting call on SIP/**610@fbfgateway1 for 200@osmc:1 (Retry 1)
[Feb 12 10:35:40]   == Using SIP RTP CoS mark 5
[Feb 12 10:35:40]        > 0x8021e5e0 -- Probation passed - setting RTP source address to 192.168.178.1:7110
[Feb 12 10:35:47]        > Channel SIP/fbfgateway1-00000000 was answered
[Feb 12 10:35:47]     -- Executing [200@osmc:1] Answer("SIP/fbfgateway1-00000000", "") in new stack
[Feb 12 10:35:47]     -- Executing [200@osmc:2] TrySystem("SIP/fbfgateway1-00000000", "/etc/asterisk/osmc_notify.sh \"Weckruf (200)\" "200"") in new stack
[Feb 12 10:35:47]        > 0x8021e5e0 -- Probation passed - setting RTP source address to 192.168.178.1:7110
[Feb 12 10:35:48]     -- Executing [200@osmc:3] Wait("SIP/fbfgateway1-00000000", "1") in new stack
[Feb 12 10:35:49]     -- Executing [200@osmc:4] Gosub("SIP/fbfgateway1-00000000", "Zeitansage") in new stack
[Feb 12 10:35:49]     -- Executing [200@osmc:40000] NoOp("SIP/fbfgateway1-00000000", "Zeitansage: 200") in new stack
[Feb 12 10:35:49]     -- Executing [200@osmc:40001] Answer("SIP/fbfgateway1-00000000", "") in new stack
[Feb 12 10:35:49]     -- Executing [200@osmc:40002] Wait("SIP/fbfgateway1-00000000", "1") in new stack
[Feb 12 10:35:50]     -- Executing [200@osmc:40003] SayUnixTime("SIP/fbfgateway1-00000000", ",UTC-1,akM") in new stack
[Feb 12 10:35:50]     -- <SIP/fbfgateway1-00000000> Playing 'digits/day-5.gsm' (language 'de')
[Feb 12 10:35:51]     -- <SIP/fbfgateway1-00000000> Playing 'digits/10.gsm' (language 'de')
[Feb 12 10:35:51]     -- <SIP/fbfgateway1-00000000> Playing 'digits/oclock.gsm' (language 'de')
[Feb 12 10:35:52]     -- <SIP/fbfgateway1-00000000> Playing 'digits/5-and.gsm' (language 'de')
[Feb 12 10:35:53]     -- <SIP/fbfgateway1-00000000> Playing 'digits/30.gsm' (language 'de')
[Feb 12 10:35:54]     -- Executing [200@osmc:40004] Return("SIP/fbfgateway1-00000000", "0") in new stack
[Feb 12 10:35:54]     -- Executing [200@osmc:5] Wait("SIP/fbfgateway1-00000000", "1") in new stack
[Feb 12 10:35:55]     -- Executing [200@osmc:6] Gosub("SIP/fbfgateway1-00000000", "Zeitansage") in new stack
[Feb 12 10:35:55]     -- Executing [200@osmc:40000] NoOp("SIP/fbfgateway1-00000000", "Zeitansage: 200") in new stack
[Feb 12 10:35:55]     -- Executing [200@osmc:40001] Answer("SIP/fbfgateway1-00000000", "") in new stack
[Feb 12 10:35:55]     -- Executing [200@osmc:40002] Wait("SIP/fbfgateway1-00000000", "1") in new stack
[Feb 12 10:35:56]     -- Executing [200@osmc:40003] SayUnixTime("SIP/fbfgateway1-00000000", ",UTC-1,akM") in new stack
[Feb 12 10:35:56]     -- <SIP/fbfgateway1-00000000> Playing 'digits/day-5.gsm' (language 'de')
[Feb 12 10:35:57]     -- <SIP/fbfgateway1-00000000> Playing 'digits/10.gsm' (language 'de')
[Feb 12 10:35:57]     -- <SIP/fbfgateway1-00000000> Playing 'digits/oclock.gsm' (language 'de')
[Feb 12 10:35:58]     -- <SIP/fbfgateway1-00000000> Playing 'digits/5-and.gsm' (language 'de')
[Feb 12 10:35:59]     -- <SIP/fbfgateway1-00000000> Playing 'digits/30.gsm' (language 'de')
[Feb 12 10:35:59]     -- Executing [200@osmc:40004] Return("SIP/fbfgateway1-00000000", "0") in new stack
[Feb 12 10:35:59]     -- Executing [200@osmc:7] Hangup("SIP/fbfgateway1-00000000", "") in new stack
[Feb 12 10:35:59]   == Spawn extension (osmc, 200, 7) exited non-zero on 'SIP/fbfgateway1-00000000'
...und auf deutsch.
 
Zuletzt bearbeitet:
Vielen Dank an rentier-s und koyaanisquasti! :)

Ein erster Erfolg! Das Telefon klingelt. Die Daten für die wav-Datei scheinen noch Probleme zu machen. Sie wird nicht abgespielt... :gruebel:
 
Versuchst du das immernoch mit...
Code:
Data: /var/lib/asterisk/sounds/custom/play
:?: Denn den Parameter kenn ich noch nichteinmal, wo ist das denn dokumentiert überhaupt?

Schau mal in dieses Verzeichnis: /usr/share/asterisk/sounds/de
Und in der Extension einfach mal zum Testen: same => n,Playback(vm-youhave)
...auch hat es sich bewährt eine Pause zwischen Answer und folgenden Aktionen zu setzen...
same => n,Answer()
same => n,Wait(1)
same => n,Playback(vm-youhave)
 
Was genau muss Komplett in die call-Datei? Das oben muss doch in die extensions.conf? Wie sieht da der Abschnitt komplett aus? :confused:
 
JL3, du scheinst andere Kontexte zu benutzen.

1. Die fbfgateways landen alle komplett im Kontext osmc, wie in der sip.conf definiert wurde
Nicht und niemals nicht im default oder public Kontext.

2. Nur im Kontext osmc sind diese Extensions definiert.
Funktionen, wie der Extrakontext Zeitansage, sind auch dort inkludiert.

Zeig mal deinen Kontext, dein Callfile, dann können wirs ganz schnell verbessern.
 
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.