PSTN vom SPA-3000 und Asterisk

zwelch

Neuer User
Mitglied seit
16 Okt 2005
Beiträge
63
Punkte für Reaktionen
0
Punkte
0
Hallo,
ich habe einen Linksys SPA-3000 den ich nun an meinen frisch eingerichteten Asterisk anbinden will.
Wenn auf der PSTN vom SPA ein Anruf eingeht, soll dieser automatisch wie ein VoIP-Anruf behandelt werden (1. auf Telefon leiten 2. nach bestimmter Zeit Mailbox).

In der sip.conf habe ich den SPA als ganz normales Telefon eingebunden
Code:
[30] ; fxo-port (PSTN Line)
callerid=PSTN <30>
host=dynamic
domain=172.16.0.6
user=30
secret=geheim
type=friend
mailbox=30
nat=yes
canreinvite=no

Das funktioniert auch so weit. Der SPA leitet die Festnetzanrufe an den Asterisk und man ist dann quasi so verbunden, als hätte man den hörer an einem lokalen Telefon abgehoben (Freizeichen ist vorhanden). Aber das will ich ja nicht...
Also im Dialplan vom SPA folgendes eingetragen: (S0<:6781234>)

Die extensions.conf sieht demnach so aus
Code:
[pstn_ankommend]
exten => 6781234,1,Dial,SIP/31|3|r ; Signalisierung des Anrufs am Telefon 31
exten => 6781234,2,Goto,r-${DIALSTATUS}|1 ; Nach 3 Sekunden Weiterleitung an Mailbox

exten => r-BUSY,1,voicemail,b30
exten => r-BUSY,2,Hangup

exten => r-NOANSWER,1,voicemail,u30
exten => r-NOANSWER,2,Hangup

Tja, und das geht nicht. Der SPA sagt "VoIP Gateway Call Timeout" und Asterisk schweigt sich aus.

