Eingehende Anrufe auf Durchwahl funktionieren nur von Mobiltelefon aus?

asterfuchs

Neuer User
Mitglied seit
4 Jul 2006
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Hallo!

Hab jetzt stundenlang im Forum gewühlt, aber bin mit meinem Latein (Asterisk-Neuling) am Ende und weiß nicht weiter...

Nach etwas Bastelei läuft hier jetzt Asterisk 1.2.9.1 mit chan_capi 0.6.5. Hardware ist eine AVM Fritz!PCI, die an einem ISDN-Basisanschluss der Telekom Austria hängt. Ausgehende Anrufe funktionieren problemlos, eingehende zu den Durchwahlen vom Mobiltelefon aus getestet -> ebenfalls bestens.

Vom Festnetz aus funktioniert es allerdings nicht. Hier ein Beispiel für einen gescheiterten Anruf:

Code:
*CLI> capi debug
CAPI Debugging Enabled
CONNECT_IND ID=001 #0x8a49 LEN=0038
  Controller/PLCI/NCCI            = 0x101
  CIPValue                        = 0x10
  CalledPartyNumber               = default
  CallingPartyNumber              = <21 83>14801234
  CalledPartySubaddress           = default
  CallingPartySubaddress          = default
  BC                              = <80 90 a3>
  LLC                             = default
  HLC                             = <91 81>
  AdditionalInfo                  = default

    -- CONNECT_IND (PLCI=0x101,DID=,CID=14801234,CIP=0x10,CONTROLLER=0x1)
  == ISDN1: Incoming call '014801234' -> ''
INFO_IND ID=001 #0x8a4a LEN=0016
  Controller/PLCI/NCCI            = 0x101
  InfoNumber                      = 0x18
  InfoElement                     = <89>

INFO_RESP ID=001 #0x8a4a LEN=0012
  Controller/PLCI/NCCI            = 0x101

    -- ISDN1: info element CHANNEL IDENTIFICATION 89
INFO_IND ID=001 #0x8a4b LEN=0016
  Controller/PLCI/NCCI            = 0x101
  InfoNumber                      = 0x18
  InfoElement                     = <89>

INFO_RESP ID=001 #0x8a4b LEN=0012
  Controller/PLCI/NCCI            = 0x101

    -- ISDN1: info element CHANNEL IDENTIFICATION 89
DISCONNECT_IND ID=001 #0x8a4c LEN=0014
  Controller/PLCI/NCCI            = 0x101
  Reason                          = 0x0

DISCONNECT_RESP ID=001 #0x8a4c LEN=0012
  Controller/PLCI/NCCI            = 0x101

    -- ISDN1: DISCONNECT_IND on incoming without pbx, doing hangup.
  == ISDN1: CAPI Hangingup
  == ISDN1: Interface cleanup PLCI=0x101
       > CAPI devicestate requested for ISDN1/

Ich versteh hier zwar fast nur Bahnhof, aber anscheinend wird die Durchwahl nicht mitgeliefert (" Incoming call '014801234' -> '' " vs. "Incoming call '069981512345' -> '110' " im Beispiel unten). Allerdings bekommt der Anrufer nur einen "Besetzton", kommt also auch nicht ins "Hauptmenü" das man normalerweise hört wenn man nur die Hauptnummer ohne Durchwahl wählt.

Zum Vergleich ein funktionierender Anruf vom Mobiltelefon aus:
Code:
CONNECT_IND ID=001 #0x8a4d LEN=0043
  Controller/PLCI/NCCI            = 0x101
  CIPValue                        = 0x1
  CalledPartyNumber               = <81>110
  CallingPartyNumber              = <21 83>69981512345
  CalledPartySubaddress           = default
  CallingPartySubaddress          = default
  BC                              = <80 90 a3>
  LLC                             = default
  HLC                             = default
  AdditionalInfo                  = default

    -- CONNECT_IND (PLCI=0x101,DID=110,CID=69981512345,CIP=0x1,CONTROLLER=0x1)
       > ISDN1: msn='*' DNID='110' MSN
  == ISDN1: Incoming call '069981512345' -> '110'
