[Frage] eingehenden Anruf annehmen und Playback abspielen

JL3

Aktives Mitglied
Mitglied seit
4 Dez 2010
Beiträge
1,995
Punkte für Reaktionen
8
Punkte
38
Hallo an alle,

nach sehr langer Zeit bin ich wieder einmal im Forum und muss gleich mit einer Frage zu asterisk kommen, die sicher simpel ist, aber ich "stehe auf dem Schlauch".

Vorab es geht darum:
Auf einem Raspberry läuft asterisk. Der Raspberry hängt an einer Fritzbox.

Nun soll ein eingehender Anruf auf eine bestimmte Nummer (z. B. 06123 12345) den asterisk mit intern verknüpfter Nummer 621 erreichen, dieser soll den Anruf entgegennehmen und per Playback antworten. danach soll er ein Script oder eine URL aufrufen und auflegen.

In die andere Richtung läuft es bereits ohne Probleme.

Ich poste hier mal die sip.conf und die extensions.conf, die bereits bestehen.

sip.conf:
Code:
; +----------------------------------------------+
; | SIP asterisk Config                          |
; +----------------------------------------------+

[general]
   language=de
   tonezone=de
   context=saskiatalk
   allowoverlap=no
   udpbindaddr=0.0.0.0
   tcpenable=no
   tcpbindaddr=0.0.0.0
   transport=udp
   srvlookup=yes
   register => 7430fdbb84b11bbxxxxxx@phoenix:5060/621

[gateway](!)
   description=Fritz!Box Registrar
   context=saskiatalk
   call-limit=1
   type=friend
   insecure=invite
   nat=force_rport,comedia
   fromdomain=fritz.box
   secret=xxxccccccc
   host=phoenix
   canreinvite=yes
   directmedia=no
   dtmfmode=rfc2833
   allow=!all,g722,alaw,ulaw

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

; +----------------------------------------------+
; | SIP asterisk Config                     Ende |
; +----------------------------------------------+

extensions.conf:
Code:
; +----------------------------------------------+
; | EXTENSIONS asterisk Config                   |
; +----------------------------------------------+

[general]
   static=yes
   writeprotect=no
   clearglobalvars=no

[globals]
   CONSOLE=Console/dsp
   TRUNKMSD=1

[saskiatalk]
   exten => s,1(start),NoOp(${CHANNEL} ${CALLERID(all)} startet Anruf)
    same => n,Answer()
    same => n,Wait(1)
    same => n,WaitForSilence(2000)
    same => n,Playback(play)
    same => n,Wait(1)
    same => n(exit),Hangup()

; +----------------------------------------------+
; | EXTENSIONS asterisk Config              Ende |
; +----------------------------------------------+

Ich hoffe, ihr könnt mir weiterhelfen.
 
Moinsen


Na, da isser ja wieder :cool: ( welcome back )
...endlich mal wieder ein bischen Scripting angesagt.

Also, dein register=> gibt die Extension vor (621) und sucht einen Peer für phoenix.
Gegenfrage: Ist phoenix die FRITZ!Box?
Wenn ja, wird der Kontext genommen ([saskiatalk]), der im Peer für phoenix in der sip.conf vorgegeben wird und dann brauchst du in der extensions.conf eben noch eine Extension in [saskiatalk] die auf 621 hört.

Beispielsweise...
Rich (BBCode):
[saskiatalk]
   exten => s,1(start),NoOp(${CHANNEL} ${CALLERID(all)} startet Anruf)
    same => n,Answer()
    same => n,Wait(1)
    same => n,WaitForSilence(2000)
    same => n,Playback(play)
    same => n,Wait(1)
    same => n(exit),Hangup()

exten => 621,1,Goto(s,1)

Vielleicht wärst du von selbst darauf gekommen, wenn du die Asteriskkonsole gesprächiger gemacht hättest?