Natürlich habe ich auch schon hier im Forum gesucht, aber bei aller Bastelei ist nichts bei herumgekommen :(

Gruß
zwelch
 
Ich habe zwar nicht ganz verstanden was Du machen möchtest, aber mir ist aufgefallen, das Du in der sip.conf dem Gerät keinen Kontext zugewiesen hast. Du solltest dort noch so etwas
context=pstn_ankommend
eintragen und am besten mal prüfen ob die Registrierung klappt mit
sip show peers
 
madiehl schrieb:
Ich habe zwar nicht ganz verstanden was Du machen möchtest
Ok, ich werde es nochmal anders versuchen:

1. eingehender Anruf aus dem Festnetz -> SPA (PSTN) -> SPA (VoIP2) -> Asterisk
2. falls Telefon (VoIP1) frei: Asterisk -> SPA (VoIP1) -> Telefon
3. falls Telefon (VoIP1) nicht frei: Asterisk -> Mailbox

Ich hoffe, dass es so verständlicher ist...

madiehl schrieb:
und am besten mal prüfen ob die Registrierung klappt mit sip show peers
Das läuft.

madiehl schrieb:
Du solltest dort noch so etwas
context=pstn_ankommend
eintragen
Den Tipp werde ich gleich ausprobieren.


Gruß
zwelch
 
Der Tipp hat definitv schonmal was gebracht.
Asterisk übernimmt den Anruf und das Telefon bimmelt. Nur abnehmen kann ich nicht. Dann geht die Mailbox dran (xx gerade im Gespräch...). Wenn ich dann das Telefon auflege, legt auch die Mailbox auf.
Das Problem besteht sonst nicht (bei eingehenden VoIP-Verbindungen).

Asterisk gibt folgendes aus:
Code:
-- Executing [6781234@pstn_ankommend:1] Dial("SIP/30-b6c040d8", "SIP/31|30|r") in new stack
    -- Called 31
    -- SIP/31-081cf218 is ringing
  == Spawn extension (pstn_ankommend, 6781234, 1) exited non-zero on 'SIP/30-b6c040d8'
    -- Executing [6781234@pstn_ankommend:1] Dial("SIP/30-b6c040d8", "SIP/31|30|r") in new stack
    -- Called 31
    -- SIP/31-081d3180 is ringing
== Spawn extension (pstn_ankommend, 6781234, 1) exited non-zero on 'SIP/30-b6c02b58'
    -- Executing [6781234@pstn_ankommend:1] Dial("SIP/30-b6c02b58", "SIP/31|30|r") in new stack
    -- Called 31
    -- Got SIP response 486 "Busy Here" back from 172.16.0.253
    -- SIP/31-081d3180 is busy
  == Everyone is busy/congested at this time (1:1/0/0)
    -- Executing [6781234@pstn_ankommend:2] Goto("SIP/30-b6c02b58", "r-BUSY|1") in new stack
    -- Goto (pstn_ankommend,r-BUSY,1)
    -- Executing [r-BUSY@pstn_ankommend:1] VoiceMail("SIP/30-b6c02b58", "b30") in new stack
    -- Playing 'vm-theperson' (language 'de')
    -- Playing 'digits/3' (language 'de')
    -- Playing 'digits/0' (language 'de')
    -- Playing 'vm-isonphone' (language 'de')
    -- Playing 'vm-intro' (language 'de')
  == Spawn extension (pstn_ankommend, r-BUSY, 1) exited non-zero on 'SIP/30-b6c02b58'

//edit
Ich kann das Gespräch scheinbar nur mit dem Telefon annehmen während es bimmelt. Ansonsten geht halt die Mailbox dran.
Ich weiß jetzt bloß nicht, ob das Problem beim Asterisk oder beim SPA liegt.

Gruß
zwelch
 
Zuletzt bearbeitet:
Zeig doch bitte mal Deine komplette sip.conf und extensions.conf, denn die sieht in den Logs wieder anders aus als Du es oben gepostet hast. Einmal klingelt es angeblich 3 Sekunden laut Logs wird der Anruf aber für 30 Sekunden durchgeführt. Ausserdem wäre es hilfeich zu wissen welches Telefon in welchem Kontext steht. Ich habe den Verdacht, das Du mit dem eingehenden Anruf mehrfach die gleiche Nummer anrufst oder aber Dein Log stammt von mehreren Anrufversuchen.
Du kannst das Gespräch natürlich nur mit dem Telefon annehmen, solange es klingelt, denn danach geht der Ruf ja zur Mailbox. Genaueres kann ich nach kurzem Überfliegen nur sagen, wenn die Configfiles vorliegen.

Nachtrag: Wenn ich das richtig lese, hast Du 2 SPA? Einer mit der Rufnummer 30 und einer mit der 31? Lass am besten im Dialstring mal das r weg. Das gaukelt Dir nur ein ringing vor und kann schon auftreten, wenn das Telefon noch gar nicht wirklich klingelt.
 
madiehl schrieb:
Einmal klingelt es angeblich 3 Sekunden laut Logs wird der Anruf aber für 30 Sekunden durchgeführt.
Ja, das habe ich zwischenzeitlich mehrfach geändert (um verschiedene Sachen zu testen).

madiehl schrieb:
Ausserdem wäre es hilfeich zu wissen welches Telefon in welchem Kontext steht.
30 = SPA VoIP2 = PSTN
31 = SPA VoIP1 = Telefon

madiehl schrieb:
Ich habe den Verdacht, das Du mit dem eingehenden Anruf mehrfach die gleiche Nummer anrufst oder aber Dein Log stammt von mehreren Anrufversuchen.
Der Log stammt von einem Anruf, ist aber gekürzt. Da stand mehrfach
Code:
== Spawn extension (pstn_ankommend, 6781234, 1) exited non-zero on 'SIP/30-b6c040d8'
    -- Executing [6781234@pstn_ankommend:1] Dial("SIP/30-b6c040d8", "SIP/31|30|r") in new stack
    -- Called 31
    -- SIP/31-081d3180 is ringing
drin. Bei jedem neuen Klingelzeichen wurde ein entsprechender Log ausgegeben.


madiehl schrieb:
Du kannst das Gespräch natürlich nur mit dem Telefon annehmen, solange es klingelt
Das Problem ist, dass ich es nur annehmen kann, während es klingelt (also während das akkustische Signal ertönt).

madiehl schrieb:
Wenn ich das richtig lese, hast Du 2 SPA? Einer mit der Rufnummer 30 und einer mit der 31?
Nein, ich habe einen SPA-3000.
Dieser hat zwei VoIP Lines.
SPA VoIP1 = Telefon = 31
SPA VoIP2 = PSTN = 30

sip.conf
Code:
[general]
context=default
bindport=5060
bindaddr=172.16.0.6
srvlookup=yes
language=de

register => 000xxxxxxxxx:[email protected]/000xxxxxxxxx

[000xxxxxxxxx]
; dies ist der Context, den wir zum Raustelefonieren verwenden

type=peer
username=000xxxxxxxxx
fromuser=000xxxxxxxxx
secret=pwd
host=voip.dus.net
fromdomain=voip.dus.net
insecure=very
canreinvite=no
nat=yes
disallow=all
allow=ulaw

[dusnet_de_in] 
; das ist der Context fr ankommende Anrufe von dus.net

type=peer
fromdomain=voip.dus.net
host=voip.dus.net
disallow=all
allow=ulaw
context=ankommend

[30] ; fxo-port (PSTN Line)
callerid=PSTN <30>
host=dynamic
domain=172.16.0.6
user=30
secret=geheim
type=friend
mailbox=30
nat=yes
canreinvite=no
context=pstn_ankommend

[31]
callerid=Phone 1 <31>
host=dynamic
domain=172.16.0.6
user=31
secret=geheim
type=friend
mailbox=31
nat=yes
canreinvite=no

extensions.conf
Code:
[general]
static=yes
writeprotect=no

[echotest]
exten => 81,1,answer
exten => 81,2,wait,1
exten => 81,3,playback,demo-echotest
exten => 81,4,echo
exten => 81,5,playback,demo-echodone
exten => 81,6,hangup

[mailbox]
exten => 80,1,answer
exten => 80,n,wait,1
exten => 80,n,voicemailmain
exten => 80,n,hangup

[mailbox_own]
exten => 88,1,answer
exten => 88,n,wait,1
exten => 88,n,voicemailmain,s${CALLERIDNUM}
exten => 88,n,hangup


[lokal]
; Erreichbarkeit der Nebenstellen 30-39 untereinander herstellen

exten => _3X,1,NoCDR()
exten => _3X,n,Dial,SIP/${EXTEN}|55|Ttr

[dusnet_out]
; ausgehende Rufe ueber dus.net

exten => _0.,1,Dial,SIP/${EXTEN}@000xxxxxxxxx|45|r

[ankommend]
; ankommende Rufe von dus.net

exten => 000xxxxxxxxx,1,Dial,SIP/31|30|r
exten => 000xxxxxxxxx,2,Goto,r-${DIALSTATUS}|1

exten => r-BUSY,1,voicemail,b30
exten => r-BUSY,2,Hangup

exten => r-NOANSWER,1,voicemail,u30
exten => r-NOANSWER,2,Hangup

[pstn_ankommend]
exten => 6781234,1,Dial,SIP/31|30|r
exten => 6781234,2,Goto,r-${DIALSTATUS}|1

exten => r-BUSY,1,voicemail,b30
exten => r-BUSY,2,Hangup

exten => r-NOANSWER,1,voicemail,u30
exten => r-NOANSWER,2,Hangup


; --------------------------------------------------------------------

[default]
include => lokal
include => echotest
include => mailbox
include => mailbox_own
include => dusnet_out

Nochmal ein kompletter Log, der mit der geposteten conf gemacht wurde. Anruf vom Festnetz (PSTN = 30). Telefon (31) bimmelt mehrfach. Telefon wird nicht abgehoben, Mailbox geht auch noch nicht dran.
Code:
-- Executing [6781234@pstn_ankommend:1] Dial("SIP/30-b6c01d60", "SIP/31|30|r") in new stack
    -- Called 31
    -- SIP/31-081d1200 is ringing
  == Spawn extension (pstn_ankommend, 6781234, 1) exited non-zero on 'SIP/30-b6c01d60'
    -- Executing [6781234@pstn_ankommend:1] Dial("SIP/30-b6c01d60", "SIP/31|30|r") in new stack
    -- Called 31
    -- SIP/31-081d5168 is ringing
  == Spawn extension (pstn_ankommend, 6781234, 1) exited non-zero on 'SIP/30-b6c01d60'
    -- Executing [6781234@pstn_ankommend:1] Dial("SIP/30-b6c01d60", "SIP/31|30|r") in new stack
    -- Called 31
    -- SIP/31-081d90d0 is ringing
  == Spawn extension (pstn_ankommend, 6781234, 1) exited non-zero on 'SIP/30-b6c01d60'
    -- Executing [6781234@pstn_ankommend:1] Dial("SIP/30-b6c01d60", "SIP/31|30|r") in new stack
    -- Called 31
    -- SIP/31-081dd038 is ringing
  == Spawn extension (pstn_ankommend, 6781234, 1) exited non-zero on 'SIP/30-b6c01d60'
    -- Executing [6781234@pstn_ankommend:1] Dial("SIP/30-b6c01d60", "SIP/31|30|r") in new stack
    -- Called 31
    -- SIP/31-081e0fa0 is ringing
  == Spawn extension (pstn_ankommend, 6781234, 1) exited non-zero on 'SIP/30-b6c01d60'

Falls andere Szenarien gewünscht sind (Telefon abheben/Mailbox etc.) bitte bescheid sagen. Ich belaste meine Handyrechnung gerne ;)

