PDA

Voir la version complète : lenteur avec une carte ISDN fritz pci


Annibal
05/04/2006, 08h52
hello,

Je vous explique mon problème :
J'ai installé dans une de mes machines asterisk une carte ISDN fritz pci (2BRI)
Tout marche au poil pour un appel sortant. Mais quand quelqu'un appel depuis l'exterieur il dois attendre 4-5 secondes avant que son interlocuteur ( un softphone en sip) puisse entendre la sonnerie. Pire celui qui appel n'a pas la tonalité pdt 2 secondes...
J'utilise les drivers du site officiel, les drivers capi4K ainsi que le chan_capi pour l'interface avec asterisk.
Je ne pense pas que se soit un problème de configuration car les appels sortant marche très bien ( et son très rapide!). Mais plutot un problème de configuration.
Y-a-t il des options ou quelque chose a changer dans mes conf de asterisk pour booster la vitesse de l'appel entrant ( sachant que c pdt le traitement sur le serveur asterisk que je pert toutes ces précisieuses secondes )
J'ai un très bon pc ( P4 3Ghz) donc ca ne peu pas etre dû a ca n'y a la ram ( +1G).
J'utilise AAH 2.7 mais je ne pense pas non plus que cela pose problème.
voici aussi un c/c de mes log CLI ->