PS: Unter [general] (sip.conf) geb ich immer einen Kontext an, der einfach nur leer ist.
Da schlagen nämlich besonders die Anrufe auf, die nicht authorisiert sind.
...meistens: Guest Calls ( SIP URI Calls ) Auch bekannt als: Friendly Scanner :cool:
 
Zuletzt bearbeitet:
Hi, @koyaanisquasti,

phoenix ist die fritzbox, aber mit dem exten rufe ich doch den oberen auf und ich möchte hier eigenttlich einen anderen text.

Wenn ich es übrigens so ergänze, geht asterisk nicht ran.
 
Ich hab jetzt auch aus der Erinnerung das Goto() getippt.
Gib mir mal bitte die Fehlermeldung die Asterisk raushaut.
 
Wo kann ich die sehen?

[Edit Novize: Beiträge zusammengefasst - siehe Forumsregeln]

Anscheinend landet der Anruf nicht bei asterisk. als ob 621 nicht abgefangen wird.
 
Zuletzt bearbeitet von einem Moderator:
Wenn du keine Meldungen mehr in der Asteriskkonsole bekommst, hast du wahrscheinlich die logger.conf nicht bearbeitet?
Da muss dann sowas rein...
Code:
syslog.local0 => notice,warning,error                                    
;                                                                        
console => notice,warning,error,verbose(7),fax,security                  
messages => notice,warning,error,verbose(7),fax,security
...damit wieder dialplan Ausgaben bei/mit asterisk -rvvvddd kommen.
Schau auch mal in die logger.conf.dpkg-dist was da drinne steht.
Danach...
Rich (BBCode):
logger reload
logger show channels
Logger queue limit: 1000

Channel                             Type     Formatter  Status    Configuration
-------                             ----     ---------  ------    -------------
/var/log/asterisk/messages          File     default    Enabled    - NOTICE WARNING ERROR VERBOSE FAX SECURITY
                                    Console  default    Enabled    - NOTICE WARNING ERROR VERBOSE FAX SECURITY
syslog.local0                       Syslog   default    Enabled    - NOTICE WARNING ERROR
 
Zuletzt bearbeitet:
Beim Raustelefonieren wird ordnungsgemäß protokolliert,

beim eingehenden Gespräch kommt nichts. Kein Protokoll, einfach so, als ob asterisk gar nichts mitbekommt.
 
sip show registry sip show peers OK?
Kann sein das nicht registriert ist?
 
wo finde ich das?

sorry, ich hab vor einigen Jahren asterisk aufgesetzt, daher bitte auch sagen, wo ich was finde. :)"

-- Zusammenführung Doppelpost gemäß Boardregeln by stoney

Code:
HIMBEERE*CLI> sip show registry
Host                                    dnsmgr Username       Refresh State                Reg.Time             
phoenix:5060                            N      7430fdxxxxxx       120 Rejected                                 
1 SIP registrations.
HIMBEERE*CLI> sip show peers
Name/username             Host                                    Dyn Forcerport Comedia    ACL Port     Status      Description
fbgateway/621             192.168.1.1                                 Yes        Yes            5060     Unmonitored Fritz!Box Registrar
1 sip peers [Monitored: 0 online, 0 offline Unmonitored: 1 online, 0 offline]
HIMBEERE*CLI>

-- Zusammenführung Doppelpost gemäß Boardregeln by stoney

Müsste da nicht 1 Monitored stehen? Nur ein Verdacht von mir. Aber wo muss ich das eintragen, dass das überwacht wird?
 
Zuletzt bearbeitet von einem Moderator:
Kommandos in der Asteriskkonsole eingeben, können mit Tabulatortaste erweitert werden oder zeigen dir die Optionen.
...a hast es ;)


Tja, wenn Rejected isses ja wohl Sonnenklar warum kein Anruf reinkommt.
Da stimmt was mit der Registrierung, wahrscheinlich Authorisierung, nicht.

Asterisk darf sich jetzt erstmal mindestens 5 Minuten nicht versuchen sich an dem Account zu registrieren.
( Ein Semikolon vor register => in der sip.conf ;) )