INFO_IND ID=001 #0x8a4e LEN=0019
  Controller/PLCI/NCCI            = 0x101
  InfoNumber                      = 0x70
  InfoElement                     = <81>110

INFO_RESP ID=001 #0x8a4e LEN=0012
  Controller/PLCI/NCCI            = 0x101

    -- ISDN1: info element CALLED PARTY NUMBER
       > ISDN1: INFO_IND DID digits not used in this state.
INFO_IND ID=001 #0x8a4f LEN=0016
  Controller/PLCI/NCCI            = 0x101
  InfoNumber                      = 0x18
  InfoElement                     = <89>

INFO_RESP ID=001 #0x8a4f LEN=0012
  Controller/PLCI/NCCI            = 0x101

    -- ISDN1: info element CHANNEL IDENTIFICATION 89
INFO_IND ID=001 #0x8a50 LEN=0016
  Controller/PLCI/NCCI            = 0x101
  InfoNumber                      = 0xa1
  InfoElement                     = <a1>

INFO_RESP ID=001 #0x8a50 LEN=0012
  Controller/PLCI/NCCI            = 0x101

    -- ISDN1: info element Sending Complete
    -- ISDN1: CAPI/ISDN1/110-bb: 110 matches in context capi-in
  == Started pbx on channel CAPI/ISDN1/110-bb
       > CAPI devicestate requested for ISDN1/110
    -- Executing Macro("CAPI/ISDN1/110-bb", "incoming|SIP/110") in new stack
    -- Executing SetCIDNum("CAPI/ISDN1/110-bb", "*069981512345") in new stack
    -- Executing Dial("CAPI/ISDN1/110-bb", "SIP/110|40|rtT") in new stack
    -- Called 110
  == ISDN1: Requested RINGING-Indication for CAPI/ISDN1/110-bb
ALERT_REQ ID=001 #0x3120 LEN=0017
  Controller/PLCI/NCCI            = 0x101
  AdditionalInfo
   BChannelinformation            = default
   Keypadfacility                 = default
   Useruserdata                   = default
   Facilitydataarray              = default

ALERT_CONF ID=001 #0x3120 LEN=0014
  Controller/PLCI/NCCI            = 0x101
  Info                            = 0x0

    -- SIP/110-2d66 is ringing
INFO_IND ID=001 #0x8a51 LEN=0017
  Controller/PLCI/NCCI            = 0x101
  InfoNumber                      = 0x8
  InfoElement                     = <80 90>

INFO_RESP ID=001 #0x8a51 LEN=0012
  Controller/PLCI/NCCI            = 0x101

    -- ISDN1: info element CAUSE 80 90
DISCONNECT_IND ID=001 #0x8a52 LEN=0014
  Controller/PLCI/NCCI            = 0x101
  Reason                          = 0x3490

DISCONNECT_RESP ID=001 #0x8a52 LEN=0012
  Controller/PLCI/NCCI            = 0x101

       > CAPI INFO 0x3490: Normal call clearing
  == ISDN1: CAPI Hangingup
  == ISDN1: Interface cleanup PLCI=0x101
       > CAPI devicestate requested for ISDN1/110

Meine capi.conf:
Code:
[general]
nationalprefix=0
internationalprefix=00
rxgain=0.8
txgain=0.8
language=de      ;set default language
;ulaw=yes        ;set this, if you live in u-law world instead of a-law

; interface sections ...
[ISDN1]
;ntmode=yes      ;if isdn card operates in nt mode, set this to yes
isdnmode=msn     ;'MSN' (point-to-multipoint) or 'DID' (direct inward dial)
                        ;when using NT-mode, 'DID' should be set in any case
incomingmsn=*    ;allow incoming calls to this list of MSNs/DIDs, * = any
;defaultcid=123  ;set a default caller id to that interface for dial-out,
                       ;this caller id will be used when dial option 'd' is set.
controller=1     ;capi controller number to use
group=1          ;dialout group
;prefix=0        ;set a prefix to calling number on incoming calls
softdtmf=on      ;enable/disable software dtmf detection, recommended for AVM cards
relaxdtmf=on     ;in addition to softdtmf, you can use relaxed dtmf detection
accountcode=     ;Asterisk accountcode to use in CDRs
context=capi-in  ;context for incoming calls
;holdtype=hold   ;when Asterisk puts the call on hold, ISDN HOLD will be used. If
                 ;set to 'local' (default value), no hold is done and Asterisk may
                 ;play MOH.
