[GELÖST] Asterisk+LCR+mISDN: Bei Overlap-Dialing wird erste Ziffer verschluckt

mind_the_gap

Neuer User
Mitglied seit
30 Jul 2010
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hallo,

nach einer Woche basteln und viel Lernen habe ich ein Asterisk-Testsystem aufgesetzt. Auf einem schlankesn Archlinux (Kernel 2.6.34) läuft Asterisk 1.6.2.9. Über chan_lcr ist LCR 1.7 angebunden was seinerseits wieder mISDNv2 (git-Version, aber das sollte egal sein) zur Kommunikation mit einer HFC-Karte nutzt. An der HFC-Karte ist über ein Crossover-Kabel eine NTBA (samt Stromversorgung) angeschlossen und an der NTBA ein ISDN-Telefon. Dazu habe ich noch einen SIP-Account und mehrere IAX-Accounts eingerichtet. Im PC steckt auch noch eine FritzCard die über fcpci angesteuert wird und die Ausenwelt reinlässt. Soviel zur Einleitung :) Ich wollte eigentlich damit nur nochmal kurz danke an das Forum sagen, da es sehr viele lesenswerte Beiträge hier gibt. Meinen Weg zum Ziel werde ich auch bald mal aufschreiben und darbieten.

Wie auch immer, das ISDN-Telefon wird über SIP nach draußen geroutet und kommt im Asterisk so an, die extensions.conf:

Code:
[misdnintern]
exten => 0,1,WaitExten(3)
exten => t,1,WaitExten(3)

exten => _X.,1,Goto(default,${EXTEN},1)

Die beiden WaitExten-Zeilen sind ja für das Overlap-Dialing da. Im Grunde funktioniert das auch, nur wird leider immer die erste Ziffer verschluckt. Aus 01234 wird eben dann nur noch 1234.

Aus dem LCR komm ich folgendermaßen raus, die routing.conf:

Code:
[main]
    : remote application=asterisk context=misdnintern

Wie ich las, haben auch andere das Problem, aber noch keine Lösung gefunden. Alte mISDNv1-Einstellungen gehen ja soweit ich weiß bei mISDNv2 nicht und Waitfordigit in Asterisk klappt bei mir auch nicht (der Befehl wird nicht gefunden). Der Vorschlag aus diesem Thread es wie folgt zu machen, klappt bei mir nicht (dann geht gar kein Overlap-Dialing mehr):
Code:
exten => ,1,WaitExten(4)

Ich will halt nicht einfach eine 0 wieder vorne dran hängen da es ja a) nicht immer eine 0 sein muss, die fehlt und b) ich dann Probleme mit dem Block-Dialing bekomme. Das Block-Dialing geht übrigens völlig problemlos.

Habt ihr das Problem auch? Wie habt ihr es gelöst?

Danke, Tschüss,
Tom
 
Zuletzt bearbeitet:
Ich will halt nicht einfach eine 0 wieder vorne dran hängen da es ja a) nicht immer eine 0 sein muss, die fehlt und b) ich dann Probleme mit dem Block-Dialing bekomme. Das Block-Dialing geht übrigens völlig problemlos.

also der Begriff 'overlapdial' kommt bei mir nirgends vor. Ist das misdn.conf spezifisch? Ist aber hier nicht relevant.

Bei mir werden in keinem Fall Ziffern verschluckt. Sinngemaess habe ich so konfiguriert:

Code:
[s0-internal]
exten => s,1,lcr_config(eoslec)
exten => s,n,Set(TIMEOUT(response)=300)
exten => s,n,Goto(sip-disa,s,1)

; BLOCK DIALLING
exten => _[0-9].,1,lcr_config(eoslec)
exten => _[0-9].,n,Goto(sip-dial,${EXTEN},1)

[sip-disa]
exten => s,1,DISA(no-password,sip-dial)

[sip-dial]
exten => _[0-9].,1,AGI(AST_MPS,setcalleridnum)
; r flag only needed if coming here from BLOCKWAHL
exten => _[0-9].,n,Dial(SIP/${EXTEN}@sipgate-account,${RINGTIME},r)

sonstige Configs:
http://www.ip-phone-forum.de/showpost.php?p=1573826&postcount=6

- sparkie
 
Zuletzt bearbeitet:
Hallo sparkie,

