Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Apr 2005 10:27:07 -0700
From:      Luigi Rizzo <rizzo@icir.org>
To:        multimedia@freebsd.org
Cc:        net@freebsd.org
Subject:   asterisk and zaptel patches
Message-ID:  <20050420102707.B20180@xorpc.icir.org>

next in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
[sorry for the crosspost to -net, but it's relevant there too;
please followup to multimedia@ only]

following a discussion on developers@, i am posting here some
patches for asterisk and the zaptel drivers.
If someone feels like committing these, please go ahead.
I am attaching a description below.

	cheers
	luigi
------------------
These patches are useful to make asterisk and the zaptel drivers
work better with FreeBSD.

In particular:

/usr/ports/net/asterisk:
  + The "wilcalu" module has a bug in the use of poll().
    FreeBSD's poll() always checks for exceptions, even if they
    are not in the mask passed to the system call. The code in
    the module however does not handle this condition, resulting
    in an infinite loop around poll() using all available CPU cycles.
    The patch in ast20050420b.diff only implements a workaround --
    if no data is readable, sleep for 1 second and saving the cpu
    for others. I suggest to disable the module, anyways, until a
    better fix is available.
  + The rtp module at times complains about invalid RTP checksums,
    when all it happens is that there is no data on a socket to read.
    I believe this is a perfectly normal event, so the patch in
    ast20050420b.diff removes the (misleading) error message altogether.
  + The chan_oss.c code is working very badly with the FreeBSD, partly
    because of issues in the driver and partly because the module
    itself was not very clean.
    ast20050420a.diff contains the diff wrt/ the version in the port,
    or if you like it better chan_oss.c contains the whole file.
    I have put in some workaround to limit the amount of data
    buffered in the driver (to keep the audio queue short), centralize
    repeated blocks of code, put global variables into the "oss" structure,
    and in general tried to clean the half-duplex support which, however,
    i suspect is still broken and probably useless anyways.

    
/usr/ports/misc/zaptel
  + the zaptel device driver has bugs in the module loading glue which
    prevent it from probing the card appropriately in FreeBSD 4.x
    The patches patch-zz1 and patch-zz2 (suitable to be put in
    /usr/ports/misc/zaptel/files) fix the problem

-- freebsd audio driver --
  + some of the ioctls are not completely implemented causing unexpected
    results (e.g. setting block sizes etc). On top of this, individual
    device drivers also have issues in the handling of blocksizes,
    with results ranging from no or stuttering sound to large delays
    in the audio playback. While it would be great to fix the driver,
    the problem is that the issues affect so many versions of FreeBSD
    that a solution in user space is still preferable if possible.
    Nevertheless, a simple patch for sys/dev/sound/pci/ich.c is
    attached in ich.c.diff -- this driver (which supports the Intel 82801
    chipset) in most cases defaults to using only 2 8K buffers, which
    at the speeds of interest for telephony result in interrupts being
    250ms apart, way too slow. This patch uses the closest buffer size
    compatible with the request, guaranteeing up to 32 interrupts/s
    if small blocks are used. The driver still has a 500ms delay in
    the output channel at 8KHz, but fixing that requires a more complex
    change.


