chan_capi probleme mit DID

mutombo

Neuer User
Mitglied seit
20 Apr 2005
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
hallo zusammen,

ich habe ein problem mit der annahme von faxen auf DID nummern.
anhand der DID werden faxe an verschiedene benutzer verteilt, solange der sender die zielnummer komplett in sein faxgerät eingibt und dann erst die wahl durchführen läßt, klappt das auch.

Verbindung besteht zu einer Alcatel anlage via P2P mode.
Code:
/etc/isdn/capi.conf
c2              c2.bin  DSS1    -       -       -       -       P2P

wenn man allerdings bei bestehender verbindung die nummer eingibt wird die DID meist abgeschnitten.
also bei z.b. 06623-xxxx-12 bleibt nur 06623-xxxx bestehen.
(die nummer nach den xxxx ist die DID die asterisk erkennt)
logbeispiel mit DID:
Code:
  == Starting CAPI[contr1/12]/3 at default,12,1 failed so falling back to exten 's'
    -- Executing SetVar("CAPI[contr1/12]/3", "FAXFILE=/var/spool/asterisk/fax/asterisk-30591-1157451767.3.tif") in new stack
    -- Executing RxFAX("CAPI[contr1/12]/3", "/var/spool/asterisk/fax/asterisk-30591-1157451767.3.tif") in new stack
    -- CAPI Answering for MSN 12
selbiger call bei bestehender verbindung gewählt:
Code:
    -- Executing SetVar("CAPI[contr1/s]/2", "FAXFILE=/var/spool/asterisk/fax/asterisk-30591-1157451751.2.tif") in new stack
    -- Executing RxFAX("CAPI[contr1/s]/2", "/var/spool/asterisk/fax/asterisk-30591-1157451751.2.tif") in new stack
    -- CAPI Answering for MSN s

ich vermute mal ganz dreist das das etwas mit meiner capi.conf zu tun hat:

Code:
[general]
nationalprefix=0
internationalprefix=00
rxgain=0.8
txgain=0.8

[interfaces]

msn=
incomingmsn=*
controller=1
softdtmf=1
accountcode=
context=default
devices=2
wie man sieht steht asterisk auf normalem MSN mode.
wenn ich isdnmode=ptp einfüge bekomme ich keine verbindung mehr:
Code:
Sep  5 12:38:53 ERROR[30938]: chan_capi.c:1695 pipe_msg: did not find device for msn = 12
    -- CAPI Hangingup
    -- removed pipe for PLCI = 0x101

kann das an meiner extensions.conf liegen?
Code:
[default]
exten => s,1,SetVar(FAXFILE=/var/spool/asterisk/fax/${UNIQUEID}.tif)
exten => s,2,rxfax(${FAXFILE})
exten => h,1,System(faxrcvd.php "${FAXFILE}" "${DNID}" "${CALLERIDNUM}")

wäre nett wenn man mir einen tip geben könnte was ich da falsch mache.

anbei noch ein paar Systemdaten:

Server ist ein HP DL380G3 mit 2 CPUs und debian sarge.
ISDN hardware ist eine AVM C2.(firmware 3.11-04)

als kernel verwende ich 2.4.27-3-686-smp, mit dem 2.6.9er von sarge hatte ich seltsame lockups beim laden und entladen der capitreiber.

Verwendete Orginal Debian Pakete:
asterisk 1.0.7.dfsg.1-2sarge3
asterisk-app-fax 0.0.20050203-4
asterisk-chan-capi 0.3.5-11


P.S.: Sorry sollte eigentlich ins chan__capi forum, könnte das jemand freundlicherweise verschieben?
 
Noergel ,noergel, alter Krempel:)
Also bei der capi.conf fuer chan-capi 0.3.5 gibbet noch was mit isdnmode=ptp.
Den Eintrage sehe ich nicht.
Ferner noch der Eintrag mode=immediate, alles nicht drin bei dir?

Deine Firmware der c2 ist aus 2004 mittlerweile gibbet aber was aus 2005 mit Version 3-11-06 unter
ftp://ftp.in-berlin.de/pub/capi4linux/firmware/c2

Chan-capi ist auch erwachsen geworden! (Version 0.7)
Schau mal: ftp.chan-capi.org mit etlichen Verbesserungen.

Muss das so bleiben mit den "alten" Sachen oder besteht die Moeglichkeit das zu erneuern?
 
danke für die antwort.

