Anbindung mit X-Tensions XC-525 USB ISDN-Adapter

Von LCR hatte ich auch schon mal gehört, wusste aber nicht ob, das das richtige für meine Zwecke ist.
Ich habe versucht deiner Anleitung zu folgen, aber es ging mal wieder nicht. :confused: Beim Konfigurieren spuckt er eine ellenlange Fehlerliste aus. Hab sie angehangen sonst müsste man in diesem Post sehr lange scrollen =)

Scheinbar findet er etwas nicht. Nur was genau?
 

Anhänge

  • lcr-asterisk-log.txt
    12.9 KB · Aufrufe: 18
Ist libncurses5-dev installiert?

das hat jetzt geklappt denke ich.
nun hacken aber die nächsten Schritte etwas

Code:
server:/usr/src/lcr#lcr fork
lcr: error while loading shared libraries: libmisdn.so.0: cannot open shared object file: No such file or directory
server:/usr/src/lcr# lcradmin state
Failed to connect to socket "/var/tmp/LCR.socket".
Is LCR running?

Hat er jetzt doch was bei der Installation vergessen?
 
In /usr/lib/ nach libmisdn.so und Link von libmisdn.so.0 schauen.
 
Code:
server:~# ls -l /usr/lib/ | grep libmisdn
NICHTS. Hab noch mal manuel nachgeschaut, aber auch nichts gefunden.

Was nun?
 
Bei mit ist die Datei unter "/usr/local/lib/libmisdn.so.0". Guck da mal.

Kann dir allerdings nicht mehr sagen wo die wie mitkam.
dpkg sacht leider die Datei stammt nicht von Debian.



Ich guck heut abend noch mal auf meinem anderen Testsystem vll. finde ich da mehr raus.
 
Wieder voll ins schwarze getroffen!

Code:
server:~# ls -l /usr/local/lib | grep libmisdn
-rw-r--r-- 1 root staff 289762 24. Okt 17:31 libmisdn.a
-rwxr-xr-x 1 root staff    936 24. Okt 17:31 libmisdn.la
lrwxrwxrwx 1 root staff     17 24. Okt 17:31 libmisdn.so -> libmisdn.so.0.2.1
lrwxrwxrwx 1 root staff     17 24. Okt 17:31 libmisdn.so.0 -> libmisdn.so.0.2.1
-rwxr-xr-x 1 root staff 221724 24. Okt 17:31 libmisdn.so.0.2.1

Hätte ich mind find wohl auch drauf kommen können:-Ö

Code:
ln -s /usr/local/lib/libmisdn.so.0.2.1 /usr/lib/libmisdn.so.0
Sollte es doch dann biegen oder?
 
Zuletzt bearbeitet:
So mit dem Link liess sich LCR nun starten.

Der Test Anruf klappt aber nicht.
Code:
server:~# lcr fork

** LCR  Version 1.7

server:~# 
LCR: Starting daemon.
LCR: Another LCR process is running. Please kill the other one.

home-server:~# lcradmin testcall zur_easybox 430XXX 01577XXXXXXX     
pid=1613
PROGRESS
 progress=8
 location=1
PROCEEDING
RELEASE
 cause=16 Normaler Verbindungsabbau
 location=5 Anlage (Gegenstelle)
Call released.

lcradmin state liefert den Log im Anhang.

Kann es sein das der Anruf zwar raus aber nicht durch die EB kommt?
 

Anhänge

  • LCR-LOG-State.txt
    3.2 KB · Aufrufe: 7
Zuletzt bearbeitet:
Jetzt klingelt zumindest das Handy mal. :):):)

Muss man diese Module eigentlich immer nur einmal laden, oder jedes mal beim Starten?
 
Na du kommst der ganzen sache ja schon ziemlich nahe.

Die Module müssen bei jedem Start des Rechners geladen werden. Da hilft aber nen Trick:

Die Module die geladen werden sollen einfach in die "/etc/modules" eintragen:

/etc/modules
Code:
mISDN_core
hfcsusb
mISDN_dsp
mISDN_dsp_oslec

Und morgen wenn ich wieder ran komme post ich dir noch mal meine init.rc files, damit LCR und Asterisk auch gleich in der richtigen reihenfolge mitstarten bei nem Boot.
 
So, nun hier meine initrc Files zum Starten von LCR und die Änderung in der Asterisk rc Datei damit auch das neue "dependet boot system" von Debian nix falsch macht:

Diese Datei must du neu anlegen:
/etc/init.d/lcr
Code:
#!/bin/sh

### BEGIN INIT INFO
# Provides:          lcr
# Required-Start:    $syslog $network
# Required-Stop:     $syslog $network
# X-Start-Before:    asterisk
# X-Stop-After:      asterisk
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Linux Call Router Deamon
# Description:       Start the Linux Call Router
### END INIT INFO

. /lib/lsb/init-functions

