Interne Gespräche funktionieren nicht.

Cannabisman

Neuer User
Mitglied seit
5 Apr 2005
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich nutze Asterisk auf dem eisfair schon seit fast zwei Jahren. Bis heute hab ich es nicht hinbekommen, dass interne Gespräche funktionieren.

Meine config sieht wie folgt aus:
1. Telefon = "Siemens Gigaset 4000 Comfort - ISDN" am 2. Kanal des NTBA (MSN 662)
2. Telefon = "T-Easy P520 - ISDN" am 1. Kanal des NTBA (MSN 772)
3. Telefon = "Siemens Gigaset A140 - Analog" über Adapter und Verteiler zusammen mit Tel. 2. am 1. Kanal des NTBA (MSN 772)

extensions.conf
Code:
[general]

static=yes
writeprotect=no

[globals]
localdialtimeout=120

[default]
include => user
include => test
include => incoming
include => outgoing
include => error

[test]
exten => #100,1,Set(LANGUAGE()=de)
exten => #100,2,Answer()
exten => #100,3,MP3Player(/var/lib/asterisk/mohmp3/fpm-calm-river.mp3)
exten => #100,4,Congestion()
exten => #100,5,Wait(10)
exten => #100,6,Hangup()

exten => #101,1,Set(LANGUAGE()=de)
exten => #101,2,Answer()
exten => #101,3,Milliwatt()
exten => #101,4,Congestion()
exten => #101,5,Wait(10)
exten => #101,6,Hangup()

exten => #102,1,Set(LANGUAGE()=de)
exten => #102,2,Answer()
exten => #102,3,SayDigits(${CALLERIDNUM})
exten => #102,4,Congestion()
exten => #102,5,Wait(10)
exten => #102,6,Hangup()

exten => #103,1,Set(LANGUAGE()=de)
exten => #103,2,Answer()
exten => #103,3,Playback(demo-echotest)
exten => #103,4,Echo()
exten => #103,5,Playback(demo-echodone)
exten => #103,6,Congestion()
exten => #103,7,Wait(10)
exten => #103,8,Hangup()

exten => #104,1,Set(LANGUAGE()=de)
exten => #104,2,Answer()
exten => #104,3,AGI(date.sh)
exten => #104,4,SendText(${ADATE})
exten => #104,5,sayPhonetic(${ADATE:5})
exten => #104,6,Congestion()
exten => #104,7,Wait(10)
exten => #104,8,Hangup()

[outgoing]
include => 662
include => 772

include => incoming

[662]
;;; Phone 662 ;;;
; Outgoing calls over SIP
exten => _x.,1,Set(LANGUAGE()=de)
exten => _x./662,2,Ringing()
exten => _x./662,3,Set(CALLERID(number)=xxxsipidxxx)
exten => _x./xxxsipidxxx,4,Set(CALLERID(name)=TELEFON)
exten => _x./xxxsipidxxx,5,GotoIf($["${EXTEN:0:1}" = "0"]?7)
exten => _x./xxxsipidxxx,6,Set(areaCode=030)
exten => _x./xxxsipidxxx,7,Dial(SIP/${areaCode}${EXTEN}@sipgate,120,TW)
exten => _x./xxxsipidxxx,8,Dial(SIP/${areaCode}${EXTEN}@qsc,120,TW)
exten => _x./xxxsipidxxx,9,Goto(dialStates,${DIALSTATUS},1)


; Outgoing calls over CAPI
exten => _000.,1,Set(LANGUAGE()=de)
exten => _000./662,2,Set(CALLERID(number)=xxsipnummerxx)
exten => _000./xxsipnummerxx,3,Set(CALLERID(name)=)
exten => _000./xxsipnummerxx,4,Dial(CAPI/contr1/${EXTEN:3}/b,120,TW)
exten => _000./xxsipnummerxx,5,Goto(dialStates,${DIALSTATUS},1)