isdnmode=ptp und mode=immediate hab ich mal ausprobiert.
seltsamerweise nimmt asterisk die calls dann nichtmehr an.

chan_capi.c:1695 pipe_msg: did not find device for msn = 12

dafür muß ich meine extension ändern von

s,2,rxfax(${FAXFILE})

nach

_XX,2,rxfax(${FAXFILE})


problem bleibt aber bestehen.

soweit ich das erfassen kann, tritt das problem nur auf wenn anwahl nicht komplett durchgeführt wird.(wie erklär ich das am besten?)

praktisches beispiel:
ich gebe die nummer komplett in mein telefon ein und drücke dann verbinden.
hier wird die nummer komplett übertragen.

ich verbinde zuerst und gebe dann die nummer ein, schon während ich eingebe wählt das telefon.
hier wird meist mindestens eine endziffer abgeschnitten.
bei 06623-xxxx-12 kommt anstatt der 12 nur die 1 durch.


leider bin ich nicht ganz so fit was den PTP mode angeht, aber so langsam vermute ich das problem eher bei der anlage.
Oder wird bei PTP das signal einfach nur durchgeleitet?


wegen neueren versionen für asterisk.
ich krieg da leichte probleme mit libcapi20. das aktuelle chan_capi warnt mich das diese alte version von sarge nicht alle funktionen supportet. für die libcapi müßte ich ja komplett die isdnutils neu installieren, da bringe ich mir mein system schon ziemlich durcheinander.
Und die diversen Backports die im netz umhergeistern installieren fast alle eine neuere libc, da habe ich irgendwie ein bischen panik das das probleme mit anderen anwendungen geben könnte.

mfg

mutombo
 
Zuletzt bearbeitet:
mutombo schrieb:
isdnmode=ptp und mode=immediate hab ich mal ausprobiert.
seltsamerweise nimmt asterisk die calls dann nichtmehr an.

chan_capi.c:1695 pipe_msg: did not find device for msn = 12
Wenn du diese neuen Konfigurationsparameter (z.b. isdnmode=) verwendest, musst du auch das neue chan-capi verwenden. 0.3.5 kann das noch nicht.

mutombo schrieb:
leider bin ich nicht ganz so fit was den PTP mode angeht, aber so langsam vermute ich das problem eher bei der anlage.
Oder wird bei PTP das signal einfach nur durchgeleitet?
Bist du sicher, dass es PtP, also durchwahlfaehig, ist?

mutombo schrieb:
wegen neueren versionen für asterisk.
ich krieg da leichte probleme mit libcapi20. das aktuelle chan_capi warnt mich das diese alte version von sarge nicht alle funktionen supportet. für die libcapi müßte ich ja komplett die isdnutils neu installieren, da bringe ich mir mein system schon ziemlich durcheinander.
Du musst nicht komplett die isdnutils neu installieren. Es reicht die libcapi neu zu installieren.

Armin
 
armincm schrieb:
Bist du sicher, dass es PtP, also durchwahlfaehig, ist?

Armin

hab heute (endlich) mal den techniker für die anlage am telefon gehabt.
der anlagenport ist im PtP modus. Problem ist folgendes:
Zielnummer: 06623-xxxx-12
Externe nummer: 06623-xx
DID zuordnung der anlage auf 2 Ziffern: 06623-xxxx

die Anlage gibt also ab hier den ruft direkt weiter. Man könnte natürlich den DID auf 4 stellen erweitern, dann müßten aber auf jedenfall 4 stellen gewählt werden, weniger würden nicht angenommen.
es soll aber sowohl möglich sein faxe an 06623-xxxx zu senden(unverteilt), oder halt direkt an eine zielnummer 06623-xxxx-12.

Ich müßte asterisk halt irgendwie beibringen das er den call nicht sofort annimmt, sondern vielleicht einfach noch ne sekunde wartet bis komplett gewählt wurde.