case ${1} in
    start)
        log_daemon_msg "Starting Linux Call Router" "lcr"
        /usr/local/sbin/lcr fork > /dev/null
        # give it some time to start
        sleep 1
        # set permission to the socket so asterisk can work
        chown asterisk:asterisk /var/tmp/LCR.socket
    ;;
    reload)
        log_daemon_msg "Restarting Linux Call Router" "lcr"
        ${0} stop
        ${0} start
    ;;
    stop)
        log_daemon_msg "Stopping Linux Call Router" "lcr"
        kill $(pidof lcr)
    ;;
esac

und in der astersik folgende Einträge erweitern:
/etc/init.d/asterisk
Code:
### BEGIN INIT INFO
# Provides:          asterisk
# Required-Start:    $remote_fs $lcr
# Required-Stop:     $remote_fs $lcr

dann noch ein
Code:
> update-rc.d lcr enable

Und dann sollte beim Booten erst die Module, dann LCR und dann Asterisk gestartet werden
 
So weit so gut. Das Update der init-Skripte mag den Syntax nicht.
Code:
server:~# update-rc.d lcr enable
usage: update-rc.d [-n] [-f] <basename> remove
       update-rc.d [-n] <basename> defaults [NN | SS KK]
       update-rc.d [-n] <basename> start|stop NN runlvl [runlvl] [...] .
		-n: not really
		-f: force
Nach einem Restart sollte das doch eh geändert sein oder?

Es wäre super, wenn du auch noch posten könntest, wie chan_lcr konfiguriert sein muss und wie die extensions.conf. Ich würde das dann analysieren und ggf. an meine Gegebenheiten anpassen.
 
Hm anscheinent hast du noch die alte Version um update-rc.d (Hast du nich irgendwo erwähnt du installierst testing / squeeze ?)

Dann versuch halt mal
"update-rc.d lcr defaults"

lcr habe ich in/für Asterisk garnicht konfiguriert (kann man das?) wenn es richtig installiert ist, läd asterisk das modul beim starten automatisch mit. Das kannst du kontrollieren in dem du wenn dein Asterisk läuft folgendes eingibst:

Code:
> asterisk -r
*CLI> module show like lcr
Module                         Description                              Use Count
chan_lcr.so                    Channel driver for Linux-Call-Router Sup 0
1 modules loaded
shpdpbx1*CLI> exit

meine extension.conf sieht so aus:
Code:
[general]
static=yes
writeprotect=no
autofallthrough=yes
clearglobalvars=no

[globals]
CONSOLE=Console/dsp                             ; Console interface for demo

[default]
exten => 7200,1,Dial(SIP/7200)
exten => 7201,1,Dial(SIP/7201)
exten => 7202,1,Dial(iax2/fritzbox/7202)
exten => _X.,1,Dial(LCR/alcatel/${EXTEN})

exten => _X.,n,Verbose(D E F A U L T ==> ${CALLERID(num)} kam um ${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)} in DEFAULT an als er versuchte die Nummer ${EXTEN} anzurufen.)
exten => _X.,n,Set(MIXMONITOR_FILENAME=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${EXTEN}-DEFAULT-REGEL-VON-${CALLERID(num)})
exten => _X.,n,Hangup

"exten => _X.,1,Dial(LCR/alcatel/${EXTEN})" ist dabei dei Zeile die sacht "Wähle via LCR über das in LCR konfigurierte interface [alcatel] (Datei /usr/local/lcr/interface.conf)"
Wie man sieht habe ich noch zwei SIP Phones und ne Fritzbox via IAX2 angeschlossen.

LCR habe ich gesagt, es soll alle auf dem interface alcatel ankommenden Anrufe an asterisk durchreichen und zwar in den default context :

/usr/local/lcr/routing.conf
Code:
[main]
interface=alcatel                       : remote application=asterisk context=default
default                                 : disconnect cause=1
 
Scheinbar will er den Channel zum LCR nicht aufmachen:

Bei Anruf nach extern:
Code:
-- Executing [022235XXXXXX@Endgeraete:1] Dial("SIP/35-00000004", "LCR/zur_easybox/022235XXXXXX") in new stack
[Oct 30 21:17:21] WARNING[1561]: app_dial.c:1747 dial_exec_full: Unable to create channel of type 'LCR' (cause 0 - Unknown)
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Auto fallthrough, channel 'SIP/35-00000004' status is 'CHANUNAVAIL'

