Telefonnummer wir nicht richtig gewählt

MGK

Neuer User
Mitglied seit
9 Mrz 2006
Beiträge
32
Punkte für Reaktionen
0
Punkte
0
Hallo, nach dem ich meinen * Server neu bestückt habe (mit einer Eicon Diva Server 4BRI), habe ich folgendes Problem. Wenn eine Telefonnummer von der TK Anlage gewählt wir, kürzt * oder der chan_capi Treiber die Nummer nach 2 Stellen.

z.B. Hier habe ich versucht die Telefonnumer 03695851189 zu wählen, gewählt wurde aber nur 03
Code:
 == eicon34: Incoming call '548106' -> ''
    -- eicon34: Updated channel name: CAPI/eicon34/03-2
    -- Executing waitfordigits("CAPI/eicon34/03-2", "10000") in new stack
You passed timeout:10000 maxnum:20 addexten:0 control:0
    -- eicon34: Updated channel name: CAPI/eicon34/036-3
    -- eicon34: Updated channel name: CAPI/eicon34/0369-4
    -- eicon34: Updated channel name: CAPI/eicon34/03695-5
    -- eicon34: Updated channel name: CAPI/eicon34/036958-6
    -- eicon34: Updated channel name: CAPI/eicon34/0369585-7
    -- eicon34: Updated channel name: CAPI/eicon34/03695851-8
    -- eicon34: Updated channel name: CAPI/eicon34/036958511-9
    -- eicon34: Updated channel name: CAPI/eicon34/0369585118-a
    -- eicon34: Updated channel name: CAPI/eicon34/03695851189-b
Not Overwriting extension:03 with new Number: 03695851189
Not Sending any control  to Channel 03
    -- Executing Dial("CAPI/eicon34/03695851189-b", "Capi/g1/03") in new stack
    -- Called g1/03
       > CAPI INFO 0x349c: Invalid number format
  == eicon12: CAPI Hangingup

Folgendes verwundert mich dabei
Code:
Not Overwriting extension:03 with new Number: 03695851189

So sieht meine Capi.conf aus:
Code:
 [general]
nationalprefix=0
internationalprefix=00
rxgain=1
txgain=1
language=de

[eicon12]
msn=548XXX
isdnmode=did
ntmode=no
incomingmsn=*
controller=1,2
group=1
bridge=yes
context=isdn_in
echocancel=yes
echocancelold=no
devices=>900

[eicon34]
msn=548
isdnmode=did
ntmode=yes
incomingmsn=*
controller=3,4
group=2
bridge=yes
context=isdn_tk
echocancel=yes
echocancelold=no
devices=>900

Und so meine Extensions.conf:
Code:
....

[isdn_tk]
exten => _X.,1,WaitForDigits(10000)
exten => _X.,n,Dial(Capi/g1/${EXTEN})
exten => _X.,n,Busy
exten => _X.,n,Hangup
....

Ohne das WaitForDigits, funktioniert es gar nicht.
Jemand von Euch vielleicht eine Idee?
 
