Asterisk und ISDN-Phone

Lemmy334

Neuer User
Mitglied seit
5 Mrz 2008
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hallo,

Ich habe Asterisk an einem NTBA über eine FritzCard hängen. Am gleichen NTBA hängt noch eine ISDN-Telefon.

Ist es möglich, dass zwei SIP-Phones am Asterisk und das ISDN-Phone bei einem eingehenden Anruf gleichzeitig klingeln?

Ich habe gelesen, dass die FritzCard nicht im NT-Mode arbeiten kann und daher auch nicht mit dem ISDN-Phone kommunizieren kann. Ich vermute aber dass die Network Termination vom NTBA übernommen werden könnte... Bin leider keine ISDN-Freak :confused:

Danke
Stefan

Hier sind meine Rahmendaten:
SuSE Linux 9.2
ASterisk 1.4.17

capi.conf
[general]
nationalprefix=0
internationalprefix=00
rxgain=1.0 ;linear receive gain (1.0 = no change)
txgain=1.0 ;linear transmit gain (1.0 = no change)
language=de ;set default language

[ISDN1] ;this example interface gets name 'ISDN1' and may be any
isdnmode=msn ;'MSN' (point-to-multipoint) or 'DID' (direct inward dial)
msn=123456
incomingmsn=* ;allow incoming calls to this list of MSNs/DIDs, * = any
controller=1 ;capi controller number of this interface/port
group=1 ;dialout group
softdtmf=on ;enable/disable software dtmf detection, recommended for AVM cards
relaxdtmf=on ;in addition to softdtmf, you can use relaxed dtmf detection
faxdetect=off ;enable faxdetection and redirection to EXTEN 'fax' for incoming and/or
;outgoing calls. (default='off', possible values: 'incoming','outgoing','both')
accountcode=1 ;PBX accountcode to use in CDRs
context=isdn-in ;context for incoming calls
echocancelold=yes;use facility selector 6 instead of correct 8 (necessary for older eicon drivers)
devices=2 ;number of concurrent calls (b-channels) on this controller

sip.conf
[general]
context=default
[1000]
type=friend
context=users
host=dynamic
[2000]
type=friend
context=users
host=dynamic

extensions.conf
Stefan=SIP/1000
OUTBOUNDTRUNK=CAPI/ISDN1

[general]
autofallthrough=yes

[default]
include => isdn-in
include => internal
include => outbound
include => users

[isdn-in]
exten => _X.,1,Answer()
exten => _X.,n,Wait(1)
exten => _X.,n,Dial(SIP/1000,30,rt)

[internal]
exten => 1000,1,Answer()
exten => 1000,n,Dial(SIP/1000,30,rt)
exten => 2000,1,Answer()
exten => 2000,n,Dial(SIP/2000,30,rt)

[outbound]
exten => _X.,1,Dial(${OUTBOUNDTRUNK}/${EXTEN})
exten => _X.,n,Hangup()

[users]
include => outbound
 
Bei einem Anruf aus den ISDN Netz sollte es gehen. (Sofern das Telefon auf die entsprechende MSN konfiguriert ist)

Jedoch ist das Telefon nicht vom Asterisk erreichbar und somit auch nicht aus dem Internet / von den Softphones.

Zu deiner Extensions.conf:
Ich würde im default-Context nur den internal-Context includen.
Der isdn-in ist meiner Meinung nach dort fehl am Platz, und der outbound eine Sicherheitslücke, und der users macht ja nur wieder einen inlclude des outbound-Contextes. Dafür aber den internal-Context im Users-Context includen, damit die SIP Teilnehmer sich auch untereinander erreichen können.
 
Vielen Dank für deine Antwort. Das aktuelle Verhalten ist so, dass schon die SIP-Phones und auch das ISDN-Phone klingelt, allerdings nur, wenn ein SIP-Phone angemeldet ist. Sobald kein SIP online ist, bekommt der Anrufer ein kurzes tut-tut-tut-... Wenn ich Asterisk stoppe, klingelt das ISDN-Phone. MSN stimmt dort also.

Sowohl Asterisk als auch das ISDN-Phone laufen auf der gleichen MSN.

Irgendeine Idee?
 
Ich denke durch das Answer() im isdn-in-Context "greift" sich der Asterisk immer das Gespräch und das ISDN Phone hat keine Zeit zum klingeln da der Asterisk schon abgenommen hat.
 
Und was kann man tun, damit das interne Telefon auch klingelt? Wenn ich den Answer() Eintrag raus nehme, wird das Gespräch nicht mehr an SIP geleitet.

Ich habe das Problem, dass ich es nicht hin bekomme, dass SIP-Telefon und normales ISDN Telefon gleichzeitig klingeln. Geht das denn überhaupt?

Ich nutze eine "billige" Fritz PCI.
 
Dann zeig mal deine extensions.conf
 
Die extensions.conf ist bei mir recht übersichtlich:

Code:
exten=_089.,1,set(CALLERID(number)=863XXXXX)
exten=_089.,2,Dial(CAPI/contr1/${EXTEN},30,r)

[capi-in]
exten => 863XXXXX,1,Answer()
exten => 863XXXXX,2,Set(CALLERID(number)=${CALLERID})
exten => 863XXXXX,3,Dial(SIP/pc-2&SIP/lap-2&CAPI/contr1/11)
exten => 863XXXXX,4,Hangup()

Wie Du vorher ja schon sagtest... Das Answer() scheint das Klingeln am Haustelefon zu verhindern.

Danke
 
Das Answer sagt dem Asterisk, dass er abheben soll.

Meine Erfahrung zeit, dass sich statt des Answer ein

exten => 863XXXXX,1,Ringing()

hier besser macht. Es signalisiert der VST bzw. TK-Anlage, dass der Kanal bereit ist und tatsächlich klingelt (auch wenn danach nicht zwangsweise ein Endgerät klingelt).
 
"Answer()" mach das was der Name sagt, er beantwortet den Ruf. Ab diesem Zeitpunkt muß der Anrufer zahlen. Wenn ein Gerät am ISDN-Bus sich den Ruf schnappt, können die anderen Ihn nicht mehr bekommen (also klingelt es nicht weiter - zumindest sollte es so sein).

Bei deinem Dialplan komm der Ruf über ISDN rein. Das ISDN-Telefon will klingeln, da macht Asterisk Answer() und hat das Gespräch. Dann signalisiert es den Ruf an 2 Sip-Geräte und wählt am ISDN-Bus die '11'. Da die Vermittlungsstelle nix mit '11' anfangen kann, wird das schief gehen.

Am ISDN-Bus können die Geräte nur mit dem Master 'reden' (das ist der NT). Also am NTBA nur mit der Vermittlungsstelle nie mit einem anderem Telefon. An einer TK-Anlage 'reden' die Telefone immer nur mit der TK-Anlage.

Also statt "Answer()" mach "Ringing()" und lösch "&CAPI/contr1/11" aus dem Dial-Befehl.
 
Kostenlos!

Neueste Beiträge

Statistik des Forums

Themen
248,866
Beiträge
2,303,227
Mitglieder
378,522
Neuestes Mitglied
Christian_B70