ect + retrieve funktioniert nicht (-immer)

bern

Neuer User
Mitglied seit
19 Jul 2007
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich komme einfach nicht weiter. An der FitzBox hat es noch geklappt und an der Agfeo geht es nicht mehr.

Ich habe eine AGFEO AS40 (Firmware 3.6l) an deren internen S0-Bus eine Fritz-Card PCI angeschlossen ist. Ich möchte damit Anrufe von ISDN nach einem kleinen Sprachmenue weiterleiten.
Damit die B-Kanäe wieder frei werden wird ECT verwendet. In den meisten Situationen (Gespräch wird angenommen, Leitung ist besetzt) klappt es gut, aber eine Situation bereitet mir Zahnschmerzen:

Wenn der gewünschte Gesprächsteilnehmer nicht ab nimmt (timeout) wird der Anrufende einfach aus der Leitung geworfen.

Im Detail:
Das Gespräch wird von Asterisk angenommen, das Sprachmenue läuft, das Gespräch wird mit capicommand(hold) onhold gesetzt. Die Weitervermittlung geschieht mit dem Macro capiect (wie im chan_capi-README beschrieben) durch den Befehl "Dial(CAPI,ISDN1,33,20,M(capiect))". Wenn nun die 20 Sekunden vorbei sind und der Anschluß mit der "33" nicht abgehoben wurde sollte das Gespräch wieder mit capicommand(retrieve) zurück geholt werden damit eine entsprechende Information abgespielt wird. Leider klappt das nicht.
"retrieve" ergibt eine Fehlermeldung und der Anrufer wird aus der Leitung geworfen.

Leider ist es sehr unhöflich einen Anrufer komentarlos aus der Leitung zu werfen.:(

Hier ein Ausschnitt aus dem Dialplan:

[macro-capiect]
exten => s,1,capicommand(ect)

[macro-connection]
exten => s,1,Set(numToCall=${ARG1}|soundToPlay=${ARG2})
;ARG1 und ARG2 werden leider bei GoSub/Return vergessen.
exten => s,2,Wait(1)
exten => s,3,Playback(${soundToPlay})
exten => s,4,capicommand(hold)
exten => s,5,Wait(0)
exten => s,6,Dial(CAPI/ISDN1/${numToCall},20,M(capiect))
exten => s,7,capicommand(retrieve)
exten => s,8,Wait(1)
exten => s,9,GoToIf($[${HANGUPCAUSE} = 0]?50) ;HANGUPCAUSE ist 0 bei timeout, 17 bei busy
exten => s,10,GoSubIf($[${HANGUPCAUSE} = 17]?busymenue,s,1)
exten => s,11,GoTo(5)
exten => s,50,Playback(${NICHT-ERREICHB})
exten => s,51,Wait(1)
exten => s,52,Playback(${UEBERL-H-MENUE})
exten => s,53,GoTo(mainmenue,s,1)

[mainmenue]
exten => s,1,Wait(1)
exten => s,2,Background(${MENUE-TAG}|m) ; m reagiert nur wenn entspr. extension vorhanden ist.
exten => s,6,GoTo(1,1)
exten => 1,1,Macro(connection,33,${UEBERL-PFLEGE})
exten => 1,2,GoTo(s,1)


Die Fehlermeldung ist:
-- Executing [s@macro-connection:6] Dial("CAPI/ISDN1#02/35-1", "CAPI/ISDN1/33|20|M(capiect)") in new stack
-- Called ISDN1/33
-- CAPI/ISDN1#01/33-2 is making progress passing it to CAPI/ISDN1#02/35-1
-- CAPI/ISDN1#01/33-2 is ringing
-- Nobody picked up in 20000 ms
[Aug 13 17:24:10] WARNING[6673]: chan_capi_utils.c:305 capi_wait_conf: ISDN1#02: timed out waiting for FACILITY_CONF
== ISDN1#01: CAPI Hangingup for PLCI=0x201 in state 5

-- Executing [s@macro-connection:7] capiCommand("CAPI/ISDN1#02/35-1", "retrieve") in new stack
[Aug 13 17:24:10] WARNING[6673]: chan_capi.c:3970 pbx_capi_retrieve: ISDN1#02: 0x101 is not valid or not on hold to retrieve!
-- Executing [s@macro-connection:8] Wait("CAPI/ISDN1#02/35-1", "1") in new stack
== Spawn extension (macro-connection, s, 8) exited non-zero on 'CAPI/ISDN1#02/35-1' in macro 'connection'
== Spawn extension (macro-connection, s, 8) exited non-zero on 'CAPI/ISDN1#02/35-1'

Ich verwende Asterisk asterisk-1.4.10, zaptel-1.4.4, asterisk-addons-1.4.2, libpri-1.4.1, chan-capi-HEAD (Rev 532).

Mit Asterisk 1.4.9 an einer FritzBox Fon hat alles funktionert. Nun, an der AS 40 mit Asterisk funktioniert es nicht mehr
Kann das an der aktuelleren Version von Asterisk liegen oder an der TK-Anlage? Und wie könnte ich Abhilfe schaffen.

Vielen Dank für die Hilfe.

Bernhard
 
Kostenlos!

Zurzeit aktive Besucher

Statistik des Forums

Themen
248,090
Beiträge
2,281,132
Mitglieder
377,285
Neuestes Mitglied
TheAbyss1980