[GELÖST] chan_capi-cm und PTP Austria - das alte Problem (blockwahl)

harscharf

Neuer User
Mitglied seit
20 Mrz 2007
Beiträge
11
Punkte für Reaktionen
0
Punkte
0
Hallo, Forum

Nach langer (vergeblicher) Suche nach einer Lösung poste ich nochmal
das gute alte Austria PTP ISDN Problem.

a) Bei einem Anlagenanschluss in AT wird keine MSN gesendet, sondern nur die DID, oder "" bei einer Wahl auf die Kopfnummer
b) das führt dazu, dass die Anwahl auf die Kopfnummer (ISDN Nummer) nicht funktionieren, sondern nur die Anwahl an die Extensions
c) das Setzen von immediate=yes HILFT, aber es führt zu folgendem Problem:
* Der chan Treiber wartet nicht auf die vollständige Übermittlung der Nummer, sondern nimmt den call an, und übergibt diesen sofort (immediate) dem Dialplan
* Durchwahlen funktionieren daher nur sporadisch, bzw. von einem Blockwahl Gerät (Handy), oder wenn man EXTREM schnell wählt (ISDN, Analog)
* ein wait() im Dailplan hilft natürlich nichts mehr, da der CAPI Treiber ja die unvollständige Nummer bereits übermittelt hat.
* lt. Telekom Austria muss der CAPI Treiber 3 Sekunden auf die vollständige Übermittlung der Nummer warten, und dann erst dem Dailplan übergeben. Ich habe eine derartige Möglichkeit noch bei keinem CHAN Treiber gesehen.

Ich habe folgende Hard/Software getestet, immer mit dem gleichen Ergebnis:
chan_capi-cm 1.0
Eicon Diva 2FX (PTP Mode)
Eicon Diva BRI2M (PTP Mode)
AVM B1 (PTP Mode)
TK Austria, PTP ISDN Anschluss

Gibt es die Möglichkeit den channel Treiber "Austria kompatibel" zu machen oder funktioniert eine bestimmte Hardwarekombination?

Mein Vorschlag: ein Config Parameter in der capi.conf :
waitfordigits=3s (oder so ähnlich) :)

Über dieses Thema wurde schon viel im Forum geschrieben, aber immer wenn
es heiss wurde, bekam der Poster keine Antwort mehr.
Bitte um Vorschläge, oder Ideen wie man dieses Thema aus der Welt schaffen kann.

lg

Harald
 
Zuletzt bearbeitet:
harscharf schrieb:
* Der chan Treiber wartet nicht auf die vollständige Übermittlung der Nummer, sondern nimmt den call an, und übergibt diesen sofort (immediate) dem Dialplan

Das ist nicht richtig. chan-capi nimmt von sich aus keine Anrufe entgegen, das ist Sache von Asterisk.
chan-capi ist nur ein channel modul und sollte keine Intelligenz fuer solche Dinge wie 'warten auf Digits' haben, das kann alles die PBX (Asterisk) uebernehmen.
Wenn ein Anruf per immediate ohne MSN kommt, dann wird im Dialplan die extension 's' gestartet und hier sollte es in Asterisk doch moeglich sein auf weitere Nummern
zu warten bevor Dial() oder Answer() oder was auch immer gemacht wird.

Armin
 
Hi,
Da muss ich leider wiedersprechen.
Mein capi debug sieht wie folgt aus:

ISDN1#02: Incoming call '' -> ''
-- ISDN1#02: info element PI 82 83
-- ISDN1#02: info element CHANNEL IDENTIFICATION 89
-- ISDN1#02: info element SETUP
-- ISDN1#02: CAPI/ISDN1/-11: s matches in context from-pstn for immediate
-- ISDN1#02: CAPI/ISDN1/-11: s matches in context from-pstn
== Started pbx on channel CAPI/ISDN1/-11
> CAPI devicestate requested for ISDN1/

In diesem Falle wurde aber die Durchwahl 22 (Overlap Wahl) gewählt. Der Capi Channel hat aufgrund von Immediate zu schnell geschaltet:
ISDN1#02: Incoming call '' -> ''
und dann kann der Dialplan (der erst später zum Tragen kommt) natürlich keine Zuordnung mehr machen.Mit Blockwahl (vom Handy, oder mit Wahlwiederholung vom Analoggerät) funktioniert dann alles ganz normal:
== ISDN1#02: setting format alaw - 0x8 (alaw)
== ISDN1#02: Incoming call '' -> '22'
-- ISDN1#02: info element PI 82 83
-- ISDN1#02: info element CALLED PARTY NUMBER
-- ISDN1#02: Updated channel name: CAPI/ISDN1/22-1e
-- ISDN1#02: CAPI/ISDN1/22-1e: 22 matches in context from-pstn
== Started pbx on channel CAPI/ISDN1/22-1e