-- CONNECT_IND (PLCI=0x101,DID=1509,CID=1001,CIP=0x10,CONTROLLER= 0x1)
== Started pbx on channel CAPI/ISDN1/1509-1b
-- Executing Goto("CAPI/ISDN1/1509-1b", "s|1") in new stack
-- Goto (from-pstn,s,1)
-- Executing GotoIf("CAPI/ISDN1/1509-1b", "1?from-pstn-reghours|s|1:") in new stack
-- Goto (from-pstn-reghours,s,1)
-- Executing GotoIf("CAPI/ISDN1/1509-1b", "0?from-pstn-reghours-nofax|s|1:2") in new stack
-- Goto (from-pstn-reghours,s,2)
-- Executing Answer("CAPI/ISDN1/1509-1b", "") in new stack
-- Executing Wait("CAPI/ISDN1/1509-1b", "1") in new stack
-- Executing SetVar("CAPI/ISDN1/1509-1b", "intype=GRP-1") in new stack
-- Executing Cut("CAPI/ISDN1/1509-1b", "intype=intype|-|1") in new stack
-- Executing GotoIf("CAPI/ISDN1/1509-1b", "0?7:9") in new stack
-- Goto (from-pstn-reghours,s,9)
-- Executing GotoIf("CAPI/ISDN1/1509-1b", "1?10:12") in new stack
-- Goto (from-pstn-reghours,s,10)
-- Executing Wait("CAPI/ISDN1/1509-1b", "3") in new stack
-- Executing Goto("CAPI/ISDN1/1509-1b", "ext-group|1|1") in new stack
-- Goto (ext-group,1,1)
-- Executing Macro("CAPI/ISDN1/1509-1b", "rg-group|ringall|30||400-401") in new stack
-- Executing Macro("CAPI/ISDN1/1509-1b", "user-callerid") in new stack
-- Executing DBget("CAPI/ISDN1/1509-1b", "AMPUSER=DEVICE/1001/user") in new stack
-- DBget: varname=AMPUSER, family=DEVICE, key=1001/user
-- DBget: Value not found in database.
-- Executing DBget("CAPI/ISDN1/1509-1b", "AMPUSERCIDNAME=AMPUSER//cidname") in new stack
-- DBget: varname=AMPUSERCIDNAME, family=AMPUSER, key=/cidname
-- DBget: Value not found in database.
-- Executing GotoIf("CAPI/ISDN1/1509-1b", "1?5") in new stack
-- Goto (macro-user-callerid,s,5)
-- Executing NoOp("CAPI/ISDN1/1509-1b", "Using CallerID 1001") in new stack
-- Executing GotoIf("CAPI/ISDN1/1509-1b", "0?4:3") in new stack
-- Goto (macro-rg-group,s,3)
-- Executing SetCIDName("CAPI/ISDN1/1509-1b", "") in new stack
-- Executing SetVar("CAPI/ISDN1/1509-1b", "RGPREFIX=") in new stack
-- Executing SetCIDName("CAPI/ISDN1/1509-1b", "") in new stack
-- Executing SetVar("CAPI/ISDN1/1509-1b", "RecordMethod=Group") in new stack
-- Executing Macro("CAPI/ISDN1/1509-1b", "record-enable|1|Group") in new stack
-- Executing GotoIf("CAPI/ISDN1/1509-1b", "0 > 0?2:4") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing AGI("CAPI/ISDN1/1509-1b", "recordingcheck|20060405-045433|1144227269.49") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
-- AGI Script recordingcheck completed, returning 0
-- Executing NoOp("CAPI/ISDN1/1509-1b", "No recording needed") in new stack
-- Executing SetVar("CAPI/ISDN1/1509-1b", "RingGroupMethod=ringall") in new stack
-- Executing Macro("CAPI/ISDN1/1509-1b", "dial|30|tr|400-401") in new stack
-- Executing GotoIf("CAPI/ISDN1/1509-1b", "1?4:2") in new stack
-- Goto (macro-dial,s,4)
-- Executing AGI("CAPI/ISDN1/1509-1b", "dialparties.agi") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
-- dialparties.agi: priority = 4
-- dialparties.agi: callingani2 = 0
-- dialparties.agi: accountcode =
-- dialparties.agi: channel = CAPI/ISDN1/1509-1b
-- dialparties.agi: callerid = 1001
-- dialparties.agi: context = macro-dial
-- dialparties.agi: callington = 0
-- dialparties.agi: dnid = 1509
-- dialparties.agi: request = dialparties.agi
-- dialparties.agi: calleridname = unknown
-- dialparties.agi: extension = s
-- dialparties.agi: language = fr
-- dialparties.agi: uniqueid = 1144227269.49
-- dialparties.agi: callingpres = 3
-- dialparties.agi: type = CAPI
-- dialparties.agi: rdnis = unknown
-- dialparties.agi: callingtns = 0
-- dialparties.agi: enhanced = 0.0
dialparties.agi: Caller ID name and number are '1001'
dialparties.agi: Methodology of ring is 'ringall'
-- dialparties.agi: Added extension 400 to extension map
-- dialparties.agi: Added extension 401 to extension map
-- dialparties.agi: Added extension 400 to extension map
-- dialparties.agi: Added extension 401 to extension map
-- dialparties.agi: Extension 401 cf is disabled
-- dialparties.agi: Extension 400 cf is disabled
-- dialparties.agi: Extension 401 do not disturb is disabled
-- dialparties.agi: Extension 400 do not disturb is disabled
-- dialparties.agi: Checking CW and CFB status for extension 401
== Manager 'admin' logged on from 127.0.0.1
-- dialparties.agi: Correct AMPMGRUSER and AMPMGRPASS
== Manager 'admin' logged off from 127.0.0.1
dialparties.agi: Extension 401 is available...skipping checks
-- dialparties.agi: DbSet CALLTRACE/401 to 1001
-- dialparties.agi: Checking CW and CFB status for extension 400
== Manager 'admin' logged on from 127.0.0.1
-- dialparties.agi: Correct AMPMGRUSER and AMPMGRPASS
== Manager 'admin' logged off from 127.0.0.1
dialparties.agi: Extension 400 is available...skipping checks
-- dialparties.agi: DbSet CALLTRACE/400 to 1001
-- AGI Script dialparties.agi completed, returning 0
-- Executing Dial("CAPI/ISDN1/1509-1b", "SIP/401&SIP/400|30|tr") in new stack
-- Called 401
-- Called 400
-- ISDN1: attempting ALERT in state 2
-- SIP/401-1cc9 is ringing
-- SIP/401-1cc9 is ringing
-- SIP/400-fae6 is ringing
-- SIP/400-fae6 is ringing
-- SIP/401-1cc9 is ringing
-- SIP/400-fae6 is ringing




Merci pour vos réponses et désolé pour les fautes d'ortographe

PS : si quelq'un veux des conseil pour installé une carte avec les interface capi je peu lui venir en aide

bonne journées

Annibal
05/04/2006, 10h08
pb résolu dans une extension j'avais 2 wait de 3 secondes...
cté con.

bonne journée
anni

yomyom
18/04/2006, 11h29
Si ton invitation tiens toujours, je pense en abusé, j'ai acquérie ce modèle de carte isdn (http://www.ges.fr/voip/product_info.php?products_id=228&osCsid=b151b05eb33c406e8831c91cef7b2e2e), mais j'ignore comment la faire fonctionner, apparemment cela ne semble pas "plug-and-play" comme certaine carte fxo. J'ai cru comprendre qu'il était nécessaire de recompiler le noyau.. Je suis sous Asterisk@Home.

Annibal
26/04/2006, 14h40
1. Configuration carte fritz ISDN PCI

1.1 Version et driver nécessaire :

Pour faire fonctionner la carte Fritz ISDN PCI qui tourne normalement sur Window sous Linux il faut un ensemble de plusieurs driver détaillés ci après :