immediate=yes   ;DID: immediate start of pbx with extension 's' if no digits were
                       ;     received on incoming call (no destination number yet)
                 ;MSN: start pbx on CONNECT_IND and don't wait for SETUP/SENDING-COMPLETE.
                 ;     info like REDIRECTINGNUMBER may be lost, but this is necessary for
                 ;     drivers/pbx/telco which does not send SETUP or SENDING-COMPLETE.
;bridge=yes      ;native bridging (CAPI line interconnect) if available
devices=2        ;number of concurrent calls on this controller
                 ;(2 makes sense for single BRI, 30 for PRI)

Kann mir jemand weiterhelfen?
 
Zuletzt bearbeitet:
Hallo,
schau bitte mal hier: http://www.ip-phone-forum.de/showthread.php?t=107568

In Deiner capi.conf solltest Du immediate=no setzen.
Ursache ist, dass ein Mobiltelefon _immer_ Blockwahl macht, während ein (analoges) Festnetztelefon Overlap Dial macht. Deswegen hast Du die called-party an der Stelle noch nicht komplett.
 
Leider keine Änderung

Hab "immediate=no" gesetzt, aber exakt gleiches Verhalten und gleiche Debug-Ausgabe. Sogar beim Wählen der "Hauptnummer", ohne Durchwahl, kommt es zum gleichen Fehler...
 
Das Problem ist wohl Telekom Austria. Hier wird ein Anruf fuer Nummer "" signalisiert und das ist in Austria offensichtlich normal so.
chan-capi, da es hier in DE entwickelt ist, kennt dies nicht. Da also die Nummer nicht mit einer Nummer in dialplan passt, wird weiter gewartet (auf weitere Ziffern, bis es 'matched').
Eigentlich muesste immediate=yes hier helfen, da es dafuer gedacht ist, wenn nicht mehr kommt, dass ganze doch an Asterisk zu uebergeben. Aber dieser Fall passt hier trotzdem nicht.
Da ich nicht in Austria bin, kann ich es nicht testen. Aber es waere gut, wenn mal jemand von dort sich dem Problem annimt und mit chan-capi eine Loesung findet, die man implementieren kann, ohne dass der Fall nicht-Austria veraendert wird.

Also Freiwillige vor ;-)

Armin
 
Hm, was mir dabei zu denken gibt: es muss doch noch andere Leute geben, die in Österreich Asterisk an einer ISDN-Leitung hängen haben. Das Szenario ist ja nun nicht gerade exotisch, und wenn man ISDN hat dann wohl auch vom ehemaligen Monopolisten TA.

Das Setup sollte also nicht einzigartig sein. Was machen die anders? Wenn es nicht an unseren Config-Files liegt, dann bleibt nur mehr die Karte und der Treiber als Fehlerquelle. Verwenden die etwa alle keine AVM-Karte, sondern etwas anderes?
 
Von ISDN-Telefonen geht die Durchwahl, analog nicht

Hab gemäß eines Tipps in http://www.ip-phone-forum.de/showthread.php?t=98658

in der capi.conf die 2 Zeilen gesetzt:
Code:
ntmode=yes 
isdnmode=did

Damit kann man jetzt auch unsere Durchwahlen erreichen wenn man von einem ISDN-Telefon aus anruft. Vom analogen Festnetz geht es damit aber immer noch nicht.
 
Hallo Asterfuchs!
Habe exakt das selbe Problem:
Anlagenanschluss bei Telekom. Durchwahlen von einem analogen Telefon aus werden nicht erkannt. Von ISDN bzw. GSM funktioniert alles tadellos.
Konntest Du das Problem zwischenzeitlich lösen?

Gruß
Otmar
 
Hat dies etwas mit einer fehlenden CallerId bei Anrufen aus dem analogen Netz zu tun?

--gandalf.
 
Hallo Gandalf!

Fehlende CallID? Unwahrscheinlich!


Hier ein Ausschnitt aus dem "Log"