[-- Attachment #2 --]
̏fB;kwHIG;v>97!z{[=sg~IGuuUu=[voo|ï6}G}oضv{V}QAOv(^N'-nFx6v+7nXnQMP,[?	
ѷUv{_ڐ>;UZ
@K];'PXj4ww+0^b3"@X{;Eua
ZuϯD4E_5HOWWCW~SXZj<Nt:A26;eJX[zE|֖^0)_]_Z7zaq :K&cQ4
W<Ǚ-~zՓײy{TW/gz
Yݧy>>OViX4-s_iS wʉXD2tVC{1c[w.[_V؆	15_6E-fG0~s3#`͉|1'bs.NT`8Co_.?'dqMn<Ob8uߢdJaAz~70"s}>/Ev5
)8hA7~zrv^yo?too؋} DbӶdńR/qI2ۖ4,MDseY;wPX}2b<&=C?xa)F.(CwĠq
Z@d`L}#.	mO|J;WA{&	B_՛5kn^2r{-4F1mhi6,aW	&uٳݏ5Z#;'[[8󕱅;<G@( d5` -숀WUy!HDGhS54'sqB`i,)3A8/c4޿oC2Uhu+<$1[*éA&A
45p"lD~2BkFp*q/ʼn6dd <;8Vx
>q0WɘHvҊr~b
!=8b5xI]8<%)0Xrk/_jo[yfO!(2^]n,'#6MѨy̫<%y99?ou{f="+Gaª
UXD @/hBh΂`9&Հ4g3vǖحS0*drΜ;Pn,	I9ri(AsD.8#Oa4crTs\7/۠Tz'y>u޾iaδvH5@ۆb3J
?g!aa0'm'A;WKjw/۷8k'^ӌ$ZĞ8_qIE6h_<*[?7A7
op<e_SKPM(*
Bh@t@L}doôC9xJg1xkZhc
cVVs++1w^߁4S$˪0Ѭa_
ģ	J+z 7iZsdhu{u x'mX&@_p'VrIGƢ7sCt-enƋ[FWmUӪoF)oƁe>̃2}M:#u`K4C<wl
g[8K9]L'{|BZ'`!R8\p©=b7ǙG숎H_7¯9,<nz]A!~60	Yq6+슁S=I#Ÿ?h@c(ӕ
D}h
+rXv^CXZM:a(nd?[
0x(tҝҠCm2Q+qa<D(陗Vz`EC
ؽs#c.)EJ2p~\N$@mq>(J6H9Hȹ-CnrM~urߟ;xp?L!Iq-4b@3ڶʶu>2FaW#.ujK_- 
 |
sjF(Il1(Ll-JO&zzGV`)&mj@Ÿ9Ϛ{[>PڔTKYQi
}Eo	՟ڠ(rFe*:T
PZp%!(*O2ɂ>
*RD5Sn(ى4!Q
#&cNu4CZ|[Tɖ
<mC	
ޒ}RzEVT/l,-\_Pk_^[J$|@QZǶuZ	Xd]tv1
<GàjL[EP2&*d26Dm`%QQ@?j[q<G9SQ_Vb3>qy}}
9sb1TşeՉg}ǹR;VĸzL`<8l9(ك_D<D~CBtEeCQ6QfNLJq~ei:Uz
1 ]ݿO{è4|[*ѩEH#:WT̚#W@=@Sra3+1U2E}w?~_zO'Xz +\É?20n@hZ-,]2tQ56˰O#l)
2ăvg'Kn1'idNy=bVᨺȈ0ka=v/wUT]2ɜ?V9[(ww]z\b	(O֢:Oi35t<m2{3IhL<yD&3ڙAe0uwoéxΑ#):Ɇ
j‡Y3x5AHM>OBaXzFo|8:+NN͘Ya#uS\!ؑ=l7h\1
9u#&h0EGWjߠ;wd4`UڛQx;@
jNB Pu aBuXK)"CD?"k|PU$;<2&ܓd$2<=gRS[:D-NZ7W8%*UFN WX
z,KeE5jK
γ3g6?~Ȝ4Wχnl҃Ô;GM4rd,8^ܲ)
)F(G]cq.Rb\D^UM{9%eQg"N˧ Jj>\Z-h(C-:sǎ5xLl~8KJEI*ÊS;Qe2~bB̚4azV:`GW;[UPNɤ
\;M\o9u'S|O;X	
)e5M\pys3i,rkAqXC=aՍ{ 3E̔gKInFläo%ˉR&x)8ٴC]WV
Q<AzuRӘÊpߢ4߆ 1+,6h"k˔rL%GAOD:yˋbTZPRS_$CȦ2"y=zMkbdR)<35LtI 6 f5WAd$
]_:fr3)r3Wre%JkY5g˘keY!9a..yBYK)&>*XxEM
u6>@\)mѬn9.5fGCe*
y@j;%2%K>,x~̥+*2fH^jh1!Rǽ*Z-LckRIY*cDA%xZHErQҍЉ".e
kl	>[i
ս;fFck ٰQ݉Y{DuQ'ňՓ/^>ٌޓ+.\߄QuӂRUs\0u)CM=)בNn*x(QIfT',c-XS5s0VE+YeR~KHkUb[`6~bY!5
k0.`]UT\@DKKJZ-`$J=}-OÜ_vW/L">v"dRH:( R+l)#8*W`VMo
WzCP'eoVzmͅu$'\Ð0KJ!+G=̴/D&բrH6r뤄dCaQE3|['vrpdaEXZ}NPkAc9Цȟ룺dGā,qk榈YY͒_N|KJf<a3Ȏ~	A4(T#k,}#9i4EJsH|!UéC foo7-<猗ˀ\U 3.
dB^@fHW|1	s/bW5 Z*v/No6mivE~_d3	va>Sy%h0zsa}&C$7hUz䢤8	9_KJ_@$v~JdK+2W1,Wؚ^Sc6g^P&3%Uye.w(؜#CEDRݎΏ~#$_.cɞD|mLax
	ot;͍]d75i|9)t'>'Eƥoq(DXq=
E=fX>C!EW8\6=CH-7RLkNn*Yv1ٱ
MJN+$r^mz'AGi[$}\2gF"HI̭ͤ>Z^kZ|o'nG9b]`,X9ᵱj;<"<Y^6[kDd%2	&Qn^;g;|vZb!Bt<%z4$)'_zN>u5M>2
rCEy#~U4q߱w<I݌`ZC+YZn:o
چJ9uQ9#I:239TVCܚ+;_N]\7s~"-#b\Nx{Nzhi*Sjj5?ZgzI7$)`,UDžg&vʒ=>#q xi,jyZ+J>i-*NV::HJ:'[T/
G?C"ycԡ<}PA뢍*n_SeDI嗹eL9+{Oє#@X"O[ITql,?<)
A#uh-Q߳ݭ64HTHʂ^~9l]ư?S!ga
.r|0n?NO~K.&SР>~ûςK>5cM4O!qFT fĞ@48È-{oR%s
Y;.Č1@6a<FЫWa[˲x`ʸ
I?񤫤&寺aL/aӠVc%|%(WbFbS<pUK5`;(V9M.2!%d;$2n!]$[F`$$K籨}~6nU
`I㐇t5͌R򙲏-摕'yt)?q.7sL(hњSijµ
3wU9-f-:6XT
\V<[h78^U|4ITi'>bf2DѨ	U!&	.,9/(e͛?.aj/
,BzDlE^RSJ-ˮOܧܥͮA݉ayd6Dp9<$I\w\]C%hyIUxgC:::{Ϝ%K)oYU`WBiVm_}CgSi
PSԃGNZ&Q/Of$~$Yۍ"
֑B,ÙU	WnМF#Lq-c<X"c`n1~Zӑi YE7OУ(8~a&7P3Gg:+gׯu	6!9fbAS<RgB.=CeZ<#qNjy&wa]&v}*)<.cyrږASϰ!u
3V(:2=B$~nZm->Rv8ގp|mImǣDm+[j]j;Pi Om5$sU#E/
	0BҌ;˒tF0uE{at/GQ/x?ĘzDa؋:pp!tdo)(`Ԛ`7Æ'H2=1;g<m4ێԭ_M]u-;]?so,U42oL3Ai&o:
#yγRƒkEr{uUF^,ܺpiJI
ۣhTցm[H6dPm/	Qv`U+H\U6pvEz}/La]Ӓ7WR?DYw{٤#(디	3a,%
#Dۗ
U}W5_I|ӧ3OE'ɢtL5[)8&"R~0آhǜQoɵ9MTZܲ؃Ì
H\lȐ,b6S>Y ^t"Y"PʡC\hmlNI5 C
'd$<a1Ot@ƱfLKt]]t2JVû
%qϡ+uֽk¤阑(	B:Y'Tز1їRS_utXi	!{ RjobvSos(F7tE!$t*+SS\G~&Y*ۺ3q7xrc}dZAh	ƃĵQ@xMIA:+(
EsT9$	[V_p&5p$Σ	Ķ(AbYkHN; ~JtvJwˡe{prl<z3!Nl`u`H|
qI슢`]CS~1#.jJ`֣,=xpSQ`eW^EC
]TFmB:z=]CZ/>*KЀ	@ك}Z<ᥘh7tGXS{_sg"g}c9l{z0+(hN,Ȋ;F燡:'e;
=z=8,PU7v̈eNllLݤ+Lz2Ƌc`j^~ xz潊m%:YWU"kyش4q_kA|PA]RuC飜2F8kvvQHaxlHQ_wnkJPiG'L(
tJ;Dk\!Hs`:#|h3&uv. V%oO*5Id1
x}ʬAq/:0D>g=qQNP>c䞉C6F~ka#%L{~|[K~8V J7X!t~WFbSv}<nTK/>zak8Fpq
7lPWHFU>_FCrF2`k?#lLzQ>EXtRZZ^])JUxS~1Xg=u.U)e:[-iՔ9R1+v"Jv2+6O>^CsGo=KHîޯT!kms{q7\+GEhoEF4J4wD'2NjF7e,GgONZ,8uDnUwCQGtE=N=}}	PRwY?4}UQ?SO	.rAbRt:*Cn\ԻfS2K7TfoIHO\Qs7aRnM};3r;r;r/3r=3r3r'wRg:75̼nMܜ͖f6]Ly&wjgl.T!\S!pMm5!<_PIY)~CGmx!1^!VL)JE9iMdba4	}}H9hgx\kĿ,|.32Js:~cKOMKv"R1]1ylX4;Z^~_P)"em7o?}r=)
qsEr'Ia
В=TlFN
]MƽVٴ؄/k#11;	NӏTU˕Zlx_Ǔ8͋"7^B.tDdP*sc?\էK=j4ZLo.4,_۶M<7|S>8M6pMr#p'<ΒȀG'>#mmSOӾt[Ҿ
ANmJ~-Ms`%PycǩKs
2uϤ؀Gf'ᛃ\ӂ87hDl4p5֫~>D
-VL\~v,.1_Rh4hIهFC`%/w_*M7Q2vap3r@`Y%MQu؉CI~F[̞!5Fۘo&L=gh&~;B``f"w@Fϻ;}e:3]+!zꁥIMю*~8uD.SN<r)#):gw0D׏T9*PUe5-Ģ#'ѯXqkFfXZ9:Q+E8|`Eq+E35Y+w~X]\WЙђUzElS
tTgԓ"ROQ2U\.8WM|Zi(PaM|5>“ZUȁẌ́s ^o*R
9Ƭ^qP@]/]`׵C:,RyF:~XWrF}[IkAGQDP&11pH[ø7~+;dCP鹲|;OЀ.I)GnROf҄)$p4*o$X(Ik/_ZNM+1,T(n)	sv8Nna$o$8W]׍׃Fy$Œ0-dr¬!Ņx5+}
oM=AZ*]
Wb*q؀SK%*+Kg+T+
JgԁF7xVl^?/zTK$j?֎'Ґxʤg%DG'RQi$e<g%	^ݠ:)vR8O'a9D}g:>wVaã%D;^M[_FG>;mjlvۄ皭ݽ3C3@csѠ`z({p/:*Ń/qf>/KQj:Dedu^UU0X]D5ACZQPbΗƄI bX
	~8z?ޞUtrQ̢ ESn,zs
WX&(6FO}+oA˗'Rh~?Ľ9
uǩwŤ3,Fc/B@|	F11YAz9"8;D].pPjQp^.@.4Ϙkw7;2?Qw0wZGkk-RFSI]>g=<rXsw|~W2y7QΝ4*`z5Hu|KmE1<˔HĽJ* :\>ZmZ{Kp	!ԫ۲j]`Y7,!uE>g65>62gqH?.@?>Urlʯg(yݭy"mzN	HlOr
EЍ'p#8BOZ
GvOk
W7o:yXR]W]̳4X&y-):	e"҈uuJ,8fdV.=xv~dthT5SXbyS^A4+M/%7Y<КGČLsZA2z7rװ_ЫqU7{ZZGI13;fAM!(R ^i_Di۵lc+t\f}=|*U;%m
ځTdU(6`+awA)dGm>R; GexB`@T*+>Q.vj??&[ɛ3Rc J&vFƥ߈.-		7˿"ƉCV㯵T3Sz_2-OWwxh:`RjMlN	
eݕ9;zՖ̐+%igT({3NŒmʥ;0fo'\8ʅVѨ-k2u
?kLLrK;ef(-[ߦSfCl8=l6
 }A7IG!It:RP%
?`L4<'ta.9,
$
3"RY"gQH6egpdD4-cp[%MYGmFhЃ:'Y'K +\ʣ@9&*lJ ؽ)!B0’HFkSNP&N./y@WJ4l{cS߰]HY\8tH5/
X
μqNJ9HiAOmӠPϪᦐ(7	5uiUxd=/ ¸KԻeQj$3lI&w/]фהR
]%U:АRښEbnuF1~يsJ76Twt<Σ>`Ȼ?@4N]2ؗkW9U#|H>99Hbd,N镰a_L[+.
q*ӫU#2bA7rTgާg=
!ڸRr[b--᧻#X.~go"T4IXW.wrn|4Ei7R{=Mnnh`,ixa{DST^>;qʃB˹Pj+FfuڏXh)j\=I3)mgm-+σul*,my)[7d#i[^k^*vmvr<Z[`R@k=KC.X[W]V[uj	RmqUajB͍R[aԖ
CԖD-=Vi9E=bWk䠅 E ށuͿ4V%ݤb{T;5|Ap]o--@CUӃJP>PRZHH5^?ƕ@P3sh@1Ԓj!GK)riRQђItFKg՗4h)?u.(')1J%|QO.!.xUL[.E--?kƅLO5^HFAĚ}xnT}̩z
xICx*>ΒStKNALvޕ3|ΒJ,\rh`9[q8N.C9񑺤%$wm4ϭ=40`SCL:l'oE5YH(k`^uhNfP!I A;F|}(s`hLFkvd+٩lO`zVd!Ձ3)Lt8os:(Oh(S3"Ak0Tv`.$WRCup;dᚅp Vb:ܻznT.
jЪ]Sq`U9pRjemf(R(5'm5<a|5PxT:GFM"¢(2.48ꒀF<]74TaHid|`S[
4y	WF4]д+,Ym607*
k H-@".4>#r8;g<l*s)UQQ"uY`$fG5wxWEE-i1!QBD]uU<TCPA+?9Vq|t.#c5Bϊ0 e3ˎbQcUsN93}u
5э"<KtZZQҝ_	qBˢ=.nXn@uUHNh<9EKk`!.j"7*߲86nw
|xmdB؊௕Xk%{EZ+-L)-=ҝm>րH!-E?rdGU&F=(VTVTrE.H΀6\XY{ՁNpbx(dM`$L
GN3n$F(k^+^JF+"љ|4"`FXF22zՀ
-cdY F1 7 _dyM$,/Q9sc4b,
 ؠ1k
2Qth͑Eq$_&[MۈN͸G_8sH=v8@[>37Y9#,XpJn=5r3d|rX&jko"*n,sP(!	HCZ 1lZ$Op{MC}縀8;0
jV21wMSz>lݺ{WUf}%|f@h]c	jsҹ^S1oۛ31IXWyFh`IP^zc9
--CX
,
ҝsN"_'rG)< Ysа\,r\,QT'@W^rW9D/A8uY%8hSXSYl4{d(.|O 4(((gO.\B" xb:[8X\N#	/Ho?h(MLPTñ:*A|4Xq*&>5XđPAE osh2
G=?`Q.\R!
-nVًeHr&u	>Zo5xy	iASSVFh<@9p-Y8ǁE6Uli(7|73,fO2Wv"L\琎bcEҬUDieѝ0NiiH&Oh,Y5Oӡ$Xs0K0iK
|{<pyMRi&h-l:Jln'+F*ˀ7RȭΜC@0RJ@U]+i$ϐ,htc~9Y]ƆZDkQyEo¥6)ShXL[B*HP"Fϳ(h׹_3)QnzB`3M!Z0l4'^5@?̑v-k;LNXT;P3AWzKuspwp-fh4xTd X"S AG76,P-d㧻A1"ׂ%K,jsJ媷Lֱe:xdbaO醽ݎ
FV#-/*ׄ
mU%o69
<"(HxKRٲwŧ_L߰GHeLcG_/we|֋:"p8&JXS&	
E
l\Lߞ#eY<xԞ[M_Pd䪉Liy@B,S0:O<C	Eh@[40*Lq1bcS&s˚p2vH>Y<D߈&sg.`}}utߦߨnIɢl2ԓ]~eAgYeWl3gT،X2Zʿ^9P‘j_
P&Jg2%2	Ӕͳ$HIԻeWM{9Wֿ_{@&;"28X
h["өZ25Yv5!|F(L|CQgJR	%R%VAW=$n"^5tLja𪢈p.n5JbƧY
InQZQUgTh6zϳ1uom|mvs*'3c#F̈́L->,L;8Nc}#Z:M4r4[2߀ō=[3"$cYXC\Mj=[4w,u8
BtZ,"<5ByVN'}ؗ v(
`3&U1My/s(dpO)n9wEfĖ7%:Hʓ&YEy`_x!CQl%K>s[E`+a/kC@.ĂxkYwq}6]aaU8p+
[r@@>#7>~WC0~~}.(
5>|fyGO/IAq.B~	ǢzgxTt$ՏUUTTu$(R-ƞI<ͣ.0ϽLnqn8:8,-vI~	oaO6Lָ3^꘏h5wuh!^	Ao-ww-]΂$hW;ZpO=jy"<vk٬}yIآJM=A9(Nj'duU<AϹq7j5S|+3^뮾Dg&cd0Ie%kp{
|兀y"SVCScub=X4\Wӱ<_`u_@m]vJj7s;b
^*뇷<~X쌧kl0XoWAZj00,gW*suik_֩oDK<0 dopF-t6W~8}5}nH۴?6o}:v<L!iQaUes?}Gq>R?Sug;?sqa/q^?qA[\/v^<rm^jއ6wC`XvV2
cq͝ǯήpvY@wZxр;>ga$:I$eRȞsN
,OFP޽*fd(j+ؤ仾v
lM(e]~0J}\
:kmRÛnHJ2DCzDio{ZjvSVZ:32,c"NHkkJn2ed4Ket!ȫlgc:RcK8Y7Z
؛m5eOH%Shf8A&DT7^Wx#IINk86T%
ZҹRI`4IB0<X5I3z*AR?qU%2pw8_B)h41GYag7#LF0ErQG>'A^8CBUij
/*d0JYn>/BlmʺLhnqn(yvʨw;$Xahd!>53k;bXf0Z4iʨr=n/%I`a«>r/6I3VחhXC7ᄺ6)Dc2{_qB8+cUkAM_M[- qFͺvAd4tF3բgΠ_W11	R⨚"W\Rw	Ԥ:_}`<f)Idgn1%j6ʸQVم^kQ|ĵ{KRF~Iu"M~Ф
y'WIB¨j,m9dƸ+a]ŕT`bf-X%9U5
^{NB9͇MGlތx,	yIT͋M4R
D٫LI6*#
 EWQoalwgj-$bhJ
!HaTs&х0n2f5pu&ބHm>J7J
S\ՒslXȳMUg:}H v,)mq`&pOlX@hD($It"A͸gjXͨ0 Zloшl1
<32M7x"ƣ(fw2o4e4QŒqK@+&.$V;T ](
"jR:5xt+ˀZLf)@U"Ok1i@R#pJ7Qd{`$ZfL%Ns0fob,iҦvjV(j,p=`hFwvZ’@	1,Q&U)/Bjрxa@?\YV=sf{:Q/yĥ|O'^[F+kV]'!
.t.lm6LfA}.IcQsIJ anW;WfPǥUŠR~IJGQa
KzUH۵`4Y_?L!tdN`!卭y05v/oxdD=@	 DMxRjIx("F%p&t'
by'xDБ%8ystsPnU*D#AUa{i;
ϩR*DLs@-ƶ[l[>tNR)H$N⼷%xwQx<̆EpxҍlϹ1OÕؚ
h v-0nw־T~CCL,{g]xyK+1Kڛ$I
rLf);/f#h5vj=t+"/oJ2ж0
* >FD_<~6
σr1Y/
i=lY;ʹV/aN;#TR@幗v`3׶)0(
hRg#t+X8v)X帖$Va@dC49̪=}>Oy<}>Oy<}>Oy<}>~g\@

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050420102707.B20180>