danke für deine Antwort.
also der Begriff 'overlapdial' kommt bei mir nirgends vor. Ist das misdn.conf spezifisch? Ist aber hier nicht relevant.
Soweit ich weiß gibt es eine Option für mISDNv1 die Overlap-Dial möglich macht. Wie die nun genau heißt, weiß icn nicht. Ich glaube aber eben etwas wie "overlapdial=2" (..=Sekunden) -- habe es auch nur im "Vorbeigehen" gelesen. Für mich ist das ja nicht relevant da ich mISDNv2 nutze und damit auch keine misdn.conf habe.

Wenn ich deine Korfiguration richtig verstanden habe, passiert da folgendes:

Von LCR kommt erstmal alles in [s0-internal] in Asterisk an. Falls nur eine Nummer (bzw. eig. alles - es wird auf "s" gematcht, aber eben nur ein Element) ankommt, wird gerade Overlap-Dialing gemacht. Mittels "lcr_config(eoslec)" wird der OSLEC echo cancelor aktiviert. Danach wird der Response-TIMEOUT auf 300 Sekunden gesetzt. Damit wird also max. 5min auf Nutzereingaben gewartet. Danach wird su [sip-disa] gesprungen.
Für Block-Dialing (also mehr als ein Zeichen wird gematcht) wird auch OSLEC aktiviert und dann direkt zu [sip-dial] gesprungen.

In [sip-disa] erlaubst du dann dem von LRC kommenden Zelchen einen internen Wählton zu bekommen. Du springst danach daraus in den [sip-dial]-Kontext. Dass da kein Passwort gebraucht wird, ist nachvollziehbar, zumindest so lange nur der interne S0-Bus dran hängt. Aber warum brauchst du das? Wo ist der Unterschied dazu direkt zu [sip-dial] zu springen?

In [sip-dial] wird als erstes "AGI(AST_MPS,setcalleridnum)" aufgerufen. Du rufst also mittels AGI das Script AST_MPS auf. Was tut es denn, das Script?
Am Ende wählst du dann über SIP.

Reichte es nicht eigentlich aus nur den Timeout hochzustzen und auf [sip-disa] zu verzichten?

Ich würde mich freuen, wenn du die Fragen noch beantworten könntest.

Vielen Dank,
Tom
 
Danach wird der Response-TIMEOUT auf 300 Sekunden gesetzt.
das bedeutet nur, dass der Waehlton so lange laeuft (default ist nur 10 Sekunden glaube ich). Das habe ich nur deswegen drin, weil ich die Reichweite meiner Gigaset ausgetestet habe. Sobald ich eine Nummer waehle springt er im Dialplan sowieso weiter.

Für Block-Dialing (also mehr als ein Zeichen wird gematcht) wird auch OSLEC aktiviert und dann direkt zu [sip-dial] gesprungen.

richtig

In [sip-disa] erlaubst du dann dem von LRC kommenden Zelchen einen internen Wählton zu bekommen. Du springst danach daraus in den [sip-dial]-Kontext. Dass da kein Passwort gebraucht wird, ist nachvollziehbar, zumindest so lange nur der interne S0-Bus dran hängt. Aber warum brauchst du das? Wo ist der Unterschied dazu direkt zu [sip-dial] zu springen?

wegen des Wähltones und um eine Nummer waehlen zu koennen (wenn eben keine Blockwahl)

In [sip-dial] wird als erstes "AGI(AST_MPS,setcalleridnum)" aufgerufen. Du rufst also mittels AGI das Script AST_MPS auf. Was tut es denn, das Script?
sorry ist fuer das Beispiel eigentlich nicht relevant. Script setzt nur die abgehende Rufnummer.

Reichte es nicht eigentlich aus nur den Timeout hochzustzen und auf [sip-disa] zu verzichten?

um was zu erreichen?

- sparkie
 
Hallo,

eben kam ich dazu deine Einstellungen zu testen und sie funktionieren wunderbar :D.

Einzelne Zeichen gehen nun mittels DISA in das Asterisk-System und das Overlap-Dialing funktioniert - auch mit Tastentönen. Ganz 100%ig klar ist mir zwar noch nicht warum es durch DISA jetzt geht, aber da werde ich noch mal ein paar Sätze zu lesen.

Reichte es nicht eigentlich aus nur den Timeout hochzustzen und auf [sip-disa] zu verzichten?
um was zu erreichen?

Ich dachte ursprünglich, dass der Timeout das Overlap-Dialing zum Funktionieren bringt. Damit hatte ich mich ja aber getäuscht, DISA war dafür verantwortlich.

Tschüss und vielen Dank für deine Hilfe,
Tom
 
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.