Beim Anruf von extern:
Code:
30.10.10 21:22:21.430 CH(6): MT_NEW_L3ID INDICATION  port 0  callref new=0x10009                                                                             
30.10.10 21:22:21.430 CH(6): MT_SETUP INDICATION U<-N  port 0  calling_pn type=2 plan=1 present=0 screen=0 number=22354xxxxxx  called_pn type=4 plan=1 numbe*
30.10.10 21:22:21.430 CH(6): CHANNEL SELECTION (setup)  port 0  channel request='1 (forced)' reserved=0  conclusion 'channel available'  connect channel=1   
30.10.10 21:22:21.431 CH(6): BCHANNEL create socket  port 0  channel 1  socket 11                                                                            
30.10.10 21:22:21.431 CH(6): BCHANNEL activate  port 0  channel 1                                                                                            
30.10.10 21:22:21.431 EP(6): SETUP  from CH(6)  caller id number=022354xxxxxx present=allowed  dialing 4xxxxx  complete true                                 
30.10.10 21:22:21.431 EP(6): TONE  to CH(6)  directory default  name dialing                                                                                 
30.10.10 21:22:21.431 EP(6): ACTION (match)  action remote  line 3                                                                                           
30.10.10 21:22:21.431 EP(6): ACTION remote (not available)  applicatio asterisk                                                                              
30.10.10 21:22:21.431 EP(6): DISCONNECT  to CH(6)  cause value=27 location=1-Local-PBX                                                                       
30.10.10 21:22:21.431 EP(6): TONE  to CH(6)  directory default  name cause_1b                                                                                
30.10.10 21:22:21.431 CH(6): MT_PROCEEDING REQUEST U->N  port 0  channel_id exclusive=1 channel=1                                                            
30.10.10 21:22:21.432 CH(6): MT_DISCONNECT REQUEST U->N  port 0  cause location=5 value=27                                                                   
30.10.10 21:22:21.432 CH(6): BCHANNEL control  port 0  DSP-DTMF 1                                                                                            
30.10.10 21:22:21.515 CH(6): MT_RELEASE INDICATION U<-N  port 0                                                                                              
30.10.10 21:22:21.515 CH(6): MT_RELEASE_L3ID INDICATION  port 0  callref 0x10009                                                                             
30.10.10 21:22:21.515 EP(6): RELEASE  from CH(6)  cause value=16 location=5-Remote-PBX                                                                       
30.10.10 21:22:21.515 EP(6): ACTION hangup                                                                                                                   
30.10.10 21:22:21.530 CH(6): BCHANNEL deactivate  port 0  channel 1                                                                                          
30.10.10 21:22:21.530 CH: BCHANNEL remove socket  port 0  channel 1  socket 11

Woran könnte das liegen?
 
Zuletzt bearbeitet:
Hm, scheint so zu sein als ob Astersik und LCR sich nocht nicht miteinander unterhalten.

Wenn beide laufen kannst du mit "lcradmin state" gucken, was LCR gerade so treibt und im log sollte auch stehen "Remote App registers app name=asterisk"

Code:
LCR 1.7                                                                                                                                2010-10-31 01:05:29
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
alcatel(port 0: hfc-pci.1) TE ptp l2hold use:0  L2 UP  L1 UP
Remote: asterisk
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
31.10.10 01:06:08.722 --: REMOTE APP registers  app name=asterisk
...

Ist das nicht der Fall, stimmen vielleicht die Rechte der Datei "/var/tmp/LCR.socket" nicht. Der Benutzer mit dem Asterisk läuft braucht da nämlich lese und schreibrechte.

Versuch mal ob ein
"chmod 0777 /var/tmp/LCR.socket"
das Problem temporär behebt.

Was du noch machen könnstest ist asterix von der console zu starten mit "asterisk -v", da müsste dann irgendwo steht das chan_lcr läd und auch ob er probleme damit hat.
 
Zuletzt bearbeitet:
:groesste:

Mit der Rechteanpassung läuft die Sache jetzt! Anrufe gehen rein, raus und intern.

Wie sollte man die Rechte den anpassen, damit sie schön und sinnvoll sind?
 
Moin,

Am "sichersten" wärs wenn die Datei nur dem Asterisk Server lese- und schreibrechte gewährt. Eigentlich soll das diese Zeile in der Datei /etc/init.d/lcr beim Booten regeln, indem sie den Besitzer der Datei auf den User asterisk ändert:
Code:
        # set permission to the socket so asterisk can work
        chown asterisk:asterisk /var/tmp/LCR.socket

Aber anscheinend wird dein Asterisk nicht als der User "asterisk" gestartet von /etc/init.d/asterisk bei dir.
Kannst du rausfinden mit einem "ps faux | grep asterisk". In der ersten Zeile steht der Benutzer als der der Prozess läuft. Dieser Benutzer muss auch lese und schreibrechte auf /var/tmp/LCR.socket haben.
 
Zuletzt bearbeitet:
Code:
server:~# ps faux | grep asterisk
root      1632  0.0  0.2   6668  2188 pts/1    S+   18:52   0:00  |       \_ rasterisk
root      1664  0.0  0.0   2352   648 pts/3    D+   19:20   0:00          \_ grep asterisk
asterisk  1410  0.1  1.8  56252 18920 ?        Ssl  16:59   0:12 /usr/sbin/asterisk -p -U asterisk
asterisk  1411  0.0  0.0   2888   752 ?        S    16:59   0:00  \_ astcanary /var/run/asterisk/alt.asterisk.canary.tweet.tweet.tweet 1410
 
Jo, läuft Debian üblich als Benutzer "asterisk"

Dann guck nochmal ob nach nem Boot auch "/var/tmp/LCR.socket" schreibrechte für den Benutzer Asterisk hat. Das war nämlich bei mir ein Problem.

Und wenn das alles gegeben ist und trotzdem nich läuft asterisk ausmachen
"> killall asterisk"
und mit
"> asterisk -vvv"
starten und gucken ob zwischen den vielen Meldungen was zu lcr steht
 
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.