HFC-Karte mit freePBX: kann ISDN-Anrufe nicht auf ISDN umleiten

m.p.

Neuer User
Mitglied seit
14 Okt 2007
Beiträge
14
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe hier einen Asterisk-Rechner, in dem eine HFC-Karte verbaut ist und auf dem
Asterisk 1.2.23, briStuff und freePBX läuft. Die Karte läuft im TE-Modus an einem
internen S0-Bus einer Telefonanlage. Die Karte ist eingerichtet und funktioniert
soweit:
zaptel.conf
Code:
# hfc-s pci a span definition
# most of the values should be bogus because we are not really zaptel
loadzone=nl
defaultzone=nl

span=1,1,3,ccs,ami
bchan=1-2
dchan=3
zapata.conf
Code:
;
; Zapata telephony interface
;
; Configuration file

[channels]
;
; Default language
;
language=de
;
; Default context
;
;
switchtype = euroisdn
; p2mp TE mode
signalling = bri_cpe_ptmp

; p2p TE mode
;signalling = bri_cpe
; p2mp NT mode
;signalling = bri_net_ptmp
; p2p NT mode
;signalling = bri_net

pridialplan = local
prilocaldialplan = local
nationalprefix = 0
internationalprefix = 00

echocancel=yes
echotraining = 100
echocancelwhenbridged=yes

immediate=no
group = 1
context=from-pstn
channel => 1-2
Ich habe eine Zap-Extension für die Nummer 45 eingerichtet (bei Dial: ZAP/1/45), die
ich von Sip-Telefonen auch erreiche. Außerdem habe ich eine Inbound-Route für ISDN
für die Nummer 74 eingerichtet, die auf die Extension 45 geht. Wenn ich die 74 von
Anrufe bekomme ich aber nur besetzt:
Code:
asteriskpbx*CLI> set verbose 5
Verbosity is at least 5
    -- Accepting voice call from '' to '74' on channel 0/1, span 1
    -- Executing Set("Zap/1-1", "__FROM_DID=74") in new stack
    -- Executing Gosub("Zap/1-1", "app-blacklist-check|s|1") in new stack
    -- Executing LookupBlacklist("Zap/1-1", "") in new stack
    -- Executing GotoIf("Zap/1-1", "0?blacklisted") in new stack
    -- Executing Return("Zap/1-1", "") in new stack
    -- Executing GotoIf("Zap/1-1", "1 ?cidok") in new stack
    -- Goto (from-pstn,74,5)
    -- Executing NoOp("Zap/1-1", "CallerID is "CID withheld" <>") in new stack
    -- Executing Goto("Zap/1-1", "from-did-direct|45|1") in new stack
    -- Goto (from-did-direct,45,1)
    -- Executing GotoIf("Zap/1-1", "1?ext-local|45|1") in new stack
    -- Goto (ext-local,45,1)
    -- Executing Macro("Zap/1-1", "exten-vm|45|45") in new stack
    -- Executing Macro("Zap/1-1", "user-callerid") in new stack
    -- Executing NoOp("Zap/1-1", "user-callerid: CID withheld ") in new stack
    -- Executing Set("Zap/1-1", "AMPUSER=") in new stack
    -- Executing GotoIf("Zap/1-1", "0?report") in new stack
    -- Executing GotoIf("Zap/1-1", "0?start") in new stack
    -- Executing Set("Zap/1-1", "REALCALLERIDNUM=") in new stack
    -- Executing NoOp("Zap/1-1", "REALCALLERIDNUM is ") in new stack
    -- Executing Set("Zap/1-1", "AMPUSER=") in new stack
    -- Executing Set("Zap/1-1", "AMPUSERCIDNAME=") in new stack
    -- Executing GotoIf("Zap/1-1", "1?report") in new stack
    -- Goto (macro-user-callerid,s,13)
    -- Executing NoOp("Zap/1-1", "TTL:  ARG1: 45") in new stack
    -- Executing GotoIf("Zap/1-1", "0?continue") in new stack
    -- Executing Set("Zap/1-1", "__TTL=64") in new stack
    -- Executing GotoIf("Zap/1-1", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,23)
    -- Executing NoOp("Zap/1-1", "Using CallerID "CID withheld" <>") in new stack
    -- Executing Set("Zap/1-1", "FROMCONTEXT=exten-vm") in new stack
    -- Executing Set("Zap/1-1", "VMBOX=45") in new stack
    -- Executing Set("Zap/1-1", "EXTTOCALL=45") in new stack
    -- Executing Set("Zap/1-1", "CFUEXT=") in new stack
    -- Executing Set("Zap/1-1", "CFBEXT=") in new stack
    -- Executing Set("Zap/1-1", "RT=60") in new stack
    -- Executing Macro("Zap/1-1", "record-enable|45|IN") in new stack
    -- Executing GotoIf("Zap/1-1", "0?2:4") in new stack
    -- Goto (macro-record-enable,s,4)
    -- Executing AGI("Zap/1-1",
"recordingcheck|20071106-154511|asterisk-8085-1194360311.170") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
  recordingcheck|20071106-154511|asterisk-8085-1194360311.170: Inbound recording not