Gruß
zwelch
 
Ich kenne den SPA-3000 nicht, habe aber eine Vermutung dazu:
Mit dem von Dir im SPA eingetragenen Dialplan werden alle eingehende Anrufe an die 6781234 im Asterisk weitergeleitet, richtig?
Asterisk wählt nun die Nummer 31 im SPA, was wiederum dazu führt das dieser das Gespräch an die 6781234 weiterleitet und Du hast eine wunderbare Schleife. Das Problem dürfte daran liegen, das der Dialplan des Sipura so nicht geht, aber dazu kann ich Dir leider nichts sagen. Am besten schaust Du mal im entsprechenden Forum.
 
madiehl schrieb:
Mit dem von Dir im SPA eingetragenen Dialplan werden alle eingehende Anrufe an die 6781234 im Asterisk weitergeleitet, richtig?
Wenn ich das richtig verstanden habe, wird die Nummer irgendwie zu Identifizierung genutzt (kenne mich mit dem Dialplan auch null aus :( )

madiehl schrieb:
Mit dem von Dir im SPA eingetragenen Dialplan werden alle Asterisk wählt nun die Nummer 31 im SPA, was wiederum dazu führt das dieser das Gespräch an die 6781234 weiterleitet und Du hast eine wunderbare Schleife.
Warum sollte der SPA das Gespräch erneut weiterleiten? Asterisk leitet das Gespräch auf VoIP1 (Telefon) vom SPA. Um eine Schleife zu verursachen, müsste der SPA das Gespräch ja wiederum auf VoIP2 leiten :confused:

Ich denke, das dass Problem darin liegt, dass der SPA bei jedem Klingeln immer wieder eine neue Verbindung aufbaut - also immer wieder neu den Asterisk anwählt.
 
Ich habs! :)

Habe im SPA
Code:
Off Hook While Calling VoIP: yes
gesetzt und nun läufts :)

Besten Dank für die Hilfe!

Gruß
zwelch
 
Kostenlos!

Statistik des Forums

Themen
247,831
Beiträge
2,274,449
Mitglieder
376,827
Neuestes Mitglied
Markus Koblitz