Müsste da nicht 1 Monitored stehen? Nur ein Verdacht von mir. Aber wo muss ich das eintragen, dass das überwacht wird?
Beim heiligen Bimmbamm - Nee - Auf gar keinen Fall jetzt noch "qualify" auf den Tisch hauen.
Die FRITZ!Box fährt sowas wie "FailtoBan" - Jetzt muss erstmal mindestens 5 Minuten Ruhe sein.

So mach ich dass "qualify" erst wenn alls Andere auch schon klappt...
Code:
sip show peers
Name/username             Host                                    Dyn Forcerport Comedia    ACL Port     Status      Description                   
1000/1000                 192.168.188.1                            D  No         Yes            5060     OK (25 ms)  User/Peer                     
1001/1001                 192.168.188.1                            D  No         Yes            5060     OK (15 ms)  User/Peer                     
1002/1002                 192.168.188.1                            D  No         Yes            5060     OK (27 ms)  User/Peer                     
1003/1003                 192.168.188.1                            D  No         Yes            5060     OK (25 ms)  User/Peer                     
1004/1004                 192.168.188.1                            D  No         Yes            5060     OK (25 ms)  User/Peer                     
1005/1005                 192.168.188.1                            D  No         Yes            5060     OK (26 ms)  User/Peer                     
1006                      (Unspecified)                            D  No         Yes            0        UNKNOWN     User/Peer                     
1007/1007                 (Unspecified)                            D  No         Yes            0        UNKNOWN     User/Peer                     
1008                      (Unspecified)                            D  No         Yes            0        UNKNOWN     User/Peer                     
1009/1009                 (Unspecified)                            D  No         Yes            0        UNKNOWN     User/Peer                     
fbfgateway0/koyaanisqatsi 192.168.188.1                               Auto (No)  No             5060     OK (11 ms)  Peer/NAT                      
11 sip peers [Monitored: 7 online, 4 offline Unmonitored: 0 online, 0 offline]
 
Zuletzt bearbeitet:
Okay. Einfach 5 Minuten nichts tun, oder muss ich asterisk stoppen?

Wo ist dann der Grund, dass da nichts ankomnt, wo kann ich da etwas überprüfen, wenn die Registrierung fehlerhaft ist. Raustelefonieren mit Asterisk funktioniert ja.
 
Zum raustelefonieren wird nicht das register => sondern der Peer fbgateway genutzt.
Du musst das register => in der sip.conf kommentieren ( ; davor ) und in der Konsole sip reload ausführen.

Ich empfehle dir anstatt phoenix die IPv4 der FRITZ!Box zu nutzen.
Auch in der sip.conf Peer Vorlage: [fbgateway](!)
 
Zuletzt bearbeitet:
ich finde das registry nicht, nur das register in der sip.conf
 
Verschrieben - Korrigiere
 
sip.conf
Code:
; +----------------------------------------------+
; | SIP asterisk Config                          |
; +----------------------------------------------+

[general]
   language=de
   tonezone=de
   context=saskiatalk
   allowoverlap=no
   udpbindaddr=0.0.0.0
   tcpenable=no
   tcpbindaddr=0.0.0.0
   transport=udp
   srvlookup=yes
;  register => 7430fdbb84b11bb90eb40f33c2a0b3a3@phoenix:5060/621

[gateway](!)
   description=Fritz!Box Registrar
   context=saskiatalk
   call-limit=1
   type=friend
   insecure=invite
   nat=force_rport,comedia
   fromdomain=192.168.1.1
   secret=xxx
   host=192.168.1.1
   canreinvite=yes
   directmedia=no
   dtmfmode=rfc2833
   allow=!all,g722,alaw,ulaw

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

; +----------------------------------------------+
; | SIP asterisk Config                     Ende |
; +----------------------------------------------+

extensions.conf
Code:
; +----------------------------------------------+
; | EXTENSIONS asterisk Config                   |
; +----------------------------------------------+