enabled
    -- AGI Script recordingcheck completed, returning 0
    -- Executing NoOp("Zap/1-1", "No recording needed") in new stack
    -- Executing Macro("Zap/1-1", "dial|60|tr|45") in new stack
    -- Executing GotoIf("Zap/1-1", "1?dial") in new stack
    -- Goto (macro-dial,s,3)
    -- Executing AGI("Zap/1-1", "dialparties.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
  dialparties.agi: Starting New Dialparties.agi
  == Parsing '/etc/asterisk/manager.conf': Found
  == Manager 'admin' logged on from 127.0.0.1
  dialparties.agi: Caller ID name is 'CID withheld' number is 'unknown'
  dialparties.agi: USE_CONFIRMATION:  'FALSE'
  dialparties.agi: RINGGROUP_INDEX:   ''
  dialparties.agi: Methodology of ring is  'none'
    --  dialparties.agi: Added extension 45 to extension map
    --  dialparties.agi: Extension 45 cf is disabled
    --  dialparties.agi: Extension 45 do not disturb is disabled
       >  dialparties.agi: extnum 45 has:  cw: 0; hascfb: 0 [] hascfu: 0 []
       >  dialparties.agi: ExtensionState: 1
  dialparties.agi: Extension 45 has ExtensionState: 1
    --  dialparties.agi: Checking CW and CFB status for extension 45
  dialparties.agi: Extension 45 is not available to be called
  dialparties.agi: Extension 45 has call waiting disabled
    -- AGI Script dialparties.agi completed, returning 0
    -- Executing NoOp("Zap/1-1", "Returned from dialparties with no extensions to
call and DIALSTATUS: BUSY") in new stack
    -- Executing Set("Zap/1-1", "SV_DIALSTATUS=BUSY") in new stack
    -- Executing GosubIf("Zap/1-1", "0?docfu|1") in new stack
    -- Executing GosubIf("Zap/1-1", "0?docfb|1") in new stack
    -- Executing Set("Zap/1-1", "DIALSTATUS=BUSY") in new stack
    -- Executing NoOp("Zap/1-1", "Voicemail is 45") in new stack
    -- Executing GotoIf("Zap/1-1", "0?s-BUSY|1") in new stack
    -- Executing NoOp("Zap/1-1", "Sending to Voicemail box 45") in new stack
    -- Executing Macro("Zap/1-1", "vm|45|BUSY") in new stack
    -- Executing Macro("Zap/1-1", "user-callerid|SKIPTTL") in new stack
    -- Executing NoOp("Zap/1-1", "user-callerid: CID withheld ") in new stack
    -- Executing Set("Zap/1-1", "AMPUSER=") in new stack
    -- Executing GotoIf("Zap/1-1", "0?report") in new stack
    -- Executing GotoIf("Zap/1-1", "0?start") in new stack
    -- Executing Set("Zap/1-1", "REALCALLERIDNUM=") in new stack
    -- Executing NoOp("Zap/1-1", "REALCALLERIDNUM is ") in new stack
    -- Executing Set("Zap/1-1", "AMPUSER=") in new stack
    -- Executing Set("Zap/1-1", "AMPUSERCIDNAME=") in new stack
    -- Executing GotoIf("Zap/1-1", "1?report") in new stack
    -- Goto (macro-user-callerid,s,13)
    -- Executing NoOp("Zap/1-1", "TTL: 64 ARG1: SKIPTTL") in new stack
    -- Executing GotoIf("Zap/1-1", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,23)
    -- Executing NoOp("Zap/1-1", "Using CallerID "CID withheld" <>") in new stack
    -- Executing Set("Zap/1-1", "VMGAIN=") in new stack
    -- Executing GotoIf("Zap/1-1", "1?vmx|1") in new stack
    -- Goto (macro-vm,vmx,1)
    -- Executing GotoIf("Zap/1-1", "0?s-BUSY|1") in new stack
    -- Executing Set("Zap/1-1", "MODE=busy") in new stack
    -- Executing GotoIf("Zap/1-1", "1?notdirect") in new stack
    -- Goto (macro-vm,vmx,5)
    -- Executing NoOp("Zap/1-1", "Checking if ext 45 is enabled: ") in new stack
    -- Executing GotoIf("Zap/1-1", "1?s-BUSY|1") in new stack
    -- Goto (macro-vm,s-BUSY,1)
    -- Executing NoOp("Zap/1-1", "BUSY voicemail") in new stack
    -- Executing Macro("Zap/1-1", "get-vmcontext|45") in new stack
    -- Executing Set("Zap/1-1", "VMCONTEXT=default") in new stack
    -- Executing GotoIf("Zap/1-1", "0?200:300") in new stack
    -- Goto (macro-get-vmcontext,s,300)
    -- Executing NoOp("Zap/1-1", "") in new stack
    -- Executing VoiceMail("Zap/1-1", "45@default|b") in new stack
    -- Playing 'vm-theperson' (language 'de')
  == Manager 'admin' logged off from 127.0.0.1
    -- Playing 'digits/4' (language 'de')
    -- Channel 0/1, span 1 got hangup request, cause 16
  == Spawn extension (macro-vm, s-BUSY, 3) exited non-zero on 'Zap/1-1' in macro 'vm'
  == Spawn extension (macro-vm, s-BUSY, 3) exited non-zero on 'Zap/1-1' in macro
'exten-vm'
  == Spawn extension (macro-vm, s-BUSY, 3) exited non-zero on 'Zap/1-1'
    -- Hungup 'Zap/1-1'
Offensichtlich ist die aufgerufene dailparties.agi der Meinung, dass auf der ISDN-Karte kein Kanal mehr frei ist. Zwei gleichzeitig eingehende Anrufe auf ISDN (z.B. auf einen Konferenzraum) funktioniert aber.

Hat jemand eine Idee, was da schief läuft?

Gruß
Martin
 
Hat niemand eine Idee dazu? Fehlen noch Infos? :gruebel:
 
*hochschieb*
 
Hat es einen Grund, dass ich keine Antwort bekomme?
 
ja hat es wohl.
Da du von Problemen mit dem "abrufen" sprichst
Außerdem habe ich eine Inbound-Route für ISDN
für die Nummer 74 eingerichtet, die auf die Extension 45 geht. Wenn ich die 74 von
Anrufe bekomme ich aber nur besetzt:

solltest du wirklich mal die wichtigen conf-Datein zeigen
 
Hallo,

freePBX konfiguriert ja alles über die Datenbankschnittstelle von Asterisk. Den Inhalt meiner zaptel.conf und zapata.conf habe ich oben angeben. Wie schon erwähnt, funktionieren zwei eingehende Anrufe über ISDN auf einen Konferenzraum.

Gruß,
Martin
 
Wie du oben schon richtig bemerkst, kann dein AGI-Skript die Extension nicht erreichen, die ISDN-Konfiguration an sich scheint aber OK zu sein. In dem Skript werden anscheinend irgendwelche Extensions angelegt und es passieren irgendwelche anderen Sachen. Was ich nicht verstehe: erwartest du ernsthaft Hilfe für ein Problem, das in irgendeinem AGI-Skript steckt, das hier vermutlich die wenigsten Leute kennen?
 
Erwarten tue ich gar nichts. Mir ist bewusst, dass hier alle auf freiwilliger Basis mitwirken.

Ich hatte aber die Hoffnung, dass jemand ein ähnliches Setup hat, damit die selben Probleme wie ich hatte, dass ganze aber lösen konnte und seine Erfahrung mit mir teilt.

Oder das ich zumindestens einen Hinweis bekomme, woran es liegen könnte und ich einen Ansatz habe, um weiterzuforschen.
 
Erwarten tue ich gar nichts. Mir ist bewusst, dass hier alle auf freiwilliger Basis mitwirken.

Du hast mich falsch verstanden. Der Fehler wird vermutlich durch das Skript verursacht. 'dialparties.agi' habe ich bisher noch nie gesehen, ich vermute den meisten hier wird es ähnlich gehen. Wie soll man dir aber ohne Kenntnis des Skripts helfen? Die Logs geben nur wenig Auskunft darüber, was das Skript tut.

Ich hatte aber die Hoffnung, dass jemand ein ähnliches Setup hat, damit die selben Probleme wie ich hatte, dass ganze aber lösen konnte und seine Erfahrung mit mir teilt.

Ich habe in ähnlichen Situationen die Debug-Möglichkeiten von Asterisk genutzt, 'agi debug' und ein Logfile für das AGI-Skript könnten hilfreich sein.
 
So, ich habe mich mal durch den Code der dialparties.agi gekämpft. Letztendlich ruft dieses Skript über die Manager-Schnittstelle den Status der Extension ab und da kommt halt 'Busy' zurück.
 
Hallo Leute,

konnte das Problem lösen. Lag letztendlich an meine zapata.conf und der eingerichteten ISDN-Extension. Es wurde versucht, auf der Leitung des eingehenden Anrufes rauszuwählen, was natürlich nicht klappt. Nachdem die beiden Leitungen/Channels zu einer Gruppe zusammengefasst wurden und die im Wählplan entsprechend berücksichtigt wurde, klappt es jetzt.

Hier meine jetzige zapata.conf:
Code:
[channels]
language=de
resetinterval=never
immediate=no
switchtype=euroisdn
signalling=bri_cpe_ptmp
pridialplan=dynamic
prilocaldialplan=local
nationalprefix=0
internationalprefix=00
usecallingpres=yes
echocancel=yes
echocancelwhenbridged=yes
echotraining=100
context=from-zaptel
group=0
channel => 1-2
Der Eintrag in freePBX für Dial bei der ISDN-Extension lautet jetzt: Zap/g0/<Nr. des Telefons>

Schönen Gruß,
Martin
 
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.