[Problem] Verbindung SIP -> mISDN, fast immer besetzt, wenn nicht, Absturz des Asterisk

efx24

Neuer User
Mitglied seit
12 Jul 2010
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
Hallo,

es wird Zeit unsere Auerswald COMander Basic (1) in den Ruhestand zu schicken. Da wir 2 externe Nebenstellen anbinden wollen und die Auerswald kein VOIP beherrscht, habe ich mir einen Asterisk ausgesucht, genauer gesagt Trixbox (trixbox-2.8.0.4).

Anwendungsszenario:
IST Zustand:
9 analoge Nebenstellen und eine ISDN Nebenstelle (ISDN Karte) für Fax.

Soll Zustand:
Austausch aller analogen Nebenstellen gegen SIP Telefone (damit auch 2 Home Office Stellen angebunden werden können)
ISDN Karte (Fritz!Card PCI v2.0) in einen neuen Rechner und diesen als Asterisk verwenden
FAX gegen Bluetooth Modem (wegen langer Strecke) an Windows Server austauschen und integrierten WIndows Fax Dienst verwenden (funktioniert bereits)

Da ich mich mit Asterisk nur vom Lesen her auskenne, aber sehr gerne was neues Lerne, betreibe ich den * vorrübergehend als ISDN Nebenstelle der Auerswald (MSN 19)

Ich habe mich im groben an diese Anleitung gehalten: http://www.servercare.nl/Lists/Posts/Post.aspx?ID=34

Vorweg: das ist bis jetzt ein reines Spielsystem, ich kann jegliche Änderungen machen, die ich will

Jetzt meine 2 Probleme:

ich habe 2 SIP Clients erstellt, die können sich auch untereinander anrufen, ich höre jedoch auf beiden Seiten keinen Ton.
Beide Clients sind extern mit dem Asterisk verbunden, alle benötigten Ports sind aber weitergeleitet. Einen internen Test kann ich Montag machen.
Das ist aber nicht so wichtig, hierzu spuckt die Forensuche eine Menge Threads aus.

Und ich habe starke Probleme mit mISDN:
ich versuche bisher nur, einen SIP Client (intern und extern getestet) mit einer analogen Nebenstelle der Auerswald zu verbinden. in 9/10 Versuchen gibt der * mir ein Besetzt im Log
"Everyone is busy/congested at this time (1:0/0/1)"

In dem einen Versuch, wo eine Verbindung zustande kommt, klingelt es beim SIP Client in der Leitung und der Asterisk Dienst startet neu. Leider geben die Logs keinen Aufschluss

Code:
[Jun 18 20:43:05] VERBOSE[3439] logger.c:   == Using SIP RTP TOS bits 184
[Jun 18 20:43:05] VERBOSE[3439] logger.c:   == Using SIP RTP CoS mark 5
[Jun 18 20:43:05] VERBOSE[3439] logger.c:   == Using SIP VRTP TOS bits 136
[Jun 18 20:43:05] VERBOSE[3439] logger.c:   == Using SIP VRTP CoS mark 6
[Jun 18 20:43:05] VERBOSE[3584] logger.c:     -- Executing [15@default:1] Dial("SIP/19-00000000", "mISDN/g:isdn/15,60,Ttr") in new stack
[Jun 18 20:43:05] VERBOSE[3584] logger.c:     -- Called g:isdn/15
!!!!!!!!!!!! Jetzt rebootet der Asterisk Dienst !!!!!!!!!!!
[Jun 18 20:43:10] VERBOSE[3603] logger.c:  Asterisk Event Logger Started /var/log/asterisk/event_log
[Jun 18 20:43:10] VERBOSE[3603] logger.c:  Asterisk Dynamic Loader Starting:
[Jun 18 20:43:10] VERBOSE[3603] logger.c:   == Parsing '/etc/asterisk/modules.conf': [Jun 18 20:43:10] VERBOSE[3603] logger.c:   == Found
[Jun 18 20:43:10] NOTICE[3603] loader.c: 1 modules will be loaded.

Das /var/log/asterisk/event_log ist leer
das misdn Log sagt auch nichts brauchbares aus, da es zum Fehlerzeitpunkt nicht beschrieben wird:
Code:
Sat Jun 18 20:43:05 2011: P[ 1]  read_config: Getting Config
Sat Jun 18 20:43:05 2011: P[ 1]  * CALL: g:isdn/15
Sat Jun 18 20:43:05 2011: P[ 1]  I SEND:SETUP oad:12 dad:15 pid:2
Sat Jun 18 20:43:05 2011: P[ 1]  I IND :RELEASE_COMPLETE oad:12 dad:15 pid:2 state:CALLING
Sat Jun 18 20:43:05 2011: P[ 1]  * RELEASING CHANNEL pid:2 ctx:from-pstn dad:15 oad:15

Hier der Part der Extensions.conf über die Nebenstelle 15 (alles noch einzeln, wie gesagt, bin am ausprobieren)
Code:
[default]

exten => 13,1,Dial(SIP/13,60)
exten => 13,2,Congestion
exten => 13,102,Busy

exten => 19,1,Dial(SIP/13,60)
exten => 19,2,Congestion
exten => 19,102,Busy

exten => 15,1,Dial(mISDN/g:isdn/15,60,Ttr)
exten => 15,2,Congestion
exten => 15,102,Busy