[general]
   static=yes
   writeprotect=no
   clearglobalvars=no

[globals]
   CONSOLE=Console/dsp
   TRUNKMSD=1

[saskiatalk]
exten => 621,1,Answer()
exten => 621,2,Playback(hello-world)
exten => 621,3,Playback(please-try-again)
exten => 621,4,Hangup()
   
   exten => s,1(start),NoOp(${CHANNEL} ${CALLERID(all)} startet Anruf)
    same => n,Answer()
    same => n,Wait(1)
    same => n,WaitForSilence(2000)
    same => n,Playback(play)
    same => n,Wait(1)
    same => n(exit),Hangup()
    
; +----------------------------------------------+
; | EXTENSIONS asterisk Config              Ende |
; +----------------------------------------------+

So steht es jetzt drin, aber funktioniert nicht... ich bin ratlos...
 
Und check auch mal deine register Syntax.
register => Benutzername:[email protected]:5060/Extension
Also ich mein sowas wie: Keinen Doppelpunkt im Kennwort oder Benutzernamen
...weil das der Trenner ist zwischen Benutzernamen und Kennwort.

So steht es jetzt drin, aber funktioniert nicht... ich bin ratlos...
Was soll den das abstrakte "funktioniert nicht"?
Wir kriegen das schon hin, hab eh grad Zeit.
...und nur der hat Zeit, der sie sich nimmt :cool: (Hab auch Popkorn und Schokolade, Chips und Limo)

Also mal kurz zum Verständnis...
Das register => muss erstmal funktionieren, weil das die eingehenden Anrufe sind.
Solange das sip show registry ein Rejected oder Retrying ausgibt wird das also nichts.
Das der Peer [fbgateway] raustelefonieren kann zeigt aber an, dass der sich ordentlich authorisiert.
Wenn ein Anruf über das register => reinkommt, wird der Peer [fbgateway] anhand der IPv4 erkannt und nur um dessen Kontext zu erfahren ( [saskiatalk] ).
Danach wird versucht im Wahlplan ( extensions.conf ) den erfahrenen Kontext ( [sakiatalk] ) die Extension ( 621 siehe register => ) auszuführen.

Noch ein Tipp: Mach mal zu Meditationszwecken ein sip set debug on in der Konsole an und mach einen Rausruf.
Dann siehste auch, dass sich das ausgehende INVITE on the fly authorisiert.
...und natürlich auch, was passiert, wenn du das register => wieder scharf machst.
 
Zuletzt bearbeitet:
Neu eingetragen: timeout. Jetzt geht gar nichts mehr...
 
Hm, Lesestoff kann ich dir noch anbieten...

Und vielleicht mal in der FRITZ!Box zum Test ein IP-Telefon einrichten und Benutzer/Kennwort möglichst simpel halten um dort ein register => versuchen?

Selbst nutz ich nur in der FRITZ!Box angelegte Asterisknummern (1000-1009) und für die FRITZ!Box sind das immer Externe Anrufe, die immer in der Anrufsliste auftauchen und beliebigen Telefonen zugewiesen werden können.
...auch den angelegten FRITZ!Box IP-Telefonen und Rufbehandelt können sie in der FRITZ!Box auch werden.
Den Peer fbgateway0 ( siehe meine sip show peers Ausgabe in Post #12 ) nutz ich für Rausrufe oder interne Telefonie selten.
 
Zuletzt bearbeitet:
Frag mich nicht wieso, aber:
ES FUNKTIONIERT! :)

Tausend Dank für deine Mühe mit mir.

Jetzt, wo auch Anrufe ankommen (Problem war wohl, dass phoenix nicht aufgelöst werden konnte) kommt das Thema: wie starte ich ein Script oder eine Url?

Hättest du da noch einen Tipp?
 
Wenn Scripte was mit 'print' oder 'echo' ausgeben, also auf 'stdin', dann: SHELL()
...damit kannste natürlich auch curl ausführen.
 
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.