[GELÖST] CAPI Problem

copperfield

Neuer User
Mitglied seit
24 Mai 2004
Beiträge
96
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,
ich komme mit meiner CAPI Konfiguration leider nicht weiter und wuerde mich ueber ein wenig Hilfe sehr freuen.
Asterisk hängt an einer Elmeg ISDN Anlage mit der MSN 15 und ich nutze die Fritz Card PCI.
Beim Start von Asterisk wird die ISDN Karte auch erkannt:

[chan_capi.so] => (Common ISDN API for Asterisk)

== Parsing '/etc/asterisk/capi.conf': Found

-- This box has 1 capi controller(s).

-- CAPI/contr1 supports DTMF

-- CAPI/contr1 supports supplementary services

> sent FACILITY_REQ (CONTROLLER=0x1)

> FACILITY_CONF INFO = 0

> HOLD/RETRIEVE

> TERMINAL PORTABILITY

> ECT

> 3PTY

> CF

> CD

> MCID

> CCBS

> MWI

> CCNR

== ast_capi_pvt(,incoming_capi,0,2) (1,2,64)

== ast_capi_pvt(,incoming_capi,0,2) (1,2,64)

-- listening on contr1 CIPmask = 0x1fff03ff

== Registered channel type 'CAPI' (Common ISDN API Driver (0.4.0) aLaw 1.0.8)

== Registered application 'CallingPres'


Aber es funktionieren weder eingehende noch ausgehende Calls über die ISDN Anbindung. Die ISDN MSN 15 scheint gar nicht zu existieren...

Wenn ich z.B. versuche von SIP nach ISDN zu wählen dann erhalte ich folgende Fehlermeldung:

*CLI>
-- Executing Dial("SIP/ms1-f721", "CAPI/15:19|120|tT") in new stack

-- data = 15:19
Jul 23 19:56:17 ERROR[3113]: chan_capi.c:1236 capi_request: Syntax error in dialstring. read the docs!
Jul 23 19:56:17 NOTICE[3113]: chan_capi.c:1293 capi_request: didn't find capi device with controller = 0 or group = 0.
Jul 23 19:56:17 NOTICE[3113]: app_dial.c:777 dial_exec: Unable to create channel of type 'CAPI'

== Everyone is busy/congested at this time

-- Executing Hangup("SIP/ms1-f721", "") in new stack

== Spawn extension (default, 319, 2) exited non-zero on 'SIP/ms1-f721'

-- Saved useragent "CSCO/7" for peer xlite1



Mein Dial String in Extensions.conf sieht so aus:
exten => _3.,1,Dial(CAPI/15:${EXTEN:1},120,tT)

d.h. wenn ich 3 vorwähle moechte ich in die klass. Welt....

Gruss
Copperfield
 
hi
welchen chan_capi verwendest du denn?
gruß
thorsten
 
Hi Thorsten,
wie finde ich das heraus ?
Gruss
Peter
 
Ich bin weitergekommen - aber noch immer nicht am Ziel...

Es gab wohl ab chan_capi-cm-0.5 eine Änderung im Syntax...
d.h.

Der dialplan muss auch entsprechend abgeändert werden z.B.:

exten => _.,1,SetCIDNum(37) ; abgehende MSN
exten => _.,2,SetCallerPres(prohib) ; oder allowed (default) -> (CLIR)
exten => _.,3,Dial(Capi/contr1/${EXTEN},,)

Hat prima funktioniert - ich kann jetzt in die ISDN Welt anrufen !!!

Nur umgekehrt funktioniert es leider noch nicht.

Gruss
Copperfield
 
Eingehende Anrufe funktionieren leider noch nicht.

Meldung: did not find device for msn=15
Im Web habe ich folgendes dazu gefunden:
The error message: "capi_handle_msg: did not find device for msn =..." occurs also, when your extensions.conf is incomplete.
If an incoming call cannot be matched to a client device you will get this error message.

Meine Extensions.conf fuer eingehende Calls von der ISDN Anlage sieht so aus:

exten => 15,1,Answer()
exten => 15,2,DIAL(SIP/xlite1,20)
exten => 15,3,Hangup