Leider hab ich keine Idee wie ich das umsetzen könnte :(


P.S.: hab mir testweise mal die asterisk pakete von backports.org installiert, da is chan_capi 6.5 dabei.
 
Zuletzt bearbeitet:
Warum soll Asterisk eine Zeit warten? Deine extensions.conf kann doch genau angeben, wieviel Ziffern (_XX) erwartet werden. Erst wenn ein match gefunden wird, wird der Anruf dem dialplan uebergeben.

Armin
 
armincm schrieb:
Warum soll Asterisk eine Zeit warten? Deine extensions.conf kann doch genau angeben, wieviel Ziffern (_XX) erwartet werden. Erst wenn ein match gefunden wird, wird der Anruf dem dialplan uebergeben.

Armin


das führt dann nur dazu das alle anrufe bei denen die nummern abgeschnitten werden nichtmehr angenommen werden.
ändert ja nichts daran, das Asterisk den anruf sofort annimmt, anstatt zu warten bis alle digits übermittelt wurden.

vielleicht nochmal ein logauszug zur verdeutlichung des problems:

Code:
  == Starting CAPI[contr1/12]/0 at default,12,1 failed so falling back to exten 's'
    -- Executing Wait("CAPI[contr1/12]/0", "1") in new stack
    -- Executing SetVar("CAPI[contr1/12]/0", "FAXFILE=/var/spool/asterisk/fax/asterisk-10836-1157636208.0.tif") in new stack
    -- Executing RxFAX("CAPI[contr1/12]/0", "/var/spool/asterisk/fax/asterisk-10836-1157636208.0.tif") in new stack
    -- CAPI Answering for MSN 12
       > sent FACILITY_REQ (PLCI=0x101)
    -- Executing System("CAPI[contr1/12]/0", "faxrcvd.php "/var/spool/asterisk/fax/asterisk-10836-1157636208.0.tif" "12" "**06619336469"") in new stack
    -- CAPI Hangingup
       > sent DISCONNECT_B3_REQ NCCI=0x10101
       > sent DISCONNECT_REQ PLCI=0x101
    -- removed pipe for PLCI = 0x101
    -- creating pipe for PLCI=0x101 msn = *
       > sent ALERT_REQ PLCI = 0x101
    -- started pbx on channel (callgroup=0)!
  == Starting CAPI[contr1/1]/1 at default,1,1 failed so falling back to exten 's'
    -- Executing Wait("CAPI[contr1/1]/1", "1") in new stack
    -- Executing SetVar("CAPI[contr1/1]/1", "FAXFILE=/var/spool/asterisk/fax/asterisk-10836-1157636221.1.tif") in new stack
    -- Executing RxFAX("CAPI[contr1/1]/1", "/var/spool/asterisk/fax/asterisk-10836-1157636221.1.tif") in new stack
    -- CAPI Answering for MSN 1
       > sent FACILITY_REQ (PLCI=0x101)
    -- Executing System("CAPI[contr1/1]/1", "faxrcvd.php "/var/spool/asterisk/fax/asterisk-10836-1157636221.1.tif" "1" "**06619336469"") in new stack
    -- CAPI Hangingup
       > sent DISCONNECT_B3_REQ NCCI=0x10101
       > sent DISCONNECT_REQ PLCI=0x101
    -- removed pipe for PLCI = 0x101

hierbei handelt es sich um 2 anrufe vom selben gerät. es wurde jeweils die nummer 06623-xxxx-12 gewählt, mit dem einzigen unterschied das bei 2. versuch die leitung schon offen war. wenn nur eine winzige verzögerung beim eingeben der nummer aufkommt reicht das schon und asterisk nimmt den call sofort an ohne die komplette eingabe abzuwarten.
 
mutombo schrieb:
das führt dann nur dazu das alle anrufe bei denen die nummern abgeschnitten werden nichtmehr angenommen werden.
ändert ja nichts daran, das Asterisk den anruf sofort annimmt, anstatt zu warten bis alle digits übermittelt wurden.

Bloedsinn, wenn du
- korrekte Eintraege in der extensions.conf hast und
- neues chan-capi verwendest und
- isdnmode=did ist,
dann ist es kein Problem.

Armin
 
vielen dank, es funktioniert jetzt richtig,
lag an der chan_capi version, hatte das etwas blöd beschrieben, auf dem betroffenen system hatte ich mich nochnicht getraut die neuste chan_capi zu installieren.
hatte das auf einem anderen system getestet sorry ;)
hab jetzt auch dort die neuesten chan_capi und es funktioniert wunderbar.


leider bleibt so die variable ${DNID} die ich verwende leer, aber die variable ${EXTEN} bringt mir das gewünschte ergebnis.
 
Zuletzt bearbeitet:
Kostenlos!

Statistik des Forums

Themen
249,052
Beiträge
2,309,533
Mitglieder
378,850
Neuestes Mitglied
IchBinEsDoch