Oct 9 13:17:46 VERBOSE[2585] logger.c: -- Accepting overlap voice call from '55567136513612' to 's' on channel 0/1, span 1
Die Nummer, die anruft wird im Log angezeigt. Daher nehme ich an, dass die CALLID des Anrufers mitkommt. Der Call wird aber an 's' weitergeleitet.


Bei einem Anfruf aus ISDN bzw. GSM schaut der Log wie foglt aus:

Oct 9 13:11:20 VERBOSE[2587] logger.c: -- Accepting overlap voice call from '676876510' to '395' on channel 0/1, span 1
Wird also an Extension 395 weitergeleitet.

Ist es möglich, dass Asterisk zu wenig lange wartet um allfällige Extension zu erkennen? Möglich dass dies bei Analognetzen länger dauert. Bei ISDN und GSM werden diese nach meinem "Denkmodell" als Block gesandt.

Kann ich diese Wartezeit einstellen? Mir ist hier nichts bekannt.

Gruß
Otmar
 
Hallo Otmar,

Hast du auch eine AVM-Fritz-Karte? Nach allem was ich bisher herausgefunden habe liegt es an der Karte und/oder dem Treiber. Dafür hab ich noch keine Lösung gesehen.

Karten mit HFC-Chip sollten funktionieren (zumindest werden die von kommerziellen Anbietern in Ö verwendet).
 
Hallo Asterfuchs,
Problem liegt wo anders. Habe eine Thread unter *.home eröffnet mit beiliegendem Text.

Aber nochmals vielen Dank für Deine Mühe.
Gruß Otmar

Folgendes Problem:
Habe ein *@home System mit hfc und bristuff-treiber. Wird von GSM oder ISDN von außen gewählt, so werden die Durchwahlen sauber auf die internen Extensions weitergeleitet, wie im Dialplan angegeben.

Wird allerdings von einem Analogtelefon, oder von einem ISDN Telefon gewählt, indem zuerst der Hörer abgehoben wird und dann erst gewählt, so wird sobald die Kopfnummer ankommt die s-Extension aktiviert und somit werden natürlich die Extensions nicht angewählt.

Wenn sehr schnell gewählt wird, dann klappt hie und da.

Wie kann ich nun * dazu bringen, dass eine gewisse Zeit gewartet wird um auch die nachfolgenden Nummern zu dedektieren?


Mein Context schaut einfach aus.

[from-pstn-custom]
exten => _450,1,Goto(ext-local,450,1)
exten => _451,1,Goto(ext-local,451,1)
exten => _452,1,Goto(ext-local,452,1)
exten => _453,1,Goto(ext-local,453,1)
exten => _.,2,Goto(ext-local,450,1)

Kommt die Durchwahl wird diese entsprechend weitergeleitet. Kommt keine Durchwahl, dann geht das Ganze an 450.


Vielleicht hat hier jemand eine Idee.

Gruß Otmar
 
Wollte dazu nur bemerken, das es z.B. von Auerswald spezielle Versionen der Anlagen für Österreich gibt. Hatte dort genau das beschriebene Problem und das lies sich durch den wechsel auf die Ö-Version beheben.
 
Ich will nur bestätigen, dass ich exakt die gleichen Probleme hatte und es nun geht.
Ich werde meine capi.conf nicht mehr ändern ;-)

Wie oben beschrieben, liegt der Schlüssel (AFAIR) in immediate=yes.

Also ich hab ebenfalls einen Telekom Austria Basisanschluß und eine AVM FritzCard! mit fcpci, also für alle, die die gleiche Konfiguration haben, poste ich mal meine capi.conf:

Code:
;
; CAPI config
;
;

; http://www.ip-phone-forum.de/showthread.php?t=81433

; general section

[general]
nationalprefix=0
internationalprefix=00
rxgain=0.8
txgain=0.8
language=de      ;set default language
;ulaw=yes        ;set this, if you live in u-law world instead of a-law

; interface sections ...

[ISDN1]          ;this example interface gets name 'ISDN1' and may be any
                 ;name not starting with 'g' or 'contr'.
;ntmode=no       ;if isdn card operates in nt mode, set this to yes
isdnmode=msn     ;'MSN' (point-to-multipoint) or 'DID' (direct inward dial)
                 ;when using NT-mode, 'DID' should be set in any case