exten => 100,1,Dial(SIP/13&SIP/19,60,Ttr)
exten => 100,2,Congestion
exten => 100,102,Busy

Und die SIP Conf der Nebenstelle 19, mit der ich teste.
Code:
[19]
type=friend
username=19
secret=test123
host=dynamic
context=default
auth=md5
callerid="Nebenstelle 19" <19>

hier die 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=1



; 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


; some pbx systems do cut the L1 for some milliseconds, to avoid 
; dropping running calls, we can set this flag to yes and tell
; mISDNuser not to drop the calls on L2_RELEASE
ntkeepcalls=no

; 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


;
; watches the L1s of every port. If one l1 is down it tries to 
; get it up. The timeout is given in seconds. with 0 as value it
; does not watch the l1 at all
; 
; default value: 0
;
; this option is only read at loading time of chan_misdn, 
; which means you need to unload and load chan_misdn to change the 
; value, an asterisk restart should do the trick
; 
:l1watcher_timeout=0

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

;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
; jbenable = yes              ; Enables the use of a jitterbuffer on the receiving side of a
                              ; SIP channel. Defaults to "no". An enabled jitterbuffer will
                              ; be used only if the sending side can create and the receiving
                              ; side can not accept jitter. The SIP channel can accept jitter,
                              ; thus a jitterbuffer on the receive SIP side will be used only
                              ; if it is forced and enabled.

; jbforce = no                ; Forces the use of a jitterbuffer on the receive side of a SIP
                              ; channel. Defaults to "no".

; jbmaxsize = 200             ; Max length of the jitterbuffer in milliseconds.

; jbresyncthreshold = 1000    ; Jump in the frame timestamps over which the jitterbuffer is
                              ; resynchronized. Useful to improve the quality of the voice, with
                              ; big jumps in/broken timestamps, usually sent from exotic devices
                              ; and programs. Defaults to 1000.

; jbimpl = fixed              ; Jitterbuffer implementation, used on the receiving side of a SIP
                              ; channel. Two implementations are currently available - "fixed"
                              ; (with size always equals to jbmaxsize) and "adaptive" (with
                              ; variable size, actually the new jb of IAX2). Defaults to fixed.

; jbtargetextra = 40          ; This option only affects the jb when 'jbimpl = adaptive' is set.
                              ; The option represents the number of milliseconds by which the new
                              ; jitter buffer will pad its size. the default is 40, so without
                              ; modification, the new jitter buffer will set its size to the jitter
                              ; value plus 40 milliseconds. increasing this value may help if your
                              ; network normally has low jitter, but occasionally has spikes.

; jblog = no                  ; Enables jitterbuffer frame logging. Defaults to "no".
;-----------------------------------------------------------------------------------

[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 list which bearer capabilities should be allowed:
;   all                  - allow any bearer capability
;   speech               - allow speech
;   3_1khz               - allow 3.1KHz audio
;   digital_unrestricted - allow unrestricted digital
;   digital_restricted   - allow restricted digital
;   video                - allow video
;
; Example:
; allowed_bearers=speech,3_1khz
;
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     - Use the first free channel starting from the lowest number.
;   standard_dec - Use the first free channel starting from the highest 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


; specify if chan_misdn should collect digits before going into the 
; dialplan, you can choose yes=4 Seconds, no, or specify the amount
; of seconds you need;
; 
overlapdial=yes

;
; 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
; range: 0-63
;
;callgroup=1
;pickupgroup=1


;
; these are the exact isdn screening and presentation indicators
; if -1 is given for either value the presentation indicators are used
; from asterisks SetCallerPres application.
; s=0, p=0 -> callerid presented
; s=1, p=1 -> callerid restricted (the remote end does not see it!)
; 
; default values s=-1, p=-1
presentation=-1
screen=-1

; This enables echo cancellation with the given number of taps.
; Be aware: Move this setting only to outgoing portgroups!
; A value of zero turns echo cancellation off.
;
; possible values are: 0,32,64,128,256,yes(=128),no(=0)
;
; default value: no
;
;echocancel=no

; Set this to no to disable echotraining. You can enter a number > 10
; the value is a multiple of 0.125 ms. 
;
; default value: no 
; yes = 2000
; no = 0
;
;echotraining=no

;
; 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


;
; defines the maximum amount of incoming calls per port for
; this group. Calls which exceed the maximum will be marked with 
; the channel variable MAX_OVERFLOW. It will contain the amount of 
; overflowed calls
;
max_incoming=-1

;
; defines the maximum amount of outgoing calls per port for this group
; exceeding calls will be rejected
;
max_outgoing=-1

[intern]
; define your ports, e.g. 1,2 (depends on mISDN-driver loading order) 
ports=1
; context where to go to when incoming Call on one of the above ports
context=Intern

[isdn]
ports=1
context=from-pstn
msns=*


Hab ich noch was vergessen?
Cooles Thema dieser Asterisk ;)
 
Konfigurierst du das alles über FreePBX oder änderst du direkt die entsprechenden Datein
 
Hi,
ich mache alles über die Dateien lediglich die beiden Trunks lt. dem Link hab ich per WebIF gemacht
 
du weisst aber schon das Trixbox bzw. Freepbx das überhaupt nicht "mag" . Warum benutzt du nicht das Webinterface
 
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.