# ChangeLog for net-misc/asterisk
# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/ChangeLog,v 1.156 2007/04/19 19:46:16 gustavoz Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/ChangeLog,v 1.157 2007/04/26 19:03:23 gustavoz Exp $
+
+*asterisk-1.2.17 (26 Apr 2007)
+
+ 26 Apr 2007; Gustavo Zacarias <gustavoz@gentoo.org>
+ +files/1.2.0/asterisk-1.2.17-ASA-2007-011.patch,
+ +files/1.2.0/asterisk-1.2.17-ASA-2007-012.patch,
+ +files/1.2.0/asterisk-1.2.17-h323-dumb-makefile.diff,
+ +asterisk-1.2.17.ebuild:
+ Verbump, should close #175960, #175858, #172680 and #172257
19 Apr 2007; Gustavo Zacarias <gustavoz@gentoo.org>
files/1.2.0/asterisk.rc6:
MD5 21bd9e85ce8f705cec65e5aa583479f7 files/1.2.0/asterisk-1.2.14-chan_sip2.patch 1405
RMD160 39c94dbf22e4cad57ed6e8df42fd1f87a5f9943e files/1.2.0/asterisk-1.2.14-chan_sip2.patch 1405
SHA256 a23edceff270a7e68730da9f5f3564c41db335e673dd5415a490e421ccf09c5a files/1.2.0/asterisk-1.2.14-chan_sip2.patch 1405
+AUX 1.2.0/asterisk-1.2.17-ASA-2007-011.patch 11093 RMD160 2d4fb1d7e16f536351a4636d8db072c40c3aac9e SHA1 774411c4b9b47b07977071c068a2ac25a4440531 SHA256 c31fddb35e1d9dc333479b1cc7507f366c11047c8f9adaba587e6e201338970e
+MD5 361557b4d56f24f79b204edc80629fce files/1.2.0/asterisk-1.2.17-ASA-2007-011.patch 11093
+RMD160 2d4fb1d7e16f536351a4636d8db072c40c3aac9e files/1.2.0/asterisk-1.2.17-ASA-2007-011.patch 11093
+SHA256 c31fddb35e1d9dc333479b1cc7507f366c11047c8f9adaba587e6e201338970e files/1.2.0/asterisk-1.2.17-ASA-2007-011.patch 11093
+AUX 1.2.0/asterisk-1.2.17-ASA-2007-012.patch 1395 RMD160 a89dd6b1aff3f9b2a22b3fd6fd9537babd1e5117 SHA1 3f22f3a4df6f3ea19ea9ad25b570a55c7cb90fe1 SHA256 0be6521bd90e322e44e946cbc8b13953727c6d7b0de0a6490185ba1bf581feaa
+MD5 5f2441e9a2bd50df5f2feb65913f04bd files/1.2.0/asterisk-1.2.17-ASA-2007-012.patch 1395
+RMD160 a89dd6b1aff3f9b2a22b3fd6fd9537babd1e5117 files/1.2.0/asterisk-1.2.17-ASA-2007-012.patch 1395
+SHA256 0be6521bd90e322e44e946cbc8b13953727c6d7b0de0a6490185ba1bf581feaa files/1.2.0/asterisk-1.2.17-ASA-2007-012.patch 1395
+AUX 1.2.0/asterisk-1.2.17-h323-dumb-makefile.diff 402 RMD160 4cb7347c6721b8532dbc83ba8292d1a3cf585ee4 SHA1 d27d1adf41737f6cb16188ce5bd4d910cc624fa4 SHA256 bd628fc94996fd003a60ed3dcfb482c3411ee437a69b0b3efa2ab73c42bbbe22
+MD5 05c16aac70b8c5c9debc198fd2879598 files/1.2.0/asterisk-1.2.17-h323-dumb-makefile.diff 402
+RMD160 4cb7347c6721b8532dbc83ba8292d1a3cf585ee4 files/1.2.0/asterisk-1.2.17-h323-dumb-makefile.diff 402
+SHA256 bd628fc94996fd003a60ed3dcfb482c3411ee437a69b0b3efa2ab73c42bbbe22 files/1.2.0/asterisk-1.2.17-h323-dumb-makefile.diff 402
AUX 1.2.0/asterisk-updater 3127 RMD160 41ea584081c3e565205e59771e24a8715d7e2042 SHA1 1c11d9ce286972b6f98c15a16cbb7f1c943414eb SHA256 93e6862361a320c7f7f30525b4209366190dd2bc21eedbd3654ffb4b991af5fd
MD5 b3b1dced30f74b9475ca7d3a8155385d files/1.2.0/asterisk-updater 3127
RMD160 41ea584081c3e565205e59771e24a8715d7e2042 files/1.2.0/asterisk-updater 3127
DIST asterisk-1.2.13.tar.gz 10584113 RMD160 7cf9e00a0697b16891b463345c64a615c30015a3 SHA1 d2ec77e08f512a3fa11fd8639a7fe629a46ed242 SHA256 8d197b118d9ee25bc8793b37d1daa6b54fd6074e6738f462368361e5698d98f8
DIST asterisk-1.2.14-bristuff-0.3.0-PRE-1x.diff.bz2 95462 RMD160 4b592148b692d010dfd64df4a969838d15525489 SHA1 657772d3fce53570bf877c8b084f59f73e3af8b8 SHA256 30203a73f6f409bc96f0896d26d1cba47857e040003f6e066227519bb2ef91ef
DIST asterisk-1.2.14.tar.gz 10595184 RMD160 c07410e57086ebc34c78fd6794fa5395c3f5a174 SHA1 1e88a30bcd3d78c1cdee44b80e0162516102ea86 SHA256 115248cb7b1fc35dc2be24218f91a87272cf5c0d8c2050a36da2314fadc05cf4
+DIST asterisk-1.2.17-bristuff-0.3.0-PRE-1y-d-2.diff.bz2 97765 RMD160 77261589822482fefac9ea42ff24dd8d5f858243 SHA1 ba9355549a8fff5cbc889d4b73c70306e96885fd SHA256 f7afdd84b634c29f6988b39afb4dd52c0c55b2e3b3772551f8d7b2d63817b5d0
+DIST asterisk-1.2.17.tar.gz 10615354 RMD160 f03fe30312c7e693c4804c40941db942ab092976 SHA1 dc9a6c6923dec93e57744579c50a1abd208f7ae2 SHA256 ab20ada37e0f2874a0c59ac7d5395c5980419da6344cbb78b60874e9b8631cf1
DIST asterisk-addons-1.0.9.tar.gz 73716 RMD160 98156861f790987fb4bf86b14c902aeca90b380b SHA1 b1d21de7cf338bc36a1d59846e46295c3844ccf4 SHA256 4c878a4e5b5aabbdd93116ccbca5cf6465d55f480f4aa1e6438e9fc49c1f11fe
DIST bristuff-0.2.0-RC8r.tar.gz 194888 RMD160 d5dd31b9e4dcf30af6d2a62deb285a83f8a54019 SHA1 fc16a64e191d3f2720220f3ecbba3c55cece4654 SHA256 99f9da320d6335413384d12310e5ae9815572281c99d5908706022b6a4d6cb03
DIST bristuff-0.3.0-PRE-1s.tar.gz 265953 RMD160 8d3abdbbae4c376d52225395c72f4538e1f84a94 SHA1 1d942df9e4fd963755080e011caba88a33601c1b SHA256 30adea4f070ed44d1952163e850c177f976857b96965e18844ccd492ccef968d
DIST bristuff-0.3.0-PRE-1x.tar.gz 279200 RMD160 bc84aa50370627cfead9e0646cf87c16ddff7b00 SHA1 e02a82cebaefa0d666ad56532369310aae818d91 SHA256 13d98160d4a10b46b77c822577e6c64ad7dadbc2df1b4cd0a1007ae3bbbd4aa8
+DIST bristuff-0.3.0-PRE-1y-d.tar.gz 286165 RMD160 7424e3f6876ff1e9415c11d3c8ed70014c5a0f4f SHA1 cb984daf1616c847d02d4824e36e13d55a142ade SHA256 99688819bce753910b154ad0866d77f861e25842a1e810d0baf80a0a02cfef25
EBUILD asterisk-1.0.12-r2.ebuild 14897 RMD160 d2782f9dd2d780037e47794ac5a5533f1cedb68b SHA1 be37c6505e1e7a23f5cd24324d69f8f396a3607f SHA256 c4b9b8f27540dfc85875e255197390ca99d2bcb7729d5454ca293bf9c5dea74e
MD5 8a8adcf3cf78a1a985d1223fef7ce58d asterisk-1.0.12-r2.ebuild 14897
RMD160 d2782f9dd2d780037e47794ac5a5533f1cedb68b asterisk-1.0.12-r2.ebuild 14897
MD5 08d28ca37d6b92bacc2298fb5fd5c515 asterisk-1.2.14.ebuild 11838
RMD160 834090ebf563ed70ec98cb63ab463159019c8582 asterisk-1.2.14.ebuild 11838
SHA256 7e3813497985452771afd493925519fb0783c300f2fc3784cf8875d2ee424aee asterisk-1.2.14.ebuild 11838
-MISC ChangeLog 30346 RMD160 e8db95c1468c62e80407b3e4abcb51430e504fd3 SHA1 460555ff0e7fa6db5bbafe68a21d32760f42acbd SHA256 5b2f96e3871d57f6f7182231712f26debfbab1b2287c378c2d0cad4e48400aef
-MD5 3841223dec89e6795959dedef1dccf57 ChangeLog 30346
-RMD160 e8db95c1468c62e80407b3e4abcb51430e504fd3 ChangeLog 30346
-SHA256 5b2f96e3871d57f6f7182231712f26debfbab1b2287c378c2d0cad4e48400aef ChangeLog 30346
+EBUILD asterisk-1.2.17.ebuild 12376 RMD160 2368208850dcd760cb74589465b50752ae21e373 SHA1 162218100f6a7ce06840a5ad8d22a48fb78e974c SHA256 026ecd686b99fa20feca190f8e7d851a75c51be25761fc08c516f63a213daf82
+MD5 99573ce1999201560c4d7bffa7743fea asterisk-1.2.17.ebuild 12376
+RMD160 2368208850dcd760cb74589465b50752ae21e373 asterisk-1.2.17.ebuild 12376
+SHA256 026ecd686b99fa20feca190f8e7d851a75c51be25761fc08c516f63a213daf82 asterisk-1.2.17.ebuild 12376
+MISC ChangeLog 30680 RMD160 c62d61172525b7c8abc8ff8959bac51c07c37a30 SHA1 1026249b7679880128e541bc518dd8abaa3641c1 SHA256 6cb1e2a84d4e90b2192a9dc1b81d4bd4e21e9501086f5930a6531f6aa40522d2
+MD5 ceca929bc59feb6b476da0f58cc8dea1 ChangeLog 30680
+RMD160 c62d61172525b7c8abc8ff8959bac51c07c37a30 ChangeLog 30680
+SHA256 6cb1e2a84d4e90b2192a9dc1b81d4bd4e21e9501086f5930a6531f6aa40522d2 ChangeLog 30680
MISC metadata.xml 384 RMD160 f5de78add5676233b8e0b9e111eab08970443582 SHA1 0441844fb3a715d6979e6c548147ada23d73fec2 SHA256 674224368cb2be6f72655cd67ee19d4d2d0f3425d560aff22b698269e0adc6d8
MD5 488aea6fbdb7537394cc049b0ff9e5d5 metadata.xml 384
RMD160 f5de78add5676233b8e0b9e111eab08970443582 metadata.xml 384
MD5 3342bcac7eb8510d9016dee340017fe6 files/digest-asterisk-1.2.14-r2 1376
RMD160 57192415a5909407d11c68a9d1e8f17af6b44097 files/digest-asterisk-1.2.14-r2 1376
SHA256 bedfbd607a6b74146a30d8b1b74b3464efa13b38362c2f1ae4fe0aa341435b83 files/digest-asterisk-1.2.14-r2 1376
+MD5 a131be1db7d8c84100d8aab5fa550c11 files/digest-asterisk-1.2.17 1394
+RMD160 ccdf14e1d1fd1aa02899c1f9f27fdaf83f639749 files/digest-asterisk-1.2.17 1394
+SHA256 d4e1abefd288ddba9161680fcc09695e16c787a2772c15d55a3fbf5cb450bee8 files/digest-asterisk-1.2.17 1394
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6-ecc01.6 (GNU/Linux)
-iD8DBQFGJ8cWKRy60XGEcJIRAlYJAKCK+1vRazaNeG24kfo8QKy7BuuC2ACfeLWb
-R2xXdx08VB7BWKQBoVU6euU=
-=KZc8
+iD8DBQFGMPeXKRy60XGEcJIRAtNXAKCOsihi1DLhOG5M8TYDdFlQXOxuVgCfaQqe
+qvpDItbS4PLkWTqjn3NJ00E=
+=8lgd
-----END PGP SIGNATURE-----
--- /dev/null
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/asterisk/asterisk-1.2.17.ebuild,v 1.1 2007/04/26 19:03:23 gustavoz Exp $
+
+inherit eutils multilib toolchain-funcs
+
+IUSE="alsa bri curl debug doc gtk genericjb h323 hardened lowmem mmx \
+ nosamples odbc osp postgres pri speex sqlite ssl zaptel \
+ elibc_uclibc"
+
+BRI_VERSION="0.3.0-PRE-1y-d"
+AST_PATCHES="1.2.11-patches-1.0"
+JB_PATCHES="1.2.11-jb"
+
+## NOTE:
+#
+# - t.38 dropped
+#
+
+MY_P="${P/_p/.}"
+
+DESCRIPTION="Asterisk: A Modular Open Source PBX System"
+HOMEPAGE="http://www.asterisk.org/"
+SRC_URI="http://ftp.digium.com/pub/asterisk/releases/${MY_P}.tar.gz
+ http://www.netdomination.org/pub/asterisk/${PN}-${AST_PATCHES}.tar.bz2
+ bri? ( mirror://gentoo/${MY_P}-bristuff-${BRI_VERSION}-2.diff.bz2
+ http://www.junghanns.net/downloads/bristuff-${BRI_VERSION}.tar.gz )
+ genericjb? ( http://www.netdomination.org/pub/asterisk/${PN}-${JB_PATCHES}.patch.bz2 )"
+# bri? ( http://www.junghanns.net/downloads/bristuff-${BRI_VERSION}.tar.gz )
+
+
+S="${WORKDIR}/${MY_P}"
+S_BRI="${WORKDIR}/bristuff-${BRI_VERSION}"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~sparc ~x86"
+
+RDEPEND="dev-libs/newt
+ media-sound/sox
+ ssl? ( dev-libs/openssl )
+ gtk? ( =x11-libs/gtk+-1.2* )
+ pri? ( >=net-libs/libpri-1.2.3 )
+ h323? ( >=dev-libs/pwlib-1.8.3
+ >=net-libs/openh323-1.15.0 )
+ alsa? ( media-libs/alsa-lib )
+ curl? ( net-misc/curl )
+ odbc? ( dev-db/unixODBC )
+ speex? ( media-libs/speex )
+ sqlite? ( <dev-db/sqlite-3.0.0 )
+ zaptel? ( >=net-misc/zaptel-1.2.8 )
+ postgres? ( dev-db/postgresql )
+ osp? ( >=net-libs/osptoolkit-3.3.4 )
+ bri? ( >=net-libs/libpri-1.2.3-r1
+ >=net-misc/zaptel-1.2.8 )"
+
+DEPEND="${RDEPEND}
+ sys-devel/flex
+ sys-devel/bison
+ doc? ( app-doc/doxygen )"
+
+#asterisk uses special mpg123 functions and does not work with mpeg321, bug #42703
+PDEPEND="|| ( media-sound/mpg123 net-misc/asterisk-addons )"
+
+QA_TEXTRELS_x86="usr/lib/asterisk/modules/codec_gsm.so"
+QA_EXECSTACK_x86="usr/lib/asterisk/modules/codec_gsm.so"
+
+#
+# List of modules to ignore during scan (because they have been removed in 1.2.x)
+#
+SCAN_IGNORE_MODS="
+ app_qcall
+ chan_modem
+ chan_modem_i4l
+ chan_modem_bestdata
+ chan_modme_aopen"
+
+#
+# shortcuts
+#
+is_ast10update() {
+ return $(has_version "=net-misc/asterisk-1.0*")
+}
+
+is_astupdate() {
+ if ! is_ast10update; then
+ return $(has_version "<net-misc/asterisk-${PV}")
+ fi
+ return 0
+}
+
+#
+# Display a nice countdown...
+#
+countdown() {
+ local n
+
+ ebeep
+
+ n=${1:-10}
+ while [[ $n -gt 0 ]]; do
+ echo -en " Waiting $n second(s)...\r"
+ sleep 1
+ (( n-- ))
+ done
+}
+
+#
+# Scan for asterisk-1.0.x modules that will have to be updated
+#
+scan_modules() {
+ local modules_list=""
+ local n
+
+ for x in $(ls -1 "${ROOT}"usr/$(get_libdir)/asterisk/modules/*.so); do
+ echo -en "Scanning.... $(basename ${x}) \r"
+
+ # skip blacklisted modules
+ hasq $(basename ${x//.so}) ${SCAN_IGNORE_MODS} && continue
+
+ if $(readelf -s "${x}" | grep -q "\(ast_load\|ast_destroy\)$"); then
+ modules_list="${modules_list} $(basename ${x//.so})"
+ fi
+ done
+
+ if [[ -n "${modules_list}" ]]; then
+ echo " ========================================================"
+ ewarn "Please update or unmerge the following modules:"
+ echo
+
+ n=0
+ for x in ${modules_list}; do
+ ewarn " - ${x}"
+ (( n++ ))
+ done
+
+ echo
+ ewarn "Warning: $n outdated module(s) found!"
+ ewarn "Warning: asterisk may not work if you don't update them!"
+ echo " ========================================================"
+ echo
+ einfo "You can use the \"asterisk-updater\" script to update the modules"
+ echo
+ countdown
+ echo
+ return 1
+ else
+ einfo "No asterisk-1.0.x modules found!"
+ return 0
+ fi
+}
+
+pkg_setup() {
+ local checkfailed=0 waitaftermsg=0
+
+ if is_ast10update; then
+ ewarn " Asterisk UPGRADE Warning"
+ ewarn ""
+ ewarn "- Please read ${ROOT}usr/share/doc/${PF}/UPGRADE.txt.gz after the installation!"
+ ewarn ""
+ ewarn " Asterisk UPGRADE Warning"
+ echo
+ waitaftermsg=1
+ fi
+
+ if use genericjb; then
+ ewarn "********************** Experimental Feature **************************"
+ ewarn "Please note that generic jitterbuffer support is experimental and may not"
+ ewarn "be included in newer versions!"
+ echo
+ waitaftermsg=1
+ fi
+
+ if [[ $waitaftermsg -eq 1 ]]; then
+ einfo "Press Ctrl+C to abort"
+ echo
+ countdown
+ fi
+
+ #
+ # Regular checks
+ #
+ einfo "Running some pre-flight checks..."
+ echo
+
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ #
+ # gentoo patchset
+ #
+ for x in $(grep -v "^#\| \+" "${WORKDIR}"/patches/patches.list); do
+ epatch "${WORKDIR}"/patches/${x}
+ done
+
+ if use mmx; then
+ if ! use hardened; then
+ einfo "Enabling mmx optimization"
+ sed -i -e "s:^#\(K6OPT[\t ]\+= -DK6OPT\):\1:" \
+ Makefile
+ else
+ ewarn "Hardened use-flag is set, not enabling mmx optimization for codec_gsm!"
+ fi
+ fi
+
+ if ! use debug; then
+ einfo "Disabling debug support"
+ sed -i -e "s:^\(DEBUG=\):#\1:" \
+ Makefile
+ fi
+
+ if ! use ssl; then
+ einfo "Disabling crypto support"
+ sed -i -e 's:^#\(NOCRYPTO=yes\):\1:' \
+ -e '/^LIBS+=-lssl/d' Makefile || die
+ fi
+
+ epatch "${FILESDIR}"/1.2.0/${P}-h323-dumb-makefile.diff
+
+ #
+ # uclibc patch
+ #
+ if use elibc_uclibc; then
+ einfo "Patching asterisk for uclibc..."
+ epatch "${FILESDIR}"/1.0.0/${PN}-1.0.5-uclibc-dns.diff
+ epatch "${FILESDIR}"/1.2.0/${PN}-1.2.1-uclibc-getloadavg.diff
+ fi
+
+ #
+ # Security patch bug #175960
+ #
+ epatch "${FILESDIR}"/1.2.0/${P}-ASA-2007-011.patch
+ epatch "${FILESDIR}"/1.2.0/${P}-ASA-2007-012.patch
+
+ #
+ # BRI patches
+ #
+ if use bri; then
+ einfo "Patching asterisk w/ BRI stuff"
+ pwd
+
+ epatch "${WORKDIR}"/${MY_P}-bristuff-${BRI_VERSION}-2.diff
+ #epatch "${S_BRI}"/patches/asterisk.patch
+ fi
+
+ #
+ # Generic jitterbuffer (asterisk bug #3854)
+ #
+ if use genericjb; then
+ einfo "Generic jitterbuffer (ast #3854, full patch available on http://www.asterisk-backports.org/)"
+# epatch "${WORKDIR}"/ast_jb-${JB_PATCHES}.patch
+ epatch "${WORKDIR}"/${PN}-${JB_PATCHES}.patch
+
+ #sed -i -e "s:^\(GENERIC_JB = \)#-DAST_JB:\1 -DAST_JB:" \
+ # Makefile
+ fi
+
+}
+
+src_compile() {
+ local myopts
+
+ use lowmem && \
+ myopts="-DLOW_MEMORY"
+
+ if use h323; then
+ einfo "Building H.323 wrapper lib..."
+ make -C channels/h323 \
+ NOTRACE=1 \
+ PWLIBDIR=/usr/share/pwlib \
+ OPENH323DIR=/usr/share/openh323 \
+ libchanh323.a Makefile.ast || die "Make h323 failed"
+ fi
+
+ einfo "Building Asterisk..."
+ make \
+ CC=$(tc-getCC) \
+ NOTRACE=1 \
+ OPTIMIZE="${CFLAGS}" \
+ PWLIBDIR=/usr/share/pwlib \
+ OPENH323DIR=/usr/share/openh323 \
+ OPTIONS="${myopts}" || die "Make failed"
+
+ # create api docs
+ use doc && \
+ make progdocs
+
+ # build bristuff's ISDNguard
+ use bri && \
+ make -C "${S_BRI}"/ISDNguard
+}
+
+src_install() {
+
+ # install asterisk
+ make DESTDIR="${D}" ASTLIBDIR="\$(INSTALL_PREFIX)/usr/$(get_libdir)/asterisk" install || die "Make install failed"
+ make DESTDIR="${D}" ASTLIBDIR="\$(INSTALL_PREFIX)/usr/$(get_libdir)/asterisk" samples || die "Failed to create sample files"
+
+ # remove bristuff capi
+ use bri && \
+ rm -f "${D}"usr/$(get_libdir)/asterisk/modules/{app,chan}_capi*.so 2>/dev/null
+
+ # remove installed sample files if nosamples flag is set
+ if use nosamples; then
+ einfo "Skipping installation of sample files..."
+ rm -rf "${D}"var/spool/asterisk/voicemail/default
+ rm -f "${D}"var/lib/asterisk/mohmp3/*
+ rm -f "${D}"var/lib/asterisk/sounds/demo-*
+ rm -f "${D}"var/lib/asterisk/agi-bin/*
+ else
+ einfo "Sample files have been installed"
+ keepdir /var/spool/asterisk/voicemail/default/1234/INBOX
+ fi
+
+ # move sample configuration files to doc directory
+ if is_ast10update; then
+ elog "Updating from old (pre-1.2) asterisk version, new configuration files have been installed"
+ elog "into ${ROOT}etc/asterisk, use etc-update or dispatch-conf to update them"
+ elif has_version "net-misc/asterisk"; then
+ elog "Configuration samples have been moved to: $ROOT/usr/share/doc/${PF}/conf"
+ insinto /usr/share/doc/${PF}/conf
+ doins "${D}"etc/asterisk/*.conf*
+ rm -f "${D}"etc/asterisk/*.conf* 2>/dev/null
+ fi
+
+ # don't delete these directories, even if they are empty
+ for x in voicemail meetme system dictate monitor tmp; do
+ keepdir /var/spool/asterisk/${x}
+ done
+ keepdir /var/lib/asterisk/sounds/priv-callerintros
+ keepdir /var/lib/asterisk/mohmp3
+ keepdir /var/lib/asterisk/agi-bin
+ keepdir /var/log/asterisk/cdr-csv
+ keepdir /var/log/asterisk/cdr-custom
+ keepdir /var/run/asterisk
+
+ # install astxs
+ dobin contrib/scripts/astxs
+
+ newinitd "${FILESDIR}"/1.2.0/asterisk.rc6 asterisk
+ newconfd "${FILESDIR}"/1.2.0/asterisk.confd asterisk
+
+ # install standard docs...
+ dodoc BUGS CREDITS LICENSE ChangeLog HARDWARE README README.fpm
+ dodoc SECURITY doc/CODING-GUIDELINES doc/linkedlists.README UPGRADE.txt
+ dodoc doc/README.*
+ dodoc doc/*.txt
+
+ docinto scripts
+ dodoc contrib/scripts/*
+
+ docinto utils
+ dodoc contrib/utils/*
+
+ docinto configs
+ dodoc configs/*
+
+ # install api docs
+ if use doc; then
+ insinto /usr/share/doc/${PF}/api/html
+ doins doc/api/html/*
+ fi
+
+ # install ISDNguard
+ if use bri; then
+ cd "${S_BRI}"/ISDNguard
+ dosbin ISDNguard
+
+ docinto ISDNguard
+ dodoc INSTALL.ISDNguard
+
+ cd "${S}"
+ fi
+
+ insinto /usr/share/doc/${PF}/cgi
+ doins contrib/scripts/vmail.cgi
+ doins images/*.gif
+
+ # install asterisk-updater
+ dosbin "${FILESDIR}"/1.2.0/asterisk-updater
+
+ # install asterisk.h, a lot of external modules need this
+ insinto /usr/include/asterisk
+ doins include/asterisk.h
+
+ # make sure misdn/capi stuff is not installed, provided by asterisk-chan_..
+ rm -f "${D}"/etc/asterisk/misdn.conf "${D}"/usr/lib/asterisk/modules/chan_misdn.so \
+ "${D}"/usr/share/doc/${PF}/{conf/misdn.conf,configs/misdn.conf.sample.gz,README.misdn.gz}
+ rm -f "${D}"/usr/include/asterisk/chan_capi{,_app}.h \
+ "${D}"/usr/share/doc/${PF}/{conf/capi.conf,configs/capi.conf.sample.gz}
+}
+
+pkg_preinst() {
+ enewgroup asterisk
+ enewuser asterisk -1 -1 /var/lib/asterisk asterisk
+}
+
+pkg_postinst() {
+ einfo "Fixing permissions"
+ chown -R asterisk:asterisk "${ROOT}"var/log/asterisk
+ chmod -R u=rwX,g=rX,o= "${ROOT}"var/log/asterisk
+
+ for x in lib run spool; do
+ chown -R asterisk:asterisk "${ROOT}"var/${x}/asterisk
+ chmod -R u=rwX,g=rwX,o= "${ROOT}"var/${x}/asterisk
+ done
+
+ chown asterisk:asterisk "${ROOT}"etc/asterisk/
+ chown asterisk:asterisk "${ROOT}"etc/asterisk/*.adsi
+ chown asterisk:asterisk "${ROOT}"etc/asterisk/extensions.ael
+ chmod u=rwX,g=rwX,o= "${ROOT}"etc/asterisk/
+ chmod u=rwX,g=rwX,o= "${ROOT}"etc/asterisk/*.adsi
+ chmod u=rwX,g=rwX,o= "${ROOT}"etc/asterisk/extensions.ael
+ echo
+
+ #
+ # Announcements, warnings, reminders...
+ #
+ einfo "Asterisk has been installed"
+ einfo ""
+ elog "If you want to know more about asterisk, visit these sites:"
+ elog "http://www.asteriskdocs.org/"
+ elog "http://www.voip-info.org/wiki-Asterisk"
+ echo
+ elog "http://asterisk.xvoip.com/"
+ elog "http://junghanns.net/asterisk/"
+ elog "http://www.automated.it/guidetoasterisk.htm"
+ echo
+ elog "Gentoo VoIP IRC Channel:"
+ elog "#gentoo-voip @ irc.freenode.net"
+ echo
+ echo
+
+ #
+ # Warning about 1.0 -> 1.2 changes...
+ #
+ if is_ast10update; then
+ ewarn ""
+ ewarn "- Please read ${ROOT}usr/share/doc/${PF}/UPGRADE.txt.gz before continuing"
+ ewarn ""
+ fi
+
+ if is_astupdate; then
+ ewarn ""
+ ewarn " - The initgroups patch has been dropped, please update your"
+ ewarn " \"conf.d/asterisk\" and \"init.d/asterisk\" file!"
+ ewarn ""
+ fi
+
+ if use genericjb; then
+ ewarn "********************** Experimental Feature **************************"
+ ewarn "Please note that generic jitterbuffer support is experimental and may not"
+ ewarn "be included in newer versions!"
+ echo
+ fi
+
+ # scan for old modules
+ if is_ast10update; then
+ einfo "Asterisk has been updated from pre-1.2.x, scanning for old modules"
+ scan_modules
+ fi
+}
+
+pkg_config() {
+ einfo "Do you want to reset file permissions and ownerships (y/N)?"
+
+ read tmp
+ tmp="$(echo $tmp | tr [:upper:] [:lower:])"
+
+ if [[ "$tmp" = "y" ]] ||\
+ [[ "$tmp" = "yes" ]]
+ then
+ einfo "Resetting permissions to defaults..."
+
+ for x in spool run lib log; do
+ chown -R asterisk:asterisk "${ROOT}"var/${x}/asterisk
+ chmod -R u=rwX,g=rX,o= "${ROOT}"var/${x}/asterisk
+ done
+
+ chown -R root:asterisk "${ROOT}"etc/asterisk
+ chmod -R u=rwX,g=rX,o= "${ROOT}"etc/asterisk
+
+ einfo "done"
+ else
+ einfo "skipping"
+ fi
+}
--- /dev/null
+--- asterisk-1.2.17/channels/chan_sip.c 2007-03-13 08:45:52.000000000 -0300
++++ asterisk-1.2.18/channels/chan_sip.c 2007-04-24 13:05:06.000000000 -0300
+@@ -50,7 +50,7 @@
+
+ #include "asterisk.h"
+
+-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 1.1 $")
++ASTERISK_FILE_VERSION(__FILE__, "$Revision: 1.1 $")
+
+ #include "asterisk/lock.h"
+ #include "asterisk/channel.h"
+@@ -4168,7 +4168,8 @@
+ add_header(resp, "To", ot);
+ copy_header(resp, req, "Call-ID");
+ copy_header(resp, req, "CSeq");
+- add_header(resp, "User-Agent", default_useragent);
++ if (!ast_strlen_zero(default_useragent))
++ add_header(resp, "User-Agent", default_useragent);
+ add_header(resp, "Allow", ALLOWED_METHODS);
+ if (msg[0] == '2' && (p->method == SIP_SUBSCRIBE || p->method == SIP_REGISTER)) {
+ /* For registration responses, we also need expiry and
+@@ -4281,7 +4282,8 @@
+ copy_header(req, orig, "Call-ID");
+ add_header(req, "CSeq", tmp);
+
+- add_header(req, "User-Agent", default_useragent);
++ if (!ast_strlen_zero(default_useragent))
++ add_header(req, "User-Agent", default_useragent);
+ add_header(req, "Max-Forwards", DEFAULT_MAX_FORWARDS);
+
+ if (p->rpid)
+@@ -5058,7 +5060,8 @@
+ add_header(req, "Contact", p->our_contact);
+ add_header(req, "Call-ID", p->callid);
+ add_header(req, "CSeq", tmp);
+- add_header(req, "User-Agent", default_useragent);
++ if (!ast_strlen_zero(default_useragent))
++ add_header(req, "User-Agent", default_useragent);
+ add_header(req, "Max-Forwards", DEFAULT_MAX_FORWARDS);
+ if (p->rpid)
+ add_header(req, "Remote-Party-ID", p->rpid);
+@@ -5399,7 +5402,7 @@
+ add_header(&req, "Subscription-state", "terminated;reason=noresource");
+ add_header(&req, "Content-Type", "message/sipfrag;version=2.0");
+
+- strcpy(tmp, "SIP/2.0 200 OK");
++ strcpy(tmp, "SIP/2.0 200 OK\r\n");
+ add_header_contentLength(&req, strlen(tmp));
+ add_line(&req, tmp);
+
+@@ -5671,7 +5674,8 @@
+ add_header(&req, "To", to);
+ add_header(&req, "Call-ID", p->callid);
+ add_header(&req, "CSeq", tmp);
+- add_header(&req, "User-Agent", default_useragent);
++ if (!ast_strlen_zero(default_useragent))
++ add_header(&req, "User-Agent", default_useragent);
+ add_header(&req, "Max-Forwards", DEFAULT_MAX_FORWARDS);
+
+
+@@ -7334,6 +7338,7 @@
+ p->noncodeccapability |= AST_RTP_DTMF;
+ else
+ p->noncodeccapability &= ~AST_RTP_DTMF;
++ p->jointnoncodeccapability = p->noncodeccapability;
+ }
+ if (user && debug)
+ ast_verbose("Found user '%s'\n", user->name);
+@@ -7443,6 +7448,7 @@
+ p->noncodeccapability |= AST_RTP_DTMF;
+ else
+ p->noncodeccapability &= ~AST_RTP_DTMF;
++ p->jointnoncodeccapability = p->noncodeccapability;
+ }
+ ASTOBJ_UNREF(peer,sip_destroy_peer);
+ } else {
+@@ -8107,7 +8113,6 @@
+ /*! \brief manager_sip_show_peer: Show SIP peers in the manager API ---*/
+ static int manager_sip_show_peer( struct mansession *s, struct message *m )
+ {
+- char *id = astman_get_header(m,"ActionID");
+ char *a[4];
+ char *peer;
+ int ret;
+@@ -8122,8 +8127,6 @@
+ a[2] = "peer";
+ a[3] = peer;
+
+- if (!ast_strlen_zero(id))
+- ast_cli(s->fd, "ActionID: %s\r\n",id);
+ ret = _sip_show_peer(1, s->fd, s, m, 4, a );
+ ast_cli( s->fd, "\r\n\r\n" );
+ return ret;
+@@ -8155,9 +8158,13 @@
+ load_realtime = (argc == 5 && !strcmp(argv[4], "load")) ? 1 : 0;
+ peer = find_peer(argv[3], NULL, load_realtime);
+ if (s) { /* Manager */
+- if (peer)
++ if (peer) {
++ char *id = astman_get_header(m,"ActionID");
++
+ ast_cli(s->fd, "Response: Success\r\n");
+- else {
++ if (!ast_strlen_zero(id))
++ ast_cli(s->fd, "ActionID: %s\r\n",id);
++ } else {
+ snprintf (cbuf, sizeof(cbuf), "Peer %s not found.\n", argv[3]);
+ astman_send_error(s, m, cbuf);
+ return 0;
+@@ -8264,7 +8271,7 @@
+ print_group(fd, peer->pickupgroup, 1);
+ ast_cli(fd, "VoiceMailbox: %s\r\n", peer->mailbox);
+ ast_cli(fd, "LastMsgsSent: %d\r\n", peer->lastmsgssent);
+- ast_cli(fd, "Call limit: %d\r\n", peer->call_limit);
++ ast_cli(fd, "Call-limit: %d\r\n", peer->call_limit);
+ ast_cli(fd, "Dynamic: %s\r\n", (ast_test_flag(&peer->flags_page2, SIP_PAGE2_DYNAMIC)?"Y":"N"));
+ ast_cli(fd, "Callerid: %s\r\n", ast_callerid_merge(cbuf, sizeof(cbuf), peer->cid_name, peer->cid_num, ""));
+ ast_cli(fd, "RegExpire: %ld seconds\r\n", ast_sched_when(sched,peer->expire));
+@@ -10196,13 +10203,15 @@
+ if ((resp >= 300) && (resp < 700)) {
+ if ((option_verbose > 2) && (resp != 487))
+ ast_verbose(VERBOSE_PREFIX_3 "Got SIP response %d \"%s\" back from %s\n", resp, rest, ast_inet_ntoa(iabuf, sizeof(iabuf), p->sa.sin_addr));
+- if (p->rtp) {
+- /* Immediately stop RTP */
+- ast_rtp_stop(p->rtp);
+- }
+- if (p->vrtp) {
+- /* Immediately stop VRTP */
+- ast_rtp_stop(p->vrtp);
++ if (sipmethod == SIP_INVITE) {
++ if (p->rtp) {
++ /* Immediately stop RTP */
++ ast_rtp_stop(p->rtp);
++ }
++ if (p->vrtp) {
++ /* Immediately stop VRTP */
++ ast_rtp_stop(p->vrtp);
++ }
+ }
+ /* XXX Locking issues?? XXX */
+ switch(resp) {
+@@ -10246,7 +10255,8 @@
+ /* ACK on invite */
+ if (sipmethod == SIP_INVITE)
+ transmit_request(p, SIP_ACK, seqno, 0, 0);
+- ast_set_flag(p, SIP_ALREADYGONE);
++ if (sipmethod != SIP_MESSAGE && sipmethod != SIP_INFO)
++ ast_set_flag(p, SIP_ALREADYGONE);
+ if (!p->owner)
+ ast_set_flag(p, SIP_NEEDDESTROY);
+ } else if ((resp >= 100) && (resp < 200)) {
+@@ -11060,6 +11070,10 @@
+ ast_copy_string(p->context, p->subscribecontext, sizeof(p->context));
+ else if (ast_strlen_zero(p->context))
+ strcpy(p->context, default_context);
++
++ /* Get full contact header - this needs to be used as a request URI in NOTIFY's */
++ parse_ok_contact(p, req);
++
+ /* Get destination right away */
+ build_contact(p);
+ if (gotdest) {
+@@ -11295,16 +11309,16 @@
+ /* ignore means "don't do anything with it" but still have to
+ respond appropriately */
+ ignore=1;
+- }
+-
+- e = ast_skip_blanks(e);
+- if (sscanf(e, "%d %n", &respid, &len) != 1) {
+- ast_log(LOG_WARNING, "Invalid response: '%s'\n", e);
+- } else {
+- /* More SIP ridiculousness, we have to ignore bogus contacts in 100 etc responses */
+- if ((respid == 200) || ((respid >= 300) && (respid <= 399)))
+- extract_uri(p, req);
+- handle_response(p, respid, e + len, req, ignore, seqno);
++ } else if (e) {
++ e = ast_skip_blanks(e);
++ if (sscanf(e, "%d %n", &respid, &len) != 1) {
++ ast_log(LOG_WARNING, "Invalid response: '%s'\n", e);
++ } else {
++ /* More SIP ridiculousness, we have to ignore bogus contacts in 100 etc responses */
++ if ((respid == 200) || ((respid >= 300) && (respid <= 399)))
++ extract_uri(p, req);
++ handle_response(p, respid, e + len, req, ignore, seqno);
++ }
+ }
+ return 0;
+ }
+@@ -11496,17 +11510,20 @@
+ /* Go ahead and lock the owner if it has one -- we may need it */
+ if (p->owner && ast_mutex_trylock(&p->owner->lock)) {
+ ast_log(LOG_DEBUG, "Failed to grab lock, trying again...\n");
+- ast_mutex_unlock(&p->lock);
+- ast_mutex_unlock(&netlock);
+- /* Sleep for a very short amount of time */
+- usleep(1);
+- if (--lockretry)
++ if (--lockretry) {
++ ast_mutex_unlock(&p->lock);
++ ast_mutex_unlock(&netlock);
++ usleep(1);
+ goto retrylock;
++ }
+ }
+ if (!lockretry) {
+- ast_log(LOG_ERROR, "We could NOT get the channel lock for %s - Call ID %s! \n", p->owner->name, p->callid);
++ if (p->owner)
++ ast_log(LOG_ERROR, "We could NOT get the channel lock for %s - Call ID %s! \n", p->owner->name, p->callid);
+ ast_log(LOG_ERROR, "SIP MESSAGE JUST IGNORED: %s \n", req.data);
+ ast_log(LOG_ERROR, "BAD! BAD! BAD!\n");
++ ast_mutex_unlock(&p->lock);
++ ast_mutex_unlock(&netlock);
+ return 1;
+ }
+ memcpy(&p->recv, &sin, sizeof(p->recv));
+@@ -11986,20 +12003,17 @@
+ /*! \brief handle_common_options: Handle flag-type options common to users and peers ---*/
+ static int handle_common_options(struct ast_flags *flags, struct ast_flags *mask, struct ast_variable *v)
+ {
+- int res = 0;
++ int res = 1;
+
+ if (!strcasecmp(v->name, "trustrpid")) {
+ ast_set_flag(mask, SIP_TRUSTRPID);
+ ast_set2_flag(flags, ast_true(v->value), SIP_TRUSTRPID);
+- res = 1;
+ } else if (!strcasecmp(v->name, "sendrpid")) {
+ ast_set_flag(mask, SIP_SENDRPID);
+ ast_set2_flag(flags, ast_true(v->value), SIP_SENDRPID);
+- res = 1;
+ } else if (!strcasecmp(v->name, "useclientcode")) {
+ ast_set_flag(mask, SIP_USECLIENTCODE);
+ ast_set2_flag(flags, ast_true(v->value), SIP_USECLIENTCODE);
+- res = 1;
+ } else if (!strcasecmp(v->name, "dtmfmode")) {
+ ast_set_flag(mask, SIP_DTMF);
+ ast_clear_flag(flags, SIP_DTMF);
+@@ -12086,8 +12100,8 @@
+ } else if (!strcasecmp(v->name, "promiscredir")) {
+ ast_set_flag(mask, SIP_PROMISCREDIR);
+ ast_set2_flag(flags, ast_true(v->value), SIP_PROMISCREDIR);
+- res = 1;
+- }
++ } else
++ res = 0;
+
+ return res;
+ }
+@@ -12344,9 +12358,9 @@
+ if (user->callingpres == -1)
+ user->callingpres = atoi(v->value);
+ }
+- /*else if (strcasecmp(v->name,"type"))
+- * ast_log(LOG_WARNING, "Ignoring %s\n", v->name);
+- */
++ /* We can't just report unknown options here because this may be a
++ * type=friend entry. All user options are valid for a peer, but not
++ * the other way around. */
+ v = v->next;
+ }
+ ast_copy_flags(user, &userflags, mask.flags);
+@@ -12414,7 +12428,7 @@
+
+ if (peer) {
+ /* Already in the list, remove it and it will be added back (or FREE'd) */
+- found++;
++ found = 1;
+ } else {
+ peer = malloc(sizeof(*peer));
+ if (peer) {
+@@ -12513,10 +12527,9 @@
+ ast_log(LOG_WARNING, "You can't have a dynamic outbound proxy, you big silly head at line %d.\n", v->lineno);
+ } else {
+ /* They'll register with us */
+- ast_set_flag(&peer->flags_page2, SIP_PAGE2_DYNAMIC);
+- if (!found) {
+- /* Initialize stuff iff we're not found, otherwise
+- we keep going with what we had */
++ if (!found || !ast_test_flag(&peer->flags_page2, SIP_PAGE2_DYNAMIC)) {
++ /* Initialize stuff if this is a new peer, or if it used to be
++ * non-dynamic before the reload. */
+ memset(&peer->addr.sin_addr, 0, 4);
+ if (peer->addr.sin_port) {
+ /* If we've already got a port, make it the default rather than absolute */
+@@ -12524,6 +12537,7 @@
+ peer->addr.sin_port = 0;
+ }
+ }
++ ast_set_flag(&peer->flags_page2, SIP_PAGE2_DYNAMIC);
+ }
+ } else {
+ /* Non-dynamic. Make sure we become that way if we're not */
+@@ -12630,10 +12644,7 @@
+ peer->maxms = 0;
+ }
+ }
+- /* else if (strcasecmp(v->name,"type"))
+- * ast_log(LOG_WARNING, "Ignoring %s\n", v->name);
+- */
+- v=v->next;
++ v = v->next;
+ }
+ if (!ast_test_flag((&global_flags_page2), SIP_PAGE2_IGNOREREGEXPIRE) && ast_test_flag(&peer->flags_page2, SIP_PAGE2_DYNAMIC) && realtime) {
+ time_t nowtime;
+@@ -12929,10 +12940,7 @@
+ } else if (!strcasecmp(v->name, "callevents")) {
+ callevents = ast_true(v->value);
+ }
+- /* else if (strcasecmp(v->name,"type"))
+- * ast_log(LOG_WARNING, "Ignoring %s\n", v->name);
+- */
+- v = v->next;
++ v = v->next;
+ }
+
+ if (!allow_external_domains && AST_LIST_EMPTY(&domain_list)) {
--- /dev/null
+--- asterisk-1.2.17/manager.c 2007-03-06 21:27:04.000000000 -0300
++++ asterisk-1.2.18/manager.c 2007-04-24 18:33:59.000000000 -0300
+@@ -46,7 +46,7 @@
+
+ #include "asterisk.h"
+
+-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 1.1 $")
++ASTERISK_FILE_VERSION(__FILE__, "$Revision: 1.1 $")
+
+ #include "asterisk/channel.h"
+ #include "asterisk/file.h"
+@@ -533,7 +533,8 @@
+ } else if (ha)
+ ast_free_ha(ha);
+ if (!strcasecmp(authtype, "MD5")) {
+- if (!ast_strlen_zero(key) && s->challenge) {
++ if (!ast_strlen_zero(key) &&
++ !ast_strlen_zero(s->challenge) && !ast_strlen_zero(password)) {
+ int x;
+ int len=0;
+ char md5key[256] = "";
+@@ -885,15 +886,15 @@
+ astman_send_error(s, m, buf);
+ return 0;
+ }
+- if (chan->_state != AST_STATE_UP) {
+- astman_send_error(s, m, "Redirect failed, channel not up.\n");
++ if (ast_check_hangup(chan)) {
++ astman_send_error(s, m, "Redirect failed, channel hung up.\n");
+ ast_mutex_unlock(&chan->lock);
+ return 0;
+ }
+ if (!ast_strlen_zero(name2))
+ chan2 = ast_get_channel_by_name_locked(name2);
+- if (chan2 && chan2->_state != AST_STATE_UP) {
+- astman_send_error(s, m, "Redirect failed, extra channel not up.\n");
++ if (chan2 && ast_check_hangup(chan2)) {
++ astman_send_error(s, m, "Redirect failed, extra channel hung up.\n");
+ ast_mutex_unlock(&chan->lock);
+ ast_mutex_unlock(&chan2->lock);
+ return 0;
--- /dev/null
+diff -Nura asterisk-1.2.17/channels/h323/Makefile asterisk-1.2.17.h323/channels/h323/Makefile
+--- asterisk-1.2.17/channels/h323/Makefile 2007-03-06 12:17:16.000000000 -0300
++++ asterisk-1.2.17.h323/channels/h323/Makefile 2007-04-19 16:33:25.113788190 -0300
+@@ -31,7 +32,6 @@
+ touch $(SOURCES)
+
+ libchanh323.a: $(OBJS)
+- include $(OPENH323DIR)/openh323u.mak
+ ar crv $@ $(OBJS)
+
+ Makefile.ast: FORCE
--- /dev/null
+MD5 a407d1ef9bc88e38f435581380975fec asterisk-1.2.11-jb.patch.bz2 15598
+RMD160 cbf4a95e25bf03a41ebef2a726419299494bb298 asterisk-1.2.11-jb.patch.bz2 15598
+SHA256 e85e438cb88993a188d063582f38eff0efc1b727e47d9f71809ee81d19992946 asterisk-1.2.11-jb.patch.bz2 15598
+MD5 c91195d62d39cf71da31122dd8157828 asterisk-1.2.11-patches-1.0.tar.bz2 7432
+RMD160 b840a16b6ae9ffb1e76da4a7a8129916e1710204 asterisk-1.2.11-patches-1.0.tar.bz2 7432
+SHA256 46d198be655b35383725dde72ed82ecc7767b8009356f88d27c763323d1cdaa8 asterisk-1.2.11-patches-1.0.tar.bz2 7432
+MD5 71c3819b253f9790bd750c8aa5fb4d9a asterisk-1.2.17-bristuff-0.3.0-PRE-1y-d-2.diff.bz2 97765
+RMD160 77261589822482fefac9ea42ff24dd8d5f858243 asterisk-1.2.17-bristuff-0.3.0-PRE-1y-d-2.diff.bz2 97765
+SHA256 f7afdd84b634c29f6988b39afb4dd52c0c55b2e3b3772551f8d7b2d63817b5d0 asterisk-1.2.17-bristuff-0.3.0-PRE-1y-d-2.diff.bz2 97765
+MD5 1a41a1f4a535813b1272bae0545c7990 asterisk-1.2.17.tar.gz 10615354
+RMD160 f03fe30312c7e693c4804c40941db942ab092976 asterisk-1.2.17.tar.gz 10615354
+SHA256 ab20ada37e0f2874a0c59ac7d5395c5980419da6344cbb78b60874e9b8631cf1 asterisk-1.2.17.tar.gz 10615354
+MD5 a9ef013ab1a574074820edc9bb1a96e9 bristuff-0.3.0-PRE-1y-d.tar.gz 286165
+RMD160 7424e3f6876ff1e9415c11d3c8ed70014c5a0f4f bristuff-0.3.0-PRE-1y-d.tar.gz 286165
+SHA256 99688819bce753910b154ad0866d77f861e25842a1e810d0baf80a0a02cfef25 bristuff-0.3.0-PRE-1y-d.tar.gz 286165