- La version de asterisk est Asterisk@Home v2.7 datant de courant février 2006. Cette version est un stand-Alone développé sur une distibution clone de Redhat EL

- Pour que notre ordinateur reconnaisse la carte il a besoin de ses drivers. Actuellement on utilise les drivers : < fcpci-suse93-3.11-07.tar.gz >. Il sont disponibles sur le site officiel Allemand AVM qui nous ont fourni la carte à cette adresse : http://www.avm.de/en/

- Pour permettre l’utilisation de ces cartes dans les normes européennes de téléphonie on utilisera les drivers capi4k-utils. Actuellement on utilise les drivers : < capi4k-utils-2005-07-18.tar.gz >. Il sont disponibles à cette adresse : http://www.gentoo-portage.com/net-dialup/capi4k-utils

- Enfin Asterisk est développé par la société Digium qui propose ses propres cartes qui s’interfacent très facilement avec le fichier zaptel.conf. Ici cette carte ne marche pas avec ce type de fichier nous allons donc utiliser un nouveau module pour l’interfacer avec asterisk appelé chan_capi. Actuellement on utilise la version : < chan_capi-cm-0.6.4.tar.gz >.


1.2 Procédure d’installation

Une fois toutes les versions téléchargées sur votre PC linux CentOS Asterisk@Home v2.7 voici la procédure d’installation

#Mettre vos pilotes dans /usr/src
cd /usr/src/
tar zxvf fcpci-suse93-3.11-07.tar.gz
cd /usr/src/fritz/
make
make install

#idem pour capi
cd /usr/src/capi4k-utils/
make menuconfig
make
make install
cd /usr/src/capi4k-utils/scripts/
./makedev.sh







Dans le dossier capi4k-utils/ se trouve un fichier “capi.conf “ qu’il faut mettre dans le repertoire /etc/ puis il faut l’éditer pour dé commenter une ligne.


cd /usr/src/capi4k-utils/capiinit/
cp capi.conf /etc/
cd /etc/
vi capi.conf
# Dé commenter la ligne ou se trouve fcclassic

Il ne reste plus qu’à charger le module avec la commande :

modprobe fcpci
capiinit
capiinfo

Il est possible que des messages d’erreurs arrivent avec la commande capiinit n’en tenez pas compte.

Pour voir si la carte est bien installée lorsque vous faite capiinfo vous devez avoir quelque chose de très similaire à ceci :

Number of Controllers : 1
Controller 1:
Manufacturer: AVM GmbH
CAPI Version: 2.0
Manufacturer Version: 3.11-03 (49.19)
Serial Number: 2101092
BChannels: 2
Global Options: 0x00000039
internal controller supported
DTMF supported
Supplementary Services supported
channel allocation supported (leased lines)
B1 protocols support: 0x4000001f
64 kbit/s with HDLC framing
64 kbit/s bit-transparent operation
V.110 asynconous operation with start/stop byte framing
V.110 synconous operation with HDLC framing
T.30 modem for fax group 3
B2 protocols support: 0x00000b1b
ISO 7776 (X.75 SLP)
Transparent
LAPD with Q.921 for D channel X.25 (SAPI 16)
T.30 for fax group 3
ISO 7776 (X.75 SLP) with V.42bis compression
V.120 asyncronous mode
V.120 bit-transparent mode
B3 protocols support: 0x8000003f
Transparent
T.90NL, T.70NL, T.90
ISO 8208 (X.25 DTE-DTE)

X.25 DCE
T.30 for fax group 3
T.30 for fax group 3 with extensions
0100
0200
39000000
1f000040
1b0b0000
3f000080
00000000 00000000 00000000 00000000 00000000 00000000
01000001 00010000 00000000 00000000 00000000
Supplementary services support: 0x000003ff
Hold / Retrieve
Terminal Portability
ECT
3PTY
Call Forwarding
Call Deflection
MCID
CCBS

La carte est maintenant correctement configuré il ne reste plus qu’à installer le chan_capi afin que Asterisk puisse utiliser la carte.

cd /usr/src/
tar zxvf chan_capi-cm-0.6.4.tar.gz
cd chan_capi-cm-0.6.4
make
make install
make install_config

Il faut que Asterisk ait connaissance du nouveau module pour gérer la carte. Pour ce faire on va éditer le fichier module.conf.

vi /etc/asterisk/module.conf
#Ajouté ces deux ligne avant la balises [global]
load => res_features.so
load => chan_capi.so
#Ajouté cette ligne après la balise [global]
chan_capi.so=yes

Le fichier de configuration de la carte se trouve dans /etc/asterisk/capi.conf (attention à ne pas confondre avec le fichier capi.conf précédemment cité)

1.3 Exemple de fichier de configuration