[772]
;;; Phone 772 ;;;
; Outgoing calls over SIP
exten => _x.,1,Set(LANGUAGE()=de)
exten => _x./772,2,Ringing()
exten => _x./772,3,Set(CALLERID(number)=xxxsipidxxx)
exten => _x./xxxsipidxxx,4,Set(CALLERID(name)=BART)
exten => _x./xxxsipidxxx,5,GotoIf($["${EXTEN:0:1}" = "0"]?7)
exten => _x./xxxsipidxxx,6,Set(areaCode=030)
exten => _x./xxxsipidxxx,7,Dial(SIP/${areaCode}${EXTEN}@sipgate,120,TW)
exten => _x./xxxsipidxxx,8,Dial(SIP/${areaCode}${EXTEN}@qsc,120,TW)
exten => _x./xxxsipidxxx,9,Goto(dialStates,${DIALSTATUS},1)


; Outgoing calls over CAPI
exten => _000.,1,Set(LANGUAGE()=de)
exten => _000./772,2,Set(CALLERID(number)=xxsipnummerxx)
exten => _000./xxsipnummerxx,3,Set(CALLERID(name)=)
exten => _000./xxsipnummerxx,4,Dial(CAPI/contr1/${EXTEN:3}/b,120,TW)
exten => _000./xxsipnummerxx,5,Goto(dialStates,${DIALSTATUS},1)



[incoming]
include => default

exten => xxxsipidxxx,1,Set(LANGUAGE()=de)
exten => xxxsipidxxx,2,Ringing()
exten => xxxsipidxxx,3,AGI(getName.php,local=yes,path=/public/phonelist.txt)
exten => xxxsipidxxx,4,Set(CALLERID(number)=${CID})
exten => xxxsipidxxx,5,Set(CALLERID(name)=${NAME})
exten => xxxsipidxxx,6,System(/data/dump/asterisk/vdrr "${CALLERID}"&)
exten => xxxsipidxxx,7,Dial(Zap/g1/662&Zap/g1/772,${localdialtimeout},t)
exten => xxxsipidxxx,8,Congestion()
exten => xxxsipidxxx,9,Wait(10)
exten => xxxsipidxxx,10,Hangup()

exten => xxsipfallbackIDxx,1,Set(LANGUAGE()=de)
exten => xxsipfallbackIDxx,2,Ringing()
exten => xxsipfallbackIDxx,3,AGI(getName.php,local=yes,path=/public/phonelist.txt)
exten => xxsipfallbackIDxx,4,Set(CALLERID(number)=${CID})
exten => xxsipfallbackIDxx,5,Set(CALLERID(name)=${NAME})
exten => xxsipfallbackIDxx,6,Dial(Zap/g1/662&Zap/g1/772,${localdialtimeout},t)
exten => xxsipfallbackIDxx,7,Congestion()
exten => xxsipfallbackIDxx,8,Wait(10)
exten => xxsipfallbackIDxx,9,Hangup()

; Incoming (internal) calls for number 662. Type of phone: hfcs
exten => *662,1,Set(LANGUAGE()=de)
exten => *662/772,2,Set(CALLERID(name)=BART)
exten => *662/772,3,Set(CALLERID(number)=*772)
exten => *662,2,NoOp()
exten => *662,3,NoOp()
exten => *662,4,Dial(Zap/g1/662,120)
exten => *662,5,Goto(incoming,*662-${DIALSTATUS},1)
exten => *662,6,Goto(dialStates,${DIALSTATUS},1)

; Incoming (internal) calls for number 772. Type of phone: hfcs
exten => *772,1,Set(LANGUAGE()=de)
exten => *772/662,2,Set(CALLERID(name)=TELEFON)
exten => *772/662,3,Set(CALLERID(number)=*662)
exten => *772,2,NoOp()
exten => *772,3,NoOp()
exten => *772,4,Dial(Zap/g1/772,120)
exten => *772,5,Goto(incoming,*772-${DIALSTATUS},1)
exten => *772,6,Goto(dialStates,${DIALSTATUS},1)


[dialStates]
exten => NOANSWER,1,Set(LANGUAGE()=de)
exten => NOANSWER,2,Playback(vm-nobodyavail)
exten => NOANSWER,3,Congestion()
exten => NOANSWER,4,Wait(10)
exten => NOANSWER,5,Hangup()

exten => BUSY,1,Set(LANGUAGE()=de)
exten => BUSY,2,Busy()
exten => BUSY,3,Congestion()
exten => BUSY,4,Wait(10)
exten => BUSY,5,Hangup()

exten => CHANUNAVAIL,1,Set(LANGUAGE()=de)
exten => CHANUNAVAIL,2,Congestion()
exten => CHANUNAVAIL,3,Congestion()
exten => CHANUNAVAIL,4,Wait(10)
exten => CHANUNAVAIL,5,Hangup()