Was mache ich nur falsch ?
Hat sich hier auch der Kontext geändert - (Vermutlich habe ich eine chan_capi >0.5

Gruss
Copperfield
 
hi
in der capi.conf wird der context angegeben in den ankommende gespräche geschickt werden.
hast du den angepasst auf deinen "incomming"-context (je nachdem wie der heißt)?
meine extensions sehen dann so aus
exten => 461234,1,Answer()
exten => 461234,2,DIAL(SIP/test)

wobei 461234 die MSN ist die reinkommt (ist dein asterisk direkt an der amtsleitung? wenn der asterisk hinter einer telefonanlage ist musst du die angerufene interne MSN nehmen)

gruß
thorsten
 
Hallo Thorsten,
erst einem vielen Dank fuer Deine Hilfe und Deine Geduld.
Habe noch einmal alles durchgesehen. Die CAPI.conf stimmt d.h. die kontexte sind richtig.
Und mein in_capi in der extens.conf sieht so aus wie bei Dir...

Die MSN ist 15 (Nebenstelle der TK Anlage) und ich bekomme folgende Meldung wenn ich von einem ISDN Telefon die Nebenstelle 15 rufe:

ERROR[11425]: chan_capi.c:2073 capi_handle_msg: received a call waiting
CONNECT_IND

Die Meldung kommt verzögert.

Ich habe keine Ahnung mehr wo es hängen könnte.

Interessant ist dass ich von SIP nach ISDN telefonieren kann - sogar rauswählen ins Netz ist kein Problem - d.h. die ISDN Karte sollte richtig installiert sein...

Gruss
Peter

für jeden tipp dankbar
 
ich muss nochmal nachfragen:
wo hast du was angeschlossen?
bei telefonanlagen bitte auch angeben was der "amtsanschluss" und was der nebenstellenanschluss ist...

gruß
thorsten
 
Hi Thorsten,
ich habe mittlerweile ein sehr ähnliches Problem gefunden
schau bitte mal hier:
http://www.ip-phone-forum.de/forum/viewtopic.php?t=18667

dort habe ich mein capi debug gepostet.

Asterisk hängt am internen S0 Bus meiner ELMEG C46e
Ich habe nur noch ein zusätzliches ISDN Phone angeschlossen (msn19) und dass klingelt auch brav wenn ich vom SIP Phone aus anrufe.

Nur eben der Anfruf vom ISDN nach SIP geht nicht - ich habe die configs in Asterisk mehrfach angesehen und komme echt nicht weiter...
Gruss
Peter
 
okay. dann poste doch mal deine sip.conf
ich vermute da liegt der hund begraben...

wenn du von isdn die 15 anrufst, passiert dann was auf deiner asterisk-console?

gruß
thorsten
 
Hi Thorsten,
auf der Konsole tut sich meist nichts wenn ich vom ISDN Phone die MSN15 anrufe.
Manchmal bekomme ich die Meldung:
ERROR[11425]: chan_capi.c:2073 capi_handle_msg: received a call waiting
CONNECT_IND

SIP Telefone können untereinander telefonieren und SIPGATE und DUSNET funktioniert auch.

Wenn ich capi debug aktiviere kommt die Meldung :

== CONNECT_IND (PLCI=0x101,DID=15,CID=001728388511,CIP=0x10,CONTROLLER=0x1)
Jul 24 15:49:57 ERROR[12722]: chan_capi.c:2171 capi_handle_msg: did not find device for msn = 15
> sent CONNECT_RESP for PLCI = 0x101
-- INFO_IND ID=002 #0x0a45 LEN=0019
Controller/PLCI/NCCI = 0x101
InfoNumber = 0x28
InfoElement =




Meine SIP Config sieht so aus:

; SIP Configuration for Asterisk

[general]
context=default ;default - Default context for incoming calls
;recordhistory=yes ; Record SIP history by default
; (see sip history / sip no history)
realm=network.net ; Realm for digest authentication
; defaults to "asterisk"
; Realms MUST be globally unique according to RFC 3261

port=5060
bindaddr=0.0.0.0
srvlookup=yes
disable=all

insecure=very
canreinvite=no

;dtmfmode=info



tos=184
tos=lowdelay
;maxexpirey=3600
;defaultexpirey=120
;notifymimetype=text/plain
;videosupport=yes

disallow=all
allow=ulaw
allow=alaw
allow=gsm
;allow=g726

[general]
;musicclass=default ; Sets the default music on hold class for all SIP calls
; This may also be set for individual users/peers
language=de ; Default language setting for all users/peers
; This may also be set for individual users/peers
;relaxdtmf=yes ; Relax dtmf handling
;rtptimeout=60 ; Terminate call if 60 seconds of no RTP activity
; when we're not on hold
;rtpholdtimeout=300 ; Terminate call if 300 seconds of no RTP activity
; when we're on hold (must be > rtptimeout)
;trustrpid = no ; If Remote-Party-ID should be trusted
;progressinband=no ; If we should generate in-band ringing always
;useragent=Asterisk PBX ; Allows you to change the user agent string
nat=no ; NAT settings
; yes = Always ignore info and assume NAT
; no = Use NAT mode only according to RFC3581
; never = Never attempt NAT mode or RFC3581 support

register => xxxxxx:[email protected]/xxxxxx

register => xxxxxxx:[email protected]/xxxxxxxx


externip=xxxx.homeip.net

localnet=192.168.1.0/255.255.255.0


[sipgate]
type=friend
context=incoming_sipgate ; we only want to call out, not be called

insecure=very
qualify=yes
nat=no
username=xxxxxxxx
fromuser=xxxxxxxxxx
authuser=xxxxxxxxxxxx
fromdomain=sipgate.de
secret=xxxxxxxxx
host=sipgate.de
qualify=yes
;dtmfmode=info
canreinvite=no

[dusnet]
type=friend
context=incoming_dusnet ; we only want to call out, not be called
insecure=very
qualify=yes
nat=no
username=000xxxxxxxx
fromuser=000xxxxxxxxxx
authuser=000xxxxxxxxxx
fromdomain=voip.dus.net
secret=xxxxxxxx
host=voip.dus.net
qualify=yes
;dtmfmode=info
canreinvite=no


[xlite1]
;Turn off silence suppression in X-Lite ("Transmit Silence"=YES)!
;Note that Xlite sends NAT keep-alive packets, so qualify=yes is not needed
type=friend
regexten=21 ; When they register, create extension 21
username=phone
secret=phone
callerid="" <21>
host=dynamic
nat=no ; X-Lite is behind a NAT router
canreinvite=yes ; Typically set to NO if behind NAT
disallow=all
allow=ulaw
allow=gsm ; GSM consumes far less bandwidth than ulaw
allow=alaw
mailbox=21@default
;dtmfmode=info



[xlite2]
;Turn off silence suppression in X-Lite ("Transmit Silence"=YES)!
;Note that Xlite sends NAT keep-alive packets, so qualify=yes is not needed
type=friend
regexten=22 ; When they register, create extension 22
username=phone2
secret=phone2
callerid="1. OG" <22>
host=dynamic
nat=no ; X-Lite is behind a NAT router
canreinvite=yes ; Typically set to NO if behind NAT
disallow=all
allow=ulaw
allow=gsm ; GSM consumes far less bandwidth than ulaw
allow=alaw
mailbox=22@default

[ms1]
type=friend
regexten=23
username=ms1
secret=yabadabadoo
callerid="3. Stock" <23>
host=dynamic
disallow=all
allow=ulaw
allow=alaw
allow=gsm
mailbox=23@default

 
Hi Peter,
bei meiner PBX habe ich eine Funktion "Telefon ist angeschlossen". Dort kann ich einzelne interne Anschlüsse (ISDN(MSN bzw. analoge Durchwahlen) (de-)aktivieren.

Vielleicht probierst DU es mal mit der 19, statt dem ISDN-Fon?

Greetz
Thomas
 
hi copperfiled,
was mir auffällt (ich weiss aber nicht ob es daran liegt):
bei mir würde dein xlite1-configteil so aussehen

[21]
;Turn off silence suppression in X-Lite ("Transmit Silence"=YES)!
;Note that Xlite sends NAT keep-alive packets, so qualify=yes is not needed
type=friend
username=phone
secret=phone
callerid="" <21>
host=dynamic
nat=no ; X-Lite is behind a NAT router
canreinvite=yes ; Typically set to NO if behind NAT
disallow=all
allow=ulaw
allow=gsm ; GSM consumes far less bandwidth than ulaw
allow=alaw
mailbox=21@default
;dtmfmode=info

regexten=21 ; When they register, create extension 21

den context "regexten=21" kannst du dir dann wohl sparen (ich habe den bisher noch nie gesehen/verwendet). zusätzlich habe ich noch die parametrer "host=dynamic" und "defaultip=192.168.0.34" drinnen.
Der dial-context ist dann
exten => 21,1,Answer()
exten => 21,2,DIAL(SIP/21,20)
exten => 21,3,Hangup


hilft dir das weiter?
viel erfolg.
thorsten
 
Hi Thorsten,
vielen Dank fuer den Input - aber dass verstehe ich nicht.

Die MSN fuer die Fritz Card ist MSN 15 (so auch in der Capi.conf definiert)
Weshalb soll ich jetzt die 21 im context eintragen ?
also Du meinst

[capi_in]
exten =>21,1,Answer()
usw.

muesste dass nicht
exten =>15,1,Answer()
usw.

sein. ???

Wie gesagt - die "SIP Welt" ist bei mir in Ordnung...
d.h. ich kann zwischen den SIP Phones und nach draußen ueber die Provider problemlos telefonieren....
Sogar ins ISDN und von dort in die grosse weite Welt funktioniert....
Nur eben von ISDN nach SIP nicht...
Was mir aber auffällt ist dass wenn ich von SIP nach ISDN anrufe wird die "falsche MSN" auf dem Display des Phones angezeigt - und zwar die 10 statt einer 15.
Interessanterweise ist die 10 die eingestellte default MSN des internen S0 Busses der ELMEG Anlage (warum gibt es ueberhaupt eine MSN fuer den internen Bus ??? - dachte immer dass die MSN´s nur fuer Endgeräte interessant sind....)
Die MSN 15 (meiner ISDN Fritz PCI Karte - in der Capi Conf so angegeben) wird brav beim context CAPI_out in der extensions.conf angegeben
exten => _3.,1,SetCIDNum (15)

Strange oder ?

Vielleicht hat das mit meinem Problem was zu tun ?

Gruss
Copperfield
 
Hi Thorsten,
u.U. macht es Sinn den chan_capi auf die neueste Version zu bringen ????
Ist dass eine sehr komplexe Operation ?
und gibt es dazu eine einigermassen gute Anleitung ?
Gruss
Peter
 
Problem gelöst !!!!!!!!!!

Es ist mir unendlich peinlich !!!!!!!!
Ich habe mich in der capi.conf vertippt
statt incoming msn hatte ich incomming msn drinnen
damit ist klar dass es nicht funktionieren kann.

Thorsten - DANKE DANKE fuer Deine Geduld und Ausdauer !!!

Gruss
Peter
 
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.