incomingmsn=*    ;allow incoming calls to this list of MSNs/DIDs, * = any
;defaultcid=123  ;set a default caller id to that interface for dial-out,
                 ;this caller id will be used when dial option 'd' is set.
;controller=0    ;ISDN4BSD default
;controller=7    ;ISDN4BSD USB default
controller=1     ;capi controller number to use
group=1          ;dialout group
;prefix=0        ;set a prefix to calling number on incoming calls
softdtmf=on      ;enable/disable software dtmf detection, recommended for AVM cards
relaxdtmf=on     ;in addition to softdtmf, you can use relaxed dtmf detection
accountcode=     ;Asterisk accountcode to use in CDRs
context=capi-in  ;context for incoming calls
holdtype=local   ;when Asterisk puts the call on hold, ISDN HOLD will be used. If
                 ;set to 'local' (default value), no hold is done and Asterisk may
                 ;play MOH.
immediate=yes   ;DID: immediate start of pbx with extension 's' if no digits were
                 ;     received on incoming call (no destination number yet)
                 ;MSN: start pbx on CONNECT_IND and don't wait for SETUP/SENDING-COMPLETE.
                 ;     info like REDIRECTINGNUMBER may be lost, but this is necessary for
                 ;     drivers/pbx/telco which does not send SETUP or SENDING-COMPLETE.
echosquelch=1   ;_VERY_PRIMITIVE_ echo suppression
echocancel=yes  ;EICON DIVA SERVER (CAPI) echo cancelation
                 ;(possible values: 'no', 'yes', 'force', 'g164', 'g165')
echocancelold=yes;use facility selector 6 instead of correct 8 (necessary for older eicon drivers)
;echotail=64     ;echo cancel tail setting
;bridge=yes      ;native bridging (CAPI line interconnect) if available
;callgroup=1     ;Asterisk call group
;language=de     ;set language for this device (overwrites default language)
devices=2        ;number of concurrent calls on this controller
                 ;(2 makes sense for single BRI, 30 for PRI)


EDIT:

Nach nochmaligem Lesen bin ich verwirrt: Sprecht ihr hier von einem Basisanschluß und *Durchwahlen* nach der MSN?
Also wenn meine 2 MSNs, also meine zwei Nummern beispielsweise 757410 und 757410 sind, z.B.

757410 1234 ?

Das geht doch nicht, dazu braucht man doch einen Anlagenanschluß oder?
Weil bei einem Basisanschluß alles, was nach der Rufnummer kommt, abgeschnitten wird.
Hab ich mir des Öfteren sagen lassen und kein einziger Versuch (auch nicht von Handy) hat da geklappt!
 
Zuletzt bearbeitet:
Ja, Basisanschluß und Durchwahlen nach der MSN. Wobei es eigentlich keine "MSN" (also Multiple Subscriber Number) ist, sondern eine einzige Rufnummer. Du bekommst also von der Telekom z.B. die Nummer 815815 für deinen ISDN-Anschluss. Und Anrufe an 815815-11 werden an 815815 geroutet, und der Teil der an der Nummer dranhängt (also die 11) wird an deine PABX weitergeleitet, die den Anruf dann der entsprechenden Nebenstelle vermittelt.

Hast du etwa mehrere MSNs für deinen ISDN-Anschluss von der TA bekommen?

Du musst beim Basisanschluß die Durchwahlen allerdings erst durch die TA freischalten lassen, standardmäßig ist es so wie du schreibst: alles, was nach der Rufnummer kommt wird abgeschnitten.
 
Ja, ich hab zwei MSNs bekommen. 2 MSN sind gratis dabei beim ISDN Basisanschluß, jede weitere kostet ein paar EUR oda so pro Monat.

Dass das mit einem *Basisanschluß* möglich ist, ist mir echt neu; hast du das so? Wo kann ich das freischalten lassen und wieviel kostet es?

Muss dann nicht
Code:
isdnmode=did

gesetzt werden?

mfg,niki
 
Kostenlos!

Neueste Beiträge

Statistik des Forums

Themen
248,907
Beiträge
2,304,697
Mitglieder
378,616
Neuestes Mitglied
Der_fragende_Unwissende