Sorry, bin du dumm zum quoten
Aber erstmal devices=900???
Wenn du 2 Kanaele der 4fach Karte zusammenfasst hast du devices=4
Also bitte die "900" in jeweils "4" aendern.
Zu deinem Wahlproblem:
IMHO aktualisiert WaitForDigits _nicht_ die Variable $EXTEN.
Man sieht zwar das er was einliest aber er verwendet es nicht.
Hab gerade keine box im Zugriff :(
Warum geht es denn nicht wenn du WaitForDigits weglaesst?
Die exten => _X.,1 usw. sollte doch fuer alles gehen!?
Was hast du denn rein vom Ablauf vor, mit welchen Geraeten usw.
 
Ohne das waitfordigits passiert folgendes:

Code:
== eicon34: Incoming call '548106' -> ''
    -- eicon34: Updated channel name: CAPI/eicon34/0-1
    -- eicon34: Updated channel name: CAPI/eicon34/03-2
    -- eicon34: Updated channel name: CAPI/eicon34/036-3
    -- eicon34: Updated channel name: CAPI/eicon34/0369-4
    -- Executing Dial("CAPI/eicon34/0369-4", "Capi/g1/0369|60|r") in new stack
    -- Called g1/0369
    -- CAPI/eicon12/0369-5 is making progress passing it to CAPI/eicon34/0369-4
    -- CAPI/eicon12/0369-5 is proceeding passing it to CAPI/eicon34/0369-4
    -- CAPI/eicon12/0369-5 is busy
  == eicon12: CAPI Hangingup
  == Everyone is busy/congested at this time (1:1/0/0)
    -- Executing Busy("CAPI/eicon34/0369-4", "") in new stack
       > CAPI INFO 0x349c: Invalid number format

Funktioniert also so auch nicht, noch eine andere Idee?
 
Bei einer 4BRI solltest Du 4 interfaces mit jeweils devices=2 in der capi.conf einstellen. So viel dazu.

Wenn Du beim Dial(CAPI/...) keine optionen angibst, dann wird die Nummer so gewaehlt, wie sie im Dial drinsteht. Nachfolgende Ziffern (overlap dial) werden nicht gesendet. Hierzu musst du die option /o benutzen.

Ich schlage vor, du verwendest
exten => _X.,n,Dial(Capi/g1/${EXTEN}/bo)
dann geht's und du bekommst auch progress-tones beim Verbindungsaufbau.

Armin
 
armincm schrieb:
Bei einer 4BRI solltest Du 4 interfaces mit jeweils devices=2 in der capi.conf einstellen. So viel dazu.
Er hat doch jeweils 2 Interfaces zusammen in einer Gruppe, somit reicht doch devices=4 pro Gruppe, oder?
 
Theoretisch stimmt das mit dem Zusammenfassen, aber chan-capi ist dafuer nicht gedacht. Pro interface Sektion sollte auch nur ein Interface (ein Port) angeben werden. devices= bestimmt die Anzahl der zu verwendeten B-Kanaele an diesem Port.
Ein Gruppierung kann man mit group= auch erzeugen.

Die Moeglichkeit ueber controller= eine Komma-Liste anzugeben ist noch von frueher und ich habe es einfach noch nicht entfernt.

Armin
 
Supi, so funktioniert das jetzt wunderbar, ich kann über ISDN raus telefonieren. Das ist aber leider nur die halbe Miete. Es sollen nämlich nur betsimmte Telefonnumer über ISDN raus telefonieren. Alle anderen Telefonnumer sollen über das Internet telefonieren. Nur habe ich da jetzt das gleiche Problem wie vorher, wenn von der TK Anlage ein Telefonnumer gewählt wird, welche über das Internet telefonieren soll, wird wieder die Telefonnummer eingekürzt. Gibt es für IAX auch ein overlap dial?

Meine Extensions.conf sieht zur Zeit so aus:
Code:
...

[isdn_tk]
exten => 110,1,Dial(Capi/g1/${EXTEN}/o)
exten => 110,n,Busy
exten => 110,n,Hangup
exten => 112,1,Dial(Capi/g1/${EXTEN}/o)
exten => 112,n,Busy
exten => 112,n,Hangup
exten => _XXX.,1,GotoIf($[${CALLERIDNUM}=548130]?109)
exten => _XXX.,2,GotoIf($[${CALLERIDNUM}=548132]?109)
exten => _XXX.,3,GotoIf($[${CALLERIDNUM}=548133]?109)
exten => _XXX.,4,GotoIf($[${CALLERIDNUM}=548134]?109)
exten => _XXX.,5,Dial(IAX2/000387XXXXX:[email protected]/${EXTEN})
exten => _XXX.,106,Busy
exten => _XXX.,107,Hangup
exten => _XXX.,108,Dial(Capi/g1/${EXTEN}/bo)
exten => _XXX.,209,Busy
exten => _XXX.,210,Hangup



Meine Capi.conf sieht so aus:
Code:
[general]
nationalprefix=0
internationalprefix=00
rxgain=1
txgain=1
language=de

[eicon1]
msn=548XXX
isdnmode=did
ntmode=no
incomingmsn=*
controller=1,2
softdtmf=0
group=1
bridge=yes
context=isdn_in
echocancel=yes
echocancelold=no
devices=2

[eicon2]
msn=548XXX
isdnmode=did
ntmode=no
incomingmsn=*
controller=2
softdtmf=0
group=1
bridge=yes
context=isdn_in
echocancel=yes
echocancelold=no
devices=2

[eicon3]
msn=548
isdnmode=did
ntmode=yes
incomingmsn=*
controller=3
softdtmf=0
group=2
bridge=yes
context=isdn_tk
echocancel=yes
echocancelold=no
devices=2

[eicon4]
msn=548
isdnmode=did
ntmode=yes
incomingmsn=*
controller=4
softdtmf=0
group=2
bridge=yes
context=isdn_tk
echocancel=yes
echocancelold=no
devices=2

Asterisk Log:
Code:
> CAPI INFO 0x3490: Normal call clearing
  == eicon3: Incoming call '548106' -> ''
    -- eicon3: Updated channel name: CAPI/eicon3/9-1a
    -- eicon3: Updated channel name: CAPI/eicon3/90-1b
    -- eicon3: Updated channel name: CAPI/eicon3/901-1c
    -- eicon3: Updated channel name: CAPI/eicon3/9017-1d
    -- Executing Dial("CAPI/eicon3/9017-1d", "IAX2/000387XXXXX:[email protected]/017") in new stack
    -- Called 000387XXXXXX:[email protected]/017
    -- Call accepted by 83.125.8.46 (format ulaw)
    -- Format for call is ulaw
    -- eicon3: Updated channel name: CAPI/eicon3/90173-1e
    -- eicon3: Updated channel name: CAPI/eicon3/901736-1f
    -- eicon3: Updated channel name: CAPI/eicon3/9017363-20
    -- eicon3: Updated channel name: CAPI/eicon3/90173634-21
    -- eicon3: Updated channel name: CAPI/eicon3/901736347-22
    -- eicon3: Updated channel name: CAPI/eicon3/9017363472-23
    -- eicon3: Updated channel name: CAPI/eicon3/90173634724-24
    -- eicon3: Updated channel name: CAPI/eicon3/901736347246-25
    -- Hungup 'IAX2/83.125.8.46:4569-1'
  == Spawn extension (isdn_tk, 9017, 1) exited non-zero on 'CAPI/eicon3/901736347246-25'
  == eicon3: CAPI Hangingup
       > CAPI INFO 0x3490: Normal call clearing

Mein Problem:
Code:
Called 000387XXXXXX:[email protected]/017
 
Das ist ein altes Problem und wird von Asterisk auch nicht behandelt (soweit ich weiss). Im ISDN Bereich gibt es beides (overlap und block Wahl). Aber z.B. bei
SIP oder eben auch IAX geht das wohl nicht (wenn ich mich hier irre, dann bitte korrigieren, dann das wuerde mich auch interessieren).
In Bereichen, wo es eine feste Laenge der Rufnummer gibt (z.B. USA), ist das ueber den dialplan prima zu machen, einfach
exten => _XXXXXXXXX,....
anstelle von
exten => _XX.,....
Wenn aber die Laenge der Nummer nicht eindeutig ist, gibt es nur zwei Moeglichkeiten:
1) nach jeder Ziffer pruefen, ob die Nummer 'waehlbar' ist.
2) mit einem Timeout auf weitere Nummern warten.

Bei 1) ist es sehr schwer das gut umzusetzen, aber 2) wird haeufig eingestetzt:
SIP Telefone machen dies selbst teilweise. In Asterisk kann mir hier DISA() oder
WaitExten() benutzen.
Der beste Weg ist immer noch, wenn du mit genaueren patterns in der extensions.conf arbeiten kannst. Also z.B.
exten => _01X.,1,
exten => _0NX.,1,
exten => _00X.,1,
oder eben noch viel genauer...

Wenn du aber trotzdem eine Nachwahl (overlap) ueber IAX brauchst, dann geht das wohl nicht... wuerde mich auch interessieren... ich glaube ich schau mir mal den IAX code an...

Armin
 
Kostenlos!

Statistik des Forums

Themen
248,888
Beiträge
2,303,561
Mitglieder
378,535
Neuestes Mitglied
Richbrothers brotherhood