exten => CONGESTION,1,Set(LANGUAGE()=de)
exten => CONGESTION,2,Congestion()
exten => CONGESTION,3,Congestion()
exten => CONGESTION,4,Wait(10)
exten => CONGESTION,5,Hangup()


[error]
exten => h,1,Hangup
exten => _[*#X].,1,Set(LANGUAGE()=de)
exten => _[*#X].,2,Playback(pbx-invalid)
exten => _[*#X].,3,Congestion()
exten => _[*#X].,4,Wait(10)
exten => _[*#X].,5,Hangup()

[user]

xxxsipidxxx = sipid des primären sip accounts
xxxsipnummerxxx = die telefonnummer des primären sip accounts die als Outgoing_MSN bei den beiden Telefonen definiert ist.
xxsipfallbackIDxx = sipid des zweiten sip accounts fürs fallback, falls sip1 nicht geht
An der extensions.conf kann ich auch so nicht wirklich was ändern, da die config auf dem eisfair in einer separaten Datei für das ganze Asterisk Paket vorgenommen wird.

Was mich auch noch stört, ist dass Telefon 2 und 3 beide die gleiche MSN haben müssen und somit als ein Telefon in der config definiert sind. Sonst klingelt das 2te T-Easy nicht, wenn es eine eigene MSN bekommt und es kommt folgender Fehler zustande:
Code:
...
Requested transfer capability: 0x00 - SPEECH
    -- Called g1/662
    -- Requested transfer capability: 0x00 - SPEECH
    -- Called g1/772
Dec  6 08:45:16 NOTICE[8687]: app_dial.c:1059 dial_exec_full: Unable to create channel of type 'Zap' (cause 34 - Circuit/channel congestion)
    -- Zap/2-1 is ringing
    -- Zap/1-1 is ringing
  == Primary D-Channel on span 1 up for TEI 65
  == Primary D-Channel on span 1 up for TEI 66
    -- Zap/1-1 is ringing
    -- Hungup 'Zap/2-1'
    -- Hungup 'Zap/1-1'
...
Hier sollte noch ein Telefon mit der MSN 552 (das T-Easy) auftauchen, aber stattdessen kommt der obige Fehler.

Zu den Internen gesprächen. Wenn ich jetzt von Telefon 1. das ja alleine am 2. Kanal hängt versuche das zweite und das dritte (ist ja die gleiche MSN) anzurufen, kommt folgende Fehlermeldung:
Code:
    -- Accepting overlap voice call from '662' to '772' on channel 0/2, span 1
    -- Starting simple switch on 'Zap/2-1'
    -- Executing Set("Zap/2-1", "LANGUAGE()=de") in new stack
    -- Executing Ringing("Zap/2-1", "") in new stack
    -- Executing Set("Zap/2-1", "CALLERID(number)=xxxsipidxxx") in new stack
    -- Executing Set("Zap/2-1", "CALLERID(name)=TELEFON") in new stack
    -- Executing GotoIf("Zap/2-1", "0?7") in new stack
    -- Executing Set("Zap/2-1", "areaCode=030") in new stack
    -- Executing Dial("Zap/2-1", "SIP/030772@sipgate|120|TW") in new stack
    -- Called 030772@sipgate
    -- SIP/sipgate-70eb is ringing
    -- SIP/sipgate-70eb is making progress passing it to Zap/2-1
    -- Got SIP response 500 "Server internal failure" back from 217.10.79.9
    -- SIP/sipgate-70eb is circuit-busy
  == Everyone is busy/congested at this time (1:0/1/0)
    -- Executing Dial("Zap/2-1", "SIP/030772@qsc|120|TW") in new stack
    -- Called 030772@qsc
    -- Got SIP response 484 "Address Incomplete" back from 213.148.136.2
  == No one is available to answer at this time (1:0/0/0)
    -- Executing Goto("Zap/2-1", "dialStates|NOANSWER|1") in new stack
    -- Goto (dialStates,NOANSWER,1)
    -- Executing Set("Zap/2-1", "LANGUAGE()=de") in new stack
    -- Executing Playback("Zap/2-1", "vm-nobodyavail") in new stack
    -- Playing 'vm-nobodyavail' (language 'de')
    -- Executing Congestion("Zap/2-1", "") in new stack
    -- Channel 0/2, span 1 got hangup request
  == Spawn extension (dialStates, NOANSWER, 3) exited non-zero on 'Zap/2-1'
    -- Hungup 'Zap/2-1'
Irgendwie versucht er hier über sip rauszutelefonieren.

Wenn ich jetzt vom zweiten oder dritten Telefon versuche das erste anzurufen kommt folgendes:
Code:
    -- Accepting overlap voice call from '772' to '<unspecified>' on channel 0/2, span 1
    -- Starting simple switch on 'Zap/2-1'
    -- Going to extension s|1 because of empty extension received on overlap call
Dec  6 09:49:51 ERROR[10211]: chan_zap.c:2774 zt_hangup: What is wrong with you? You cannot use cause 1 number when in state 1!
    -- Hungup 'Zap/2-1'
Es sieht so aus als ob ich gar keine nummer gewählt hätte. Natürlich habe ich in diesem fall *662 gewählt um das erste Tel intern anzurufen.


Kann mir jemand dieses seltsame verhalten des asterisk erklären? Es funktioniert sonst alles - ich kann raustelefonieren und bin auch immer erreichbar. Alle drei Telefone funktionieren soweit, nur die internen Gespräche gehen nicht. Das mit dem dritten Telefon, das sich die MSN mit seinem Nachbar teilen muss stört mich auch ein wenig. Ist das normal so?


Hier ist die config des eisfair asterisk Pakets zum nachvollziehen der extensions.conf http://www.buppern.de/asterisk.conf


Gruß

canna
 
Zuletzt bearbeitet:
Mit den Internen Gesprächen hat sich das erledigt. Nach langem Studieren von Dokus und Handbüchern ist mir aufgefallen, dass bei interner wahl das * nicht mitgenommen wurde. Das lag an den Einstellungen der Telefone. Mit den beiden ISDN Telefonen klappt das nun und es wird *772 und nicht nur 772 gewählt, was dazu führte, dass asterisk über sip rauswählen wollte. Mit dem Analogen Gigaset A140 geht das überhaupt nicht. Wenn ich da zb. *662 wähle, kommt am asterisk nix an (<unspecified>). Das ist aber jetzt nicht weiter schlimm. Wäre aber trotzdem nicht schlecht, wenn jemand eine Lösung für dieses Problem parat hätte.


Wie ist das jetzt eigentlich mit den HFCS-Ports und den bei Asterisk definierten Telefonen. Wenn ich jetzt nur ein HFCS-Karte habe, kann ich dann auch nur 2 Telefone definieren und damit zwei interene MSNs vergeben, oder geht da mehr?
Wie schon oben beschrieben kommt sobald ich ein drittes telefon definiert habe folgender fehler zustande wenn jemand von aussen anruft:
Code:
app_dial.c:1059 dial_exec_full: Unable to create channel of type 'Zap' (cause 34 - Circuit/channel congestion)

Wie ist das nun mit der Anzahl der Telefone und lässt sich von einem Analogen Teil ein internes Gespräch führen?

Bin für jeden Tipp dankbar!


Gruß

canna
 
Hi Canna,

in der Konfig des Gigaset kann man normalerweise einstellen, dass auch Nummern mit "*" und "#" rausgeschickt werden (werden per default vom Gigaset abgefangen). Wenn Du das aktivierst, kommen auch diese Nummern beim Asterisk an.

Ciao
Tom
 
Bei dem Gigaset 4110 geht das ja auch, aber bei dem Gigaset A140 (analog) kann ich so eine Option im Menü nicht finden. Das wird mit dem Telefon dann wohl nicht funktionieren.

Wie ich mehr als zwei Telefone definieren kann, habe ich jetzt rausgefunden. Das Problem war, dass man nur auf zwei MSNs gleichzeitig das Klingeln signalisieren kann, also hab ich jedem Telefon die gleiche MSN fürs Klingeln gegeben und eine zweite (für jedes Tel. einen andere) für die internen Gespräche.

Jetzt funktioniert alles, so wie ich es mir vorgestellt habe. Nur das mit dem analogen Gigastet A140 stört mich ein wenig. Wäre nicht schlecht gewesen, wenn man auch von diesem Tel. interne gespräche führen und nicht nur annehmen könnte.


Gruß

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