Eine Implementation von IVR oder DISA kommt natürlich nicht in Frage, da jede 08/15 PBX es auch ohne Voice Assistent schafft.
Also, das Problem liegt doch eindeutig hier beim Channel Treiber.
Ein kleines "warten auf Digits nach der Kopfnummer" würde das ganze Problem lösen.

Mit mISDN hat man das scheinbar weniger Probleme, das geht aber mit meiner Eicon Karte nich :-(
Siehe hier (das selbe Problem):
http://www.ip-phone-forum.de/showthread.php?t=101687&page=2


lg

Harald
 
Zuletzt bearbeitet:
Sorry, aber da hast Du eine falsche Vorstellung. chan-capi schaltet hier nicht zu schnell, es macht genau das, was es soll. Wenn nun keine Nummer kommt und immediate geschaltet ist, dann geht es auf 's'.
In dieser 's' extension kannst du dann auf die Nummern warten, die du brauchst. Das hat nicht unbedingt was mit DISA oder IVR zu tun. Aber das warten und auswerten von den Nummern ist nunmal Asterisk Sache.
Die Applikationen wie waitfordigit() o.ae. sind doch dafuer da.
Hast du es denn damit mal probiert?
Deinen link auf den anderen Thread zeigt genau das, denn bei mISDN ist es das gleiche. Und der letzte Punkt bei
http://www.misdn.org/index.php/FAQ_chan_mISDN
sieht ganz gut aus.

Armin
 
Hallo Harald,

ich hatte lange das gleiche Problem, genau deswegen habe ich jetzt nur noch Sirrix-Karten im Einsatz, da hat der Hersteller extra dafür einen Parameter eingeführt. Aber als Lösung würde sich der "klassische" Dreizeiler a la:

exten = s,1,Set(TIMEOUT(digit)=5)
exten = s,2,WaitExten(10)
exten = s,3,Macro(dial-zentrale)

anbieten. Sollte damit eigentlich funktionieren.

mfg, Michael
 
Hi,

Danke, bladerunner. Das war DER Hinweis.
Ich habe meine extension.conf angepasst und siehe da :)

lg
Harald
 
Hallo Harald,

freut mich dass dein Problem gelöst ist ;-)

Es wäre nett, wenn du deinen ersten Beitrag abändern würdest, und ein "Gelöst" vor den Titel schreibst.

mfg,

Michael
 
Hallo!

Ich arbeite seit einiger Zeit bei meiner Asterisk Installation an genau dem selben Problem, leider bisher ohne Erfolg (Siehe http://www.ip-phone-forum.de/showthread.php?t=156042)

Bei mir scheint das "WaitExten" irgendwie nicht so zu funktionieren, wie ich mir das vorstelle: obwohl die gewählten Ziffern der Durchwahl in den Debug-Ausgaben zu finden sind, führen sie nicht dazu, dass die richtige Extension im Dialplan angewählt wird.

Könntet Ihr mir mal die Debug-Ausgaben (z.B. Verbose-Level 4) von einer erfolgreichen Durchwahl mit einem Gerät ohne Blockwahl zeigen? Es wäre interessant zu sehen, wo hier der Unterschied ist.

Mich würde auch interessieren, wie das Makro "dial-zentrale" aus dem Beispiel
Code:
exten = s,1,Set(TIMEOUT(digit)=5)
exten = s,2,WaitExten(10)
exten = s,3,Macro(dial-zentrale)

genau aussieht und vor allem, unter welchen Umständen es aufgerufen wird. Das würde mir eventuell helfen zu verstehen, wie "WaitExten" funktioniert bzw. wie die neue Durchwahl in den Asterisk Dialplan "injiziert" wird und wie ich damit dann im Dialplan Entscheidungen treffen kann (in ${EXTEN} steht die Durchwahl nach dem Ausführen von "WaitExten" jedenfalls nicht drin, diese Variable enthält dann nach wie vor den Wert "s", das habe ich schon herausgefunden)!

Danke!

- andreas
 
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.