Voici un exemple que nous utilisons actuellement :

; CAPI config
; general section

[general]
nationalprefix=0
internationalprefix=00
rxgain=0.8
txgain=0.8
language=fr ;set default language

[ISDN1] ;this example interface gets name 'ISDN1' and may be any
;name not starting with 'g' or 'contr'.
;ntmode=yes ;if isdn card operates in nt mode, set this to yes
isdnmode=msn ;'MSN' (point-to-multipoint) or 'DID' (direct inward dial)
;when using NT-mode, 'DID' should be set in any case
incomingmsn=* ;allow incoming calls to this list of MSNs/DIDs, * = any
;defaultcid=123 ;set a default caller id to that interface for dial-out,
;this caller id will be used when dial option 'd' is set.
;controller=0 ;ISDN4BSD default
;controller=7 ;ISDN4BSD USB default
controller=1 ;capi controller number to use
group=1 ;dialout group
;prefix=0 ;set a prefix to calling number on incoming calls
softdtmf=on ;enable/disable software dtmf detection, recommended for AVM cards
relaxdtmf=on ;in addition to softdtmf, you can use relaxed dtmf detection
accountcode= ;Asterisk accountcode to use in CDRs
context=from-pstn ;context for incoming calls
;holdtype=hold ;when Asterisk puts the call on hold, ISDN HOLD will be used. If
;set to 'local' (default value), no hold is done and Asterisk may
;play MOH.
;immediate=yes ;DID: immediate start of pbx with extension 's' if no digits were
; received on incoming call (no destination number yet)
;MSN: start pbx on CONNECT_IND and don't wait for SETUP/SENDING-COMPLETE.
; info like REDIRECTINGNUMBER may be lost, but this is necessary for
; drivers/pbx/telco which does not send SETUP or SENDING-COMPLETE.
;echosquelch=1 ;_VERY_PRIMITIVE_ echo suppression
;echocancel=yes ;EICON DIVA SERVER (CAPI) echo cancelation
;(possible values: 'no', 'yes', 'force', 'g164', 'g165')
echocancelold=yes;use facility selector 6 instead of correct 8 (necessary for older eicon drivers)
;echotail=64 ;echo cancel tail setting
;bridge=yes ;native bridging (CAPI line interconnect) if available
;callgroup=1 ;Asterisk call group
;language=de ;set language for this device (overwrites default language)
devices=2 ;number of concurrent calls on this controller
;(2 makes sense for single BRI, 30 for PRI)

1.4 Automatisation du chargement de la carte

Pour finir à chaque reboot du system il faudra recharger la carte. Pour automatiser tout ceci on va l’exécuter dans un fichier de démarrage au boot de la machine.

vi /etc/rc.d/rc.local
#A la suite du fichier rajouter ces commandes :
modprobe fcpci
sh /usr/src/capi4k-utils/scripts/makedev.sh
capiinit start
safe_asterisk



voila qui devrai te sortir du caca

yomyom
05/06/2006, 10h54
Merci de ta réponse, navré de la réponse tardive. J'étudie tout ça et te tiens au courant. Bonne journée.

yomyom
07/06/2006, 17h07
Bonsoir, j'ai suivi scrupuleusment ton explication, mais j'ai un petit soucis au niveau de Il ne reste plus qu’à charger le module avec la commande :

modprobe fcpci
capiinit
capiinfo
ca me met lorsque je tape modprobe fcpci "FATAL : Module fcpci not found"
Ca signifie que ma carte n'est pas détécté ? que je n'ai pas installé un drivers ?

Annibal
08/06/2006, 07h21
a tu bien fais le ./makedev.sh?

yomyom
08/06/2006, 10h51
Oui.
Je suis en train d'installer une debian, ta procédure fonctionne aussi dessus ?

kiki254
20/04/2007, 21h25
Salut,

J'ai deja un problème lors de la compilation des drivers :

#Mettre vos pilotes dans /usr/src
cd /usr/src/
tar zxvf fcpci-suse93-3.11-07.tar.gz
cd /usr/src/fritz/
make

make -C src
make[1]: entrant dans le répertoire « /usr/src/fritz/src »
make -C /lib/modules/2.6.17-2-686/build SUBDIRS=/usr/src/fritz/src modules
make: entrant dans un répertoire inconnu
make: *** /lib/modules/2.6.17-2-686/build: Aucun fichier ou répertoire de ce type. Arrêt.
make: quittant un répertoire inconnu
make[1]: *** [fcpci.ko] Erreur 2
make[1]: quittant le répertoire « /usr/src/fritz/src »
make: *** [src/fcpci.ko] Erreur 2

Merci pour votre aide.

Christophe