====== Tester SS7 entre deux machines virtuelles avec Yate et TDMoE ====== Note: TDMoE utilise beaucoup de CPU, et transmet 1000 fois / seconde. Cette configuration fonctionne mais la qualité audio est très mauvaise, et le CPU est à 100% pour un appel (environ 50% sans appel). Choses pour faire baisser l'utilisation CPU: * dans une machine KVM (qemu) utiliser un ''-net socket'' avec une connexion TCP. * utiliser ''#define ENABLE_TASKLETS'' dans dahdi_dynamic.c (voir ci-dessous) ===== Build a DAHDI TDMoE span ===== ==== Compilation of dahdi-linux and dahdi-tools ==== Testé avec: http://downloads.asterisk.org/pub/telephony/dahdi-linux/releases/dahdi-linux-2.6.1.tar.gz http://downloads.asterisk.org/pub/telephony/dahdi-tools/releases/dahdi-tools-2.6.1.tar.gz mais des paquets Debian existent. Note: dans dahdi-linux, ''drivers/dahdi/dahdi_dynamic.c'' contient #undef ENABLE_TASKLETS Remplacer ''#undef'' par ''#define'' donne une charge CPU bien moindre, mais le lien aura du mal à s'aligner et la qualité audio souffrira. # Virtual Machines 10 and 11 (in my setup) aptitude install linux-headers-amd64 linux-image-amd64 grub # put grub on /dev/sda ==== Configuration details ==== See below for proper example. # /etc/dahdi/system.conf # Notice how we specify the _actual_ number of channels # (24 for T1, 31 for E1) # The MAC Address is the address of the remote (far) end. dynamic=ethmf,eth0/52:54:00:00:00:11/0,31,0 # etc., see below. ( based on http://www.thrallingpenguin.com/articles/tdmoe-mf.htm ) ==== Starting the TDMoE link ==== modprobe dahdi dahdi_cfg ===== Yate ===== ==== Compile ==== Ma copie locale du code SVN http://stephane.shimaore.net/debian/src/yate-clean.tar.gz sinon svn checkout http://voip.null.ro/svn/yate/trunk yate Compiler: aptitude install sox libspandsp-dev ./autogen.sh ./configure make Start with sudo ./run -v sudo est nécessaire pour l'accès aux ports DAHDI FIXME: comment modifier udev pour que ce ne soit pas nécessaire (creer un group "tdm" ou qqch comme ça) ==== Configure ==== Voir par exemple http://yate.null.ro/pmwiki/index.php?n=Main.Zapcard Pour créer à partir des templates existantes: ( cd conf.d && mv zapcard.conf.sample zapcard.conf ) ===== Working Configurations ===== ==== Host 10 ==== Local MAC: 52:54:00:00:00:10 /etc/dahdi/system.conf dynamic=ethmf,eth0/52:54:00:00:00:11/0,31,0 # dynamic=ethmf,eth0/52:54:00:00:00:11/1,31,0 # dynamic=ethmf,eth0/52:54:00:00:00:11/2,31,0 # dynamic=ethmf,eth0/52:54:00:00:00:11/3,31,0 bchan=1-30 dchan=31 conf.d/zapcard.conf [general] format=alaw [span1] type=E1 offset=0 sigchan=31 voicechans=1-30 conf.d/ysigchan.conf [general] dtmfinband=true [isup1] type=ss7-isup pointcodetype=ITU pointcode=1011 defaultpointcode=1011 remotepointcode=1012 router=ss7router voice=span1 range=span1:1-30 strategy-restrict=even-fallback format=alaw print-messages=yes ; troubleshooting [linkset1] type=ss7-mtp3 netind2pctype=ITU adjacent=ITU,1012 local=ITU,1011 router=ss7router link=span1,1 [span1] type=ss7-mtp2 [ss7router] type=ss7-router local=ITU,1011 conf.d/regexroute.conf [priorities] [$once] [$init] [extra] [contexts] [default] ^99991001$=tone/dial ^99991002$=tone/busy ^99991003$=tone/ring ^99991004$=tone/specdial ^99991005$=tone/congestion ^99991006$=tone/outoforder ^99991007$=tone/milliwatt ^99991008$=tone/info ^123$=tone/info We'll be using 123 for tests. ==== Host 11 ==== Local MAC: 52:54:00:00:00:11 /etc/dahdi/system.conf dynamic=ethmf,eth0/52:54:00:00:00:10/0,31,0 # dynamic=ethmf,eth0/52:54:00:00:00:10/1,31,0 # dynamic=ethmf,eth0/52:54:00:00:00:10/2,31,0 # dynamic=ethmf,eth0/52:54:00:00:00:10/3,31,0 bchan=1-30 dchan=31 conf.d/zapcard.conf [general] format=alaw [span1] type=E1 offset=0 sigchan=31 voicechans=1-30 conf.d/ysigchan.conf [general] dtmfinband=true [isup1] type=ss7-isup pointcodetype=ITU pointcode=1012 defaultpointcode=1012 remotepointcode=1011 router=ss7router voice=span1 range=span1:1-30 strategy-restrict=odd-fallback format=alaw print-messages=yes ; troubleshooting [linkset1] type=ss7-mtp3 netind2pctype=ITU adjacent=ITU,1011 local=ITU,1012 router=ss7router link=span1,1 [span1] type=ss7-mtp2 [ss7router] type=ss7-router local=ITU,1012 conf.d/ysipchan.conf [general] [registrar] [sip-t] [codecs] default=disable alaw=enable [methods] [hacks] [listener sip1] type=udp conf.d/regexroute.conf [priorities] [$once] [$init] [extra] [contexts] [default] ^99991001$=tone/dial ^99991002$=tone/busy ^99991003$=tone/ring ^99991004$=tone/specdial ^99991005$=tone/congestion ^99991006$=tone/outoforder ^99991007$=tone/milliwatt ^99991008$=tone/info ^123$=sig/123;trunk=isup1 ==== Other changes ==== Autres changements possibles mais pas obligatoires. (A documenter pour avoir une configuration qui soit plus efficace.) conf.d/yate.conf [general] modload=disable [modules] ; production modules rmanager.yate=yes regexroute.yate=yes wpcard.yate=yes yrtpchan.yate=yes ysigchan.yate=yes ysipchan.yate=yes wavefile.yate=yes tonedetect.yate=yes ; test modules zapcard.yate=yes tonegen.yate=yes [localsym] [nounload] [preload] [postload] [debug] [telephony]