Verbump, should close #175960, #175858, #172680 and #172257
authorGustavo Zacarias <gustavoz@gentoo.org>
Thu, 26 Apr 2007 19:03:23 +0000 (19:03 +0000)
committerGustavo Zacarias <gustavoz@gentoo.org>
Thu, 26 Apr 2007 19:03:23 +0000 (19:03 +0000)
Package-Manager: portage-2.1.2.2

net-misc/asterisk/ChangeLog
net-misc/asterisk/Manifest
net-misc/asterisk/asterisk-1.2.17.ebuild [new file with mode: 0644]
net-misc/asterisk/files/1.2.0/asterisk-1.2.17-ASA-2007-011.patch [new file with mode: 0644]
net-misc/asterisk/files/1.2.0/asterisk-1.2.17-ASA-2007-012.patch [new file with mode: 0644]
net-misc/asterisk/files/1.2.0/asterisk-1.2.17-h323-dumb-makefile.diff [new file with mode: 0644]
net-misc/asterisk/files/digest-asterisk-1.2.17 [new file with mode: 0644]

index e64c774556583093dd0e645e2d1b28287fae7c33..bcd67bd4c4dc5a768e9fe1914abd74345a1f5941 100644 (file)
@@ -1,6 +1,15 @@
 # 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:
index bbbaec44e959e6698f79f13ded55a0bbd44c895f..b9ed9574e4ba30dc630d0c5a34d58031c9aa2f7a 100644 (file)
@@ -129,6 +129,18 @@ AUX 1.2.0/asterisk-1.2.14-chan_sip2.patch 1405 RMD160 39c94dbf22e4cad57ed6e8df42
 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
@@ -148,10 +160,13 @@ DIST asterisk-1.2.13-bristuff-0.3.0-PRE-1s.diff.bz2 90716 RMD160 8a9a66f9397fa2b
 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
@@ -176,10 +191,14 @@ EBUILD asterisk-1.2.14.ebuild 11838 RMD160 834090ebf563ed70ec98cb63ab463159019c8
 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
@@ -202,10 +221,13 @@ SHA256 bedfbd607a6b74146a30d8b1b74b3464efa13b38362c2f1ae4fe0aa341435b83 files/di
 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-----
diff --git a/net-misc/asterisk/asterisk-1.2.17.ebuild b/net-misc/asterisk/asterisk-1.2.17.ebuild
new file mode 100644 (file)
index 0000000..b511bea
--- /dev/null
@@ -0,0 +1,490 @@
+# 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
+}
diff --git a/net-misc/asterisk/files/1.2.0/asterisk-1.2.17-ASA-2007-011.patch b/net-misc/asterisk/files/1.2.0/asterisk-1.2.17-ASA-2007-011.patch
new file mode 100644 (file)
index 0000000..5587de8
--- /dev/null
@@ -0,0 +1,317 @@
+--- 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)) {
diff --git a/net-misc/asterisk/files/1.2.0/asterisk-1.2.17-ASA-2007-012.patch b/net-misc/asterisk/files/1.2.0/asterisk-1.2.17-ASA-2007-012.patch
new file mode 100644 (file)
index 0000000..57b1ed8
--- /dev/null
@@ -0,0 +1,41 @@
+--- 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;
diff --git a/net-misc/asterisk/files/1.2.0/asterisk-1.2.17-h323-dumb-makefile.diff b/net-misc/asterisk/files/1.2.0/asterisk-1.2.17-h323-dumb-makefile.diff
new file mode 100644 (file)
index 0000000..5620528
--- /dev/null
@@ -0,0 +1,11 @@
+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
diff --git a/net-misc/asterisk/files/digest-asterisk-1.2.17 b/net-misc/asterisk/files/digest-asterisk-1.2.17
new file mode 100644 (file)
index 0000000..6ab4a0a
--- /dev/null
@@ -0,0 +1,15 @@
+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