Hallo,
ich hab es geschafft meine Firma komplett auf eine Asterisk-Anlage umzurüsten. Soweit funktioniert alles irgendwie, sogar Faxe. Eine Sache bleibt mir jedoch ein totales Rätsel. Wenn man nach draussen telefonieren will passiert es ziemlich häufig, dass kein Kanal frei ist, obwohl mir Asterisk anzeigt, dass evtl. sogar alle Leitungen frei sind.
Erstmal zu meiner Umgebung:
VIA C7 mit 1GB Speicher
Beronet BN2S0 PCI ISDN Karte
Trixbox 2.2.4
Linux Kernel 2.6.22.6
dazu noch HylaFAX-Server
und als Clients X-Lite und Linksys SPA941 Telefone
Anlagenanschluss mit 2 S0 (nicht DTAG).
Eingerichtet habe ich alles nach den Vorgaben von Beronet:
Konfiguriert habe ich die ISDN-Karte so (misdn-init.conf):
Ist card=1,0x4 richtig für eine BN2S0? Ich habe sowas wie 0x2 im Forum gesehen, was aber nicht von beronet dokumentiert ist.
Dazu noch misdn.conf:
Es soll alles über die Gruppe [tng] laufen. Eingehende Gespräche werden richtig in den Context from-pstn gesetzt. Das scheint soweit richtig zu funktionieren. Der andere Weg allerdings nicht. Der Trunk in FreePBX ist Custom Dial String so eingestellt:
misdn/g:tng/$OUTNUM$
Mit diesem Dialstring kann ich raustelefonieren, auch mit mehreren Kanälen gleichzeitig. Manchmal geht es jedoch gar nicht "all circuits are busy now", auch wenn genügend oder auch alle frei sind. Ein Schema dahinter habe ich nicht erkennen können.
Ich kann es (halbwegs) funktionierend machen, wenn ich die Kanäle direkt anwähle, also zB so:
misdn/2-1/$OUTNUM$
Dann hab ich allerdings nur eine begrenzte Anzahl für Rausgehende.
Was mache ich falsch? Oder liegt's an misdn?
Christian
ich hab es geschafft meine Firma komplett auf eine Asterisk-Anlage umzurüsten. Soweit funktioniert alles irgendwie, sogar Faxe. Eine Sache bleibt mir jedoch ein totales Rätsel. Wenn man nach draussen telefonieren will passiert es ziemlich häufig, dass kein Kanal frei ist, obwohl mir Asterisk anzeigt, dass evtl. sogar alle Leitungen frei sind.
Erstmal zu meiner Umgebung:
VIA C7 mit 1GB Speicher
Beronet BN2S0 PCI ISDN Karte
Trixbox 2.2.4
Linux Kernel 2.6.22.6
dazu noch HylaFAX-Server
und als Clients X-Lite und Linksys SPA941 Telefone
Anlagenanschluss mit 2 S0 (nicht DTAG).
Eingerichtet habe ich alles nach den Vorgaben von Beronet:
Konfiguriert habe ich die ISDN-Karte so (misdn-init.conf):
Code:
card=1,0x4
te_ptp=1,2
poll=128
dsp_poll=128
dsp_options=0
dtmfthreshold=100
debug=0
Ist card=1,0x4 richtig für eine BN2S0? Ich habe sowas wie 0x2 im Forum gesehen, was aber nicht von beronet dokumentiert ist.
Dazu noch misdn.conf:
Code:
;
; chan_misdn sample config
;
; general section:
;
; for debugging and general setup, things that are not bound to port groups
;
[general]
;
; Sets the Path to the misdn-init.conf (for nt_ptp mode checking)
;
misdn_init=/etc/misdn-init.conf
; set debugging flag:
; 0 - No Debug
; 1 - mISDN Messages and * - Messages, and * - State changes
; 2 - Messages + Message specific Informations (e.g. bearer capability)
; 3 - very Verbose, the above + lots of Driver specific infos
; 4 - even more Verbose than 3
;
; default value: 0
;
debug=0
; set debugging file and flags for mISDNuser (NT-Stack)
;
; flags can be or'ed with the following values:
;
; DBGM_NET 0x00000001
; DBGM_MSG 0x00000002
; DBGM_FSM 0x00000004
; DBGM_TEI 0x00000010
; DBGM_L2 0x00000020
; DBGM_L3 0x00000040
; DBGM_L3DATA 0x00000080
; DBGM_BC 0x00000100
; DBGM_TONE 0x00000200
; DBGM_BCDATA 0x00000400
; DBGM_MAN 0x00001000
; DBGM_APPL 0x00002000
; DBGM_ISDN 0x00004000
; DBGM_SOCK 0x00010000
; DBGM_CONN 0x00020000
; DBGM_CDATA 0x00040000
; DBGM_DDATA 0x00080000
; DBGM_SOUND 0x00100000
; DBGM_SDATA 0x00200000
; DBGM_TOPLEVEL 0x40000000
; DBGM_ALL 0xffffffff
;
ntdebugflags=0
ntdebugfile=/var/log/misdn-nt.log
; the big trace
;
; default value: [not set]
;
;tracefile=/var/log/asterisk/misdn.log
; set to yes if you want mISDN_dsp to bridge the calls in HW
;
; default value: yes
;
bridging=no
; stops dialtone after getting first digit on nt Port
;
; default value: yes
;
stop_tone_after_first_digit=yes
; whether to append overlapdialed Digits to Extension or not
;
; default value: yes
;
append_digits2exten=yes
;;; CRYPTION STUFF
; Whether to look for dynamic crypting attempt
;
; default value: no
;
dynamic_crypt=no
; crypt_prefix, what is used for crypting Protocol
;
; default value: [not set]
;
crypt_prefix=**
; Keys for cryption, you reference them in the dialplan
; later also in dynamic encr.
;
; default value: [not set]
;
crypt_keys=test,muh
; users sections:
;
; name your sections as you which but not "general" !
; the sections are Groups, you can dial out in extensions.conf
; with Dial(mISDN/g:extern/101) where extern is a section name,
; chan_misdn tries every port in this section to find a
; new free channel
;
; The default section is not a group section, it just contains config elements
; which are inherited by group sections.
;
[default]
; define your default context here
;
; default value: default
;
context=misdn
; language
;
; default value: en
;
language=de
;
; sets the musiconhold class
;
musicclass=default
;
; Either if we should produce DTMF Tones ourselves
;
senddtmf=yes
;
; If we should generate Ringing for chan_sip and others
;
far_alerting=no
;
; here you can define which bearers should be allowed
;
allowed_bearers=all
; Prefixes for national and international, those are put before the
; oad if an according dialplan is set by the other end.
;
; default values: nationalprefix : 0
; internationalprefix : 00
;
nationalprefix=0
internationalprefix=00
; set rx/tx gains between -8 and 8 to change the RX/TX Gain
;
; default values: rxgain: 0
; txgain: 0
;
rxgain=0
txgain=0
; some telcos especially in NL seem to need this set to yes, also in
; switzerland this seems to be important
;
; default value: no
;
te_choose_channel=no
;
; This option defines, if chan_misdn should check the L1 on a PMP
; before making a group call on it. The L1 may go down for PMP Ports
; so we might need this.
; But be aware! a broken or plugged off cable might be used for a group call
; as well, since chan_misdn has no chance to distinguish if the L1 is down
; because of a lost Link or because the Provider shut it down...
;
; default: no
;
pmp_l1_check=no
;
; in PMP this option defines which cause should be sent out to
; the 3. caller. chan_misdn does not support callwaiting on TE
; PMP side. This allows to modify the RELEASE_COMPLETE cause
; at least.
;
reject_cause=16
;
; Send Setup_Acknowledge on incoming calls anyway (instead of PROCEEDING),
; this requests additional Infos, so we can waitfordigits
; without much issues. This works only for PTP Ports
;
; default value: no
;
need_more_infos=no
;
; set this to yes if you want to disconnect calls when a timeout occurs
; for example during the overlapdial phase
;
nttimeout=no
; set the method to use for channel selection:
; standard - always choose the first free channel with the lowest number
; round_robin - use the round robin algorithm to select a channel. use this
; if you want to balance your load.
;
; default value: standard
;
method=standard
;
; dialplan means Type Of Number in ISDN Terms (for outgoing calls)
;
; there are different types of the dialplan:
;
; dialplan -> outgoing Number
; localdialplan -> callerid
; cpndialplan -> connected party number
;
; dialplan options:
;
; 0 - unknown
; 1 - International
; 2 - National
; 4 - Subscriber
;
; This setting is used for outgoing calls
;
; default value: 0
;
dialplan=0
localdialplan=0
cpndialplan=0
;
; turn this to no if you don't mind correct handling of Progress Indicators
;
early_bconnect=yes
;
; turn this on if you like to send Tone Indications to a Incoming
; isdn channel on a TE Port. Rarely used, only if the Telco allows
; you to send indications by yourself, normally the Telco sends the
; indications to the remote party.
;
; default: no
;
incoming_early_audio=no
; uncomment the following to get into s extension at extension conf
; there you can use DigitTimeout if you can't or don't want to use
; isdn overlap dial.
; note: This will jump into the s exten for every exten!
;
; default value: no
;
;always_immediate=no
;
; set this to yes if you want to generate your own dialtone
; with always_immediate=yes, else chan_misdn generates the dialtone
;
; default value: no
;
nodialtone=no
; uncomment the following if you want callers which called exactly the
; base number (so no extension is set) jump to the s extension.
; if the user dials something more it jumps to the correct extension
; instead
;
; default value: no
;
;immediate=no
; uncomment the following to have hold and retrieve support
;
; default value: no
;
;hold_allowed=yes
; Pickup and Callgroup
;
; default values: not set = 0
;
;callgroup=1
;pickupgroup=1
;
; these are the exact isdn screening and presentation indicators
; if -1 is given for both values the presentation indicators are used
; from asterisks SetCallerPres application.
; s=0, p=0 -> callerid presented not screened
; s=1, p=1 -> callerid presented but screened (the remote end does not see it!)
;
; default values s=-1, p=-1
presentation=-1
screen=-1
; this enables echocancellation, with the given number of taps
; be aware, move this setting only to outgoing portgroups!
; A value of zero turns echocancellation off.
;
; possible values are: 0,32,64,128,256,yes(=128),no(=0)
;
; default value: no
;
echocancel=128
;
; chan_misdns jitterbuffer, default 4000
;
jitterbuffer=4000
;
; change this threshold to enable dejitter functionality
;
jitterbuffer_upper_threshold=0
;
; change this to yes, if you want to bridge a mISDN data channel to
; another channel type or to an application.
;
hdlc=no
;[intern]
; define your ports, e.g. 1,2 (depends on mISDN-driver loading order)
;ports=1,2
; context where to go to when incoming Call on one of the above ports
;context=Intern
;[internPP]
;
; adding the postfix 'ptp' to a port number is obsolete now, chan_misdn
; parses /etc/misdn-init.conf and sets the ptp mode to the corresponding
; configs. For backwards compatibility you can still set ptp here.
;
;ports=3
;[first_extern]
; again port defs
;ports=4
; again a context for incoming calls
;context=Extern1
; msns for te ports, listen on those numbers on the above ports, and
; indicate the incoming calls to asterisk
; here you can give a comma separated list or simply an '*' for
; any msn.
;msns=*
; here an example with given msns
;[second_extern]
;ports=5
;context=Extern2
;callerid=15
;msns=102,144,101,104
[tng]
ports=1,2
context=from-pstn
msns=*
Es soll alles über die Gruppe [tng] laufen. Eingehende Gespräche werden richtig in den Context from-pstn gesetzt. Das scheint soweit richtig zu funktionieren. Der andere Weg allerdings nicht. Der Trunk in FreePBX ist Custom Dial String so eingestellt:
misdn/g:tng/$OUTNUM$
Mit diesem Dialstring kann ich raustelefonieren, auch mit mehreren Kanälen gleichzeitig. Manchmal geht es jedoch gar nicht "all circuits are busy now", auch wenn genügend oder auch alle frei sind. Ein Schema dahinter habe ich nicht erkennen können.
Ich kann es (halbwegs) funktionierend machen, wenn ich die Kanäle direkt anwähle, also zB so:
misdn/2-1/$OUTNUM$
Dann hab ich allerdings nur eine begrenzte Anzahl für Rausgehende.
Was mache ich falsch? Oder liegt's an misdn?
Christian