diff options
46 files changed, 0 insertions, 7553 deletions
diff --git a/contrib/package/asterisk-xip/Makefile b/contrib/package/asterisk-xip/Makefile deleted file mode 100644 index 6509f7685d..0000000000 --- a/contrib/package/asterisk-xip/Makefile +++ /dev/null @@ -1,2031 +0,0 @@ -# -# Copyright (C) 2007 OpenWrt.org -# Copyright (C) 2008-2009 Michael Geddes -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# -# $Id: Makefile 13712 2008-12-21 20:34:15Z zandbelt $ - -include $(TOPDIR)/rules.mk - -PKG_NAME:=asterisk -PKG_VERSION:=1.4.22 -PKG_RELEASE:=4 - -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=http://downloads.digium.com/pub/asterisk/releases/ -PKG_MD5SUM:=7626febc4a01e16e012dfccb9e4ab9d2 - -PKG_BUILD_DEPENDS:= libopenh323 pwlib gsm libvorbis - -include $(INCLUDE_DIR)/package.mk - -STAMP_CONFIGURED:=$(STAMP_CONFIGURED)_$(call confvar, \ - CONFIG_PACKAGE_asterisk14-xip CONFIG_PACKAGE_asterisk14-xip-mini \ - CONFIG_PACKAGE_asterisk14-xip-chan-alsa CONFIG_PACKAGE_asterisk14-xip-chan-gtalk \ - CONFIG_PACKAGE_asterisk14-xip-chan-h323 CONFIG_PACKAGE_asterisk14-xip-chan-mgcp \ - CONFIG_PACKAGE_asterisk14-xip-chan-skinny CONFIG_PACKAGE_asterisk14-xip-codec-ilbc \ - CONFIG_PACKAGE_asterisk14-xip-codec-lpc10 CONFIG_PACKAGE_asterisk14-xip-codec-speex \ - CONFIG_PACKAGE_asterisk14-xip-pbx-dundi CONFIG_PACKAGE_asterisk14-xip-res-agi \ - CONFIG_PACKAGE_asterisk14-xip-res-crypto CONFIG_PACKAGE_asterisk14-xip-pgsql \ - CONFIG_PACKAGE_asterisk14-xip-sqlite CONFIG_PACKAGE_asterisk14-xip-voicemail \ - CONFIG_PACKAGE_asterisk14-xip-sounds \ -) - -define Package/asterisk14-xip/Default - SUBMENU:=asterisk14-xip (Complete Open Source PBX), v1.4.x - SECTION:=luci - CATEGORY:=LuCI - SUBMENU:=Asterisk - URL:=http://www.asterisk.org/ -endef - -define Package/asterisk14-xip/Default/description - Asterisk is a complete PBX in software. It provides all of the features - you would expect from a PBX and more. Asterisk does voice over IP in three - protocols, and can interoperate with almost all standards-based telephony - equipment using relatively inexpensive hardware. -endef - -define Package/asterisk14-xip-core -$(call Package/asterisk14-xip/Default) - TITLE:=Asterisk Core - DEPENDS:=+libncurses +libpopt +libpthread @!TARGET_avr32 -endef - -define Package/asterisk14-xip-core/description -$(call Package/asterisk14-xip/Default/description) -Asterisk Core - codec_gsm - format_gsm - pbx_config Read Configuration - res_indications Tone support - app_dial - chan_local Dial Local channel -endef - -define Package/asterisk14-xip -$(call Package/asterisk14-xip/Default) - TITLE:=Complete open source PBX - DEPENDS:= +asterisk14-xip-core +asterisk14-xip-iax +asterisk14-xip-sip +asterisk14-xip-codec-ualaw +asterisk14-xip-codec-wav +asterisk14-xip-features +asterisk14-xip-moh \ - +asterisk14-xip-app-meetme +asterisk14-xip-chan-oss +asterisk14-xip-chan-alsa +asterisk14-xip-chan-gtalk +asterisk14-xip-chan-h323 +asterisk14-xip-chan-mgcp \ - +asterisk14-xip-chan-skinny +asterisk14-xip-codec-lpc10 +asterisk14-xip-codec-speex +asterisk14-xip-pbx-dundi +asterisk14-xip-res-agi +asterisk14-xip-res-crypto \ - +asterisk14-xip-pgsql +asterisk14-xip-sqlite +asterisk14-xip-voicemail +asterisk14-xip-sounds +asterisk14-xip-rawplayer +asterisk14-xip-agents +asterisk14-xip-iax \ - +asterisk14-xip-sip +asterisk14-xip-codec-wav +asterisk14-xip-codec-ualaw +asterisk14-xip-format-misc +asterisk14-xip-format-licensed +asterisk14-xip-codec-g726 \ - +asterisk14-xip-format-video +asterisk14-xip-variables +asterisk14-xip-enum +asterisk14-xip-basic +asterisk14-xip-encode +asterisk14-xip-realtime \ - +asterisk14-xip-ael +asterisk14-xip-adsi +asterisk14-xip-features +asterisk14-xip-moh +asterisk14-xip-smdi +asterisk14-xip-sounds-tt \ - +asterisk14-xip-sounds-demo +asterisk14-xip-linejack +asterisk14-xip-app-misc +asterisk14-xip-image +asterisk14-xip-sms +asterisk14-xip-icecast \ - +asterisk14-xip-mp3 +asterisk14-xip-cli +asterisk14-xip-isdn +asterisk14-xip-deprecated +asterisk14-xip-groups +asterisk14-xip-language +asterisk14-xip-spool \ - +asterisk14-xip-nbs +asterisk14-xip-alarmreceiver +asterisk14-xip-cdr +asterisk14-xip-channel +asterisk14-xip-debug +asterisk14-xip-menu-misc \ - +asterisk14-xip-festival +asterisk14-xip-send-app +asterisk14-xip-followme +asterisk14-xip-queues +asterisk14-xip-record +asterisk14-xip-privacy \ - +asterisk14-xip-ivr-util +asterisk14-xip-callerid +asterisk14-xip-speech +asterisk14-xip-detect +asterisk14-xip-controlflow @!TARGET_avr32 -endef - -define Package/asterisk14-xip/description -$(call Package/asterisk14-xip/Default/description) -endef - - -define Package/asterisk14-xip-mini -$(call Package/asterisk14-xip/Default) - TITLE:=Minimal open source PBX - DEPENDS:=+libncurses +libpthread +asterisk14-xip-core +asterisk14-xip-iax +asterisk14-xip-sip +asterisk14-xip-codec-ualaw +asterisk14-xip-codec-wav +asterisk14-xip-features +asterisk14-xip-moh +libgsm @!TARGET_avr32 -endef - -define Package/asterisk14-xip-mini/description -$(call Package/asterisk14-xip/Default/description) - This package contains only the following modules: - - app_dial - - chan_iax2 - - chan_local - - chan_sip - - codec_gsm - - codec_ulaw - - format_gsm - - format_pcm - - format_wav - - format_wav_gsm - - pbx_config - - res_features - - res_musiconhold -endef - - -define Package/asterisk14-xip-app-meetme -$(call Package/asterisk14-xip/Default) - TITLE:=conferencing support - DEPENDS:= +asterisk14-xip-core +zaptel14-libtonezone -endef - -define Package/asterisk14-xip-app-meetme/description -$(call Package/asterisk14-xip/Default/description) - This package provides the MeetMe application driver Conferencing support to - Asterisk. - app_meetme - app_page Paging multiple extensions. -endef - - -define Package/asterisk14-xip-chan-oss -$(call Package/asterisk14-xip/Default) - TITLE:=OSS soundcards support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-chan-oss/description -$(call Package/asterisk14-xip/Default/description) - This package provides the channel driver for OSS sound cards support to - Asterisk. -endef - -define Package/asterisk14-xip-chan-alsa -$(call Package/asterisk14-xip/Default) - TITLE:=ALSA soundcards support - DEPENDS:= +asterisk14-xip-core +alsa-lib -endef - -define Package/asterisk14-xip-chan-alsa/description -$(call Package/asterisk14-xip/Default/description) - This package provides the channel driver for ALSA sound cards support to - Asterisk. -endef - - -define Package/asterisk14-xip-chan-gtalk -$(call Package/asterisk14-xip/Default) - TITLE:=GTalk support - DEPENDS:= +asterisk14-xip-core +libiksemel -endef - -define Package/asterisk14-xip-chan-gtalk/description -$(call Package/asterisk14-xip/Default/description) - This package provides the channel chan_gtalk and res_jabber for GTalk - support to Asterisk. -endef - - -define Package/asterisk14-xip-chan-h323 -$(call Package/asterisk14-xip/Default) - TITLE:=H.323 support for Asterisk - DEPENDS:= +asterisk14-xip-core +uclibcxx -endef - -define Package/asterisk14-xip-chan-h323/description -$(call Package/asterisk14-xip/Default/description) - This package provides H.323 support to Asterisk. -endef - - -define Package/asterisk14-xip-chan-mgcp -$(call Package/asterisk14-xip/Default) - TITLE:=MGCP support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-chan-mgcp/description -$(call Package/asterisk14-xip/Default/description) - This package provides MGCP (Media Gateway Control Protocol) support \\\ - to Asterisk. -endef - - -define Package/asterisk14-xip-chan-skinny -$(call Package/asterisk14-xip/Default) - TITLE:=Skinny Client Control Protocol support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-chan-skinny/description -$(call Package/asterisk14-xip/Default/description) - This package provided Skinny Client Control Protocol support to \\\ - Asterisk. -endef - - -#define Package/asterisk14-xip-codec-ilbc -#$(call Package/asterisk14-xip/Default) -# TITLE:=ILBC Translator -# DEPENDS:= +asterisk14-xip-core -#endef - -#define Package/asterisk14-xip-codec-ilbc/description -#$(call Package/asterisk14-xip/Default/description) -# This package contains the ILBC (Internet Low Bitrate Codec) translator -# for Asterisk. -#endef - - -define Package/asterisk14-xip-codec-lpc10 -$(call Package/asterisk14-xip/Default) - TITLE:=LPC10 2.4kbps voice codec Translator - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-chan-lpc10/description -$(call Package/asterisk14-xip/Default/description) - This package contains the LPC10 (Linear Predictor Code) 2.4kbps voice - codec translator for Asterisk. -endef - - -define Package/asterisk14-xip-codec-speex -$(call Package/asterisk14-xip/Default) - TITLE:=Speex/PCM16 Codec Translator - DEPENDS:= +asterisk14-xip-core +libspeex +libspeexdsp -endef - -define Package/asterisk14-xip-chan-speex/description -$(call Package/asterisk14-xip/Default/description) - This package contains the Speex speech compression codec translator for - Asterisk. -endef - - -define Package/asterisk14-xip-pbx-dundi -$(call Package/asterisk14-xip/Default) - TITLE:=DUNDi support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-pbx-dundi/description -$(call Package/asterisk14-xip/Default/description) - This package provides DUNDi (Distributed Universal Number Discovery) - support to Asterisk. -endef - - -define Package/asterisk14-xip-res-agi -$(call Package/asterisk14-xip/Default) - TITLE:=AGI support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-res-agi/description -$(call Package/asterisk14-xip/Default/description) - This package provides AGI (Asterisk Gateway Interface) support to - Asterisk. -endef - - -define Package/asterisk14-xip-res-crypto -$(call Package/asterisk14-xip/Default) - TITLE:=Cryptographic Digital Signatures support - DEPENDS:= +asterisk14-xip-core +libopenssl -endef - -define Package/asterisk14-xip-res-crypto/description -$(call Package/asterisk14-xip/Default/description) - This package provides Cryptographic Digital Signatures support to - Asterisk. -endef - - -define Package/asterisk14-xip-pgsql -$(call Package/asterisk14-xip/Default) - TITLE:=PostgreSQL support - DEPENDS:= +asterisk14-xip-core +libpq -endef - -define Package/asterisk14-xip-pgsql/description -$(call Package/asterisk14-xip/Default/description) - This package contains PostgreSQL support modules for Asterisk. -endef - - -define Package/asterisk14-xip-sqlite -$(call Package/asterisk14-xip/Default) - TITLE:=SQLite modules - DEPENDS:= +asterisk14-xip-core +libsqlite2 -endef - -define Package/asterisk14-xip-sqlite/description -$(call Package/asterisk14-xip/Default/description) - This package contains SQLite support modules for Asterisk. -endef - - -define Package/asterisk14-xip-sounds -$(call Package/asterisk14-xip/Default) - TITLE:=Sound files - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-sounds/description -$(call Package/asterisk14-xip/Default/description) - This package contains sound files for Asterisk. -endef - - -define Package/asterisk14-xip-voicemail -$(call Package/asterisk14-xip/Default) - TITLE:=Voicemail support - DEPENDS:= +asterisk14-xip-core +asterisk14-xip-adsi -endef - -define Package/asterisk14-xip-voicemail/description -$(call Package/asterisk14-xip/Default/description) - This package contains voicemail related modules for Asterisk. -endef - -define Package/asterisk14-xip-rawplayer -$(call Package/asterisk14-xip/Default) - TITLE:=Play raw files for asterisk -endef - -define Package/asterisk14-xip-rawplayer/description - Contains the rawplayer utility for asterisk -endef - -define Package/asterisk14-xip-agents -$(call Package/asterisk14-xip/Default) - TITLE:=Support for user Agents - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-agents/description -$(call Package/asterisk14-xip/Default/description) -Support for user Agents - chan_agent -endef - -define Package/asterisk14-xip-iax -$(call Package/asterisk14-xip/Default) - TITLE:=IAX2 Channel support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-iax/description -$(call Package/asterisk14-xip/Default/description) -IAX2 Channel support - chan_iax2 -endef - -define Package/asterisk14-xip-sip -$(call Package/asterisk14-xip/Default) - TITLE:=SIP Channel support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-sip/description -$(call Package/asterisk14-xip/Default/description) -SIP Channel support - chan_sip -endef - -define Package/asterisk14-xip-codec-wav -$(call Package/asterisk14-xip/Default) - TITLE:=WAV/PCM Codecs - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-codec-wav/description -$(call Package/asterisk14-xip/Default/description) -WAV/PCM Codecs - codec_adpcm - format_pcm - format_wav_gsm Microsoft Proprietary Wave GSM format - format_wav -endef - -define Package/asterisk14-xip-codec-ualaw -$(call Package/asterisk14-xip/Default) - TITLE:=Ulaw/Alaw Codec support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-codec-ualaw/description -$(call Package/asterisk14-xip/Default/description) -Ulaw/Alaw Codec support - codec_alaw - codec_a_mu A-Law and MUlaw direct coder/Decoder - codec_ulaw -endef - -define Package/asterisk14-xip-format-misc -$(call Package/asterisk14-xip/Default) - TITLE:=Misc pass-through formats - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-format-misc/description -$(call Package/asterisk14-xip/Default/description) -Misc pass-through formats - format_sln - format_vox - format_ilbc iLBC -endef - -define Package/asterisk14-xip-format-licensed -$(call Package/asterisk14-xip/Default) - TITLE:=Licenses and Patented Formats Passthrough - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-format-licensed/description -$(call Package/asterisk14-xip/Default/description) -Licenses and Patented Formats Passthrough - format_g726 - format_g723 - format_g729 -endef - -define Package/asterisk14-xip-codec-g726 -$(call Package/asterisk14-xip/Default) - TITLE:=G726 Codec (requires license) - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-codec-g726/description -$(call Package/asterisk14-xip/Default/description) -G726 Codec (requires license) - codec_g726 -endef - -define Package/asterisk14-xip-format-video -$(call Package/asterisk14-xip/Default) - TITLE:=Video formats - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-format-video/description -$(call Package/asterisk14-xip/Default/description) -Video formats - format_h263 - format_h264 -endef - -define Package/asterisk14-xip-variables -$(call Package/asterisk14-xip/Default) - TITLE:=Read Variables and environment - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-variables/description -$(call Package/asterisk14-xip/Default/description) -Read Variables and environment - func_db - func_global - func_env - func_timeout Control timeout values -endef - -define Package/asterisk14-xip-enum -$(call Package/asterisk14-xip/Default) - TITLE:=DNS Enum support to find alternate call route - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-enum/description -$(call Package/asterisk14-xip/Default/description) -DNS Enum support to find alternate call route - func_enum Use DNS to find alternate calling method -endef - -define Package/asterisk14-xip-basic -$(call Package/asterisk14-xip/Default) - TITLE:=Basic functions - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-basic/description -$(call Package/asterisk14-xip/Default/description) -Basic functions - func_logic - func_math - func_strings - func_rand - func_cut -endef - -define Package/asterisk14-xip-encode -$(call Package/asterisk14-xip/Default) - TITLE:=Support for string encoding/hashing - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-encode/description -$(call Package/asterisk14-xip/Default/description) -Support for string encoding/hashing - func_base64 - func_md5 - func_sha1 - func_uri -endef - -define Package/asterisk14-xip-realtime -$(call Package/asterisk14-xip/Default) - TITLE:=Asterisk Realtime support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-realtime/description -$(call Package/asterisk14-xip/Default/description) -Asterisk Realtime support - func_realtime - pbx_realtime - app_realtime 'Realtime' support -endef - -define Package/asterisk14-xip-ael -$(call Package/asterisk14-xip/Default) - TITLE:=AEL - Asterisk Extension Language compiler support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-ael/description -$(call Package/asterisk14-xip/Default/description) -AEL - Asterisk Extension Language compiler support - pbx_ael Asterisk Extension Language compiler -endef - -define Package/asterisk14-xip-adsi -$(call Package/asterisk14-xip/Default) - TITLE:=ADSI Support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-adsi/description -$(call Package/asterisk14-xip/Default/description) -ADSI Support - res_adsi - app_adsiprog -endef - -define Package/asterisk14-xip-features -$(call Package/asterisk14-xip/Default) - TITLE:=Call Features / Parking - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-features/description -$(call Package/asterisk14-xip/Default/description) -Call Features / Parking - res_features Features support. - app_transfer - app_parkandannounce - res_monitor Record channels -endef - -define Package/asterisk14-xip-moh -$(call Package/asterisk14-xip/Default) - TITLE:=Music On Hold support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-moh/description -$(call Package/asterisk14-xip/Default/description) -Music On Hold support - res_musiconhold - func_moh -endef - -define Package/asterisk14-xip-smdi -$(call Package/asterisk14-xip/Default) - TITLE:=Simple Message Desk Interface - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-smdi/description -$(call Package/asterisk14-xip/Default/description) -Simple Message Desk Interface - res_smdi Simple Message Desk Interface -endef - -define Package/asterisk14-xip-sounds-tt -$(call Package/asterisk14-xip/Default) - TITLE:=Telemarketer Torture Sounds - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-sounds-tt/description -$(call Package/asterisk14-xip/Default/description) -Telemarketer Torture Sounds -endef - -define Package/asterisk14-xip-sounds-demo -$(call Package/asterisk14-xip/Default) - TITLE:=Demo Sounds - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-sounds-demo/description -$(call Package/asterisk14-xip/Default/description) -Demo Sounds -endef - -define Package/asterisk14-xip-linejack -$(call Package/asterisk14-xip/Default) - TITLE:=M chan_phone (32,988) Linejack Cards - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-linejack/description -$(call Package/asterisk14-xip/Default/description) -M chan_phone (32,988) Linejack Cards -endef - -define Package/asterisk14-xip-app-misc -$(call Package/asterisk14-xip/Default) - TITLE:=Misc applications - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-app-misc/description -$(call Package/asterisk14-xip/Default/description) -Misc applications - app_random - app_sayunixtime - app_sendtext - app_url - app_readfile - app_system Call System application. - app_exec Exec Dialplan applications -endef - -define Package/asterisk14-xip-image -$(call Package/asterisk14-xip/Default) - TITLE:=Support for images - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-image/description -$(call Package/asterisk14-xip/Default/description) -Support for images - app_image Transmit images - format_jpeg -endef - -define Package/asterisk14-xip-sms -$(call Package/asterisk14-xip/Default) - TITLE:=SMS support - DEPENDS:= +asterisk14-xip-core +libstdcpp -endef - -define Package/asterisk14-xip-sms/description -$(call Package/asterisk14-xip/Default/description) -SMS support - app_sms -endef - -define Package/asterisk14-xip-icecast -$(call Package/asterisk14-xip/Default) - TITLE:=ICEcast support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-icecast/description -$(call Package/asterisk14-xip/Default/description) -ICEcast support - app_ices Icecast / Ices support -endef - -define Package/asterisk14-xip-mp3 -$(call Package/asterisk14-xip/Default) - TITLE:=MP3 Support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-mp3/description -$(call Package/asterisk14-xip/Default/description) -MP3 Support - app_mp3 -endef - -define Package/asterisk14-xip-cli -$(call Package/asterisk14-xip/Default) - TITLE:=CLI Apps and events - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-cli/description -$(call Package/asterisk14-xip/Default/description) -CLI Apps and events - app_userevent - res_clioriginate Originate a call on the CLI - res_convert File format conversion -endef - -define Package/asterisk14-xip-isdn -$(call Package/asterisk14-xip/Default) - TITLE:=ISDN transfer capability - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-isdn/description -$(call Package/asterisk14-xip/Default/description) -ISDN transfer capability - app_settransfercapability ISDN transfer capability -endef - -define Package/asterisk14-xip-deprecated -$(call Package/asterisk14-xip/Default) - TITLE:=Deprecated - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-deprecated/description -$(call Package/asterisk14-xip/Default/description) -Deprecated - app_db Deprecated - use func_db instead -endef - -define Package/asterisk14-xip-groups -$(call Package/asterisk14-xip/Default) - TITLE:=Group Functions - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-groups/description -$(call Package/asterisk14-xip/Default/description) -Group Functions - func_groupcount -endef - -define Package/asterisk14-xip-language -$(call Package/asterisk14-xip/Default) - TITLE:=Language support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-language/description -$(call Package/asterisk14-xip/Default/description) -Language support - func_language -endef - -define Package/asterisk14-xip-spool -$(call Package/asterisk14-xip/Default) - TITLE:=Spool Directory of Outgoing calls - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-spool/description -$(call Package/asterisk14-xip/Default/description) -Spool Directory of Outgoing calls - pbx_spool Spool Directory of Outgoing calls -endef - -define Package/asterisk14-xip-nbs -$(call Package/asterisk14-xip/Default) - TITLE:=NBS stream support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-nbs/description -$(call Package/asterisk14-xip/Default/description) -NBS stream support - app_nbscat -endef - -define Package/asterisk14-xip-alarmreceiver -$(call Package/asterisk14-xip/Default) - TITLE:=SIA Contact ID Alarm receiver - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-alarmreceiver/description -$(call Package/asterisk14-xip/Default/description) -SIA Contact ID Alarm receiver - app_alarmreceiver -endef - -define Package/asterisk14-xip-cdr -$(call Package/asterisk14-xip/Default) - TITLE:=CDR Support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-cdr/description -$(call Package/asterisk14-xip/Default/description) -CDR Support - app_cdr - app_forkcdr - app_setcdruserfield - cdr_csv - cdr_custom - cdr_manager - func_cdr -endef - -define Package/asterisk14-xip-channel -$(call Package/asterisk14-xip/Default) - TITLE:=Channel functions - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-channel/description -$(call Package/asterisk14-xip/Default/description) -Channel functions - app_chanisavail - app_channelredirect - app_chanspy - func_channel - app_softhangup - app_directed_pickup Pickup a (specific) ringing extensions - app_pickup2 Extended pickup -endef - -define Package/asterisk14-xip-debug -$(call Package/asterisk14-xip/Default) - TITLE:=Debugging tools - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-debug/description -$(call Package/asterisk14-xip/Default/description) -Debugging tools - app_echo - pbx_loopback - app_dumpchan Dump information about the calling channel - app_verbose - app_test AIX Server/client testing -endef - -define Package/asterisk14-xip-menu-misc -$(call Package/asterisk14-xip/Default) - TITLE:=Special menu applications - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-menu-misc/description -$(call Package/asterisk14-xip/Default/description) -Special menu applications - app_controlplayback - app_directory - app_dictate -endef - -define Package/asterisk14-xip-festival -$(call Package/asterisk14-xip/Default) - TITLE:=Festival support - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-festival/description -$(call Package/asterisk14-xip/Default/description) -Festival support - app_festival -endef - -define Package/asterisk14-xip-send-app -$(call Package/asterisk14-xip/Default) - TITLE:=Misc tone sending applications - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-send-app/description -$(call Package/asterisk14-xip/Default/description) -Misc tone sending applications - app_flash Send a flash - app_senddtmf Send dtmf - app_milliwatt - app_morsecode - app_zapateller Generate tone to block telemarketers -endef - -define Package/asterisk14-xip-followme -$(call Package/asterisk14-xip/Default) - TITLE:=Followme - Call forwarding - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-followme/description -$(call Package/asterisk14-xip/Default/description) -Followme - Call forwarding - app_followme -endef - - -define Package/asterisk14-xip-queues -$(call Package/asterisk14-xip/Default) - TITLE:=Call queues - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-queues/description -$(call Package/asterisk14-xip/Default/description) -Call queues - app_queue -endef - -define Package/asterisk14-xip-record -$(call Package/asterisk14-xip/Default) - TITLE:=Call recording - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-record/description -$(call Package/asterisk14-xip/Default/description) -Call recording - app_record - app_mixmonitor Records The audio on the current channel to the specified file. -endef - -define Package/asterisk14-xip-privacy -$(call Package/asterisk14-xip/Default) - TITLE:=Call Privacy - Prompt for unknown numbers. - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-privacy/description -$(call Package/asterisk14-xip/Default/description) -Call Privacy - Prompt for unknown numbers. - app_privacy Prompt for missing calling number -endef - -define Package/asterisk14-xip-ivr-util -$(call Package/asterisk14-xip/Default) - TITLE:=Utilities for creating IVR - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-ivr-util/description -$(call Package/asterisk14-xip/Default/description) -Utilities for creating IVR - app_read Read a DTMF response - app_authenticate Authenticate a user - app_externalivr IVR Using an External process. - app_disa Directed Inward Sysytem Access - Allow access to your internal dialplan with password -endef - - -define Package/asterisk14-xip-callerid -$(call Package/asterisk14-xip/Default) - TITLE:=Callerid related functions. - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-callerid/description -$(call Package/asterisk14-xip/Default/description) -Callerid related functions. - app_setcallerid - func_callerid - app_lookupblacklist - app_lookupcidname -endef - -define Package/asterisk14-xip-speech -$(call Package/asterisk14-xip/Default) - TITLE:=Interface to Speech recognition programs - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-speech/description -$(call Package/asterisk14-xip/Default/description) -Interface to Speech recognition programs - app_speech_utils - res_speech -endef - -define Package/asterisk14-xip-detect -$(call Package/asterisk14-xip/Default) - TITLE:=Detect coditions - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-detect/description -$(call Package/asterisk14-xip/Default/description) -Detect coditions - app_amd Answer machine detect - app_talkdetect - app_waitforring - app_waitforsilence -endef - -define Package/asterisk14-xip-controlflow -$(call Package/asterisk14-xip/Default) - TITLE:=Advanced Control Flow - DEPENDS:= +asterisk14-xip-core -endef - -define Package/asterisk14-xip-controlflow/description -$(call Package/asterisk14-xip/Default/description) -Advanced Control Flow - app_while - app_macro Dialplan Macros - app_stack Stack routines (Gosub, Return) -endef - - -CONFIGURE_ARGS+= \ - --without-curl \ - --without-curses \ - --with-gsm="$(STAGING_DIR)/usr" \ - --without-imap \ - --without-isdnnet \ - --without-kde \ - --without-misdn \ - --without-nbs \ - --with-ncurses="$(STAGING_DIR)/usr" \ - --without-netsnmp \ - --without-newt \ - --without-odbc \ - --without-ogg \ - --without-osptk \ - --with-popt="$(STAGING_DIR)/usr" \ - --without-pri \ - --without-qt \ - --without-radius \ - --without-spandsp \ - --without-suppserv \ - --without-tds \ - --without-termcap \ - --without-tinfo \ - --without-vorbis \ - --without-vpb \ - --with-z="$(STAGING_DIR)/usr" \ - -EXTRA_CFLAGS:= $(TARGET_CPPFLAGS) -EXTRA_LDFLAGS:= $(TARGET_LDFLAGS) - -ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk14-xip-app-meetme),) - CONFIGURE_ARGS+= \ - --with-tonezone="$(STAGING_DIR)/usr" --with-zaptel="$(STAGING_DIR)/usr" -else - CONFIGURE_ARGS+= \ - --without-tonezone --without-zaptel -endif - -ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk14-xip-chan-alsa),) - CONFIGURE_ARGS+= \ - --with-asound="$(STAGING_DIR)/usr" -else - CONFIGURE_ARGS+= \ - --without-asound -endif - -ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk14-xip-chan-oss),) - CONFIGURE_ARGS+= \ - --with-oss -else - CONFIGURE_ARGS+= \ - --without-oss -endif - -ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk14-xip-chan-gtalk),) - CONFIGURE_ARGS+= \ - --with-gnutls="$(STAGING_DIR)/usr" \ - --with-iksemel="$(STAGING_DIR)/usr" - SITE_VARS+= \ - ac_cv_lib_iksemel_iks_start_sasl=yes \ - ac_cv_lib_gnutls_gnutls_bye=yes -else - CONFIGURE_ARGS+= \ - --without-gnutls \ - --without-iksemel -endif - -ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk14-xip-chan-h323),) - CONFIGURE_ARGS+= \ - --with-h323="$(BUILD_DIR)/openh323" \ - --with-pwlib="$(BUILD_DIR)/pwlib" - CONFIGURE_VARS+= \ - LIBS="$$$$LIBS -luClibc++ -ldl -lpthread" - - define Build/Compile/chan-h323 - $(MAKE) -C "$(PKG_BUILD_DIR)/channels/h323" \ - $(TARGET_CONFIGURE_OPTS) \ - CXXLIBS="-nodefaultlibs -luClibc++" \ - optnoshared - endef -else - CONFIGURE_ARGS+= \ - --without-h323 \ - --without-pwlib -endif - -ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk14-xip-codec-speex),) - CONFIGURE_ARGS+= \ - --with-speex="$(STAGING_DIR)/usr" - SITE_VARS+= \ - ac_cv_lib_speex_speex_encode=yes - EXTRA_CFLAGS+= -I$(STAGING_DIR)/usr/include/speex -else - CONFIGURE_ARGS+= \ - --without-speex -endif - -ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk14-xip-res-crypto),) - CONFIGURE_ARGS+= \ - --with-ssl="$(STAGING_DIR)/usr" -else - CONFIGURE_ARGS+= \ - --without-ssl -endif - -ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk14-xip-pgsql),) - CONFIGURE_ARGS+= \ - --with-postgres="$(STAGING_DIR)/usr" -else - CONFIGURE_ARGS+= \ - --without-postgres -endif - -ifneq ($(SDK)$(CONFIG_PACKAGE_asterisk14-xip-sqlite),) - CONFIGURE_ARGS+= \ - --with-sqlite="$(STAGING_DIR)/usr" -else - CONFIGURE_ARGS+= \ - --without-sqlite -endif - - -define Build/Configure - -rm $(PKG_BUILD_DIR)/menuselect.makeopts - ( cd $(PKG_BUILD_DIR); ./bootstrap.sh ) - $(call Build/Configure/Default,,$(SITE_VARS)) -endef - -define Build/Compile - $(MAKE) -C "$(PKG_BUILD_DIR)" \ - include/asterisk/version.h \ - include/asterisk/buildopts.h defaults.h \ - makeopts.embed_rules - $(call Build/Compile/chan-h323) - ASTCFLAGS="$(EXTRA_CFLAGS) -DLOW_MEMORY $(TARGET_CFLAGS)" \ - ASTLDFLAGS="$(EXTRA_LDFLAGS)" \ - $(MAKE) -C "$(PKG_BUILD_DIR)" \ - ASTVARLIBDIR="/usr/lib/asterisk" \ - NOISY_BUILD="1" \ - DEBUG="" \ - OPTIMIZE="" \ - DESTDIR="$(PKG_INSTALL_DIR)" \ - all install samples - $(SED) 's|/var/lib/asterisk|/usr/lib/asterisk|g' $(PKG_INSTALL_DIR)/etc/asterisk/musiconhold.conf - - $(TARGET_CC) -O2 $(PKG_BUILD_DIR)/contrib/utils/rawplayer.c -o $(PKG_BUILD_DIR)/rawplayer -endef - -define Build/InstallDev - mkdir -p $(1)/usr/include/asterisk/ - $(CP) $(PKG_INSTALL_DIR)/usr/include/asterisk/*.h $(1)/usr/include/asterisk/ - $(CP) $(PKG_INSTALL_DIR)/usr/include/asterisk.h $(1)/usr/include/ -endef - -define Package/asterisk14-xip-core/conffiles -/etc/asterisk/asterisk.conf -/etc/asterisk/codecs.conf -/etc/asterisk/dnsmgr.conf -/etc/asterisk/extconfig.conf -/etc/asterisk/extensions.conf -/etc/asterisk/http.conf -/etc/asterisk/indications.conf -/etc/asterisk/logger.conf -/etc/asterisk/manager.conf -/etc/asterisk/modules.conf -/etc/asterisk/say.conf -/etc/asterisk/sla.conf -/etc/asterisk/users.conf -endef - -define Package/asterisk14-xip-core/install - $(INSTALL_DIR) $(1)/etc/asterisk - for f in users.conf extensions.conf say.conf asterisk.conf codecs.conf dnsmgr.conf extconfig.conf http.conf indications.conf logger.conf sla.conf manager.conf ; do \ - $(CP) $(PKG_INSTALL_DIR)/etc/asterisk/$$$$f $(1)/etc/asterisk/ ; \ - done - $(INSTALL_DATA) ./files/modules.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk - $(INSTALL_DIR) $(1)/usr/lib/asterisk/keys - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in codec_gsm format_gsm pbx_config res_indications app_dial chan_local ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done - $(INSTALL_DIR) $(1)/usr/lib/asterisk/moh - $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds - $(INSTALL_DIR) $(1)/usr/sbin - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/asterisk $(1)/usr/sbin/ - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/safe_asterisk $(1)/usr/sbin/ - $(INSTALL_DIR) $(1)/etc/default - $(INSTALL_DATA) ./files/asterisk.default $(1)/etc/default/asterisk - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_BIN) ./files/asterisk.init $(1)/etc/init.d/asterisk - $(INSTALL_DIR) $(1)/usr/lib/asterisk/uci - $(CP) ./files/uci/* $1/usr/lib/asterisk/uci - $(INSTALL_DIR) $(1)/etc/asterisk/macros - $(CP) ./files/macros/* $1/etc/asterisk/macros -endef - -define Package/asterisk14-xip-core/postinst -#!/bin/sh -if [ -z "${IPKG_INSTROOT}" ] ; then - ROOT=/ -else - ROOT=`echo $${PKG_ROOT} | sed 's:[\/]:\\\&:g' -` -fi -/bin/sed -i 's/\ \/etc/\ '$${ROOT}'etc/g' $${PKG_ROOT}/etc/asterisk/asterisk.conf -/bin/sed -i 's/\ \/var\/spool/\ '$${ROOT}'var\/spool/g' $${PKG_ROOT}/etc/asterisk/asterisk.conf -/bin/sed -i 's/\ \/var\/log/\ '$${ROOT}'var\/log/g' $${PKG_ROOT}/etc/asterisk/asterisk.conf -/bin/sed -i 's/\ \/usr/\ '$${ROOT}'usr/g' $${PKG_ROOT}/etc/asterisk/asterisk.conf -/bin/sed -i 's/^DEST=/DEST='$${ROOT}'/g' $${PKG_ROOT}/etc/init.d/asterisk -/bin/sed -i 's/OPTIONS=\"\"/OPTIONS=\"-C\ '$${ROOT}'etc\/asterisk\/asterisk.conf\"/g' $${PKG_ROOT}/etc/default/asterisk -mkdir -p $${PKG_ROOT}/etc/asterisk/conf.d -cd $${PKG_ROOT}/etc/asterisk/conf.d -ln -s ../../../usr/lib/asterisk/uci/voicemailconf 10-voicemail -ln -s ../../../usr/lib/asterisk/uci/mohconf 15-moh -ln -s ../../../usr/lib/asterisk/uci/featureconf 20-features -ln -s ../../../usr/lib/asterisk/uci/lastcall 25-lastcall -ln -s ../../../usr/lib/asterisk/uci/meetmeconf 30-meetme -ln -s ../../../usr/lib/asterisk/uci/sipiaxconf 35-sipiax -ln -s ../../../usr/lib/asterisk/uci/talkclock 40-talkclock -ln -s ../../../usr/lib/asterisk/uci/voicemenu 45-voicemenu -ln -s ../../../usr/lib/asterisk/uci/disaconf 50-disaconf -endef - -define Package/asterisk14-xip/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk -endef - -define Package/asterisk14-xip-mini/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk -endef - -define Package/asterisk14-xip-app-meetme/conffiles -/etc/asterisk/meetme.conf -endef - -define Package/asterisk14-xip-app-meetme/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/meetme.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in app_meetme app_page ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done - $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/conf-* $(1)/usr/lib/asterisk/sounds/ -endef - - -define Package/asterisk14-xip-chan-oss/conffiles -/etc/asterisk/oss.conf -endef - -define Package/asterisk14-xip-chan-oss/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/oss.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_oss.so $(1)/usr/lib/asterisk/modules/ -endef - - -define Package/asterisk14-xip-app-meetme/conffiles -/etc/asterisk/meetme.conf -endef - -define Package/asterisk14-xip-app-meetme/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/meetme.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_meetme.so $(1)/usr/lib/asterisk/modules/ -endef - - -define Package/asterisk14-xip-chan-oss/conffiles -/etc/asterisk/oss.conf -endef - -define Package/asterisk14-xip-chan-oss/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/oss.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_oss.so $(1)/usr/lib/asterisk/modules/ -endef - - -define Package/asterisk14-xip-chan-alsa/conffiles -/etc/asterisk/alsa.conf -endef - -define Package/asterisk14-xip-chan-alsa/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/alsa.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_alsa.so $(1)/usr/lib/asterisk/modules/ -endef - - -define Package/asterisk14-xip-chan-gtalk/conffiles -/etc/asterisk/gtalk.conf -/etc/asterisk/jabber.conf -endef - -define Package/asterisk14-xip-chan-gtalk/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/gtalk.conf $(1)/etc/asterisk/ - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/jabber.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_gtalk.so $(1)/usr/lib/asterisk/modules/ - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_jabber.so $(1)/usr/lib/asterisk/modules/ -endef - - -define Package/asterisk14-xip-chan-h323/conffiles -/etc/asterisk/h323.conf -endef - -define Package/asterisk14-xip-chan-h323/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/h323.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_h323.so $(1)/usr/lib/asterisk/modules/ -endef - - -define Package/asterisk14-xip-chan-mgcp/install -/etc/asterisk/mgcp.conf -endef - -define Package/asterisk14-xip-chan-mgcp/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/mgcp.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_mgcp.so $(1)/usr/lib/asterisk/modules/ -endef - - -define Package/asterisk14-xip-chan-skinny/conffiles -/etc/asterisk/skinny.conf -endef - -define Package/asterisk14-xip-chan-skinny/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/skinny.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_skinny.so $(1)/usr/lib/asterisk/modules/ -endef - - -#define Package/asterisk14-xip-codec-ilbc/install -# $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules -# $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/codec_ilbc.so $(1)/usr/lib/asterisk/modules/ -# $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/format_ilbc.so $(1)/usr/lib/asterisk/modules/ -#endef - - -define Package/asterisk14-xip-codec-lpc10/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/codec_lpc10.so $(1)/usr/lib/asterisk/modules/ -endef - - -define Package/asterisk14-xip-codec-speex/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/codec_speex.so $(1)/usr/lib/asterisk/modules/ -endef - - -define Package/asterisk14-xip-pbx-dundi/conffiles -/etc/asterisk/dundi.conf -endef - -define Package/asterisk14-xip-pbx-dundi/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/dundi.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/pbx_dundi.so $(1)/usr/lib/asterisk/modules/ -endef - - -define Package/asterisk14-xip-res-agi/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/agi-bin - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_agi.so $(1)/usr/lib/asterisk/modules/ -endef - - -define Package/asterisk14-xip-res-crypto/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_crypto.so $(1)/usr/lib/asterisk/modules/ -endef - - -define Package/asterisk14-xip-pgsql/conffiles -/etc/asterisk/cdr_pgsql.conf -/etc/asterisk/res_pgsql.conf -endef - -define Package/asterisk14-xip-pgsql/install - $(INSTALL_DIR) $(1)/etc/asterisk - install -m0600 $(PKG_INSTALL_DIR)/etc/asterisk/cdr_pgsql.conf $(1)/etc/asterisk/ - install -m0600 $(PKG_INSTALL_DIR)/etc/asterisk/res_pgsql.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/cdr_pgsql.so $(1)/usr/lib/asterisk/modules/ - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_config_pgsql.so $(1)/usr/lib/asterisk/modules/ -endef - - -define Package/asterisk14-xip-sqlite/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/cdr_sqlite.so $(1)/usr/lib/asterisk/modules/ -endef - -define Package/asterisk14-xip-sounds/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/* $(1)/usr/lib/asterisk/sounds/ - rm -f $(1)/usr/lib/asterisk/sounds/vm-* - rm -f $(1)/usr/lib/asterisk/sounds/x - rm -f $(1)/usr/lib/asterisk/sounds/dir-* - rm -f $(1)/usr/lib/asterisk/sounds/dictate/* - rm -f $(1)/usr/lib/asterisk/sounds/followme/* - rm -f $(1)/usr/lib/asterisk/sounds/conf-* - rm -f $(1)/usr/lib/asterisk/sounds/queue-* - rm -f $(1)/usr/lib/asterisk/sounds/priv* - rm -f $(1)/usr/lib/asterisk/sounds/auth-* - rm -f $(1)/usr/lib/asterisk/sounds/agent-* - rm -f $(1)/usr/lib/asterisk/sounds/tt-* - rm -f $(1)/usr/lib/asterisk/sounds/demo-* -endef - -define Package/asterisk14-xip-voicemail/conffiles -/etc/asterisk/voicemail.conf -endef - -define Package/asterisk14-xip-voicemail/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/voicemail.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/*voicemail.so $(1)/usr/lib/asterisk/modules/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/vm-*.gsm $(1)/usr/lib/asterisk/sounds/ -endef - -define Package/asterisk14-xip-rawplayer/install - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/rawplayer \ - $(1)/usr/bin -endef - -define Package/asterisk14-xip-agents/conffiles -/etc/asterisk/agents.conf -endef - -define Package/asterisk14-xip-agents/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/agents.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_agent.so $(1)/usr/lib/asterisk/modules/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/agent-* $(1)/usr/lib/asterisk/sounds/ -endef - -define Package/asterisk14-xip-iax/conffiles -/etc/asterisk/iax.conf -/etc/asterisk/iaxprov.conf -endef - -define Package/asterisk14-xip-iax/install - $(INSTALL_DIR) $(1)/etc/asterisk - for f in iax.conf iaxprov.conf ; do \ - $(CP) $(PKG_INSTALL_DIR)/etc/asterisk/$$$$f $(1)/etc/asterisk/ ; \ - done - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_iax2.so $(1)/usr/lib/asterisk/modules/ -endef - -define Package/asterisk14-xip-sip/conffiles -/etc/asterisk/sip.conf -/etc/asterisk/sip_notify.conf -/etc/asterisk/rtp.conf -/etc/asterisk/udptl.conf -endef - -define Package/asterisk14-xip-sip/install - $(INSTALL_DIR) $(1)/etc/asterisk - for f in sip.conf sip_notify.conf rtp.conf udptl.conf ; do \ - $(CP) $(PKG_INSTALL_DIR)/etc/asterisk/$$$$f $(1)/etc/asterisk/ ; \ - done - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/chan_sip.so $(1)/usr/lib/asterisk/modules/ -endef - -define Package/asterisk14-xip-codec-wav/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in codec_adpcm format_pcm format_wav_gsm format_wav ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-codec-ualaw/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in codec_alaw codec_a_mu codec_ulaw ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-format-misc/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in format_sln format_vox format_ilbc ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-format-licensed/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in format_g726 format_g723 format_g729 ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-codec-g726/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/codec_g726.so $(1)/usr/lib/asterisk/modules/ -endef - -define Package/asterisk14-xip-format-video/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in format_h263 format_h264 ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-variables/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in func_db func_global func_env func_timeout ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-enum/conffiles -/etc/asterisk/enum.conf -endef - -define Package/asterisk14-xip-enum/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/enum.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/func_enum.so $(1)/usr/lib/asterisk/modules/ -endef - -define Package/asterisk14-xip-basic/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in func_logic func_math func_strings func_rand func_cut ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-encode/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in func_base64 func_md5 func_sha1 func_uri ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-realtime/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in func_realtime pbx_realtime app_realtime ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-ael/conffiles -/etc/asterisk/extensions.ael -endef - -define Package/asterisk14-xip-ael/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/extensions.ael $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/pbx_ael.so $(1)/usr/lib/asterisk/modules/ - $(INSTALL_DIR) $(1)/usr/sbin - $(CP) $(PKG_INSTALL_DIR)/usr/sbin/aelparse $(1)/usr/sbin/ -endef - -define Package/asterisk14-xip-adsi/conffiles -/etc/asterisk/adsi.conf -endef - -define Package/asterisk14-xip-adsi/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/adsi.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in res_adsi app_adsiprog ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-features/conffiles -/etc/asterisk/features.conf -endef - -define Package/asterisk14-xip-features/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/features.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in res_features app_transfer app_parkandannounce res_monitor ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-moh/conffiles -/etc/asterisk/musiconhold.conf -endef - -define Package/asterisk14-xip-moh/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/musiconhold.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in res_musiconhold func_moh ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done - $(INSTALL_DIR) $(1)/usr/sbin - $(CP) $(PKG_INSTALL_DIR)/usr/sbin/streamplayer $(1)/usr/sbin/ -endef - -define Package/asterisk14-xip-smdi/conffiles -/etc/asterisk/smdi.conf -endef - -define Package/asterisk14-xip-smdi/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/smdi.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/res_smdi.so $(1)/usr/lib/asterisk/modules/ -endef - -define Package/asterisk14-xip-sounds-tt/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/tt-* $(1)/usr/lib/asterisk/sounds/ -endef - -define Package/asterisk14-xip-sounds-demo/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/demo-* $(1)/usr/lib/asterisk/sounds/ -endef - -define Package/asterisk14-xip-linejack/conffiles -/etc/asterisk/phone.conf -endef - -define Package/asterisk14-xip-linejack/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/phone.conf $(1)/etc/asterisk/ -endef - -define Package/asterisk14-xip-app-misc/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in app_random app_sayunixtime app_sendtext app_url app_readfile app_system app_exec ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-image/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in app_image format_jpeg ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-sms/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_sms.so $(1)/usr/lib/asterisk/modules/ - $(INSTALL_DIR) $(1)/usr/sbin - $(CP) $(PKG_INSTALL_DIR)/usr/sbin/smsq $(1)/usr/sbin/ -endef - -define Package/asterisk14-xip-icecast/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_ices.so $(1)/usr/lib/asterisk/modules/ -endef - -define Package/asterisk14-xip-mp3/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_mp3.so $(1)/usr/lib/asterisk/modules/ -endef - -define Package/asterisk14-xip-cli/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in app_userevent res_clioriginate res_convert ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-isdn/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_settransfercapability.so $(1)/usr/lib/asterisk/modules/ -endef - -define Package/asterisk14-xip-deprecated/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_db.so $(1)/usr/lib/asterisk/modules/ -endef - -define Package/asterisk14-xip-groups/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/func_groupcount.so $(1)/usr/lib/asterisk/modules/ -endef - -define Package/asterisk14-xip-language/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/func_language.so $(1)/usr/lib/asterisk/modules/ -endef - -define Package/asterisk14-xip-spool/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/pbx_spool.so $(1)/usr/lib/asterisk/modules/ -endef - -define Package/asterisk14-xip-nbs/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_nbscat.so $(1)/usr/lib/asterisk/modules/ -endef - -define Package/asterisk14-xip-alarmreceiver/conffiles -/etc/asterisk/alarmreceiver.conf -endef - -define Package/asterisk14-xip-alarmreceiver/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/alarmreceiver.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_alarmreceiver.so $(1)/usr/lib/asterisk/modules/ -endef - -define Package/asterisk14-xip-cdr/conffiles -/etc/asterisk/cdr.conf -/etc/asterisk/cdr_custom.conf -/etc/asterisk/cdr_manager.conf -endef - -define Package/asterisk14-xip-cdr/install - $(INSTALL_DIR) $(1)/etc/asterisk - for f in cdr.conf cdr_custom.conf cdr_manager.conf ; do \ - $(CP) $(PKG_INSTALL_DIR)/etc/asterisk/$$$$f $(1)/etc/asterisk/ ; \ - done - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in app_cdr app_forkcdr app_setcdruserfield cdr_csv cdr_custom cdr_manager func_cdr ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-channel/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in app_chanisavail app_channelredirect app_chanspy func_channel app_softhangup app_directed_pickup app_pickup2 ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-debug/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in app_echo pbx_loopback app_dumpchan app_verbose app_test ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-menu-misc/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in app_controlplayback app_directory app_dictate ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done - $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds - for f in dir-* dictate/* ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/$$$$f $(1)/usr/lib/asterisk/sounds/ ; \ - done -endef - -define Package/asterisk14-xip-festival/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_festival.so $(1)/usr/lib/asterisk/modules/ -endef - -define Package/asterisk14-xip-send-app/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in app_flash app_senddtmf app_milliwatt app_morsecode app_zapateller ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-followme/conffiles -/etc/asterisk/followme.conf -endef - -define Package/asterisk14-xip-followme/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/followme.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_followme.so $(1)/usr/lib/asterisk/modules/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/followme/* $(1)/usr/lib/asterisk/sounds/ -endef - -define Package/asterisk14-xip-queues/conffiles -/etc/asterisk/queues.conf -endef - -define Package/asterisk14-xip-queues/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/queues.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_queue.so $(1)/usr/lib/asterisk/modules/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/queue-* $(1)/usr/lib/asterisk/sounds/ -endef - -define Package/asterisk14-xip-record/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in app_record app_mixmonitor ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-privacy/conffiles -/etc/asterisk/privacy.conf -endef - -define Package/asterisk14-xip-privacy/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/privacy.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/app_privacy.so $(1)/usr/lib/asterisk/modules/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/priv* $(1)/usr/lib/asterisk/sounds/ -endef - -define Package/asterisk14-xip-ivr-util/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in app_read app_authenticate app_externalivr app_disa ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done - $(INSTALL_DIR) $(1)/usr/lib/asterisk/sounds - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/sounds/auth-* $(1)/usr/lib/asterisk/sounds/ -endef - -define Package/asterisk14-xip-callerid/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in app_setcallerid func_callerid app_lookupblacklist app_lookupcidname ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-speech/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in app_speech_utils res_speech ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-detect/conffiles -/etc/asterisk/amd.conf -endef - -define Package/asterisk14-xip-detect/install - $(INSTALL_DIR) $(1)/etc/asterisk - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/asterisk/amd.conf $(1)/etc/asterisk/ - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in app_amd app_talkdetect app_waitforring app_waitforsilence ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-controlflow/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in app_while app_macro app_stack ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done -endef - -define Package/asterisk14-xip-zaptel/install - $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules - for f in chan_zap app_zapbarge app_zapscan codec_zap app_getcpeid app_zapras ; do \ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$$$f.so $(1)/usr/lib/asterisk/modules/ ; \ - done - $(INSTALL_DIR) $(1)/usr/lib/asterisk - $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/firmware $(1)/usr/lib/asterisk/ -endef - -$(eval $(call BuildPackage,asterisk14-xip-core)) -$(eval $(call BuildPackage,asterisk14-xip)) -$(eval $(call BuildPackage,asterisk14-xip-mini)) -$(eval $(call BuildPackage,asterisk14-xip-app-meetme)) -$(eval $(call BuildPackage,asterisk14-xip-chan-oss)) -$(eval $(call BuildPackage,asterisk14-xip-chan-alsa)) -$(eval $(call BuildPackage,asterisk14-xip-chan-gtalk)) -$(eval $(call BuildPackage,asterisk14-xip-chan-h323)) -$(eval $(call BuildPackage,asterisk14-xip-chan-mgcp)) -$(eval $(call BuildPackage,asterisk14-xip-chan-skinny)) -#$(eval $(call BuildPackage,asterisk14-xip-codec-ilbc)) -$(eval $(call BuildPackage,asterisk14-xip-codec-lpc10)) -$(eval $(call BuildPackage,asterisk14-xip-codec-speex)) -$(eval $(call BuildPackage,asterisk14-xip-pbx-dundi)) -$(eval $(call BuildPackage,asterisk14-xip-res-agi)) -$(eval $(call BuildPackage,asterisk14-xip-res-crypto)) -$(eval $(call BuildPackage,asterisk14-xip-pgsql)) -$(eval $(call BuildPackage,asterisk14-xip-sqlite)) -$(eval $(call BuildPackage,asterisk14-xip-voicemail)) -$(eval $(call BuildPackage,asterisk14-xip-sounds)) -$(eval $(call BuildPackage,asterisk14-xip-rawplayer)) -$(eval $(call BuildPackage,asterisk14-xip-agents)) -$(eval $(call BuildPackage,asterisk14-xip-iax)) -$(eval $(call BuildPackage,asterisk14-xip-sip)) -$(eval $(call BuildPackage,asterisk14-xip-codec-wav)) -$(eval $(call BuildPackage,asterisk14-xip-codec-ualaw)) -$(eval $(call BuildPackage,asterisk14-xip-format-misc)) -$(eval $(call BuildPackage,asterisk14-xip-format-licensed)) -$(eval $(call BuildPackage,asterisk14-xip-codec-g726)) -$(eval $(call BuildPackage,asterisk14-xip-format-video)) -$(eval $(call BuildPackage,asterisk14-xip-variables)) -$(eval $(call BuildPackage,asterisk14-xip-enum)) -$(eval $(call BuildPackage,asterisk14-xip-basic)) -$(eval $(call BuildPackage,asterisk14-xip-encode)) -$(eval $(call BuildPackage,asterisk14-xip-realtime)) -$(eval $(call BuildPackage,asterisk14-xip-ael)) -$(eval $(call BuildPackage,asterisk14-xip-adsi)) -$(eval $(call BuildPackage,asterisk14-xip-features)) -$(eval $(call BuildPackage,asterisk14-xip-moh)) -$(eval $(call BuildPackage,asterisk14-xip-smdi)) -$(eval $(call BuildPackage,asterisk14-xip-sounds-tt)) -$(eval $(call BuildPackage,asterisk14-xip-sounds-demo)) -$(eval $(call BuildPackage,asterisk14-xip-linejack)) -$(eval $(call BuildPackage,asterisk14-xip-app-misc)) -$(eval $(call BuildPackage,asterisk14-xip-image)) -$(eval $(call BuildPackage,asterisk14-xip-sms)) -$(eval $(call BuildPackage,asterisk14-xip-icecast)) -$(eval $(call BuildPackage,asterisk14-xip-mp3)) -$(eval $(call BuildPackage,asterisk14-xip-cli)) -$(eval $(call BuildPackage,asterisk14-xip-isdn)) -$(eval $(call BuildPackage,asterisk14-xip-deprecated)) -$(eval $(call BuildPackage,asterisk14-xip-groups)) -$(eval $(call BuildPackage,asterisk14-xip-language)) -$(eval $(call BuildPackage,asterisk14-xip-spool)) -$(eval $(call BuildPackage,asterisk14-xip-nbs)) -$(eval $(call BuildPackage,asterisk14-xip-alarmreceiver)) -$(eval $(call BuildPackage,asterisk14-xip-cdr)) -$(eval $(call BuildPackage,asterisk14-xip-channel)) -$(eval $(call BuildPackage,asterisk14-xip-debug)) -$(eval $(call BuildPackage,asterisk14-xip-menu-misc)) -$(eval $(call BuildPackage,asterisk14-xip-festival)) -$(eval $(call BuildPackage,asterisk14-xip-send-app)) -$(eval $(call BuildPackage,asterisk14-xip-followme)) -$(eval $(call BuildPackage,asterisk14-xip-queues)) -$(eval $(call BuildPackage,asterisk14-xip-record)) -$(eval $(call BuildPackage,asterisk14-xip-privacy)) -$(eval $(call BuildPackage,asterisk14-xip-ivr-util)) -$(eval $(call BuildPackage,asterisk14-xip-callerid)) -$(eval $(call BuildPackage,asterisk14-xip-speech)) -$(eval $(call BuildPackage,asterisk14-xip-detect)) -$(eval $(call BuildPackage,asterisk14-xip-controlflow)) - - -#asterisk14-xip-core=codec_gsm format_gsm pbx_config res_indications app_dial chan_local -#asterisk14-xip-agents=chan_agent -#asterisk14-xip-iax=chan_iax2 -#asterisk14-xip-sip=chan_sip -#asterisk14-xip-codec-wav=codec_adpcm format_pcm format_wav_gsm format_wav -#asterisk14-xip-codec-ualaw=codec_alaw codec_a_mu codec_ulaw -#asterisk14-xip-format-misc=format_sln format_vox format_ilbc -#asterisk14-xip-format-licensed=format_g726 format_g723 format_g729 -#asterisk14-xip-codec-g726=codec_g726 -#asterisk14-xip-format-video=format_h263 format_h264 -#asterisk14-xip-variables=func_db func_global func_env func_timeout -#asterisk14-xip-enum=func_enum -#asterisk14-xip-pbx-dundi=pbx_dundi -#asterisk14-xip-basic=func_logic func_math func_strings func_rand func_cut -#asterisk14-xip-encode=func_base64 func_md5 func_sha1 func_uri -#asterisk14-xip-realtime=func_realtime pbx_realtime app_realtime -#asterisk14-xip-ael=pbx_ael -#asterisk14-xip-adsi=res_adsi app_adsiprog -#asterisk14-xip-features=res_features app_transfer app_parkandannounce res_monitor -#asterisk14-xip-moh=res_musiconhold func_moh -#asterisk14-xip-smdi=res_smdi -#asterisk14-xip-app-misc=app_random app_sayunixtime app_sendtext app_url app_readfile app_system app_exec -#asterisk14-xip-image=app_image format_jpeg -#asterisk14-xip-sms=app_sms -#asterisk14-xip-icecast=app_ices -#asterisk14-xip-mp3=app_mp3 -#asterisk14-xip-cli=app_userevent res_clioriginate res_convert -#asterisk14-xip-isdn=app_settransfercapability -#asterisk14-xip-deprecated=app_db -#asterisk14-xip-groups=func_groupcount -#asterisk14-xip-language=func_language -#asterisk14-xip-spool=pbx_spool -#asterisk14-xip-nbs=app_nbscat -#asterisk14-xip-alarmreceiver=app_alarmreceiver -#asterisk14-xip-cdr=app_cdr app_forkcdr app_setcdruserfield cdr_csv cdr_custom cdr_manager func_cdr -#asterisk14-xip-channel=app_chanisavail app_channelredirect app_chanspy func_channel app_softhangup app_directed_pickup -#asterisk14-xip-debug=app_echo pbx_loopback app_dumpchan app_verbose app_test -#asterisk14-xip-menu-misc=app_controlplayback app_directory app_dictate -#asterisk14-xip-festival=app_festival -#asterisk14-xip-send-app=app_flash app_senddtmf app_milliwatt app_morsecode app_zapateller -#asterisk14-xip-followme=app_followme -#asterisk14-xip-app-meetme=app_meetme app_page -#asterisk14-xip-queues=app_queue -#asterisk14-xip-record=app_record app_mixmonitor -#asterisk14-xip-privacy=app_privacy -#asterisk14-xip-ivr-util=app_read app_authenticate app_externalivr app_disa -#asterisk14-xip-callerid=app_setcallerid func_callerid app_lookupblacklist app_lookupcidname -#asterisk14-xip-speech=app_speech_utils res_speech -#asterisk14-xip-detect=app_amd app_talkdetect app_waitforring app_waitforsilence -#asterisk14-xip-controlflow=app_while app_macro app_stack -#asterisk14-xip-zaptel=chan_zap app_zapbarge app_zapscan codec_zap app_getcpeid app_zapras -#asterisk14-xip-chan-oss=chan_oss -#asterisk14-xip-chan-alsa=chan_alsa -#asterisk14-xip-chan-gtalk=chan_gtalk res_jabber -#asterisk14-xip-chan-h323=chan_h323 -#asterisk14-xip-chan-mgcp=chan_mgcp -#asterisk14-xip-chan-skinny=chan_skinny -#asterisk14-xip-chan-lpc10=chan_lpc10 -#asterisk14-xip-codec-speex=codec_speex -#asterisk14-xip-res-agi=res_agi -#asterisk14-xip-res-crypto=res_crypto -#asterisk14-xip-pgsql=cdr_pgsql res_config_pgsql -#asterisk14-xip-sqlite=cdr_sqlite -#asterisk14-xip-voicemail=app_hasnewvoicemail app_voicemail diff --git a/contrib/package/asterisk-xip/files/asterisk.default b/contrib/package/asterisk-xip/files/asterisk.default deleted file mode 100644 index 5468d324d6..0000000000 --- a/contrib/package/asterisk-xip/files/asterisk.default +++ /dev/null @@ -1,4 +0,0 @@ -## startup options for /etc/init.d/asterisk - -ENABLE_ASTERISK="uci" -OPTIONS="" diff --git a/contrib/package/asterisk-xip/files/asterisk.init b/contrib/package/asterisk-xip/files/asterisk.init deleted file mode 100755 index b2acd2aa83..0000000000 --- a/contrib/package/asterisk-xip/files/asterisk.init +++ /dev/null @@ -1,127 +0,0 @@ -#!/bin/sh /etc/rc.common -# Copyright (C) 2006 OpenWrt.org -START=50 -STOP=50 - -DEST= -OPTIONS="" -DEFAULT=$DEST/etc/default/asterisk -UCILIB=$DEST/usr/lib/asterisk/uci -EXTRAPARAM=$1 - -export EXTRA_COMMANDS="console check down" -export EXTRA_HELP="\ - console Start asterisk console - check Test asterisk uci config - down Force asterisk to stop" - -reboot_ata() { - cd /tmp - wget -q http://ata.lan/admin/reboot -O - >&- 2>&- -} - -load_ucilib() . ${UCILIB}/asteriskuci - -start_uci() { - load_ucilib - - start_uci_asterisk $DEST -} -restart_uci() { - load_ucilib - - restart_uci_asterisk $DEST -} - -stop_uci() { - load_ucilib - - stop_uci_asterisk $DEST -} -reload_uci() { - load_ucilib - - reload_uci_asterisk "$DEST" -} - -start() { - [ -f $DEFAULT ] && . $DEFAULT - case ${ENABLE_ASTERISK-no} in - uci) start_uci ;; - yes) - # Handle zappseudo in the wrong place. - [ -e /dev/zappseudo ] && [ ! -d /dev/zap -o ! -e /dev/zap/pseudo ] && mkdir -p /dev/zap && ln -s /dev/zappseudo /dev/zap/pseudo - [ -d /var/run ] || mkdir -p /var/run - [ -d $DEST/var/log/asterisk ] || mkdir -p $DEST/var/log/asterisk - [ -d $DEST/var/spool/asterisk ] || mkdir -p $DEST/var/spool/asterisk - [ -d /var/spool/asterisk ] || mkdir -p /var/spool/asterisk - [ -h $DEST/usr/lib/asterisk/astdb ] || ln -sf /var/spool/asterisk/astdb $DEST/usr/lib/asterisk/astdb - $DEST/usr/sbin/asterisk $OPTIONS -f 2>&1 > $DEST/var/log/asterisk/asterisk_proc & - ( sleep 5; reboot_ata ) & - ;; - *) return 1 ;; - esac -} - -stop() { - [ -f $DEFAULT ] && . $DEFAULT - case ${ENABLE_ASTERISK} in - uci) stop_uci ;; - *) [ -f /var/run/asterisk.pid ] && kill $(cat /var/run/asterisk.pid) 2>&- >&- - esac -} - -console() { - [ -f $DEFAULT ] && . $DEFAULT - case ${ENABLE_ASTERISK} in - uci) $DEST/usr/sbin/asterisk $UCIOPTIONS -C /tmp/asterisk/asterisk.conf -r ;; - yes) $DEST/usr/sbin/asterisk $OPTIONS -r ;; - esac - -} -check() { - load_ucilib - - setup_asterisk "$DEST" test "$EXTRAPARAM" -} - -reload() { - [ -f $DEFAULT ] && . $DEFAULT - case ${ENABLE_ASTERISK-no} in - uci) reload_uci ;; - yes) restart ;; - esac - -} - -restart() { - [ -f $DEFAULT ] && . $DEFAULT - case ${ENABLE_ASTERISK-no} in - uci) restart_uci ;; - yes) - if [ -r /var/run/asterisk.ctl ] ; then - if $DEST/usr/sbin/asterisk -r -x "restart gracefully" 2>&- >&- ; then - echo "Restarting when convenient" - return 0 - fi - fi - stop - start - esac -} - -down() { - if [ -r /var/run/asterisk.ctl ] ; then - [ -f $DEFAULT ] && . $DEFAULT - case ${ENABLE_ASTERISK} in - uci) $DEST/usr/sbin/asterisk -C /tmp/asterisk/asterisk.conf -r -x "stop now" 2>&- >&- ;; - *) $DEST/usr/sbin/asterisk $OPTIONS -r -x "stop now" 2>&- >&- - esac - [ -f /var/run/asterisk.pid ] && sleep 1 - fi - [ -f /var/run/asterisk.pid ] && kill $(cat /var/run/asterisk.pid) 2>&- >&- - [ -f /var/run/asterisk.pid ] && sleep 2 - [ -f /var/run/asterisk.pid ] && kill -9 $(cat /var/run/asterisk.pid) 2>&- >&- -} - -# vim:ts=2 sw=2 diff --git a/contrib/package/asterisk-xip/files/macros/clock.conf b/contrib/package/asterisk-xip/files/macros/clock.conf deleted file mode 100644 index 3250b396a8..0000000000 --- a/contrib/package/asterisk-xip/files/macros/clock.conf +++ /dev/null @@ -1,23 +0,0 @@ -; Talking clock by Michael Geddes -; Borrowed from bits here and there. -[macro-talkingclock] ; (TimeFormat, DateFormat, Zone) -exten => s,1,Answer -exten => s,n,set(tcTimeFormat=${ARG1}) -exten => s,n,GotoIf($["${tcTimeFormat}" = ""]?:tfOK) -exten => s,n,set(tcTimeFormat=HM\'vm-and\'S\'seconds\') -exten => s,n(tfOK),set(tcDateFormat=${ARG2}) -exten => s,n,GotoIf($["${tcDateFormat}" = ""]?:dfOK) -exten => s,n,set(tcDateFormat=AdBY) -exten => s,n(dfOK),set(tcZone=${ARG3}) -exten => s,n,GotoIf($["${tcZone}" = ""]?:znOK) -exten => s,n,set(tcZone=${TalkingClockZone}) -exten => s,n(znOK),SayUnixTime(,${tcZone},${tcDateFormat}) -exten => s,n(again),Wait(2) -exten => s,n,Set(FutureTime=$[${EPOCH} + 6]) -exten => s,n,Playback(misc/at-tone-time-exactly) -exten => s,n,SayUnixTime(${FutureTime},${tcZone},${tcTimeFormat}) -; Wait to say the beep. -exten => s,n(waitforit),noop -exten => s,n,GotoIf($[ ${EPOCH} < ${FutureTime} ]?waitforit:) -exten => s,n,playback(beep) -exten => s,n,goto(again) diff --git a/contrib/package/asterisk-xip/files/macros/lastcall.conf b/contrib/package/asterisk-xip/files/macros/lastcall.conf deleted file mode 100644 index 172fd5e77e..0000000000 --- a/contrib/package/asterisk-xip/files/macros/lastcall.conf +++ /dev/null @@ -1,88 +0,0 @@ -; Last-Called number storage and calling. -; Author: Michael Geddes aka FrogOnWheels - -; depends: app_macro app_system app_record func_callerid -; app_sayunixtime app_playback func_db -; format_gsm codec_gsm -;[globals] -;LASTCALL_DIR=/etc/asterisk/directory - -[macro-lastcallstore] ; (Number , EntryType, BufferSize) -exten => s,1,set(lcsName=lastcall) -exten => s,n,set(lcsCount=10) -exten => s,n,GotoIf($["${ARG2}" = ""]?blankarg) -exten => s,n,GotoIf($["${ARG2}" = "lastcall"]?blankarg) -exten => s,n,Set(lcsName=lastcall_${ARG2}) -exten => s,n(blankarg),GotoIf($["${ARG3}" = ""]?nocount) -exten => s,n,Set(lcsCount=${ARG3}) -exten => s,n(nocount),Noop(${lcsName}:${DB(${lcsName}/number1)}:${ARG1}) -exten => s,n,GotoIf($["${DB(${lcsName}/number1)}" = "${ARG1}"]?setdate) -exten => s,n,set(CallerPointer=1) - -exten => s,n(again),GotoIf($["${DB(${lcsName}/ddate${CallerPointer})}" = ""]?copynext) -exten => s,n,GotoIf($["${DB(${lcsName}/number${CallerPointer})}" = "${ARG1}"]?copynext) -exten => s,n,Set(CallerPointer=$[${CallerPointer}+1]) -exten => s,n,GotoIf($[${CallerPointer} <= ${lcsCount}]?again) - -exten => s,n(copynext),set(DB(${lcsName}/ddate$[${CallerPointer}])=${DB(${lcsName}/ddate$[${CallerPointer}-1])}) -exten => s,n,set(DB(${lcsName}/number$[${CallerPointer}])=${DB(${lcsName}/number$[${CallerPointer}-1])}) -exten => s,n,set(CallerPointer=$[${CallerPointer}-1]) -exten => s,n,GotoIf($[${CallerPointer} > 0]?copynext) -exten => s,n,set(DB(${lcsName}/number1)=${ARG1}) -exten => s,n(setdate),set(DB(${lcsName}/ddate1)=${EPOCH}) - -[macro-lastcallapp] ; (Entrytype, Count, RingContext, Tag) -exten => s,1,set(lcsName=lastcall) -exten => s,n,set(lcsCount=10) -exten => s,n,GotoIf($["${ARG1}" = ""]?blankName) -exten => s,n,Set(lcsName=lastcall_${ARG1}) -exten => s,n(blankName),GotoIf($["${ARG2}" = ""]?nocount) -exten => s,n,Set(lcsCount=${ARG2}) -exten => s,n(nocount),set(lcsCallContext=internal) -exten => s,n,GotoIf($["${ARG3}" = ""]?blankContext) -exten => s,n,Set(lcsCallContext=${ARG3}) -exten => s,n(blankContext),set(lcsTag=${ARG4}) -exten => s,n,GotoIf($["${lcsTag}" != ""]?hasTag) -exten => s,n,Set(lcsTag=lastcall/previous-numbers) -exten => s,n(hasTag),Set(lcsPointer=1) -exten => s,n,GotoIf($["${DB(${lcsName}/ddate1)}" != ""]?macrobody_lastcallapp|s|1) -exten => s,n,playback(${lcsTag}&lastcall/none-available) -[macrobody_lastcallapp] -exten => s,1(repeat),Background(${lcsTag}) -exten => s,n(again),wait(1) -exten => s,n,Set(lcsLastnum=${DB(${lcsName}/number${lcsPointer})}) -exten => s,n,Set(ddate=${DB(${lcsName}/ddate${lcsPointer})}) -exten => s,n,Set(lcsLastDate=${DB(${lcsName}/ddate$[ ${lcsPointer} + 1])}) -exten => s,n,GotoIf($["${lcsLastnum}" != "anonymous"]?checkblank) -exten => s,n,Set(lcsLastnum="") -exten => s,n(checkblank),GotoIf($["${lcsLastnum}" = ""]?noinfo) -exten => s,n,Macro(backgroundtagnumber,${lcsLastnum},${LASTCALL_DIR}) -exten => s,n,wait(.5) -exten => s,n,sayunixtime(${ddate},${LASTCALLZONE},QIMp) -exten => s,n(saymenu),background(silence/1) -exten => s,n,GotoIf($[$[${lcsPointer} = ${lcsCount}] | $["${lcsLastDate}" = ""]]?noprev) -exten => s,n,background(lastcall/next) -exten => s,n(noprev),GotoIf($["${lcsLastnum}" = ""]?nocall) -exten => s,n,background(lastcall/call-number) -exten => s,n,background(lastcall/tag-number) -exten => s,n(nocall),GotoIf($[${lcsPointer} = 1]?nonext) -exten => s,n,background(lastcall/previous) -exten => s,n(nonext),background(silence/10) -exten => s,n,Goto(repeat) -exten => s,n(noinfo),background(lastcall/no-number-info) -exten => s,n,goto(saycalltime) -exten => 5,1,GotoIf($["${lcsLastnum}" = ""]?noinfo]) -exten => 5,n,Ringing() -exten => 5,n,Goto(${lcsCallContext},${lcsLastnum},1) -exten => 6,1,GotoIf($[$[${lcsPointer} = ${lcsCount}] | $["${lcsLastDate}" = ""]]?sayn) -exten => 6,n,Set(lcsPointer=$[${lcsPointer} + 1]) -exten => 4,1,GotoIf($[${lcsPointer}=1]?sayn) -exten => 4,n,Set(lcsPointer=$[${lcsPointer} - 1]) -exten => _[46],n(sayn),Background(h-${lcsPointer}) -exten => _[46],n,goto(s|again) -exten => 7,1,GotoIf($["${lcsLastNum}" = ""]?noinfo]) -exten => 7,2,macro(tagnumber,${lcsLastNum},${LASTCALL_DIR}) -exten => 7,3,goto(s|again) -exten => i,1,Goto(s|again) -exten => t,1,playback(goodbye) -exten => t,n,Hangup diff --git a/contrib/package/asterisk-xip/files/macros/tagnumber.conf b/contrib/package/asterisk-xip/files/macros/tagnumber.conf deleted file mode 100644 index 6fc4557889..0000000000 --- a/contrib/package/asterisk-xip/files/macros/tagnumber.conf +++ /dev/null @@ -1,58 +0,0 @@ -; Number tagging -; Author: Michael Geddes aka FrogOnWheels - -; Depends: app_stack app_macro app_system - -[macro-tagnumber] ; Number / Tag Directory / Return -exten => s,1,Set(tagNumber=${ARG1}) -exten => s,n,Set(tagDirectory=${ARG2}) -exten => s,n,Set(tagRetContext=${MACRO_CONTEXT}) -exten => s,n,Set(tagRetExtn=${MACRO_EXTEN}) -exten => s,n,Set(tagRetPriority=$[${MACRO_PRIORITY} + 1]) -;exten => s,n,Set(tagReturn=${ARG3}) -;exten => s,n,Gosub(macrobody_tagnumber,s,1) -exten => s,n,Goto(macrobody_tagnumber,s,1) -exten => s,n(return),Noop(Returned) -[macrobody_tagnumber] -exten => s,1(again),Background(voicetag/recordname) -exten => s,n,Record(/tmp/tmprectag:gsm|2|5) -exten => s,n(askagain),Background(voicetag/tagfor) -exten => s,n,Macro(backgroundphone,${tagNumber}) -exten => s,n,Background(/tmp/tmprectag) -exten => s,n,Background(voicetag/confirmnumber) -exten => s,n,Background(voicetag/tryagain) -exten => s,n,Background(voicetag/cancelrecord) -exten => s,n,WaitExten(5) -exten => s,n,Goto(s|askagain) -exten => 1,1,System(mkdir -p ${tagDirectory}) -exten => 1,2,System(mv /tmp/tmprectag.gsm ${tagDirectory}/${tagNumber}.gsm) -exten => 1,3,Goto(${tagRetContext}|${tagRetExtn}|${tagRetPriority}) -exten => 2,1,Goto(s|again) -exten => 3,1,system(rm -f /tmp/tmprectag.gsm) -exten => 3,2,Goto(${tagRetContext}|${tagRetExtn}|${tagRetPriority}) -exten => h,1,system(rm -f /tmp/tmrectag.gsm) - -[macro-backgroundtagnumber] ; Number, directory -exten => s,1,TrySystem(test -f ${ARG2}/${ARG1}.gsm) -exten => s,n,GotoIf($[${SYSTEMSTATUS} != SUCCESS]?s-saynum|1) -exten => s,n,Background(${ARG2}/${ARG1}) -exten => s-saynum,1,Macro(backgroundphone,${ARG1}) - -; Say Phone number in the background -[macro-backgroundphone] -exten => s,1,Set(bgDigits=${ARG1}) -exten => s,n(loop),Set(bgDigit=${bgDigits:0:1}) -exten => s,n,GotoIf($["${bgDigits:0:3}" = "000"]?saythousand) -exten => s,n,GotoIf($["${bgDigits:0:2}" = "00"]?sayhundred) -exten => s,n,GotoIf($["${bgDigits}" = ""]?exitloop) -exten => s,n,Set(bgDigits=${bgDigits:1}) -exten => s,n,Background(digits/${bgDigit}) -exten => s,n,Goto(loop) -exten => s,n(saythousand),Background(digits/thousand) -exten => s,n,Set(bgDigits=${bgDigits:3}) -exten => s,n,Goto(loop) -exten => s,n(sayhundred),Background(digits/hundred) -exten => s,n,Set(bgDigits=${bgDigits:2}) -exten => s,n,Goto(loop) -exten => s,n(exitloop),NOOP - diff --git a/contrib/package/asterisk-xip/files/modules.conf b/contrib/package/asterisk-xip/files/modules.conf deleted file mode 100644 index ce12c82dcd..0000000000 --- a/contrib/package/asterisk-xip/files/modules.conf +++ /dev/null @@ -1,137 +0,0 @@ -; -; Asterisk configuration file -; -; Module Loader configuration file -; - -[modules] -autoload=yes -; -; Any modules that need to be loaded before the Asterisk core has been -; initialized (just after the logger has been initialized) can be loaded -; using 'preload'. This will frequently be needed if you wish to map all -; module configuration files into Realtime storage, since the Realtime -; driver will need to be loaded before the modules using those configuration -; files are initialized. -; -; An example of loading ODBC support would be: -;preload => res_odbc.so -;preload => res_config_odbc.so -; -noload => res_config_mysql.so ; -noload => res_crypto.so ; Cryptographic Digital Signatures -; load => res_features.so ; Call Parking Resource -noload => res_indications.so ; Indications Configuration -noload => res_monitor.so ; Call Monitoring Resource -; load => res_musiconhold.so ; Music On Hold Resource -noload => cdr_csv.so ; Comma Separated Values CDR Backend -noload => cdr_custom.so ; Customizable Comma Separated Values CDR Backend -noload => cdr_manager.so ; Asterisk Call Manager CDR Backend -noload => cdr_mysql.so ; MySQL CDR Backend -noload => cdr_pgsql.so ; PostgreSQL CDR Backend -noload => cdr_sqlite.so ; SQLite CDR Backend -noload => chan_alsa.so ; Channel driver for GTalk -noload => chan_agent.so ; Agent Proxy Channel -noload => chan_gtalk.so ; Channel driver for GTalk -; load => chan_iax2.so ; Inter Asterisk eXchange (Ver 2) -; load => chan_local.so ; Local Proxy Channel -; load => chan_sip.so ; Session Initiation Protocol (SIP) -noload => codec_a_mu.so ; A-law and Mulaw direct Coder/Decoder -noload => codec_adpcm.so ; Adaptive Differential PCM Coder/Decoder -noload => codec_alaw.so ; A-law Coder/Decoder -noload => codec_g726.so ; ITU G.726-32kbps G726 Transcoder -; load => codec_gsm.so ; GSM/PCM16 (signed linear) Codec Translation -; load => codec_ulaw.so ; Mu-law Coder/Decoder -noload => codec_speex.so ; Speex/PCM16 (signed linear) Codec Translator -noload => format_au.so ; Sun Microsystems AU format (signed linear) -noload => format_g723.so ; G.723.1 Simple Timestamp File Format -noload => format_g726.so ; Raw G.726 (16/24/32/40kbps) data -noload => format_g729.so ; Raw G729 data -; load => format_gsm.so ; Raw GSM data -noload => format_h263.so ; Raw h263 data -noload => format_jpeg.so ; JPEG (Joint Picture Experts Group) Image -; load => format_pcm.so ; Raw uLaw 8khz Audio support (PCM) -noload => format_pcm_alaw.so ; Raw aLaw 8khz PCM Audio support -noload => format_sln.so ; Raw Signed Linear Audio support (SLN) -noload => format_vox.so ; Dialogic VOX (ADPCM) File Format -; load => format_wav.so ; Microsoft WAV format (8000hz Signed Line -; load => format_wav_gsm.so ; Microsoft WAV format (Proprietary GSM) -noload => app_alarmreceiver.so ; Alarm Receiver Application -noload => app_authenticate.so ; Authentication Application -noload => app_cdr.so ; Make sure asterisk doesn't save CDR -noload => app_chanisavail.so ; Check if channel is available -noload => app_chanspy.so ; Listen in on any channel -noload => app_controlplayback.so ; Control Playback Application -noload => app_cut.so ; Cuts up variables -noload => app_db.so ; Database access functions -; load => app_dial.so ; Dialing Application -noload => app_dictate.so ; Virtual Dictation Machine Application -noload => app_directory.so ; Extension Directory -noload => app_directed_pickup.so ; Directed Call Pickup Support -noload => app_disa.so ; DISA (Direct Inward System Access) Application -noload => app_dumpchan.so ; Dump channel variables Application -; load => app_echo.so ; Simple Echo Application -noload => app_enumlookup.so ; ENUM Lookup -noload => app_eval.so ; Reevaluates strings -noload => app_exec.so ; Executes applications -noload => app_externalivr.so ; External IVR application interface -noload => app_forkcdr.so ; Fork The CDR into 2 seperate entities -noload => app_getcpeid.so ; Get ADSI CPE ID -noload => app_groupcount.so ; Group Management Routines -noload => app_ices.so ; Encode and Stream via icecast and ices -noload => app_image.so ; Image Transmission Application -noload => app_lookupblacklist.so ; Look up Caller*ID name/number from black -noload => app_lookupcidname.so ; Look up CallerID Name from local databas -; load => app_macro.so ; Extension Macros -noload => app_math.so ; A simple math Application -noload => app_md5.so ; MD5 checksum Application -; load => app_milliwatt.so ; Digital Milliwatt (mu-law) Test Application -noload => app_mixmonitor.so ; Record a call and mix the audio during the recording -noload => app_parkandannounce.so ; Call Parking and Announce Application -; load => app_playback.so ; Trivial Playback Application -noload => app_privacy.so ; Require phone number to be entered -noload => app_queue.so ; True Call Queueing -noload => app_random.so ; Random goto -noload => app_read.so ; Read Variable Application -noload => app_readfile.so ; Read in a file -noload => app_realtime.so ; Realtime Data Lookup/Rewrite -noload => app_record.so ; Trivial Record Application -; load => app_sayunixtime.so ; Say time -noload => app_senddtmf.so ; Send DTMF digits Application -noload => app_sendtext.so ; Send Text Applications -noload => app_setcallerid.so ; Set CallerID Application -noload => app_setcdruserfield.so ; CDR user field apps -noload => app_setcidname.so ; Set CallerID Name -noload => app_setcidnum.so ; Set CallerID Number -noload => app_setrdnis.so ; Set RDNIS Number -noload => app_settransfercapability.so ; Set ISDN Transfer Capability -noload => app_sms.so ; SMS/PSTN handler -noload => app_softhangup.so ; Hangs up the requested channel -noload => app_stack.so ; Stack Routines -noload => app_system.so ; Generic System() application -noload => app_talkdetect.so ; Playback with Talk Detection -noload => app_test.so ; Interface Test Application -noload => app_transfer.so ; Transfer -noload => app_txtcidname.so ; TXTCIDName -noload => app_url.so ; Send URL Applications -noload => app_userevent.so ; Custom User Event Application -; load => app_verbose.so ; Send verbose output -noload => app_waitforring.so ; Waits until first ring after time -noload => app_waitforsilence.so ; Wait For Silence Application -noload => app_while.so ; While Loops and Conditional Execution -noload => func_callerid.so ; Caller ID related dialplan functions -noload => func_enum.so ; ENUM Functions -noload => func_uri.so ; URI encoding / decoding functions -noload => pbx_ael.so ; Asterisk Extension Language Compiler -; load => pbx_config.so ; Text Extension Configuration -noload => pbx_functions.so ; Builtin dialplan functions -noload => pbx_loopback.so ; Loopback Switch -noload => pbx_realtime.so ; Realtime Switch -noload => pbx_spool.so ; Outgoing Spool Support -noload => pbx_wilcalu.so ; Wil Cal U (Auto Dialer) -; -; Module names listed in "global" section will have symbols globally -; exported to modules loaded after them. -; -[global] -chan_modem.so=no diff --git a/contrib/package/asterisk-xip/files/uci/asteriskconf b/contrib/package/asterisk-xip/files/uci/asteriskconf deleted file mode 100755 index d90f9d9cd9..0000000000 --- a/contrib/package/asterisk-xip/files/uci/asteriskconf +++ /dev/null @@ -1,144 +0,0 @@ -#!/bin/sh - -# Asterisk.conf - -init_asteriskconf() { - - ast_add_reload dialplan - ast_enable_type asterisk - ast_enable_type setglobal - ast_enable_type include - # ast_enable_type hardware - ast_enable_type hardwarereboot - - - asterisk_zone="Australia/Perth" - asterisk_spooldir="${DEST}/var/spool/asterisk" - asterisk_logdir="${DEST}/var/log/asterisk" - asterisk_agidir="${DEST}/usr/lib/asterisk/agi-bin" - return 0 -} - -asterisk_option_list="verbose debug quiet dontwarn timestamp execincludes \ -highpriority initcrypto nocolor dumpcore languageprefix internal_timing \ -systemname maxcalls maxload cache_record_files record_cache_dir \ -transmit_silence_during_record transcode_via_sln runuser rungroup" -asterisk_path_list="spooldir logdir agidir" - -valid_asterisk_option() { - is_in_list $1 ${asterisk_option_list} ${asterisk_path_list} zone - return $? -} - -create_asteriskconf() { - # echo ${DEST_DIR} - file=${DEST_DIR}/asterisk.conf - get_checksum asterisk_conf $file - - echo "${asteriskuci_gen}${N}[directories] -astetcdir => ${DEST_DIR} -astmoddir => ${DEST}/usr/lib/asterisk/modules -astvarlibdir => ${DEST}/usr/lib/asterisk -astdatadir => ${DEST}/usr/lib/asterisk -astrundir => /var/run" > $file - for i in ${asterisk_path_list} ; do - eval "value=\"\${asterisk_$i}\"" - if [ ! -z $value ] ; then - echo "ast$i => $value" >> $file - fi - done - echo "${N}[options]" >> $file - - for i in ${asterisk_option_list} ; do - eval "value=\"\${asterisk_$i}\"" - if [ ! -z $value ] ; then - echo "$i => $value" >> $file - fi - done - - echo "${N}; Changing the following lines may compromise your security. -[files] -astctlpermissions = 0660 -astctlowner = root -astctlgroup = nogroup -astctl = asterisk.ctl " >> $file - check_checksum "$asterisk_conf" "$file" || ast_restart=1 - -} - -handle_asterisk() { - option_cb() { - case $1 in - zone) - asterisk_zone="$2";; - *) - if valid_asterisk_option $1 $2 ; then - eval "asterisk_${1}=\"$2\"" - else - logerror "Invalid Asterisk option: $1" - fi - esac - } -} - -handle_include(){ - option_cb() { - case $1 in - dialplan|dialplan_ITEM*) - append dialplan_includes "#include <$2>" "${N}" - ;; - dialplan_COUNT) ;; - *) logerror "Invalid option \"$1\" for include" ;; - esac - } -} - -handle_setglobal() { - option_cb() { - case $1 in - set_COUNT) ;; - set|set_ITEM*) - if [ "${2%=*}" == "${2}" ] ; then - logerror "SetGlobal option \"$2\" not of the form VARIABLE=Value" - else - append dialplan_globals "" "${N}" - fi ;; - *) logerror "Invalid option \"$1\" for setglobal" ;; - esac - } -} - -handle_hardwarereboot() handle_hardware reboot - -# Handle hardware options (reboot) for Softphones -handle_hardware() { - case $1 in - reboot) - hardware_method= - hardware_param= - option_cb() { - case $1 in - method) - hardware_method="$2";; - param) - case ${hardware_method} in - web) append hardware_reboots "wget -q $2 -O - >&- 2>&-" "${N}" ;; - system) append hardware_reboots "$2 >&- 2>&-" "${N}" ;; - *) logerror "Invalid Hardware reboot method: ${hardware_method}" - esac - esac - - } - ;; - *) logerror "Invalid Hardware option: $1" - esac -} - -reboot_hardware() { - cd /tmp - eval ${hardware_reboots} -} - - - -# vim: ts=2 sw=2 noet foldmethod=indent diff --git a/contrib/package/asterisk-xip/files/uci/asteriskconf.txt b/contrib/package/asterisk-xip/files/uci/asteriskconf.txt deleted file mode 100644 index 8966cb844a..0000000000 --- a/contrib/package/asterisk-xip/files/uci/asteriskconf.txt +++ /dev/null @@ -1,41 +0,0 @@ - -asterisk - zone - Default TimeZone - - Various asterisk.conf options - verbose - debug - quiet - dontwarn - timestamp - execincludes - highpriority - initcrypto - nocolor - dumpcore - languageprefix - internal_timing - systemname - maxcalls - maxload - cache_record_files - record_cache_dir - transmit_silence_during_record - transcode_via_sln - runuser - rungroup - - spooldir - logdir - agidir - -setglobal - set (list) - VARIABLE=Value Global Variables - -include - dialplan (list) - Files to #include - -hardwarereboot - Reboot phone hardware - method - web (wget), system - param - url/program for reboot - diff --git a/contrib/package/asterisk-xip/files/uci/asteriskuci b/contrib/package/asterisk-xip/files/uci/asteriskuci deleted file mode 100755 index 4de95a7fc6..0000000000 --- a/contrib/package/asterisk-xip/files/uci/asteriskuci +++ /dev/null @@ -1,377 +0,0 @@ -#!/bin/sh - -# Author: Michael Geddes <michael at frog dot wheelycreek dot net> -# Copyright 2008 Michael Geddes -# Licensed under GPL -Version=0.8 - - -# Todo -# Calling of Macros in dialplan -# Create a Menu -# Incoming Zones - -debuglevel=0 - -. /etc/functions.sh - -asteriskuci_gen="; Generated by Openwrt AstriskUCI script version ${Version}$N" - -# Utils - -logerror() { - echo "Error: $1" -} - -logdebug() { - if [ $(expr $1 "<=" ${debuglevel-0}) == 1 ] ; then - echo "Log: $2" - fi -} - -is_in_list(){ - val=$1 - shift - for i in $* ; do - [ $i == $val ] && return 0 - done - return 1 -} - -split_append() { # {list} {prefix} {item} {func call} - local lhs="$2" - local rhs="$3" - - while [ ! -z "$rhs" ] ; do - cur=${rhs%%,*} - nvar=${rhs#*,} - [ -z "$5" ] || eval "$5 ${cur}" - append $1 "${lhs}${cur}" "$4" - [ "$nvar" == "$rhs" ] && break - rhs=${nvar} - done -} - -get_checksum() { - if [ -r "$2" ] ; then - local sum=`md5sum $2 | cut -d " " -f 1` - eval "$1=\"$sum\"" - else - eval "$1=NONE" - fi - #eval "logdebug 1 \"Checksum $2 : \${$1}\"" -} - -check_checksum() { - if [ -r "$2" ] ; then - local sum=`md5sum $2 | cut -d " " -f 1` - else - eval sum=NONE - fi - #logdebug 1 "Compare $1 checksum $2 with new checksum $sum " - [ "$sum" == "$1" ] - return $? -} - -# Add config module to initialise list -ast_add_conf() append asterisk_conf_list $1 " " -# Add module to initialise list -ast_add_module() { - append asterisk_module_list $1 " " - eval "createdialplan_$1() return 0" -} -# Add to 'reload' list. -ast_add_reload() append asterisk_load_list $1 " " - -# Enable a top-level type -ast_enable_type() eval "enabled_section_${1}=1" - -# Is a top-level type enabled? -ast_type_enabled() { - eval "local res=\${enabled_section_${1}}" - if [ "$res" != 1 ] ; then - return 1 #Fail - fi - return 0 -} - -# For use in sections - make sure that the last section is processed -check_add() { - logdebug 1 "Check add $1" - if [ ! -z "${last_added_checked}" ] ; then - logdebug 1 "Eval check-add ${last_added_checked}" - eval "check_add_${last_added_checked}" - fi - last_added_checked=$1 -} - -# Process the section yet to be checked. -check_all_added() check_add "" - -# Create static links for stuff we dont want to configure yet. -create_staticlinks() { - logdebug 1 "Link in a few mostly static configurations" - linkconfigs="codecs.conf say.conf sip_notify.conf udptl.conf logger.conf" - module_enabled res_indications && append linkconfigs indications.conf " " - for i in ${linkconfigs} ; do - [ -e $DEST_DIR/$i ] || ln -s $DEST/etc/asterisk/$i $DEST_DIR - done - - logdebug 1 "Link in #include directories" - for i in include inc libs lib library macro macros ; do - if [ -e $DEST/etc/asterisk/$i -a ! -d "$DEST_DIR/$i" -a ! -e "$DEST_DIR/$i" ] ; then - ln -s $DEST/etc/asterisk/$i $DEST_DIR - fi - done -} - -# default reboot -reboot_hardware() {} - - -# Top level handler -setup_asterisk() { - DEST=${1%/} - DEST_DIR=/tmp/asterisk - - testing_mode=0 - if [ "$2" == "testonly" ] ; then - testing_mode=1 - elif [ "$2" == "test" ] ; then - DEST_DIR=/tmp/asterisk.tmp - echo Using Test dir: $DEST_DIR - testing_mode=2 - fi - - [ -z "$3" ] || debuglevel=$3 - - logdebug 1 "Loading Asterisk Config" - . ${UCILIB}/asteriskconf - logdebug 2 "Loading Module Config" - . ${UCILIB}/moduleconf - logdebug 2 "Loading Dialplan Config" - . ${UCILIB}/dialplanconf - - for f in ${DEST}/etc/asterisk/conf.d/* ; do - logdebug 1 "Loading Module $f" - [ -f $f ] && . $f - done - - include /lib/network - scan_interfaces - - init_asteriskconf - init_moduleconf - init_dialplanconf - - for i in ${asterisk_module_list} ; do - logdebug 1 "Init $i module" - eval "init_${i}" - done - - for i in ${asterisk_conf_list} ; do - logdebug 1 "Init $i config" - eval "init_${i}conf" - done - - config_cb() { - cur_section=$1/$2 - logdebug 2 "Load $1/$2" - eval "local val=\"\${dups_$2}\"" - if [ "${val}" == "" ] ; then - eval "dups_$2=1" - else - logerror "Duplicate Section Name: $2 (type $1)" - fi - - if ast_type_enabled $1 ; then - eval "handle_$1 \$2" - elif [ ! -z "$1" ] ; then - - logerror "Unknown section: $1/$2" - option_cb() { - logerror "Invalid option '$1' for invalid section" - } - fi - } - config_load asterisk - check_all_added - - if [ "$testing_mode" != "1" ] ; then - mkdir -p ${DEST_DIR} - - create_asteriskconf - for i in ${asterisk_conf_list} ; do - logdebug 1 "Create $i config" - eval "create_${i}conf" - done - - for i in ${asterisk_module_list} ; do - logdebug 1 "Create Dialplan for module $i" - eval "createdialplan_${i}" - done - create_dialplanconf - create_moduleconf - - # Link in a few mostly static configurations - create_staticlinks - fi - [ "$testing_mode" == "2" ] && reload_check_asterisk - return 0 -} - -astcmd() { - ASTCMD="${DEST%/}/usr/sbin/asterisk -C /tmp/asterisk/asterisk.conf " - logdebug 1 "Command: $1" - if [ -z "${2-}" ] ; then - ${ASTCMD} -r -x "$1" 2>&- 1>&- - else - eval "$2=`${ASTCMD} -r -x \"$1\"`" - fi - return $? -} - -# waitfor() { -# while [ -d /proc/$1 ] ; do -# sleep 1 -# done -# } - -restart_gracefully() { - stop_uci_asterisk "$DEST" - startup_asterisk "$DEST" - #ret=0 - #echo "Check for pid" - #if [ -r /var/run/asterisk.ctl ] ; then - # astcmd "stop gracefully" - # local ret=$? - # [ ${ret} = 0 ] || return $ret - # waitfor `cat /var/run/asterisk.pid` - #fi - #startup_asterisk ${DEST} - return 0 -} -astcmds() { - while [ ! -z "$1" ] ; do - astcmd "$1" - shift - done -} - -reload_check_asterisk() { - logdebug 1 "Check Reloading" - local reboot=0 - if [ "${ast_restart-}" == 1 ] ; then - logdebug 1 "Restarting Gracefully" - reboot=0 - else - for i in ${asterisk_load_list} ; do - logdebug 1 "Checking ${i} reload" - eval "local doload=\${ast_${i}_restart}" - case $doload in - 1) logdebug 1 "Reloading ${i}" ;; - 2) logdebug 1 "Unloading ${i}" ;; - esac - done - fi - [ ${reboot} = 1 ] && logdebug 1 "reboot hardware" -} - -reload_asterisk() { - logdebug 1 "Reloading" - local reboot=0 - if [ "${ast_restart-}" == 1 ] ; then - logdebug 2 "Restarting Gracefully" - restart_gracefully - reboot=0 - else - for i in ${asterisk_load_list} ; do - logdebug 3 "Checking ${i} reload" - eval "local doload=\${ast_${i}_restart}" - case $doload in - 1) logdebug 1 "Reloading ${i}" - eval "reload_${i}" || reboot=1 ;; - 2) logdebug 1 "Unloading ${i}" - eval "unload_${i}" || reboot=1 ;; - esac - done - fi - - if [ ${reboot} = 1 ] ; then - ( sleep 5; reboot_hardware ) & - fi -} - -startup_asterisk() { - DEST="${1%/}" - DEFAULT=$DEST/etc/default/asterisk - [ -f $DEFAULT ] && . $DEFAULT - [ -d /var/run ] || mkdir -p /var/run - [ -d ${asterisk_logdir} ] || mkdir -p ${asterisk_logdir} - [ -d ${asterisk_spooldir} ] || mkdir -p ${asterisk_spooldir} - [ -d /var/spool/asterisk ] || mkdir -p /var/spool/asterisk - [ -h $DEST/usr/lib/asterisk/astdb ] || ln -sf /var/spool/asterisk/astdb $DEST/usr/lib/asterisk/astdb - [ -e /dev/zappseudo ] && [ ! -d /dev/zap -o ! -e /dev/zap/pseudo ] && mkdir -p /dev/zap && ln -s /dev/zappseudo /dev/zap/pseudo - - $DEST/usr/sbin/asterisk -C /tmp/asterisk/asterisk.conf $UCIOPTIONS -f 2>&1 > ${asterisk_logdir}/asterisk_proc & - # Wait a bit then reboot the hardware - ( sleep 5; reboot_hardware ) & -} - -# Init.d start() handler -start_uci_asterisk() { - DEST="${1%/}" - - if setup_asterisk $DEST ; then - startup_asterisk "$DEST" - fi -} - -restart_uci_asterisk() { - DEST="${1%/}" - if setup_asterisk $DEST ; then - echo "Trying to Restart gracefully" - if [ -r /var/run/asterisk.ctl ] ; then -# if astcmd "restart gracefully" ; then - echo "Sending restart" - if restart_gracefully ; then - echo "Restarting gracefully" - return 0 - fi - fi - stop_uci_asterisk "$DEST" - startup_asterisk "$DEST" - else - stop_uci_asterisk $1 - echo "Setup Failed" - return 1 - fi -} - -# init.d stop() handler -stop_uci_asterisk() { - DEST=${1%/} - if [ -r /var/run/asterisk.ctl ] ; then - astcmd "stop now" - sleep 1 - fi - [ -f /var/run/asterisk.pid ] && kill $(cat /var/run/asterisk.pid) >/dev/null 2>&1 -} - -reload_uci_asterisk() { - DEST=${1%/} - DEFAULT=$DEST/etc/default/asterisk - - if [ -r /var/run/asterisk.ctl ] ; then - - [ -e /dev/zappseudo ] && [ ! -d /dev/zap -o ! -e /dev/zap/pseudo ] && mkdir -p /dev/zap && ln -s /dev/zappseudo /dev/zap/pseudo - if setup_asterisk "$DEST" ; then - # Selective reload modules. - reload_asterisk - fi - else - start_uci_asterisk "$1" - fi -} - -# vim: ts=2 sw=2 noet foldmethod=indent diff --git a/contrib/package/asterisk-xip/files/uci/dialplanconf b/contrib/package/asterisk-xip/files/uci/dialplanconf deleted file mode 100755 index a8d5522e65..0000000000 --- a/contrib/package/asterisk-xip/files/uci/dialplanconf +++ /dev/null @@ -1,855 +0,0 @@ -#!/bin/sh - -# Dialplans (extensions.conf) - -# Implicit: ast_add_conf dialplan -init_dialplanconf() { - ast_enable_type dialplangeneral - ast_enable_type dialplan - ast_enable_type dialplanexten - ast_enable_type dialplangoto - ast_enable_type dialplansaytime - ast_enable_type dialzone - ast_enable_type inzone - ast_enable_type incominggeneral - ast_enable_type incoming - - dialplan_allowtransfer=no - dialplan_dialtimeout=30 - dialplan_answerfirst=no - dialplan_static=yes - dialplan_writeprotect=no - dialplan_canreinvite=no - dialplan_includes= - dialplan_globals= - return 0 -} - -match_all="_[0-9*+#]." -match_all_s="_[0-9*+#s]." - -dialplangeneral_list="static writeprotect canreinvite clearglobalvars" -dialplangeneral_list_ex="lastdialed lastdialedtype voiceboxext answerfirst dialtimeout allowtransfer international internationalout" - -valid_dialplangeneral() { - for i in ${dialplangeneral_list} ${dialplangeneral_list_ex} ; do - [ "$i" == "$1" ] && return 0 - done - return 1 -} - - -check_add_context() { - local context="${1}" - local check="${context#macro-}" - [ "${context}" == ${check} ] || check="macro__${check}" - eval "local isadded=\"\${dialplan_add_context_${check}-0}\"" - if [ "$isadded" != "1" ] ; then - eval "dialplan_add_context_${check}=1" - append dialplan_contexts "$context" - return 0 - else - return 1 - fi -} -append_dialplan_context() { - local context="${1}" - local check="${context#macro-}" - [ "${context}" == ${check} ] || check="macro__${check}" - append dialplan_context_${check} "${2}" "${N}" -} - -reload_dialplan() astcmd "dialplan reload" - -add_dialplan_exten() { - local context=$1 - logdebug 3 "Exten: $2" - local ext="exten => $2," - local planopt= - local timeout=${dialplan_dialtimeout} - # Answer extensions first. - local answerfirst=${dialplan_answerfirst} - local mailbox=$4 - [ -z "$5" ] || timeout=$5 - [ -z "$6" ] || answerfirst=$6 - - check_add_context "$context" - - if [ "$dialplan_allowtransfer" == "yes" ] ; then - planopt=${planopt}t - fi - if [ ! -z "${planopt}" ] ; then - planopt=",${timeout},${planopt}" - elif [ ! -z "${timeout}" ] ; then - planopt=",${timeout}" - fi - local dial="Dial($3$planopt)" - local item="1," - if [ "$answerfirst" == "yes" ] ; then - append_dialplan_context ${context} "${ext}1,Answer" - item="n," - fi - append_dialplan_context ${context} "${ext}${item}${dial}" - if [ ! -z "${mailbox}" ] ; then - enable_voicemail - append_dialplan_context ${context} "${ext}n,VoiceMail(${mailbox})" - fi - - append_dialplan_context ${context} "${ext}n,Congestion" -} - -add_dialplan_include() { - local context=$1 - logdebug 1 "Adding Dialplan Include $1 $2" - check_add_context "$context" - - split_append dialplan_context_${context} "include => " "$2" "${N}" -} - -add_dialplan_saytime() { - local context=$1 - logdebug 1 "Adding Dialplan saytime $1 $2" - check_add_context "$context" - local ext="exten => $2," - if [ "$dialplan_add_context_saytime" != 1 ] ; then - append dialplan_contexts saytime " " - dialplan_add_context_saytime=1 - enable_format gsm - enable_module app_sayunixtime - local zone=${asterisk_zone} - [ ! -z "$3" ] && zone="$3" - local format="IMp AdbY" - [ ! -z "$4" ] && format="$4" - append dialplan_context_saytime "exten => s,1,SayUnixTime(,${zone},${format})" "${N}" - fi - append_dialplan_context ${context} "${ext}1,Goto(saytime,s,1)" -} - -add_dialplan_goto() { - local context=$1 - logdebug 1 "Adding Dialplan goto $1 $2 $3" - check_add_context "$context" - append dialplan_context_${context} "exten => $2,1,Goto($3,\${EXTEN},1)" "${N}" -} - -dialplan_inzone_list="match caller goto" - -valid_dialplan_inzone() { - is_in_list $1 ${valid_inzone_list} - return $? -} - -check_append_inzone() { - local context="${1}" - eval "local isadded=\"\${dialplan_add_inzone_${context}-0}\"" - if [ "$isadded" != "1" ] ; then - eval "dialplan_add_inzone_${check}=1" - append inzone_contexts "$context" - return 0 - else - return 1 - fi -} - -handle_inzone() { - - context_name=${1} - check_append_inzone ${context_name} - - option_cb(){ - case $1 in - goto) eval "inzone_${context_name}_goto=\"\$2\"" ;; - match_ITEM*|match) append inzone_${context_name}_match "$2" " " ;; - caller_ITEM*|caller) append inzone_${context_name}_caller "$2" " " ;; - include_ITEM*|include) append inzone_${context_name}_include "$2" " " ;; - match_LENGTH|caller_LENGTH|include_LENGTH) ;; - _*) ;; - *) logerror "Invalid Dialplan inzone option: $1" ;; - esac - } -} - - -append_dialplan_inzone() { - local file=$1 - for context in ${inzone_contexts} ; do - for i in goto match caller include ; do - eval "iz_$i=\"\${inzone_${context}_${i}}\"" - done - if [ -z "${iz_goto}" ] ; then - logerror "Missing goto for inzone: ${context}" - elif [ -z "${iz_match}" -a -z "${iz_caller}" ] ; then - logerror "Missing match for inzone: ${context}" - else - echo "${N}[${context}]" >> ${file} - for curmatch in ${iz_include} ; do - echo "include => ${curmatch}" >> $file - done - - local gotoline="Goto(${iz_goto},\${EXTEN},1)" - [ -z "${iz_match}" ] && iz_match=${match_all} - for curmatch in ${iz_match} ; do - if [ -z "${iz_caller}" ] ; then - echo "exten => ${curmatch},1,${gotoline}" >> $file - else - for curcaller in ${iz_caller} ; do - echo "exten => ${curmatch}/${curcaller},1,${gotoline}" >> $file - done - fi - done - fi - done -} - -append_dialplan_dialzone() { - local file=$1 - - # Add the dialzone contexts - logdebug 1 "Dialplan: Add the dialzone contexts" - for zonename in ${dzones_match} ; do - eval "local diallist=\${dzone_${zonename}_match-}" - echo "${N}[${zonename}]" >> $file - eval "dialz=\${dzone_match_use_${zonename}-}" - - logdebug 3 "Find international options for zone ${zonename} from ${dialz}" - for v in prefix internationalprefix alwaysinternational countrycode ; do - eval "local $v=\${target_${v}_${dialz}:-}" - eval logdebug 3 "\"${v} = '\${$v}'\"" - done - - for v in localzone addprefix localprefix; do - eval "local $v=\${dzone_${zonename}_${v}:-}" - done - while [ ! -z "$diallist" ] ; do - cur=${diallist%%,*} - nvar=${diallist#*,} - if [ "${alwaysinternational}" = "yes" ] ; then - # Always dial international number with this target - # remove 'localprefix' (usually 0) from 'addprefix' - logdebug 3 "Removing ${localprefix} from ${addprefix}" - addprefix=${addprefix#$localprefix} - local curlen=`expr length "${localprefix}"` - if [ $curlen != 0 ] ; then - # remove 0 (or local prefix) - echo "exten => _${localprefix}${cur},1,Goto(${dialz}_dial,${countrycode}${addprefix}\${EXTEN:$curlen},1)" >> $file - fi - echo "exten => _${cur},1,Goto(${dialz}_dial,${countrycode}${addprefix}\${EXTEN},1)" >> $file - else - echo "exten => _${cur},1,Goto(${dialz}_dial,${addprefix}\${EXTEN},1)" >> $file - fi - [ "$nvar" == "$diallist" ] && break - diallist=${nvar} - done - eval "local diallist=\${dzone_${zonename}_international-}" - if [ ! -z "${diallist}" ] ; then - logdebug 2 "International: ${diallist}" - while [ ! -z "$diallist" ] ; do - cur="${diallist%%,*}" - nvar="${diallist#*,}" - logdebug 4 "Adding international ${cur}" - - local curlen=`expr length "${cur}"` - if [ "$alwaysinternational" = "yes" ] ; then - echo "exten => _${cur},1,Goto(${dialz}_dial,${addprefix}\${EXTEN:${curlen}},1)" >> $file - else - echo "exten => _${cur}.,1,Goto(${zonename}_check,${addprefix}\${EXTEN:${curlen}},1)" >> $file - fi - [ "$nvar" == "$diallist" ] && break - diallist="${nvar}" - done - - if [ "$alwaysinternational" != "yes" ] ; then - logdebug 2 "Not Always International:" - # Check for local country code - echo "[${zonename}_check]" >> $file - - local locallen=`expr length "${countrycode}"` - echo "exten => _${countrycode}X.,1,Goto(${localzone-default},${localprefix-0}\${EXTEN:${locallen}},1)" >> $file - echo "exten => _X.,1,Goto(${dialz}_dial,${internationalprefix}\${EXTEN},1)" >> $file - fi - fi - done - logdebug 1 "Dialplan: Finish the dialzone contexts" - -} - -append_dialplan_dialzone_out(){ - local file=$1 - - # Add the dialzone target contexts (dialing out) - logdebug 1 "Dialplan: Add the dialzone target contexts" - for contype in SIP IAX ; do - eval local conlist=\${dzones_${contype}-} - logdebug 1 "Adding ${contype} targets: ${conlist}" - for conname in $conlist ; do - echo "${N}[${contype}_${conname}_dial]" >> $file - for v in prefix internationalprefix alwaysinternational countrycode timeout lastdialed lastdialedtype ; do - eval "local $v=\${target_${v}_${contype}_${conname}:-}" - done - - if [ -z "${lastdialed}" ] ; then - lastdialed=${dialplan_lastdialed} - lastdialedtype=${dialplan_lastdialedtype} - fi - - # [ -z "${lastcallout}" ] && lastcallout=${feature_lastcall_outqueue} - # if [ ! -z "${lastcalloutexten}" ] ; then - # eval "local added=\${lastcallout_outqueue_extension_${lastcalloutexten}}" - # if [ ! "${added}" == 1 ] ; then - # add_dialplan_lastcall extensions "${lastcalloutexten}" "${lastcallout}" "${feature_lastcall_outcount}" - # eval "local lastcallout_outqueue_extension_${lastcalloutexten}=1" - # fi - # fi - local ext="exten => _X.," - local en="1," - # Do not use prefix unles 'alwaysinternational' is yes - [ "$alwaysinternational" != "yes" ] && internationalprefix= - - # if [ ! -z "${lastcallout}" ] ; then # Add lastcall out - # enable_lastcall - # echo "${ext}${en}Macro(lastcallstore,${internationalprefix}\${EXTEN},${lastcallout},${feature_lastcall_outcount})" >> $file - # en="n," - # fi - - if [ ! -z "${lastdialed}" ] ; then - enable_module func_callerid - local lastparam="\${EXTEN}" - local lastmacro=${lastdialed} - local lastmacrotype=${lastdialedtype} - [ -z ${lastdialedtype} ] && lastdialedtype=macro - - local jumpmacroline= - gen_jumpmacro jumpmacroline "${ext}${en}" "" "${lastmacrotype}" "${lastmacro}" "${lastparam}" - echo ${jumpmacroline} >> $file - en="n," - fi - echo "${ext}${en}Dial(${contype}/${prefix}${internationalprefix}\${EXTEN}@${conname},$timeout)" >> $file - echo "exten => _X.,n,Congestion" >> $file - done - done -} - - -gen_jumpmacro() { - logdebug 3 "Gen JumpMacro /$1/=/$2/$3/$4/$5/$6/" - local leader=$2 - local condition=$3 - local macrotype=$4 - local name=$5 - local param=$6 - - if [ -z "${condition}" ] ; then - local cond="(" - else - local cond="If(${condition}?" - fi - case ${macrotype} in - gosub) - enable_module app_stack # for gosub - logdebug 1 "${1}=\"\${leader}Gosub\${cond}\${name},\${param},1)\"" - eval "${1}=\"\${leader}Gosub\${cond}\${name},\${param},1)\"" ;; - gosub_s) - enable_module app_stack # for gosub - logdebug 1 "${1}=\"\${leader}Gosub\${cond}\${name},s,1(\${param}))\"" - eval "${1}=\"\${leader}Gosub\${cond}\${name},s,1(\${param}))\"" ;; - macro) - enable_module app_macro - logdebug 1 "${1}=\"\${leader}Macro\${cond}\${name},\${param})\"" - eval "${1}=\"\${leader}Macro\${cond}\${name},\${param})\"" ;; - - s|start) - enable_module app_goto - logdebug 1 "${1}=\"\${leader}Goto(\${iz_target},s,1)\"" - eval "${1}=\"\${leader}Goto(\${iz_target},s,1)\"" ;; - *) - enable_module app_goto - logdebug 1 "${1}=\"\${leader}Goto\${cond}\${name},\${param},1)\"" - eval "${1}=\"\${leader}Goto\${cond}\${name},\${param},1)\"" ;; - esac -} - -append_jumpmacro(){ - local context=$1 - local jumpmacroline="" - gen_jumpmacro "jumpmacroline" "$2" "$3" "$4" "$5" "$6" - append_dialplan_context ${context} "${jumpmacroline}" -} - -append_dialplan_incoming(){ - local file=$1 - # Evaluate the incoming ringing dialplans - logdebug 1 "Add the 'incoming' dialplans: ${dialplan_extensions_incoming}" - for context in ${dialplan_extensions_incoming} ; do - eval "local curext=\"\${dialplan_incoming_$context}\"" - logdebug 2 "Adding incoming ${curext}" - - check_add_context "$context" - # lastcall lastcallexten lastmissed lastmissedexten - for i in answerfirst beforeanswer timeout menucontext \ - lastcall lastcalltype missed missedtype allowtransfer mailbox match matchcaller aftertimeout aftertimeouttype; do - eval "local iz_$i=\"\${incoming_${context}_$i}\"" - eval "logdebug 1 \"Incoming \$context: iz_\$i=\${iz_$i}\"" - done - [ ! -z ${iz_menucontext} ] && iz_answerfirst=yes - - if [ ! -z ${curext} ] ; then - [ -z ${iz_answerfirst} ] && iz_answerfirst=${incoming_answerfirst} -# [ -z ${iz_lastcall} ] && iz_lastcall=${feature_lastcall_inqueue} - if [ -z ${iz_lastcall} ] ; then - iz_lastcall=${incoming_lastcall} - iz_lastcalltype=${incoming_lastcalltype} - fi - if [ -z ${iz_missed} ] ; then - iz_missed=${incoming_missed} - iz_missedtype=${incoming_missedtype} - fi - [ -z ${iz_mailbox} ] && iz_mailbox=${incoming_mailbox} - [ -z ${iz_timeout} ] && iz_timeout=${incoming_timeout} - [ -z ${iz_allowtransfer} ] && iz_allowtransfer=${incoming_allowtransfer} - fi - - [ -z ${iz_match} ] && iz_match=_X. - [ ! -z ${iz_matchcaller} ] && iz_match=${iz_match}/${iz_matchcaller} - - local ext="exten => ${iz_match}," - local planopt= - [ "${iz_allowtransfer}" == "yes" ] && planopt=${planopt}t - local item="1," - - #append_dialplan_context ${context} "${ext}${item}Ringing()" - if [ ! -z "${iz_lastcall}" ] ; then - - enable_module func_callerid - local lastparam="\${CALLERID(num)}" - local lastmacrotype="${iz_lastcalltype}" - [ -z "${iz_lastcalltype}" ] && lastmacrotype=macro - local lastmacro=${iz_lastcall} - append_jumpmacro "${context}" "${ext}${item}" "" "${lastmacrotype}" "${lastmacro}" "${lastparam}" - item="n," - fi - if [ ! -z "${iz_missed}" ] ; then - enable_module func_callerid - local missedparam="\${CALLERID(num)}" - [ -z "${iz_missedtype}" ] && iz_missedtype=macro - - append_dialplan_context ${context} "${ext}${item}Set(lcsMissed=\${CALLERID(num)})" - item="n," - fi - # Ring before answering - if [ ! -z "${iz_beforeanswer}" -a ! -z "${curext}" ] ; then - append_dialplan_context ${context} "${ext}${item}Dial(${curext},${iz_beforeanswer},${planopt})" - iz_answerfirst=yes - item="n," - fi - # Now answer - if [ "$iz_answerfirst" == "yes" ] ; then - append_dialplan_context ${context} "${ext}${item}Answer" - item="n," - fi - # if [ ! -z ${iz_lastcallexten} ] ; then - # enable_lastcall - # add_dialplan_lastcall extensions "${iz_lastcallexten}" "${iz_lastcall}" "${feature_lastcall_incount}" - # fi - - if [ ! -z ${curext} ] ; then - if [ ! -z ${iz_menucontext} ] ; then - planopt=${planopt}rd - enable_module res_indications - # wait so the next ring connects. - append_dialplan_context ${context} "${ext}${item}Wait(1)" - append_dialplan_context ${context} "${ext}n,Set(EXITCONTEXT=${iz_menucontext})" - fi - - if [ ! -z ${planopt} ] ; then - planopt=",${iz_timeout-},${planopt}" - elif [ ! -z ${iz_timeout-} ] ; then - planopt=",${iz_timeout-}" - fi - local dial="Dial(${curext}${planopt})" - - append_dialplan_context ${context} "${ext}n,${dial})" - - if [ ! -z ${iz_missed} ] ; then - # It went to voicemail or was hung up - consider missed - append_jumpmacro ${context} "${ext}${item}" "" "${iz_missedtype}" "${iz_missed}" "\${lcsMissed}" - fi - fi - - local need_hangup=1 - # Add a goto or macro at the end - if [ ! -z ${iz_target} ] ; then - case ${iz_aftertimeouttype} in - macro) append_dialplan_context ${context} "${ext}${item}Macro(${iz_target})";; - s|start) append_dialplan_context ${context} "${ext}${item}Goto(${iz_target},s,1)" - need_hangup=0;; - *) append_dialplan_context ${context} "${ext}${item}Goto(${iz_target},\${EXTEN},1)" - need_hangup=0;; - esac - fi - - if [ ! -z ${iz_mailbox} ] ; then - enable_voicemail - append_dialplan_context ${context} "${ext}n,VoiceMail(${iz_mailbox})" - fi - - [ "${need_hangup}" = "1" ] && append_dialplan_context ${context} "${ext}n,Hangup" - - if [ ! -z ${iz_missed} ] ; then - # Check for missed call - - append_jumpmacro ${context} "exten => h,1," "\$[\"\${DIALSTATUS}\" = \"CANCEL\"]" "${iz_missedtype}" "${iz_missed}" "\${lcsMissed}" - #append dialplan_context_${context} \ - # "exten => h,1,MacroIf(\$[\"\${DIALSTATUS}\" = \"CANCEL\"]?lastcallstore,\${lcsMissed},${iz_lastmissed},${feature_lastcall_incount})" "${N}" - # [ ! -z ${iz_lastmissedexten} ] && \ - # add_dialplan_lastcall extensions "${iz_lastmissedexten}" "${iz_lastmissed}" "${feature_lastcall_incount}" - fi - done -} - -append_dialplan_extensions(){ - local file=$1 - # Evaluate the 'extension' dialplans - logdebug 1 "Add the 'extension' dialplans: ${dialplan_exts}" - for i in ${dialplan_exts} ; do - eval "local curext=\"\${dialplan_ext_$i}\"" - add_dialplan_exten extensions $i $curext - done -} - -append_include() { - append dialplan_includes "#include <$1>" "$N" -} - - -create_dialplanconf() { - # Add general section - logdebug 1 "Dialplan: Add general section" - local file=${DEST_DIR}/extensions.conf - get_checksum dialplan_conf $file - - echo "${asteriskuci_gen}" > $file - - [ -z "${dialplan_includes}" ] || (echo "${dialplan_includes}${N}" >> $file) - - if [ ! -z "${dialplan_globals}" ] ; then - echo "[globals]${N}${dialplan_globals}${N}" >> $file - fi - - echo "[general]" >> $file - for i in ${dialplangeneral_list} ; do - eval "local val=\"\$dialplan_$i\"" - if [ ! -z "$val" ] ; then - echo "$i=$val" >> $file - fi - done - - append_dialplan_dialzone "$file" - - append_dialplan_dialzone_out "$file" - - append_dialplan_park "$file" - - append_dialplan_extensions "$file" - - append_dialplan_inzone "$file" - - append_dialplan_incoming "$file" - - - # append_dialplan_lastcall "$file" - - # Add all the contexts - logdebug 1 "Dialplan: Add all the contexts" - for i in ${dialplan_contexts} ; do - echo "${N}[$i]" >> $file - [ "${i#macro-}" == "${i}" ] || i=macro__${i#macro-} - eval "local curcontext=\"\${dialplan_context_$i-}\"" - echo "$curcontext">> $file - eval unset dialplan_context_$i - done - - check_checksum "$dialplan_conf" "$file" || ast_dialplan_restart=1 - - return 0 -} - -handle_dialplangeneral() { - option_cb(){ - if valid_dialplangeneral $1 $2 ; then - eval "dialplan_$1=\"$2\"" - else - logerror "Invalid Dialplan General option: $1" - fi - } -} - - -handle_dialplan(){ - context_name=$1 - if [ -z ${context_name} ] ; then - logerror "Context name required for dialplan" - context_name=default - fi - option_cb() { - logdebug 4 "dialplan ${context_name}: '$1' '$2'" - case $1 in - include_LENGTH) ;; - include|include_ITEM*) add_dialplan_include ${context_name} $2 ;; - _*) ;; - *) - lhs=$1 - logdebug 4 "Add extension $lhs" - if [ "$(expr $lhs : [0-9][0-9]\*)" != 0 ] ; then - addtype=${2%%:*} - if [ "${addtype}" == "$2" ]; then - addparam= - else - addparam=${2#*:} - fi - case ${addtype} in - mailbox|voice) - add_dialplan_voice ${context_name} $1 $addparam ;; - meetme|conf|conference) add_dialplan_meetme ${context_name} $1 $addparam ;; - saytime|time) add_dialplan_saytime ${context_name} $1 $addparam ;; - clock) add_dialplan_talkclock ${context_name} $1 $addparam ;; - *) logerror "Unknown type '${addtype}' in dialplan ${context_name}, extension ${1}" - esac - else - logerror "Invalid option: $1 for dialplan ${context_name}" - fi - esac - } -} - -handle_dialplanexten() { - check_add dialplanexten - option_cb() { - case $1 in - dialplan|extension|type|target|dialextension|voicebox|timeout|answerfirst) - eval "dial_exten_$1=\"$2\"" - esac - } -} - -check_add_dialplanexten() { - if [ ! -z "${dial_exten_dialplan}" -a ! -z "${dial_exten_extension}" ] ; then - - local dialext_type= - local dialext_ext= - if ! split_targettype dialext_type dialext_ext "${dial_exten_target}" ; then - if [ -z "${dial_exten_type}" ] ; then - logerror "No extension type specified for ${dial_exten_dialplan} ${dial_exten_extension}" - return 1 - fi - dialext_type="${dial_exten_type}" - dialext_ext="${dial_exten_target}" - fi - - - local dialtarget="${dialext_type}/${dialexten_ext}${dial_exten_dialextension+/}${dial_exten_dialextension}" - - check_add_context ${dial_exten_dialplan} - add_dialplan_exten "${dial_exten_dialplan}" "${dial_exten_extension}" \ - "${dialtarget}" "${dial_exten_voicebox}" "${dial_exten_timeout}" \ - "${dial_exten_answerfirst}" - fi - for i in dialplan extension voicebox type target dialextension timeout answerfirst ; do - eval "unset dial_voice_$i" - done -} - -handle_dialplansaytime() { - check_add dialplansaytime - option_cb() { - case $1 in - dialplan|extension|zone|format) - eval "dial_saytime_$1=\"$2\"" - esac - } -} - -check_add_dialplansaytime() { - logdebug 1 "Add Saytime to $1 / $2" - if [ ! -z "${dial_saytime_dialplan}" -a ! -z "${dial_saytime_extension}" ] ; then - # local ext="exten => ${dial_saytime_extension}," - [ -z "${dial_saytime_dialplan}" ] && dial_saytime_dialplan=default - - add_dialplan_saytime "${dial_saytime_dialplan}" "${dial_saytime_extension}" \ - "${dial_saytime_zone}" "${dial_saytime_format}" - fi - for i in dialplan extension zone format; do - eval "unset dial_saytime_$i" - done - -} - -handle_dialzone_match() { - eval "local isadded=\"\${dzone_${zone_name}-0}\"" - if [ "${isadded}" != "1" ] ; then - eval "dzone_${zone_name}=1" - append dzones_match ${zone_name} " " - fi - append dzone_${zone_name}_match $1 "," -} - -# Set up outgoing zones (match patterns) -handle_dialzone() { - zone_name=$1 - logdebug 2 "Loading dialzone: $zone_name" - option_cb(){ - logdebug 2 "Dialzone $1/$2" - case $1 in - uses) - local areatype= - local areaname= - split_targettype areatype areaname "$2" - logdebug 3 "Added: $areatype $areaname" - eval "local isadded=\"\${dzone_${areatype}_${areaname}-0}\"" - if [ "${isadded}" != "1" ] ; then - eval dzone_${areatype}_${areaname}=1 - append dzones_${areatype} "${areaname}" " " - fi - eval "dzone_match_use_${zone_name}=${areatype}_${areaname}" - logdebug 3 "Finished uses" - ;; - match_LENGTH) ;; - match|match_ITEM*) - handle_dialzone_match "$2" - ;; - international_LENGTH) ;; - international|international_ITEM*) - eval "local isadded=\"$dzone_${zone_name}\"" - if [ "${isadded}" != "1" ] ; then - eval "dzone_${zone_name}=1" - append dzones_match ${zone_name} " " - fi - append dzone_${zone_name}_international $2 "," - ;; - countrycode|localzone|addprefix|localprefix) - eval "dzone_${zone_name}_${1}=\"$2\"" - eval "y=\${dzone_${zone_name}_${1}}" - ;; - *) - logerror "Invalid Dialzone option: $1 in zone '${zone_name}'" ;; - esac - } -} - -check_add_dialplangoto() { - logdebug 1 "Add Goto to $1 / $2" - if [ ! -z "${dial_goto_dialplan}" -a ! -z "${dial_goto_extension}" ] ; then - local ext="exten => ${dial_goto_extension}," - check_add_context ${dial_goto_dialplan} - append_dialplan_context ${dial_goto_dialplan} "${ext}1,Goto(${dial_goto_target})" - fi - for i in dialplan extension room ; do - eval "unset dial_goto_$i" - done -} - -handle_dialplangoto(){ - check_add dialplangoto - option_cb() { - case $1 in - dialplan|extension|target) - eval "dial_goto_$1=\"$2\"" ;; - *) logerror "Invalid dialplangoto option: $1" - esac - } -} - -# Options for incoming calls. - -valid_incoming_list="allowtransfer timeout answerfirst mailbox lastcall lastcalltype missed missedtype" - -valid_incoming_option() { - is_in_list $1 ${valid_incoming_list} - return $? -} - -handle_incominggeneral() { - option_cb() { - if valid_incoming_option $1 ; then - logdebug 3 "Add Incoming General option $1=$2" - eval "incoming_${1}=\"$2\"" - else - logerror "Invalid incominggeneral option $1" - fi - } -} - -add_incoming_context() { - local context=$1 - eval "local added=\${dialplan_incoming_${context}_added}" - if [ "${added}" != "1" ] ; then - append dialplan_extensions_incoming "${context}" " " - eval "dialplan_incoming_${context}_added=1" - fi - -} - -# Add to incoming ringing -add_incoming() { - local rhs="$3" - - while [ ! -z "$rhs" ] ; do - cur=${rhs%%,*} - nvar=${rhs#*,} - add_incoming_context ${cur} - append dialplan_incoming_${cur} "$1/$2" "&" - [ "$nvar" == "$rhs" ] && break - rhs=${nvar} - done -} - -to_upper() { - eval "$1=`echo \"$2\"|tr [a-z] [A-Z]`" -} -to_lower() { - eval "$1=`echo \"$2\"|tr [A-Z] [a-z]`" -} - -split_targettype() { # TYPE target inputEntry - local l_targettype="${3%[-_/]*}" - if [ "${l_targettype}" == "$3" ] ; then - return 1 - fi - local l_targetname="${3#*[-_/]}" - to_upper "$1" "${l_targettype}" - eval "$2=\"${l_targetname}\"" - return 0 -} - - -handle_incoming() { - incoming_context=$1 - incoming_list= - add_incoming_context "${incoming_context}" - - option_cb() { - logdebug 1 "Incoming ${incoming_context} $1=$2" - case $1 in - lastcall|lastcalltype|missed|missedtype) eval "incoming_${incoming_context}_${1}=\"$2\"" ;; -# lastcall|lastcallexten|lastmissed|lastmissedexten) -# enable_lastcall -# eval "incoming_${incoming_context}_${1}=\"$2\"" -# ;; - mailbox|allowtransfer|answerfirst|beforeanswer|timeout|menucontext|match|matchcaller|aftertimeout|aftertimeouttype) - eval "incoming_${incoming_context}_${1}=\"$2\"" - ;; - target|target_ITEM*) - local targettype= - local targetname= - if split_targettype targettype targetname "${2}" ; then - append dialplan_incoming_${incoming_context} "${targettype}/${targetname}" "&" - else - logerror "No target type specified for target=$2 in ${incoming_context}" - fi - ;; - target_LENGTH|member_LENGTH) ;; - *) logerror "Invalid option $1 in incoming" ;; - esac - } -} - -# vim: ts=2 sw=2 noet foldmethod=indent diff --git a/contrib/package/asterisk-xip/files/uci/dialplanconf.txt b/contrib/package/asterisk-xip/files/uci/dialplanconf.txt deleted file mode 100644 index 37b5a95dd6..0000000000 --- a/contrib/package/asterisk-xip/files/uci/dialplanconf.txt +++ /dev/null @@ -1,90 +0,0 @@ - -dialplangeneral - asterisk options: - static - writeprotect - canreinvite - clearglobalvars - - global settings for dialzone out: - lastdialed - lastdialedtype - - Global option for dialplanexten: - answerfirst - dialtimeout - allowtransfer - allow transfers in dialing - - voiceboxext Extension to use for voicebox set on local client - - international - internationalout - -dialplan {name} - Define a dialplan context - include (list) - #=mailbox|voice|meetme|saytime|clock - -dialplanexten - Add number to Dialplan for ringing an extension - dialplan - Dialplan to add to - extension - Number to dial - type - Channel type sip/iax/local - target - Target [type/]target - dialextension - Extension to dial - voicebox - Voicebox to fall back to - timeout - Timeout for dial - answerfirst - Answer before dialing - -dialplangoto - dialplan - Dialplan to add to - extension - Number to dial - target - Goto Target - -dialplansaytime - dialplan - Dialplan to add to - extension - Number to dial - zone - Time Zone to use - format - Format to use. - -dialzone {name} - Outgoing zone. - uses - Outgoing line to use: TYPE/Name - match (list) - Number to match - countrycode - The effective country code of this dialzone - international (list) - International prefix to match - localzone - dialzone for local numbers - addprefix - Prexix required to dial out. - localprefix - Prefix for a local call - -inzone {name} - include (list) - Other zones to include - match (list) - Number to match - caller (list) - Caller number to match - goto - Forward to zone. - -incominggeneral - allowtransfer - Default Allow transfers for Dial() - timeout - Default timeout for incoming calls - answerfirst - Default value for incoming calls - mailbox - Default global mailbox for incoming calls - lastcall - Subroutine Context to store Last incoming call - lastcalltype - Method for calling lastcall (default macro) goto|gosub|macro|start - missed - Subroutine context to store last missed call dialplan context - missedtype - Method for calling 'missed' context macro|gosub|macro|start - -incoming {name} - Incoming zone - allowtransfer - Allow transfers for Dialed extension - timeout - Timeout for call - answerfirst - Answer the incoming call before Ringing - mailbox - Voicemail mailbox to use when - - beforeanswer - Time to ring before asterisk 'answers' and takes control of the call - menucontext - EXITCONTEXT for the ring once asterisk is handling the call - match - Dialed number to match - matchcaller - Caller to match - aftertimeout - Target macro/goto once the timeout has past, before voicemail - aftertimeouttype - Type of the target (macro|start|goto) - lastcall - Subroutine Context to store Last incoming call - lastcalltype - Method for calling lastcall (default macro) goto|gosub|macro|start - missed - Subroutine context to store last missed call dialplan context - missedtype - Method for calling 'missed' context goto|gosub|macro|start - target (list) - Add local extension type/Name - diff --git a/contrib/package/asterisk-xip/files/uci/disaconf b/contrib/package/asterisk-xip/files/uci/disaconf deleted file mode 100644 index 119ad61bb9..0000000000 --- a/contrib/package/asterisk-xip/files/uci/disaconf +++ /dev/null @@ -1,113 +0,0 @@ -#!/bin/sh - -# DISA - Directed Inwards System Application - -ast_add_module disaconf - -init_disaconf() { - ast_enable_type disa - ast_enable_type disaentry -} - -check_append_disa() { - local context="${1}" - eval "local isadded=\"\${dialplan_add_disa_${context}-0}\"" - if [ "$isadded" != "1" ] ; then - eval "dialplan_add_disa_${context}=1" - append disa_contexts "$context" - return 0 - else - return 1 - fi -} - -handle_disa(){ - opt_disa_context="$1" - - check_append_disa "$1" - - option_cb() { - case "$1" in - context|mailbox|passcode|timeout) - eval "opt_disa_${opt_disa_context}_$1=\"\$2\"" ;; - _*) ;; - *) logerror "Invalid DISA option in ${opt_disa_context}: $1" ;; - esac - } -} - -disaoption_list="disa context mailbox passcode callerid" - -check_add_disaentry() { - if [ ! -z "${last_disa_disa}" ] ; then - if [ -z "${last_disa_passcode}" ] ; then - logerror "Passcode required in DisaEntry for ${last_disa_disa}" - else - logdebug 3 "Adding DisaEntry to ${last_disa_disa}" - [ -z "${last_disa_context}" ] && eval "last_disa_context=\"\${opt_disa_${last_disa_disa}_context}\"" - [ -z "${last_disa_mailbox}" ] && eval "last_disa_mailbox=\"\${opt_disa_${last_disa_disa}_mailbox}\"" - local line= - [ -z "${last_disa_mailbox}" ] || line="|${last_disa_mailbox}" - [ -z "${line}" -a -z "${last_disa_callerid}" ] || line="|${last_disa_callerid}${line}" - [ -z "${line}" -a -z "${last_disa_context}" ] || line="|${last_disa_context}${line}" - line="${last_disa_passcode}${line}" - append opt_disa_${last_disa_disa}_list "${line}" "${N}" - fi - fi - for i in ${disaoption_list} ; do - eval "unset last_disa_$i" - done -} - -handle_disaentry() { - check_add disaentry - option_cb() { - case "$1" in - disa|context|mailbox|passcode|callerid) - eval "last_disa_$1=\"\$2\"" ;; - _*) ;; - *) logerror "Invalid DISAEntry option in ${last_disa_context-<unknown>}: $1" ;; - esac - } -} - -createdialplan_disaconf() { - if [ ! -z "${disa_contexts}" ] ; then - enable_module app_disa - for disactx in ${disa_contexts} ; do - logdebug 3 "Adding DISA context ${disactx}" - if check_add_context ${disactx} ; then - eval "local disa_list=\"\${opt_disa_${disactx}_list}\"" - eval "local disa_timeout=\"\${opt_disa_${disactx}_timeout}\"" - local nn=1 - if [ ! -z "${disa_timeout}" ] ; then - logdebug 3 "Adding timeout to ${disactx}" - enable_module func_timeout - append_dialplan_context ${disactx} "exten => s,1,SET(TIMEOUT(response)=${disa_timeout})" - nn=n - fi - if [ -z "${disa_list}" ] ; then - logdebug 3 "No list in ${disactx}" - eval "local disa_mailbox=\"\${opt_disa_${disactx}_mailbox}\"" - eval "local disa_context=\"\${opt_disa_${disactx}_context}\"" - eval "local disa_passcode=\"\${opt_disa_${disactx}_passcode}\"" - if [ ! -z ${disa_mailbox} ] ; then - disa_list="${disa_passcode}|${disa_context}||${disa_mailbox}" - else - append_dialplan_context ${disactx} "exten => s,${nn},DISA(${disa_passcode},${disa_context})" - fi - fi - if [ ! -z "${disa_list}" ] ; then - logdebug 3 "Output list to file in ${disactx}" - logdebug 4 "list: ${disa_list}" - local file="${DEST_DIR}/disa_${disactx}.txt" - echo "${asteriskuci_gen}${disa_list}" > "$file" - - append_dialplan_context ${disactx} "exten => s,${nn},DISA(${file})" - fi - append_dialplan_context ${disactx} "exten => t,1,Hangup" - fi - done - fi -} - diff --git a/contrib/package/asterisk-xip/files/uci/disaconf.txt b/contrib/package/asterisk-xip/files/uci/disaconf.txt deleted file mode 100644 index c7c02dc9c9..0000000000 --- a/contrib/package/asterisk-xip/files/uci/disaconf.txt +++ /dev/null @@ -1,29 +0,0 @@ - -disa {name} Create a DISA menu - context - Default context to allow access to - mailbox - Default mailbox for stutter-tone - timeout - Timeout in seconds - passcode - Fallback passcode (if no entries) - -disaentry Add an entry for the DISA menu - disa - parent disa to add to - passcode - Passcode for entry - context - context for this entry to allow access to - mailbox - Mailbox for stutter tone - callerid - Override Callerid - -example: -config 'disa' 'disagroup' - option 'context' 'foo' - option 'mailbox' '1001@default' - -config 'disaentry' - option 'disa' 'disagroup' - option 'passcode' '12345678' - option 'callerid' '"Jo Blo"' - -config 'disaentry' - option 'disa' 'disagroup' - option 'passcode' '455667' - option 'context' 'bar' - diff --git a/contrib/package/asterisk-xip/files/uci/featureconf b/contrib/package/asterisk-xip/files/uci/featureconf deleted file mode 100755 index e336570ef5..0000000000 --- a/contrib/package/asterisk-xip/files/uci/featureconf +++ /dev/null @@ -1,99 +0,0 @@ -#!/bin/sh - -# Feature.conf -ast_add_conf feature -init_featureconf(){ - ast_add_reload feature - ast_enable_type feature - ast_enable_type featurepark - ast_enable_type featuremap - - feature_park_parkenabled=no - feature_park_parkext=700 - feature_park_parkpos="701-720" - feature_park_context=parkedcalls - feature_park_parkingtime=45 - feature_park_courtesytone=beep - feature_park_parkedplay=caller - feature_park_adsipark=yes - feature_park_findslot=first - feature_park_parkedmusicclass=default - feature_park_transferdigittimeout=3 - feature_park_xfersound=beep - feature_park_xferfailsound=beeperr - feature_park_pickupexten="*8" - feature_park_featuredigittimeout=500 - feature_park_atxfernoanswertimeout=15 -} - -feature_park_list="parkext parkpos context parkingtime \ -courtesytone parkedplay adsipark findslot parkedmusicclass \ -transferdigittimeout xfersound xferfailsound pickupexten \ -featuredigittimeout atxfernoanswertimeout" -feature_map_list="blindxfer disconnect automon atxfer parkcall" - -valid_features(){ - case $1 in - park) is_in_list $2 ${feature_park_list} parkenabled ; return $? ;; - map) is_in_list $2 ${feature_map_list} ; return $? ;; - *) return 1;; - esac -} - -create_featureconf(){ - file=${DEST_DIR}/features.conf - get_checksum feature_conf $file - - local isempty=1 - if [ $feature_park_parkenabled == no ] ; then - rm -f $file - isempty=2 - else - enable_module res_features - echo "${asteriskuci_gen}${N}[general]" > $file - for i in ${feature_park_list} ; do - eval value="\"\${feature_park_$i}\"" - [ ! -z "$value" ] && echo "$i=$value" >> $file - done - echo "${N}[featuremap]" >> $file - for i in ${feature_map_list} ; do - eval value="\"\${feature_map_$i}\"" - [ ! -z "$value" ] && echo "$i=$value" >> $file - done - fi - check_checksum "$feature_conf" "$file" || ast_feature_restart=$isempty - -} -handle_featurepark() { - handle_feature park -} -handle_featuremap() { - handle_feature map -} - -handle_feature() { - feature_type=$1 - option_cb() { - if valid_features ${feature_type} $1 $2 ; then - eval "feature_${feature_type}_$1=\"$2\"" - else - logerror "Invalid feature: $1" - fi - } -} - -append_dialplan_park(){ - local file=$1 - # Check for parked calls - add into available extensions - if [ ${feature_park_parkenabled} == yes ] && [ ! -z ${feature_park_context} ] ; then - add_dialplan_include extensions ${feature_park_context} - enable_module app_parkandannounce - enable_format gsm - fi -} - - -reload_feature() astcmd "module reload res_features.so" -unload_feature() astcmd "module unload res_features.so" - -# vim: ts=2 sw=2 noet foldmethod=indent diff --git a/contrib/package/asterisk-xip/files/uci/featureconf.txt b/contrib/package/asterisk-xip/files/uci/featureconf.txt deleted file mode 100644 index a47b223da6..0000000000 --- a/contrib/package/asterisk-xip/files/uci/featureconf.txt +++ /dev/null @@ -1,25 +0,0 @@ -See asterisk doco -featurepark - parkext - parkpos - context - parkingtime - courtesytone - parkedplay - adsipark - findslot - parkedmusicclass - transferdigittimeout - xfersound - xferfailsound - pickupexten - featuredigittimeout - atxfernoanswertimeout - -featuremap - blindxfer - disconnect - automon - atxfer - parkcall - diff --git a/contrib/package/asterisk-xip/files/uci/lastcall b/contrib/package/asterisk-xip/files/uci/lastcall deleted file mode 100755 index d0314fd810..0000000000 --- a/contrib/package/asterisk-xip/files/uci/lastcall +++ /dev/null @@ -1,124 +0,0 @@ -#!/bin/sh -# -# Author: Michael Geddes <michael at frog dot wheelycreek dot net> -# Copyright 2008 Michael Geddes -# Licensed under GPL - -ast_add_module lastcall - -init_lastcall() { - # - ast_enable_type calllist - ast_enable_type calllistdefault -} - -check_add_calllist() { - local context=${opt_calllist_zonename} - if [ ! -z "$context" ] ; then - logdebug 1 "Adding calllist context ${context}" - [ -z $opt_calllist_dialplan ] && opt_calllist_dialplan=${opt_calllist_general_dialplan} - [ -z $opt_calllist_dialplan ] && opt_calllist_dialplan=extensions - [ -z $opt_calllist_listname ] && opt_calllist_listname=lastcall - [ -z $opt_calllist_length ] && opt_calllist_length=${opt_calllist_general_length} - [ -z $opt_calllist_length ] && opt_calllist_length=10 - [ -z $opt_calllist_dialcontext ] && opt_calllist_dialcontext=${opt_calllist_general_dialcontext} - [ -z $opt_calllist_dialcontext ] && opt_calllist_dialcontext=default - [ -z $opt_calllist_calltype ] && opt_calllist_calltype=macro - - [ -z ${opt_calllist_extension} ] \ - || add_dialplan_lastcall ${opt_calllist_dialplan} "${opt_calllist_extension}" "${opt_calllist_listname}" "${opt_calllist_length}" "${opt_calllist_tagname}" "${opt_calllist_dialcontext}" - enable_lastcall - add_section_lastcall ${context} "${opt_calllist_listname}" "${opt_calllist_length}" "${opt_calllist_calltype}" - fi - for i in zonename extension dialplan length listname ; do - eval "unset opt_calllist_${i}" - done -} - -add_section_lastcall() { - local context=$1 - local name=$2 - local queuelen=$3 - local calltype=$4 - - [ "${calltype}" = "macro" ] && context=macro-${1} - - if check_add_context ${context} ; then - local ext="exten => s," - case "${calltype}" in - gosub) - enable_module app_stack - append_dialplan_context ${context} "${ext}1,Macro(lastcallstore,\${EXTEN},${name},${queuelen})" - append_dialplan_context ${context} "${ext}n,Return" ;; - gosub_s) - enable_module app_stack - append_dialplan_context ${context} "${ext}1,Macro(lastcallstore,\${ARG1},${name},${queuelen})" - append_dialplan_context ${context} "${ext}n,Return" ;; - macro) - enable_module app_macro - append_dialplan_context ${context} "${ext}1,Macro(lastcallstore,\${ARG1},${name},${queuelen})" ;; - esac - else - logerror "Lastcall section ${context} already added" - fi -} - -handle_calllist() { - check_add calllist - logdebug 2 "Loading Call List: ${opt_calllist_zonename}" - opt_calllist_zonename=$1 - option_cb() { - case "$1" in - extension|dialplan|length|listname|calllist|tagname|dialcontext|calltype) - logdebug 1 "Setting opt_calllist_$1=\"${2}\"" - eval "opt_calllist_${1}=\"${2}\"" ;; - *) - logerror "Unknown option $1 in calllist ${opt_calllist_zonename}" ;; - esac - } -} - -handle_calllistdefault() { - logdebug 2 "Loading Call List General options" - option_cb() { - case $1 in - dialplan|length|dialcontext) - eval "opt_calllist_general_${1}=\"${2}\"" ;; - *) logerror "Unknown option $1 in calllistdefault" ;; - esac - } -} - -add_dialplan_lastcall(){ - local context=$1 - logdebug 1 "Adding Dialplan lastcall $1 $2" - check_add_context "$context" - enable_lastcall - local queue=$3 - local len=$4 - local tag=$5 - local dialcontext=$6 - [ "${queue}" == lastcall ] && queue= - append dialplan_context_${context} "exten => $2,1,Macro(lastcallapp,${queue},${len},${dialcontext},${tag})" "${N}" -} - -enable_lastcall() { - if [ "${dialplan_do_add_lastcall}" != "1" ] ; then - logdebug 2 "Enabling lastcall" - - append dialplan_globals "LASTCALLZONE=\"${asterisk_zone}\"" "$N" - [ -z "${DEST}" ] || append dialplan_globals "LASTCALL_DIR=${DEST}/etc/asterisk/directory" "$N" - append_include "macros/tagnumber.conf" - append_include "macros/lastcall.conf" - dialplan_do_add_lastcall=1 - enable_module app_macro - enable_module func_callerid - enable_module app_sayunixtime - enable_module app_playback - enable_module func_db - enable_module app_record - enable_module app_system - enable_format gsm - fi -} -# vim: ts=2 sw=2 noet foldmethod=indent diff --git a/contrib/package/asterisk-xip/files/uci/lastcall.txt b/contrib/package/asterisk-xip/files/uci/lastcall.txt deleted file mode 100644 index cd86be3f1a..0000000000 --- a/contrib/package/asterisk-xip/files/uci/lastcall.txt +++ /dev/null @@ -1,15 +0,0 @@ - -calllistdefault - dialplan - Override default dialplan for calllist extensions to be added to. - length - Default Length of list - dialcontext - Default Context for dialing - -calllist {name} - Define a call list context - extension - Extension to review list - dialplan - Dialplan for extension to be added to (default to extensions) - length - Length of list - listname - Name of list to use - tagname - Sound file to use for name - dialcontext - Context to use when dialing - calltype - Type of context for the wrapper (required when calling it) macro|gosub - diff --git a/contrib/package/asterisk-xip/files/uci/meetmeconf b/contrib/package/asterisk-xip/files/uci/meetmeconf deleted file mode 100755 index d70016148a..0000000000 --- a/contrib/package/asterisk-xip/files/uci/meetmeconf +++ /dev/null @@ -1,107 +0,0 @@ -#!/bin/sh -# Meetme.conf (conference) - -ast_add_conf meetme -init_meetmeconf() { - ast_add_reload meetme - ast_enable_type meetmegeneral - ast_enable_type meetme - ast_enable_type dialplanmeetme -} -create_meetmeconf() { - file=${DEST_DIR}/meetme.conf - get_checksum meetme_conf $file - logdebug 1 "Creating meetme rooms: ${meetme_rooms}" - local isempty=1 - if [ -z ${meetme_rooms} ] ; then - rm -f $file - isempty=2 - else - echo "${asteriskuci_gen}${N}[general]" > $file - if [ ! -z ${meetme_audiobuffers} ] ; then - echo "audiobuffers=${meetme_audiobuffers}" >> $file - fi - echo "${N}[rooms]" >> $file - for i in ${meetme_rooms} ; do - for j in pin adminpin room ; do - eval meetme_$j=\${meetme_room_${i}_${j}} - done - if [ -z "${meetme_room}" ] ; then - meetme_room=$i - fi - local line="conf => ${meetme_room}" - if [ -z ${meetme_adminpin} ] ; then - if [ ! -z ${meetme_pin} ] ; then - line="${line},${meetme_pin}" - fi - else - line="${line},${meetme_pin},${meetme_adminpin}" - fi - echo "$line" >> $file - done - fi - check_checksum "$meetme_conf" "$file" || ast_meetme_restart=$isempty -} - -handle_meetmegeneral() { - option_cb() { - case $1 in - audiobuffers) - meetme_audiobuffers="$2" ;; - *) logerror "Invalid meetme general option $1" - esac - } -} - -handle_meetme() { - logdebug 2 "Add meetme room $1" - meetme_room="$1" - append meetme_rooms "$1" " " - enable_module app_meetme - option_cb() { - case $1 in - pin|adminpin|room) - logdebug 3 "Meetme option ${meetme_room}/${1}=$2" - eval meetme_room_${meetme_room}_${1}="$2" ;; - *) logerror "Invalid meetme option for $meetme_room : $1" - esac - } -} - -handle_dialplanmeetme() { - check_add dialplanmeetme - option_cb() { - case $1 in - dialplan|extension|room) - eval "dial_meetme_$1=\"$2\"" - esac - } -} - -check_add_dialplanmeetme() { - if [ ! -z "${dial_meetme_extension}" ] ; then - local ext="exten => ${dial_meetme_extension}," - - [ -z "${dial_meetme_dialplan}" ] && dial_meetme_dialplan=extensions - check_add_context ${dial_meetme_dialplan} - append dialplan_context_${dial_meetme_dialplan} "${ext}1,MeetMe(${dial_meetme_room})" "${N}" - append dialplan_context_${dial_meetme_dialplan} "${ext}n,HangUp" "${N}" - fi - for i in dialplan extension room ; do - eval "unset dial_meetme_$i" - done -} - -add_dialplan_meetme() { - local context=$1 - logdebug 1 "Adding Dialplan meetme $1 $2" - check_add_context "$context" - local ext="exten => $2," - append dialplan_context_${context} "${ext}1,MeetMe($3)" "${N}" - append dialplan_context_${context} "${ext}n,HangUp" "${N}" -} - -reload_meetme() astcmd "module reload app_meetme.so" -unload_meetme() astcmd "module unload app_meetme.so" - -# vim: ts=2 sw=2 noet foldmethod=indent diff --git a/contrib/package/asterisk-xip/files/uci/meetmeconf.txt b/contrib/package/asterisk-xip/files/uci/meetmeconf.txt deleted file mode 100644 index fc24e389c4..0000000000 --- a/contrib/package/asterisk-xip/files/uci/meetmeconf.txt +++ /dev/null @@ -1,13 +0,0 @@ - -meetmegeneral - audiobuffers - -meetme - add a meetme room - room - Number of room - pin - PIN for room - adminpin - PIN for room admin - -dialplanmeetme - add calling of meetme to a dialplan - dialplan - Dialplan to add to (default 'extensions') - extension - Extension to dial - room - Optional room to enter diff --git a/contrib/package/asterisk-xip/files/uci/moduleconf b/contrib/package/asterisk-xip/files/uci/moduleconf deleted file mode 100755 index d8ea6114a0..0000000000 --- a/contrib/package/asterisk-xip/files/uci/moduleconf +++ /dev/null @@ -1,151 +0,0 @@ -#!/bin/sh - -# Module.conf - -init_moduleconf() { - ast_add_reload module - ast_enable_type module - - for i in ${module_list} ; do - eval module_${i}=no - done - - enable_module app_dial - enable_module app_read - - enable_module app_verbose - enable_module pbx_config - enable_module pbx_functions - - enable_module app_transfer - module_chan_local=auto - # Sound files are all gsm - enable_format gsm - - enable_module app_func_strings -} - -# List of modules in sensible load order. -module_list="res_agi res_adsi res_config_mysql res_crypto res_smdi res_features \ - res_indications res_convert res_jabber res_monitor res_musiconhold res_speech \ - res_clioriginate pbx_ael pbx_config pbx_functions pbx_loopback pbx_realtime \ - pbx_spool pbx_wilcalu func_base64 func_callerid func_cdr func_channel func_cut \ - func_db func_enum func_env func_global func_groupcount func_language func_logic \ - func_moh func_rand func_realtime func_sha1 func_strings func_timeout func_uri \ - cdr_csv cdr_custom cdr_manager cdr_mysql cdr_pgsql cdr_sqlite chan_agent \ - chan_alsa chan_gtalk chan_h323 chan_iax2 chan_local chan_sip format_au \ - format_g723 format_g726 format_g729 format_gsm format_h263 format_h264 \ - format_ilbc format_jpeg format_mp3 format_pcm format_pcm_alaw format_sln \ - format_vox format_wav format_wav_gsm app_alarmreceiver app_amd app_authenticate \ - app_cdr app_chanisavail app_channelredirect app_chanspy app_controlplayback \ - app_cut app_db app_dial app_dictate app_directed_pickup app_directory app_disa \ - app_dumpchan app_echo app_enumlookup app_eval app_exec app_externalivr \ - app_followme app_forkcdr app_getcpeid app_groupcount app_hasnewvoicemail \ - app_ices app_image app_lookupblacklist app_lookupcidname app_macro app_math \ - app_md5 app_meetme app_milliwatt app_mixmonitor app_morsecode \ - app_parkandannounce app_playback app_privacy app_queue app_random app_read \ - app_readfile app_realtime app_record app_sayunixtime app_senddtmf app_sendtext \ - app_setcallerid app_setcdruserfield app_setcidname app_setcidnum app_setrdnis \ - app_settransfercapability app_sms app_softhangup app_speech_utils app_stack \ - app_system app_talkdetect app_test app_transfer app_txtcidname app_url \ - app_userevent app_verbose app_voicemail app_waitforring app_waitforsilence \ - app_while codec_a_mu codec_adpcm codec_alaw codec_g726 codec_gsm codec_ilbc \ - codec_lpc10 codec_speex codec_ulaw" - -# Enable a module - for use by other scripts -enable_module() { - logdebug 3 "Enable ${1}" - eval module_${1}=yes -} - -module_enabled() { - eval local is_enabled="\${module_${1}}" - if [ ${is_enabled} == "no" ] ; then - return 1 - else - return 0 - fi -} - -# Enable a sound format - for use by other scripts -enable_format() { - while [ ! -z $1 ] ; do - case $1 in - gsm) - enable_module format_gsm - enable_module codec_gsm - [ "${module_format_wav}" = "yes" ] && enable_module format_wav_gsm ;; - wav) - enable_module format_wav - [ "${module_format_gsm}" = "yes" ] && enable_module format_wav_gsm ;; - alaw) - enable_module codec_adpcm - enable_module codec_alaw - [ "${module_format_pcm}" = "yes" ] && enable_module format_pcm_alaw ;; - pcm) - enable_module format_pcm_alaw - [ "${module_format_alaw}" = "yes" ] && enable_module format_pcm_alaw ;; - ulaw) - enable_module codec_ulaw ;; - g729|g726|g723) - enable_module format_g726 - enable_module codec_g726 ;; - ilbc) - enable_module format_ilbc - enable_module codec_ilbc ;; - sln) enable_module format_sln ;; - mp3) enable_module format_mp3 ;; - vox) enable_module format_vox ;; - speex) enable_module codec_speex ;; - esac - shift - done -} - -create_moduleconf() { - local file=${DEST_DIR}/modules.conf - - get_checksum module_conf $file - - rm -f ${file}.orig - [ -f "${file}" ] && mv ${file} ${file}.orig - - echo "${asteriskuci_gen}[modules]${N}autoload=yes" > $file - for i in ${module_list} ; do - eval res=\${module_${i}} - case $res in - yes) echo "load => $i.so" >> $file ;; - no) echo "noload => $i.so" >> $file ;; - esac - done - echo "${N}[global]${N}chan_modem.so=no" >> $file - - check_checksum "$module_conf" "$file" || ast_module_restart=1 -} - -reload_module() { - local file=${DEST_DIR}/modules.conf - local cmd=`diff ${file}.orig ${file} -u -U0 | grep '^+\(no\)\?load' | sed 's/+load[[:space:]]*=>[[:space:]]*\(.*\)$/\"module load \1\"/' | sed 's/+noload[[:space:]]*=>[[:space:]]*\(.*\)$/\"module unload \1\"/'| tr '\n' ' '` - [ "${testing_mode}" != "1" ] && rm -f ${file}.orig - logdebug 3 "Module reload: ${N}$cmd" - eval "astcmds $cmd" -} - - -valid_module() { - is_in_list $1 ${module_list} - return $? -} - -handle_module() { - option_cb() { - if valid_module $1 ; then - eval module_$1="$2" - else - logerror "Invalid module: $1" - fi - } -} - - -# vim: ts=2 sw=2 noet foldmethod=indent diff --git a/contrib/package/asterisk-xip/files/uci/moduleconf.txt b/contrib/package/asterisk-xip/files/uci/moduleconf.txt deleted file mode 100644 index 7b083b6db0..0000000000 --- a/contrib/package/asterisk-xip/files/uci/moduleconf.txt +++ /dev/null @@ -1,151 +0,0 @@ - -module - Enable modules (yes/no/auto) - res_agi - res_adsi - res_config_mysql - res_crypto - res_smdi - res_features - res_indications - res_convert - res_jabber - res_monitor - res_musiconhold - res_speech - res_clioriginate - pbx_ael - pbx_config - pbx_functions - pbx_loopback - pbx_realtime - pbx_spool - pbx_wilcalu - func_base64 - func_callerid - func_cdr - func_channel - func_cut - func_db - func_enum - func_env - func_global - func_groupcount - func_language - func_logic - func_moh - func_rand - func_realtime - func_sha1 - func_strings - func_timeout - func_uri - cdr_csv - cdr_custom - cdr_manager - cdr_mysql - cdr_pgsql - cdr_sqlite - chan_agent - chan_alsa - chan_gtalk - chan_h323 - chan_iax2 - chan_local - chan_sip - format_au - format_g723 - format_g726 - format_g729 - format_gsm - format_h263 - format_h264 - format_ilbc - format_jpeg - format_mp3 - format_pcm - format_pcm_alaw - format_sln - format_vox - format_wav - format_wav_gsm - app_alarmreceiver - app_amd - app_authenticate - app_cdr - app_chanisavail - app_channelredirect - app_chanspy - app_controlplayback - app_cut - app_db - app_dial - app_dictate - app_directed_pickup - app_directory - app_disa - app_dumpchan - app_echo - app_enumlookup - app_eval - app_exec - app_externalivr - app_followme - app_forkcdr - app_getcpeid - app_groupcount - app_hasnewvoicemail - app_ices - app_image - app_lookupblacklist - app_lookupcidname - app_macro - app_math - app_md5 - app_meetme - app_milliwatt - app_mixmonitor - app_morsecode - app_parkandannounce - app_playback - app_privacy - app_queue - app_random - app_read - app_readfile - app_realtime - app_record - app_sayunixtime - app_senddtmf - app_sendtext - app_setcallerid - app_setcdruserfield - app_setcidname - app_setcidnum - app_setrdnis - app_settransfercapability - app_sms - app_softhangup - app_speech_utils - app_stack - app_system - app_talkdetect - app_test - app_transfer - app_txtcidname - app_url - app_userevent - app_verbose - app_voicemail - app_waitforring - app_waitforsilence - app_while - codec_a_mu - codec_adpcm - codec_alaw - codec_g726 - codec_gsm - codec_ilbc - codec_lpc10 - codec_speex - codec_ulaw - diff --git a/contrib/package/asterisk-xip/files/uci/mohconf b/contrib/package/asterisk-xip/files/uci/mohconf deleted file mode 100755 index 9963108cf0..0000000000 --- a/contrib/package/asterisk-xip/files/uci/mohconf +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/sh - -# Music on Hold - -ast_add_conf moh -init_mohconf() { - ast_add_reload moh - ast_enable_type moh - ast_enable_type musiconhold -} - - -handle_musiconhold() handle_moh "$1" - -moh_list="name" -moh_optlist="mode directory random application format" - -valid_moh() { - is_in_list $1 ${moh_list} ${moh_optlist} - return $? -} - -handle_moh() { - check_add moh - moh_context=$1 - logdebug 1 "Loading MOH context: ${moh_context}" - - enable_module res_musiconhold - - option_cb() { - if valid_moh $1 $2 ; then - eval "moh_var_${1}=\"$2\"" - else - logerror "Invalid music-on-hold option for ${moh_context} : $1" - fi - } -} - -check_add_moh() { - if [ ! -z "${moh_var_directory}" ] ; then - [ -z "${moh_var_name}" ] && moh_var_name=default - [ -z "${moh_var_mode}" ] && moh_var_mode=files - append moh_lines "[${moh_var_name}]" "${N}${N}" - - for i in ${moh_optlist} ; do - eval "local curopt=\"\${moh_var_$i}\"" - [ -z "${curopt}" ] || append moh_lines "$i=${curopt}" "${N}" - done - fi - for i in ${moh_list} ${moh_optlist} ; do - eval "unset moh_var_$i" - done -} - -create_mohconf() { - file=${DEST_DIR}/musiconhold.conf - get_checksum moh_conf $file - local isempty=1 - if [ -z "${moh_lines}" ] ; then - isempty=2 - rm -f $file - else - echo "${asteriskuci_gen}" > $file - echo "${moh_lines}" >> $file - unset moh_lines - fi - check_checksum "$moh_conf" "$file" || ast_moh_restart=$isempty -} - -reload_moh() astcmd "moh reload" -unload_moh() astcmd "module unload res_musiconhold.so" - - -# vim: ts=2 sw=2 noet foldmethod=indent diff --git a/contrib/package/asterisk-xip/files/uci/mohconf.txt b/contrib/package/asterisk-xip/files/uci/mohconf.txt deleted file mode 100644 index 232174062b..0000000000 --- a/contrib/package/asterisk-xip/files/uci/mohconf.txt +++ /dev/null @@ -1,8 +0,0 @@ - -musiconhold/moh - Musicon-on-hold context - name - MOH context name - mode - Playback mode (files) - directory - Directory of music - random - Playback is random - application - Application to use - format - file format of files diff --git a/contrib/package/asterisk-xip/files/uci/queueconf b/contrib/package/asterisk-xip/files/uci/queueconf deleted file mode 100644 index 2ac8296d60..0000000000 --- a/contrib/package/asterisk-xip/files/uci/queueconf +++ /dev/null @@ -1,133 +0,0 @@ -#!/bin/bash -# Queues.conf - -ast_add_conf queue - -init_queueconf() { - ast_add_reload queue - - ast_enable_type callqueue - ast_enable_type callqueuegeneral -} - -create_queueconf() { - # Construct the file - file=${DEST_DIR}/queues.conf - get_checksum queue_conf $file - local isempty=1 - logdebug 0 "Generating Queues.conf: ${callqueue_contexts}" - if [ -z "${callqueue_contexts}" ] ; then - isempty=2 - rm -f $file - else - logdebug 0 "General section" - echo "${asteriskuci_gen}[general]" > "$file" - [ -z "${callqueue_gen_autofill}" ] && callqueue_gen_autofill=yes - for i in ${callqueuegeneral_list} ; do - local opt=${i//-/} - eval "local val=\"\${callqueue_gen_${opt}}\"" - [ -z "${val}" ] || echo "${i}=${val}" >> "$file" - done - - logdebug 0 "Add queues" - for i in ${callqueue_contexts} ; do - eval "local queuename=\${callqueue_opt_${i}_name}" - logdebug 0 "Add queue ${queuename}" - echo "${N}[${queuename}]" >> "$file" - local queueopts= - local has_moh=0 - for j in ${callqueue_list} ; do - local opt=${j//-/} - eval "local val=\"\${callqueue_opt_${i}_${opt}}\"" - if [ ! -z "${val}" ]; then - echo "${j}=${val}" >> "$file" - case "${opt}" in - musicclass) has_moh=1 - esac - fi - done - - eval "local memberlist=\"\${callqueue_opt_${i}_members}\"" - for j in ${memberlist} ; do - echo "member => ${j}" >> "$file" - done - - [ "${has_moh}" = 0 ] && queueopts=${queueopts}r - eval "local queuetimeout=\"\${callqueue_opt_${i}_queuetimeout}\"" - if [ "${queuetimeout-0}" = 0 ] ; then - queuetimeout= - else - queueopts=${queueopts}n - fi - - # Now add call dialplan - if check_add_context "${i}" ; then - append_dialplan_context "${i}" "exten = ${match_all_s},1,Queue(${queuename}|${queueopts}|||${queuetimeout})" - #TODO Add voicemail? fallthrough option? - fi - - done - fi - - check_checksum "$queue_conf" "$file" || ast_queue_restart=$isempty -} - -reload_queue() astcmd "module reload app_queue.so" -unload_queue() astcmd "module unload app_queue.so" - - -callqueuegeneral_list="persistentmembers autofill monitor-type" -valid_callqueuegeneral() { - is_in_list $1 ${callqueuegeneral_list//-/} - return $? -} - -handle_callqueue_general() { - option_cb() { - if valid_callqueuegeneral "$1" ; then - eval "callqueue_gen_$1=\"\${2}\"" - else - [ "${1:0:1}" = "_" ] || logerror "Invalid callqueuegeneral option: $1" - fi - } -} - -callqueue_list="musicclass announce strategy context timeout wrapuptime \ -autofill maxlen announce-holdtime announce-frequency periodic-announce-frequency ringinuse" - -valid_callqueue() { - is_in_list $1 ${callqueue_list//-/} queuetimeout - return $? -} - -handle_callqueue() { - cur_context="$1" - callqueue_opt_name="$1" # Name in queue.conf - [ -z "${callqueue_contexts}" ] && enable_module app_queue - append "callqueue_contexts" "$1" " " - - option_cb() { - case "$1" in - name) eval "callqueue_opt_${cur_context}_name=\"\$2\"" ;; - member|member_ITEM*) - local member_type= - local member_ext= - if ! split_targettype member_type member_ext "${2}" ; then - logerror "No extension type specified for queue ${cur_context} member ${2}" - else - append callqueue_opt_${cur_context}_members "${member_type}/${member_ext}" " " - fi - ;; - member_LENGTH) ;; - _*) ;; # ignore - *) - if valid_callqueue "$1" ; then - eval "callqueue_opt_${cur_context}_$1=\"\${2}\"" - else - logerror "Invalid callqueue option: $1" - fi ;; - esac - } -} - - diff --git a/contrib/package/asterisk-xip/files/uci/queueconf.txt b/contrib/package/asterisk-xip/files/uci/queueconf.txt deleted file mode 100644 index 18c1e8a2bd..0000000000 --- a/contrib/package/asterisk-xip/files/uci/queueconf.txt +++ /dev/null @@ -1,30 +0,0 @@ - -callqueuegeneral General options for call queues. - persistentmembers - Persist members of queue in astdb - autofill - (Default yes) Dial extensions in parallel - monitortype - (MixMonitor) Type of monitor to use - -callqueue {queue-context} - name - queue name (default to same as context) - queuetimeout - Timeout of the queue - member (list)- list of members (SIP/103 etc). - musicclass - Class of music-on-hold to use (or blank for ringing) - announce - Message to announce queue to agent - strategy - Ringing strategy - ringall - ring all available channels until one answers (default) - roundrobin - take turns ringing each available interface - leastrecent - ring interface which was least recently called by this queue - fewestcalls - ring the one with fewest completed calls from this queue - random - ring random interface - rrmemory - round robin with memory, remember where we left off last ring pass - - context - Context in which to find single digit numbers dialed - timeout - Ringing timeout (for individual extension) - wrapuptime - time allowed before considered free after hangup of call - autofill - Dial extensions in parallel - maxlen - Maximum queue length (0 for unlimited) - announceholdtime - Should we include estimated hold time in position announcements? (yes|no|once) - announcefrequency - How often to announce queue position and/or estimated - periodicannounce-frequency - How often to announce 'period-announce' - ringinuse - ring even if known to be in use - diff --git a/contrib/package/asterisk-xip/files/uci/sipiaxconf b/contrib/package/asterisk-xip/files/uci/sipiaxconf deleted file mode 100755 index eb88b7597a..0000000000 --- a/contrib/package/asterisk-xip/files/uci/sipiaxconf +++ /dev/null @@ -1,525 +0,0 @@ -#!/bin/sh -# Sip / IAX extensions - -# Add to internal extensions -add_extension() { - logdebug 1 "Adding $1/$2 extension to $3" - eval "local ext=\"\${dialplan_ext_$3}\"" - [ -z "${ext}" ] && append dialplan_exts "$3" " " - local lower=`echo $1|tr [A-Z] [a-z]` - eval "local ext=\"\${${lower}_last_extension}\"" - [ -z "${ext}" ] && eval "${lower}_last_extension=\"$3\"" - append dialplan_ext_$3 $1/${2} "&" -} - -check_append_local() { - local extension="${1}" - logdebug 3 "added local context for ${1}" - eval "local isadded=\"\${dialplan_add_local_${extension}-0}\"" - if [ "$isadded" != "1" ] ; then - logdebug 3 "Not added before - adding" - eval "dialplan_add_local_${extension}=1" - append dialplan_locals "$extension" - eval "dialplan_local_${1}_context=\"${2}\"" - eval "dialplan_local_${1}_selfmailbox=\"${3}\"" - eval "dialplan_local_${1}_mailbox=\"${4}\"" - eval "dialplan_local_${1}_displayname=\"${5}\"" - return 0 - else - return 1 - fi -} -append_dialplan_locals(){ - for i in ${dialplan_locals} ; do - local extension=$i - for x in context selfmailbox mailbox displayname ; do - eval "x_${x}=\${dialplan_local_${i}_${x}}" - done - local newcontext=local_${extension} - - if check_add_context ${newcontext} ; then - # add_dialplan_voice ${newcontext} ${x_last_extension} ${x_last_mailbox} - # Make sure as much is matched as possible - #add_dialplan_goto ${newcontext} _[0-9#*+]. ${x_last_context} - # add_dialplan_include ${newcontext} ${x_last_context} - - append_dialplan_context ${newcontext} "exten => ${match_all},1,Set(CALLERID(num)=${extension})" - local next=2 - if [ ! -z "${x_displayname}" ] ; then - append_dialplan_context ${newcontext} "exten => ${match_all},2,Set(CALLERID(name)=${x_displayname})" - local next=3 - fi - if [ ! -z "${x_mailbox}" ] ; then - [ "${x_selfmailbox}" = "yes" ] && append_dialplan_context ${newcontext} "exten => ${extension},${next},VoiceMailMain(${x_mailbox})" - [ ! -z "${dialplan_voiceboxext}" ] && append_dialplan_context ${newcontext} "exten => ${dialplan_voiceboxext},${next},VoiceMailMain(${x_mailbox})" - fi - append_dialplan_context ${newcontext} "exten => ${match_all},${next},Goto(${x_context},\${EXTEN},1)" - fi - done -} - -# Sip - -check_add_sipitems() { - if [ "${sip_doregister}" == "1" ] ; then - local line="register => ${sip_last_username}@${sip_last_fromdomain}:${sip_last_secret}:${sip_last_username}@${sip_sectionname}" - case ${sip_last_registerextension} in - -) line="$line/${sip_last_username}" ;; - .*) line="$line/${sip_last_registerextension}" ;; - esac - append sip_register "$line" "$N" - sip_doregister=0 - fi - do_check_add_items sip -} -check_add_iaxitems() { - do_check_add_items iax -} - -do_check_add_items(){ - - for i in type last_host last_context selfmailbox last_extension last_mailbox last_displayname ; do - eval "x_${i}=\"\${${1}_${i}-}\"" - done - - if [ ! -z "${x_last_context}" ] ; then - if [ ! -z "${x_last_extension}" ] ; then - [ "${x_last_context}" = "-" ] && eval "x_last_context=\"\${${1}_opt_context}\"" - check_append_local "${x_last_extension}" "${x_last_context}" "${x_selfmailbox}" "${x_last_mailbox}" "${x_last_displayname}" - x_last_context=local_${x_last_extension} - fi - if [ "${x_last_context}" != "-" ] ; then - append ${1}_sections "context=${x_last_context}" "$N" - fi - if [ "${x_type}" != "user" -a -z "${x_last_host}" ] ; then - append ${1}_sections "host=dynamic" "$N" - fi - fi - - for i in last_username last_fromdomain last_secret last_username \ - sectionname last_fromuser last_context last_extension last_mailbox \ - last_type last_host last_displayname ; do - eval unset $1_$i - done - - eval ${1}_selfmailbox=no - eval ${1}_last_registerextension=- -} - -reload_sip() { - astcmd "sip reload" - return 1 # reboot -} -unload_sip() astcmd "unload chan_sip.so" - -rtp_option_list="rtpstart rtpend rtpdtmftimeout rtcpinterval rtpchecksums" -# Validate RTP options -valid_rtp_option() { - is_in_list $1 ${rtp_option_list} -} - -# Validate sip options, depending on context. -valid_sipiax_option() { - local use_glob=1 - local use_glob_iax=1 - local use_glob_sip=1 - local use_user=1 - local use_peer=1 - local use_user_sip=1 - local use_user_iax=1 - local use_peer_sip=1 - local use_peer_iax=1 - case "$1" in - globalsip) - use_glob_sip=0 - use_glob=0 ;; - usersip) - use_glob_sip=0 - use_glob=0 - use_user=0 ;; - peersip|friendsip) - use_glob_sip=0 - use_glob=0 - use_user=0 - use_peer=0 - use_user_sip=0 - use_peer_sip=0 ;; - globaliax) - use_glob_iax=0 - use_glob=0 ;; - useriax) - use_glob_iax=0 - use_glob=0 - use_user=0 ;; - peeriax|friendiax) - use_glob_iax=0 - use_glob=0 - use_user=0 - use_peer=0 - use_user_iax=0 - use_peer_iax=0 ;; - esac - - case "$2" in - writeprotect|static) return ${use_glob_iax} ;; -# Integer - port|\ - maxexpirey|\ - rtptimeout|\ - rtpholdtimeout|\ - defaultexpirey|\ - registertimeout|\ - registerattempts|\ - call-limit) return ${use_glob_sip} ;; -# ip addr - bindaddr|\ - externip) return ${use_glob_sip} ;; -# net/mask - localnet) return ${use_glob_sip} ;; - permit|\ - deny) return ${use_user_sip} ;; -# Domain name - realm|\ - domain) return ${use_glob_sip} ;; -# valid context - context) return ${use_glob} ;; -# Mime type - notifymimetype) return ${use_glob_sip} ;; -# Yes/No - canreinvite) return ${use_glob} ;; - nat|allowoverlap|allowsubscribe|allowtransfer|\ - videosupport) return ${use_glob_sip} ;; - pedantic|\ - trustrpid|\ - promiscredir|\ - useclientcode) return ${use_user_sip} ;; -# Enums - dtmfmode) return ${use_glob_sip} ;; - type) return ${use_user} ;; - insecure|callingpres|\ - progressinband) return ${use_user_sip} ;; -# List - allow|\ - disallow) return ${use_glob_sip} ;; -# Register string - register) return ${use_glob_sip} ;; -# String - username|secret|md5secret|host|\ - mailbox) return ${use_user} ;; - auth) return ${use_user_iax} ;; - callgroup|pickupgroup|language|accountcode|\ - setvar|callerid|amaflags|subscribecontext|\ - maxcallbitrate|rfc2833compensate|\ - mailbox) return ${use_user_sip};; - template|fromdomain|regexten|fromuser|\ - qualify|defaultip|sendrpid|\ - outboundproxy) return ${use_peer_sip};; - extension) return 0;; - *) return 1;; - esac -} - -ast_add_conf sip -init_sipconf() { - ast_add_reload sip - ast_enable_type sipgeneral - ast_enable_type sip - ast_enable_type target - - sip_opt_port=5060 - sip_opt_bindaddr=0.0.0.0 - sip_opt_context=default - sip_opt_maxexpirey=3600 - sip_opt_defaultexpirey=3600 - sip_opt_notifymimetype=text/plain - sip_opt_rtptimeout=60 - sip_opt_rtpholdtimeout=300 - config_get WAN_IP wan ipaddr - # TODO check why the above does not work all the time - if [ -z "${WAN_IP}" ] ; then - config_get WAN_IF wan ifname - WAN_IP=$(ifconfig ${WAN_IF} | grep "inet addr:" | sed 's/^.*inet addr:\([^ ]*\) .*$/\1/') - fi - - sip_opt_externip=${WAN_IP} - - sip_opt_realm=asterisk - config_get LAN_MASK lan netmask - config_get LAN_IP lan ipaddr - local LAN_NET=$(/bin/ipcalc.sh $LAN_IP $LAN_MASK | grep NETWORK | cut -d= -f2) - sip_opt_localnet_def=$LAN_NET/$LAN_MASK - sip_opt_localip=${LAN_IP} - - # default to ulaw only - sip_opt_allow= - sip_opt_registertimeout=20 - sip_opt_registerattempts=10 - sip_opt_canreinvite=no - - sip_sections= -} - -sip_list="port bindaddr context maxexpirey defaultexpirey notifymimetype \ -rtptimeout rtpholdtimeout realm externip" - -create_sipconf() { - - append_dialplan_locals - - file=${DEST_DIR}/sip.conf - get_checksum sip_conf $file - local isempty=1 - if [ -z "${sip_sections}" ] ; then - rm -f $file - isempty=2 - else - [ -z "${sip_opt_domain}" ] && sip_opt_domain="domain=${sip_opt_realm}" - - echo "${asteriskuci_gen}[general]" > $file - echo "${sip_opt_domain}" >> "$file" - echo "domain=${sip_opt_localip}" >> "$file" - for i in ${sip_list} ; do - eval value=\$sip_opt_$i - [ ! -z "$value" ] && ( echo "$i=$value" >> $file ) - done - [ -z "${sip_opt_localnet}" ] && sip_opt_localnet="localnet=${sip_opt_localnet_def}" - echo "${sip_opt_localnet}" >> "${file}" - echo "disallow=all" >> $file - local rhs="${sip_opt_allow}" - [ -z "$rhs" ] && rhs=ulaw - while [ ! -z "$rhs" ] ; do - cur=${rhs%%,*} - nvar=${rhs#*,} - enable_format ${cur} - echo "allow=${cur}" >> $file - [ "$nvar" == "$rhs" ] && break - rhs=${nvar} - done - - echo "${N}${sip_register}${N}${N}${sip_sections}" >> $file - unset sip_register - unset sip_sections - fi - check_checksum "$sip_conf" "$file" || ast_sip_restart=$isempty -} - - -handle_sipgeneral() { - option_cb(){ - if [ "${1%_LENGTH}" = "${1}" ] ; then - local opt=${1%_ITEM*} - logdebug 4 "SipGeneral option ${opt} $2" - if valid_sipiax_option globalsip ${opt} "$2" ; then - case "${opt}" in - host) sip_opt_host="$2" - [ -z "${sip_opt_host}" ] && sip_opt_host=dynamic ;; - allow) append sip_opt_allow "$2" "," ;; - domain) split_append sip_opt_domain domain= "$2" "${N}" ;; - localnet) split_append sip_opt_localnet localnet= "$2" "${N}" ;; - *) eval "sip_opt_$1=\"\$2\"" ;; - esac - elif valid_rtp_option $1 "$2" ; then - eval "rtp_opt_$1=\"\$2\"" - else - logerror "Invalid SIP global option: $1" - fi - fi - } -} - -handle_sip() { - check_add sipitems - append sip_sections [$1] "$N$N" - enable_module chan_sip - sip_sectionname=${1#sip_} - sip_type=peer - sip_doregister=0 - sip_last_context=- - sip_last_doregister=- - sip_selfmailbox=no - option_cb() { - logdebug 3 "SIP/${sip_sectionname}: '$1' '$2'" - case $1 in - type) sip_type=$2 - append sip_sections "$1=$2" "$N" - ;; - register) [ "$2" == "yes" ] && sip_doregister=1 ;; - registerextension|displayname) eval sip_last_$1="$2";; - allow|allow_ITEM*) split_append sip_sections allow= "$2" "${N}" enable_format ;; - extension|extension_ITEM*) add_extension SIP ${sip_sectionname} "$2" ;; - - context) sip_last_context="$2" ;; - selfmailbox) sip_selfmailbox="$2" ;; - incoming|incoming_ITEM*) - add_incoming SIP ${sip_sectionname} "$2" ;; - timeout|prefix|internationalprefix|alwaysinternational|countrycode) - eval "target_$1_SIP_${sectionname}=\"$2\"" - ;; - *_LENGTH) ;; - _*) ;; - *) - eval sip_last_$1="$2" - local opt=${1%_ITEM*} - if valid_sipiax_option ${sip_type}sip ${opt} $2 ; then - append sip_sections "${opt}=$2" "$N" - else - logerror "Invalid SIP option for ${sip_type}: ${opt}" - fi - esac - } -} - -# rtp.conf - -ast_add_conf rtp -init_rtpconf() { - ast_add_reload rtp - rtp_opt_rtpstart=5000 - rtp_opt_rtpend=31000 - rtp_opt_rtpchecksums= - rtp_opt_rtpdtmftimeout= - rtp_opt_rtcpinterval=5000 -} - -create_rtpconf() { - file=${DEST_DIR}/rtp.conf - get_checksum rtp_conf $file - local isempty=1 - if module_enabled chan_sip ; then - echo "${asteriskuci_gen}[general]" > $file - for i in $rtp_option_list ; do - eval "local val=\"\$rtp_opt_$i\"" - if [ ! -z "$val" ] ; then - lhs=$i - case "$i" in - rtpdtmftimeout) lhs=dtmftimeout - esac - echo "$lhs=$val" >> $file - fi - done - else - rm -f $file - isempty=2 - fi - - check_checksum "$rtp_conf" "$file" || ast_rtp_restart=$isempty -} -reload_rtp() astcmd "rtp reload" -unload_rtp() astcmd "unload rtp" - - -# Iax - -ast_add_conf iax - -init_iaxconf() { - ast_add_reload iax - ast_enable_type iaxgeneral - ast_enable_type iax - - return 0 -} - -create_iaxconf() { - local file=$DEST_DIR/iax.conf - get_checksum iax_conf $file - local isempty=1 - if [ -z "${iax_sections}" ] ; then - rm -f $file - isempty=2 - else - echo "${asteriskuci_gen}${iax_general}$N$N${iax_sections}" > $file - fi - check_checksum "$iax_conf" "$file" || ast_iax_restart=${isempty} -} - -handle_iaxgeneral() { - iax_general="[general]" - option_cb() { - case $1 in - allow_LENGTH) ;; - allow|allow_ITEM*) split_append iax_general allow= "$2" "${N}" enable_format ;; - *) - if valid_sipiax_option globaliax $1 $2 ; then - eval "iax_opt_$1=\"$2\"" - append iax_general "$1=$2" "$N" - else - logerror "Invalid IAX global option: $1" - fi ;; - esac - } -} - -handle_iax() { - check_add iaxitems - iax_type=peer - iax_sectionname="${1#iax_}" - append iax_sections "[${iax_sectionname}]" "$N$N" - iax_last_context=- - iax_selfmailbox=no - enable_module chan_iax2 - option_cb() { - case $1 in - type) - iax_type=$2 - append iax_sections "type=$2" "$N" ;; - allow_LENGTH|incoming_LENGTH) ;; - allow|allow_ITEM*) - split_append iax_sections allow= "$2" "${N}" enable_format ;; - extension_LENGTH) ;; - extension|extension_ITEM*) add_extension IAX ${iax_sectionname} "$2" ;; - displayname) eval iax_last_$1="$2";; - context) - eval iax_last_context="$2" ;; - selfmailbox) - eval iax_selfmailbox="$2" ;; - incoming|incoming_ITEM*) - add_incoming IAX ${iax_sectionname} "$2" ;; - timeout|prefix|internationalprefix|alwaysinternational|countrycode) - eval "target_$1_IAX_${sectionname}=\"$2\"" ;; - *) - eval iax_last_$1="$2" - if valid_sipiax_option ${iax_type}iax $1 $2 ; then - append iax_sections "$1=$2" "$N" - else - logerror "Invalid IAX option for ${iax_type}: $1" - fi - esac - } -} - -reload_iax() { - astcmd "iax2 reload" - return 1 -} -unload_iax() astcmd "unload chan_iax2.so" - -handle_target() { - # Target name - if split_targettype targettype targetname "${1}" ; then - logdebug 4 "Handle target ${targettype}/${targetname} - ${1}" - handle_dialtarget "${targettype}" "${targetname}" - else - logerror "No target type specified for target $1" - fi -} - -# Set up options sip/iax targets for outgoing sip/iax -handle_dialtarget() { - # Dialzone target option - dt_areatype="$1" - dt_areaname="$2" - logdebug 1 "Dialzone Target for ${dt_areatype}/${dt_areaname}" - option_cb(){ - logdebug 3 "Option $1='$2' for dialzone target" - case $1 in - timeout|prefix|internationalprefix|alwaysinternational|countrycode) - eval "target_$1_${dt_areatype}_${dt_areaname}=\"$2\"" - ;; - *) - logerror "Invalid target for ${dt_areatype}/${dt_areaname}: ${1}" - esac - } -} - -# vim: ts=2 sw=2 noet foldmethod=indent diff --git a/contrib/package/asterisk-xip/files/uci/sipiaxconf.txt b/contrib/package/asterisk-xip/files/uci/sipiaxconf.txt deleted file mode 100644 index 8e166595bb..0000000000 --- a/contrib/package/asterisk-xip/files/uci/sipiaxconf.txt +++ /dev/null @@ -1,117 +0,0 @@ - -target (SIP|IAX)_{name} - Handle options for outgoing dialing - timeout - Timeout for dialing out with this target - prefix - Prefix required to dial out on this target - internationalprefix- Prefix required to dial internation on this target - alwaysinternational- True if this target always requires internation prefix - countrycode - Default International country code for this target - displayname - CallerID Name to set. - -sipgeneral -sip [sip_]{name} - type - Type of sip connection - very important. - register - Set to yes to register - registerextension - 'Extension' to use in register string in place of username - - extension (list) - Extension to use for this phone (doesn't have to be unique). First one is used to set the incoming callerid. - selfmailbox - Set to yes to have dialing own extensions go to mailbox - incoming (list) - Specify the incoming context for ringing - - domain (list) - List of valid doamins to match - localnet (list) - List of nets considered local (and therefor require no NAT) - - timeout - Timeout for dialing out with this target - prefix - Prefix required to dial out on this target - internationalprefix- Prefix required to dial internation on this target - alwaysinternational- True if this target always requires internation prefix - countrycode - Default International country code for this target - - rtpstart - rtp.conf option - rtpend - rtp.conf option - rtpdtmftimeout - rtp.conf option dtmftimeout - rtcpinterval - rtp.conf option - rtpchecksums - rtp.conf option - - -iaxgeneral -iax [iax_]{name} - extension (list) - Extension to use for this phone (doesn't have to be unique). First one is used to set the incoming callerid. - - selfmailbox - Set to yes to have dialing own extensions go to mailbox - incoming (list) - Specify the incoming context for ringing - - timeout - Timeout for dialing out with this target - prefix - Prefix required to dial out on this target - internationalprefix- Prefix required to dial internation on this target - alwaysinternational- True if this target always requires internation prefix - countrycode - Default International country code for this target - -General asterisk options - see asterisk doco - -Options |Type |sip |sip |iax |iax - | |general| |general| ------------------+--------+-------+-----+-------+----- -writeprotect Integer no no yes yes -static Integer no no yes yes -port Integer yes yes no no -maxexpirey Integer yes yes no no -rtptimeout Integer yes yes no no -rtpholdtimeout Integer yes yes no no -defaultexpirey Integer yes yes no no -registertimeout Integer yes yes no no -registerattempts Integer yes yes no no -call-limit Integer yes yes no no -# ip addr -bindaddr IP Addr yes yes no no -externip IP Addr yes yes no no -localnet Net/mask yes yes no no -permit Net/mask no yes no no -deny Net/mask no yes no no -realm Domain yes yes no no -domain Domain yes yes no no -context context yes yes yes yes -notifymimetype Mimetype yes yes no no -canreinvite Yes/No yes yes yes yes -nat Yes/No yes yes no no -allowoverlap Yes/No yes yes no no -allowsubscribe Yes/No yes yes no no -allowtransfer Yes/No yes yes no no -videosupport Yes/No yes yes no no -pedantic Yes/No no yes no no -trustrpid, Yes/No no yes no no -promiscredir Yes/No no yes no no -useclientcode Yes/No no yes no no -dtmfmode Enum yes yes no no -type Enum no yes no yes -insecure Enum no yes no no -callingpres Enum no yes no no -progressinband Enum no yes no no -allow List yes yes yes yes -disallow List yes yes yes yes -register Register yes yes no no -username String no yes no yes -secret String no yes no yes -md5secret String no yes no yes -host String no yes no yes -mailbox String no yes no yes -auth String no no no yes -callgroup String no yes no no -pickupgroup String no yes no no -language String no yes no no -accountcode String no yes no no -setvar String no yes no no -callerid String no yes no no -amaflags String no yes no no -subscribecontext String no yes no no -maxcallbitrate String no yes no no -rfc2833compensate String no yes no no -mailbox String no yes no no -template String no peer no no -fromdomain String no peer no no -regexten String no peer no no -fromuser String no peer no no -qualify String no peer no no -defaultip String no peer no no -sendrpid String no peer no no -outboundproxy String no peer no no - diff --git a/contrib/package/asterisk-xip/files/uci/talkclock b/contrib/package/asterisk-xip/files/uci/talkclock deleted file mode 100755 index 20e36065f8..0000000000 --- a/contrib/package/asterisk-xip/files/uci/talkclock +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh - -ast_add_module clock - -init_clock() { - ast_enable_type dialplanclock -} - -add_dialplan_talkclock() { - local context=$1 - local zone=${asterisk_zone} - [ ! -z "$3" ] && zone="$3" - local date_format="$4" - local time_format="$5" - logdebug 1 "Adding Dialplan talking clock $1 $2" - check_add_context "$context" - local ext="exten => $2," - if [ "${dialplan_add_include_clock}" != 1 ] ; then - dialplan_add_include_clock=1 - enable_format gsm - enable_module app_sayunixtime - append_include "macros/clock.conf" - fi - append dialplan_context_${context} "${ext}1,Macro(talkingclock,${time_format},${date_format},${zone})" "${N}" -} - -handle_dialplanclock() { - check_add dialplanclock - option_cb() { - case $1 in - dialplan|extension|zone|timeformat|dateformat) - eval "dial_clock_$1=\"$2\"" ;; - esac - } -} - -check_add_dialplanclock() { - if [ ! -z "${dial_clock_extension}" ] ; then - [ -z ${dial_clock_dialplan} ] && dial_clock_dialplan=default - add_dialplan_talkclock "${dial_clock_dialplan}" "${dial_clock_extension}" \ - "${dial_clock_zone}" "${dial_clock_dateformat}" "${dial_clock_timeformat}" - fi - for i in dialplan extension zone timeformat dateformat ; do - eval "unset dial_clock_$i" - done -} - -# vim: ts=2 sw=2 noet foldmethod=indent diff --git a/contrib/package/asterisk-xip/files/uci/talkclock.txt b/contrib/package/asterisk-xip/files/uci/talkclock.txt deleted file mode 100644 index 9d4cdf3608..0000000000 --- a/contrib/package/asterisk-xip/files/uci/talkclock.txt +++ /dev/null @@ -1,7 +0,0 @@ - -dialplanclock - dialplan - dialplan to add clock to - extension - extensions for talking clock - zone - Timezone to use - timeformat - Time Format to use - dateformat - Date format to use diff --git a/contrib/package/asterisk-xip/files/uci/voicemailconf b/contrib/package/asterisk-xip/files/uci/voicemailconf deleted file mode 100755 index fbdfd7b878..0000000000 --- a/contrib/package/asterisk-xip/files/uci/voicemailconf +++ /dev/null @@ -1,243 +0,0 @@ -#!/bin/sh - -# Voicemail.conf - -ast_add_conf voicemail - -init_voicemailconf() { - ast_add_reload voicemail - - ast_enable_type voicegeneral - ast_enable_type voicemail - ast_enable_type voicezone - ast_enable_type dialplanvoice - - voice_format= - voice_serveremail= - voice_attach=no - voice_skipms=3000 - voice_maxsilence=10 - voice_silencethreshold=128 - voice_maxlogins=3 - voice_emaildateformat="%A, %B %d, %Y at %r" - voice_sendvoicemail=no - voice_maxmsg=100 - voice_maxmessage=180 - voice_minmessage=3 - voice_maxgreet=60 - return 0 -} - -voicegeneral_list="format emailformat serveremail attach skipms maxsilence silencethreshold maxlogins emaildateformat sendvoicemail maxmsg maxmessage minmessage maxgreet" -voicegeneral_ext_list="" - -valid_voicemail(){ - is_in_list $1 ${voicegeneral_list} ${voicegeneral_ext_list} - return $? -} - -voicebox_list="context number password name email pager" - -voicebox_listopt="tz attach serveremail saycid dialout callback review operator envelope sayduration saydurationm" - -valid_voicebox() { - is_in_list $1 ${voicebox_list} ${voicebox_listopt} - return $? -} - -check_add_voicebox() { - if [ ! -z "${voicebox_number}" ] ; then - [ -z "${voicebox_context}" ] && voicebox_context=default - logdebug 1 "Adding Voicebox ${voicebox_number} in ${voicebox_context}" - # Construct the voicebox line - local line="$voicebox_number => " - [ -z "${voicebox_tz}" ] && voicebox_tz=homeloc - [ -z "${voicebox_name}" ] && voicebox_name=OpenWRT - - logdebug 1 "Adding in order options" - for i in password name email pager ; do - eval "local value=\"\${voicebox_$i}\"" - line="${line}${value}," - done - - # Then add named options. - logdebug 2 "Adding in named options" - for i in ${voicebox_listopt} ; do - eval val=\${voicebox_$i} - [ -z "${val}" ] || append line "$i=$val" \| - done - - logdebug 2 "Check for empty" - # Check if the current voicebox context has anything - eval local cur="\${voicebox_section_$voicebox_context}" - # if not add it to the list of contexts used - [ -z "$cur" ] && append voice_contextlist "${voicebox_context}" " " - - # Then add the voicebox line to the context - logdebug 4 "Add Voicebox $line to ${voicebox_context}" - append voicebox_section_${voicebox_context} "$line" "$N" - fi - - # Then clear the settings for the next one. - for i in ${voicebox_list} ${voicebox_listopt} ; do - eval unset voicebox_$i - done -} - -create_voicemailconf() { - # Construct the file - file=${DEST_DIR}/voicemail.conf - get_checksum voicemail_conf $file - - local isempty=1 - if [ -z "${voice_contextlist}" ] ; then - local isempty=2 - rm -f $file - else - - [ -z "${voice_format}" ] && voice_format="wav49|gsm|wav" - # Make emailformat first in the list - if [ ! -z "${voice_emailformat}" ] ; then - local newfmt=${voice_emailformat} - for i in ${voice_format//|/ } ; do - [ "$i" == "${voice_emailformat}" ] || newfmt="${newfmt}|${i}" - done - voice_format="${newfmt}" - fi - echo "${asteriskuci_gen}[general]" > $file - for i in ${voicegeneral_list} ; do - eval value=\${voice_$i} - if [ ! -z "$value" ] ; then - echo "$i=$value" >> $file - fi - done - echo "${N}[zonemessages]" >> $file - echo "homeloc=${asterisk_zone}| Q IMp" >> $file - echo "${voicezone_list}" >> $file - for i in ${voice_contextlist} ; do - echo "${N}[$i]" >> $file - eval "local cursection=\"\${voicebox_section_${i}}\"" - echo "$cursection" >> $file - eval unset voicebox_section_${i} - done - unset voice_contexts - fi - check_checksum "$voicemail_conf" "$file" || ast_voicemail_restart=$isempty -} - -handle_voicegeneral() { - option_cb() { - case "$1" in - format|format_ITEM*) append voice_format "$2" "|" ;; - format_LENGTH) ;; - *) - if valid_voicemail $1 $2 ; then - eval voice_$1="$2" - else - logerror "Invalid general voice option: $1" - fi - esac - } -} - -handle_voicemail() { - check_add voicebox - voicebox_context="${1%[-_]*}" - if [ "${voicebox_context}" == "$1" ] ; then - voicebox_context=default - fi - voicebox_number=${1#*[-_]} - option_cb() { - case $1 in - zone) voicebox_tz="$2" ;; - *) - if valid_voicebox $1 $2 ; then - eval "voicebox_$1=\"$2\"" - else - logerror "Invalid voicebox option: $1" - fi - esac - } -} - -# Locality options for voicemail - -check_add_voicezone() { - if [ ! -z "${voicezone_name}" ] ; then - [ -z "${voicezone_zone}" ] && voicezone_zone=${asterisk_zone} - if [ -z "${voicezone_message}" ] ; then - voicezone_message="Q IMp" - else - voicezone_message=`echo "$voicezone_message"|tr \" \'` - fi - append voicezone_list "${voicezone_name}=${voicezone_zone}|${voicezone_message}" "${N}" - fi - unset voicezone_name - unset voicezone_zone - unset voicezone_message -} - -handle_voicezone() { - voicezone_name=$1 - option_cb() { - case $1 in - name) voicezone_name="$2" ;; - zone) voicezone_zone="$2" ;; - message) voicezone_message="$2" ;; - *) logerror "Invalid voicezone option: $1" - esac - } -} - -handle_dialplanvoice() { - check_add dialplanvoice - option_cb() { - case $1 in - dialplan|extension|voicecontext|voicebox) - eval "dial_voice_$1=\"$2\"" ;; - *) logerror "Invalid option: $1 for dialplanvoice" - esac - } -} - -check_add_dialplanvoice() { - if [ ! -z "${dial_voice_dialplan}" -a ! -z "${dial_voice_extension}" ] ; then - local ext="exten => ${dial_voice_extension}," - [ -z "${dial_voice_voicebox}" ] && dial_voice_voicebox=default - if [ -z "${dial_voice_voicebox}" ] ; then - logerror "Expecting voicebox for ${dial_voice_dialplan}/${dial_voice_extension}" - else - check_add_context ${dial_voice_dialplan} - local voiceext="${dial_voice_voicebox}@${dial_voice_voicecontext}" - enable_voicemail - append dialplan_context_${dial_voice_dialplan} "${ext}1,VoiceMailMain(${voiceext})" "${N}" - fi - fi - for i in dialplan extension voicecontext voicebox ; do - eval "unset dial_voice_$i" - done -} - -enable_voicemail() { - enable_module res_adsi - enable_module app_voicemail - enable_format gsm -} - - -add_dialplan_voice() { - local context=$1 - logdebug 1 "Adding Dialplan voice $1 $2" - check_add_context "$context" - local ext="exten => $2," - enable_voicemail - append dialplan_context_${context} "${ext}1,VoiceMailMain($3)" "${N}" -} - - - -reload_voicemail() astcmd "module reload app_voicemail.so" -unload_voicemail() astcmd "module unload app_voicemail.so" - - -# vim: ts=2 sw=2 noet foldmethod=indent diff --git a/contrib/package/asterisk-xip/files/uci/voicemailconf.txt b/contrib/package/asterisk-xip/files/uci/voicemailconf.txt deleted file mode 100644 index 174d8a8042..0000000000 --- a/contrib/package/asterisk-xip/files/uci/voicemailconf.txt +++ /dev/null @@ -1,35 +0,0 @@ - -voicegeneral - General options for voicemail - format - Formats to store mail in (Default wav49|gsm|wav) - once set do NOT change this. - emailformat - Which format to use for email - maxlogins - Number of failed login attempts allowed - maxmsg - Maximum numer of messages per folder - sendvoicemail - Allow Sending of voicemail from VoiceMailMain - serveremail - Who the notifications should be 'FROM:' - attach - Attach voicemail to the email as an attachment - skipms - Milliseconds to skip forward/back for rew/ff in message playback - maxsilence - Seconds of silence before recoring ends. - silencethreshold - What is considered silence - the lower the more sensitive - emaildateformat - Date format on outgoing mails (see strftime). - maxmessage - Maximum length of voicemail in seconds - minmessage - Minimum length of voicemail in seconds - maxgreet - Maximum length of greetings in seconds - -voicemail - Add a voicemail box. - context - 'Voicemail context' for this entry (default 'default') - number - Number of voicemail box - name - Name of owner (default OpenWRT) - zone - Timezone for voicebox (default homeloc) - password - Passcode for box - email - Email address of owner - page - Pager number of owner. - -voicezone - Add a Timezone definition - zone - Name of timezone (from tzdata) to use - message - Date time message to use - -dialplanvoice - Add extension to pick up voicemail - dialplan - Dialplan context to add the extension to - extension - Extension to add - voicecontext - voicebox context (default 'default') - voicebox - Which voicebox to open diff --git a/contrib/package/asterisk-xip/files/uci/voicemenu b/contrib/package/asterisk-xip/files/uci/voicemenu deleted file mode 100644 index 7b046770fe..0000000000 --- a/contrib/package/asterisk-xip/files/uci/voicemenu +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/sh - -# IVR - Interactive Voice Response Menus. - -ast_add_module voicemenu -init_voicemenu() { - ast_enable_type voicemenu - ast_enable_type voiceoption -} -check_append_voicemenu() { - local context="${1}" - eval "local isadded=\"\${dialplan_add_voicemenu_${context}-0}\"" - if [ "$isadded" != "1" ] ; then - eval "dialplan_add_voicemenu_${context}=1" - append voicemenu_contexts "$context" - return 0 - else - return 1 - fi -} -voicemenu_list="greeting timeoutlen timeoutsmax invalidmax includelocal localmenu" - -handle_voicemenu() { - opt_voicemenu_context="$1" - check_append_voicemenu "${opt_voicemenu_context}" - - option_cb() { - case "$1" in - greeting|timeoutlen|timeoutsmax|invalidmax|includelocal|localmenu) - eval "opt_voicemenu_${opt_voicemenu_context}_$1=\"\$2\"" ;; - _*) ;; - *) logerror "Invalid Voicemenu option: $1" ;; - esac - } -} - -voiceoption_list="digit menu dial goto" - -check_add_voiceoption() { - [ -z "${last_vo_voicemenu}" ] && return 0 - - if [ -z "${last_vo_dial}" ] ; then - append opt_voicemenu_${last_vo_voicemenu}_action "exten => ${last_vo_digit},1,Goto(${last_vo_goto},s,1)" "${N}" - else - append opt_voicemenu_${last_vo_voicemenu}_action "exten => ${last_vo_digit},1,Dial(${last_vo_dial})" "${N}" - fi - - append opt_voicemenu_${last_vo_voicemenu}_menu "${last_vo_menu}" "&" - - for i in ${voiceoption_list} ; do - eval "unset last_vo_$i" - done - -} - -handle_voiceoption() { - opt_voicemenu_context="$1" - check_add voiceoption - - option_cb() { - case "$1" in - voicemenu|digit|menu|dial|goto) - eval "last_vo_$1=\"\$2\"" ;; - _*) ;; - *) logerror "Invalid Voiceoption option in ${opt_voicemenu_context}: $1" ;; - esac - } -} - -createdialplan_voicemenu(){ - logdebug 0 "Creating Voicemenu dialplans" - [ -z "${voicemenu_contexts}" ] && return 0 - - for curvm in ${voicemenu_contexts} ; do - check_add_context "${curvm}" - for i in ${voicemenu_list} menu action ; do - eval "vmc_${i}=\"\${opt_voicemenu_${curvm}_${i}}\"" - done - - [ -z "${vmc_timeoutlen}" ] && vmc_timeoutlen=5 - [ -z "${vmc_timeoutsmax}" ] && vmc_timeoutsmax=3 - [ -z "${vmc_invalidmax}" ] && vmc_invalidmax=0 - - # Construct a voicemenu - with as small as possible code. - local nn=1 - if [ ! -z "${vmc_greeting}" ] ; then - append_dialplan_context $curvm "exten => s,${nn},Background(${vmc_greeting})" - nn=n - fi - - local againtimeout="(againtimeout)" - if [ ${vmc_invalidmax} -gt 0 ] ; then - append_dialplan_context $curvm "exten => s,${nn},Set(NUMINVALID=${vmc_invalidmax})" - nn=n - fi - - if [ ${vmc_timeoutsmax} -gt 0 ] ; then - local labagaininvalid="(againinvalid)" - if [ ${vmc_invalidmax} -le 0 ] ; then - labagaininvalid="" - fi - append_dialplan_context $curvm "exten => s,${nn}${labagaininvalid},Set(NUMTIMEOUTS=${vmc_timeoutsmax})" - nn=n - else - if [ ${vmc_invalidmax} -gt 0 ] ; then - againtimeout="(againinvalid)" - else - againtimeout= - fi - fi - if [ ! -z "${vmc_localmenu}" ] ; then - append_dialplan_context $curvm "exten => s,${nn}${againtimeout},Background(${vmc_localmenu})" - nn=n - againtimeout= - fi - if [ ! -z "${vmc_menu}" ] ; then - append_dialplan_context $curvm "exten => s,${nn}${againtimeout},Background(${vmc_menu})" - againtimeout= - nn=n - fi - append_dialplan_context $curvm "exten => s,${nn}${againtimeout},WaitExten(${vmc_timeoutlen}) -exten => s,n,Goto(t,1) -exten => s,n(goodbye),Playback(vm-goodbye) -exten => s,n,Hangup()" - if [ ${vmc_timeoutsmax} -gt 0 ] ; then - append_dialplan_context $curvm "exten => t,1,Set(NUMTIMEOUTS=\$[\${NUMTIMEOUTS} - 1]) -exten => t,n,Gotoif(\$[\${NUMTIMEOUTS} >= 0]?s,againtimeout:s,goodbye)" - else - append_dialplan_context $curvm "exten => t,1,Goto(s,goodbye)" - fi - append_dialplan_context ${curvm} "${vmc_action}" - [ -z "${vmc_includelocal}" ] || append_dialplan_context ${curvm} "include => ${vmc_includelocal}" - if [ ${vmc_invalidmax} -gt 0 ] ; then - append_dialplan_context $curvm "exten => i,1,Set(NUMINVALID=\$[\${NUMINVALID} - 1]) -exten => i,n,Background(invalid) -exten => i,n,Gotoif(\$[\${NUMINVALID} >= 0]?s,againinvalid:s,goodbye)" - else - append_dialplan_context $curvm "exten => i,1,Background(invalid)${N}exten => i,n,Goto(s,goodbye)" - fi - done - -} - - -# vim: ts=2 sw=2 noet foldmethod=indent diff --git a/contrib/package/asterisk-xip/files/uci/voicemenu.txt b/contrib/package/asterisk-xip/files/uci/voicemenu.txt deleted file mode 100644 index ee87e2c5e2..0000000000 --- a/contrib/package/asterisk-xip/files/uci/voicemenu.txt +++ /dev/null @@ -1,37 +0,0 @@ - -voicemenu - greeting - Greeting (not repeated) at the start - timeoutlen - Length of timeout between repeats of menus - timeoutsmax - Number of timeouts - invalidmax - Number of invalid keypresses allowed. - includelocal - Include a context for direct dial of local numbers - localmenu - Menu to say for direct dial of local numbers - -config voiceoption - voicemenu - Name of menu the option applies to - digit - Digit to press for option - menu - What to include in menu for this option (use & to sep files and exclude extension) - dial - Extension to dial - goto - (or) Context to jump to - -Example - -config voicemenu autoattendmenu - option greeting greet/autogreet - option timeoutlen 5 - option timeoutsmax 3 - option invalidmax 3 - option includelocal extensions - option 'localmenu' 'misc/dialextension' - -config voiceoption - option voicemenu autoattendmenu - option digit 1 - option menu misc/press&digits/1&misc/for&misc/operator - option dial SIP/101 - -config voiceoption - option voicemenu autoattendmenu - option digit 2 - option menu misc/press&digits/2&misc/for&misc/sales - option goto salesmenu diff --git a/contrib/package/asterisk-xip/files/voiceprompts.txt b/contrib/package/asterisk-xip/files/voiceprompts.txt deleted file mode 100644 index aae23820c1..0000000000 --- a/contrib/package/asterisk-xip/files/voiceprompts.txt +++ /dev/null @@ -1,24 +0,0 @@ -lastcall/previous Press 4 for previous number -lastcall/call-number Press 5 to dial number -lastcall/next Press 6 for next number -lastcall/tag-number Press 7 to tag number -lastcall/previous-numbers Previous numbers. -lastcall/dialed-numbers Dialed numbers -lastcall/missed-call Missed calls -lastcall/rec-call Received calls -lastcall/calling Calling number -lastcall/none-available no numbers available -lastcall/no-number-info no number information -voicetag/confirmnumber Press 1 to confirm tag -voicetag/tryagain Press 2 to re-record tag -voicetag/cancelrecord Press 3 to exit recording -voicetag/recordname Please record name tag after tone -voicetag/tagfor Tag recorded for -misc/at-tone-time-exactly At the tone the time will be exactly -misc/busy All our operators are busy at the moment -misc/press press -misc/for for -misc/operator operator -misc/reach-operator to reach operator -misc/sales sales - diff --git a/contrib/package/asterisk-xip/patches/011-Makefile-main.patch b/contrib/package/asterisk-xip/patches/011-Makefile-main.patch deleted file mode 100644 index dbb5c44fee..0000000000 --- a/contrib/package/asterisk-xip/patches/011-Makefile-main.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nru asterisk-1.4.22.org/main/Makefile asterisk-1.4.22/main/Makefile ---- asterisk-1.4.22.org/main/Makefile 2008-07-18 18:15:41.000000000 +0200 -+++ asterisk-1.4.22/main/Makefile 2008-11-29 14:58:13.000000000 +0100 -@@ -144,7 +144,7 @@ - ifneq ($(findstring chan_h323,$(MENUSELECT_CHANNELS)),) - $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(ASTLDFLAGS) $^ buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) - else -- $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(ASTLDFLAGS) $(H323LDFLAGS) $^ buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(H323LDLIBS) -+ $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(ASTLDFLAGS) $(H323LDFLAGS) $^ buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(H323LDLIBS) - endif - $(CMD_PREFIX) $(ASTTOPDIR)/build_tools/strip_nonapi $@ || rm $@ - diff --git a/contrib/package/asterisk-xip/patches/013-chan_iax2-tmp_path.patch b/contrib/package/asterisk-xip/patches/013-chan_iax2-tmp_path.patch deleted file mode 100644 index 12b64d758c..0000000000 --- a/contrib/package/asterisk-xip/patches/013-chan_iax2-tmp_path.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nru asterisk-1.4.22.org/channels/chan_iax2.c asterisk-1.4.22/channels/chan_iax2.c ---- asterisk-1.4.22.org/channels/chan_iax2.c 2008-09-02 20:14:57.000000000 +0200 -+++ asterisk-1.4.22/channels/chan_iax2.c 2008-11-29 15:00:00.000000000 +0100 -@@ -1815,7 +1815,7 @@ - last++; - else - last = s; -- snprintf(s2, strlen(s) + 100, "/var/tmp/%s-%ld", last, (unsigned long)ast_random()); -+ snprintf(s2, strlen(s) + 100, "/tmp/%s-%ld", last, (unsigned long)ast_random()); - res = stat(s, &stbuf); - if (res < 0) { - ast_log(LOG_WARNING, "Failed to stat '%s': %s\n", s, strerror(errno)); diff --git a/contrib/package/asterisk-xip/patches/014-openssl-configure_ac.patch b/contrib/package/asterisk-xip/patches/014-openssl-configure_ac.patch deleted file mode 100644 index 9f3d9cd925..0000000000 --- a/contrib/package/asterisk-xip/patches/014-openssl-configure_ac.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nru asterisk-1.4.22.org/configure.ac asterisk-1.4.22/configure.ac ---- asterisk-1.4.22.org/configure.ac 2008-09-08 18:26:00.000000000 +0200 -+++ asterisk-1.4.22/configure.ac 2008-11-29 15:01:13.000000000 +0100 -@@ -1319,7 +1319,7 @@ - - AST_EXT_LIB_CHECK([SQLITE], [sqlite], [sqlite_exec], [sqlite.h]) - --AST_EXT_LIB_CHECK([OPENSSL], [ssl], [ssl2_connect], [openssl/ssl.h], [-lcrypto]) -+AST_EXT_LIB_CHECK([OPENSSL], [ssl], [ssl23_connect], [openssl/ssl.h], [-lcrypto]) - if test "$PBX_OPENSSL" = "1"; - then - AST_EXT_LIB_CHECK([OSPTK], [osptk], [OSPPCryptoDecrypt], [osp/osp.h], [-lcrypto -lssl]) diff --git a/contrib/package/asterisk-xip/patches/015-spandsp-app_fax.patch b/contrib/package/asterisk-xip/patches/015-spandsp-app_fax.patch deleted file mode 100644 index ce2c042b2e..0000000000 --- a/contrib/package/asterisk-xip/patches/015-spandsp-app_fax.patch +++ /dev/null @@ -1,875 +0,0 @@ -diff -Nru asterisk-1.4.22.org/apps/app_rxfax.c asterisk-1.4.22/apps/app_rxfax.c ---- asterisk-1.4.22.org/apps/app_rxfax.c 1970-01-01 01:00:00.000000000 +0100 -+++ asterisk-1.4.22/apps/app_rxfax.c 2008-11-29 15:02:27.000000000 +0100 -@@ -0,0 +1,376 @@ -+/* -+ * Asterisk -- A telephony toolkit for Linux. -+ * -+ * Trivial application to receive a TIFF FAX file -+ * -+ * Copyright (C) 2003, Steve Underwood -+ * -+ * Steve Underwood <steveu@coppice.org> -+ * -+ * This program is free software, distributed under the terms of -+ * the GNU General Public License -+ */ -+ -+/*** MODULEINFO -+ <depend>spandsp</depend> -+***/ -+ -+#include "asterisk.h" -+ -+ASTERISK_FILE_VERSION(__FILE__, "$Revision:$") -+ -+#include <string.h> -+#include <stdlib.h> -+#include <stdio.h> -+#include <inttypes.h> -+#include <pthread.h> -+#include <errno.h> -+#include <tiffio.h> -+ -+#include <spandsp.h> -+ -+#include "asterisk/lock.h" -+#include "asterisk/file.h" -+#include "asterisk/logger.h" -+#include "asterisk/channel.h" -+#include "asterisk/pbx.h" -+#include "asterisk/module.h" -+#include "asterisk/translate.h" -+#include "asterisk/dsp.h" -+#include "asterisk/manager.h" -+ -+static char *app = "RxFAX"; -+ -+static char *synopsis = "Receive a FAX to a file"; -+ -+static char *descrip = -+" RxFAX(filename[|caller][|debug]): Receives a FAX from the channel into the\n" -+"given filename. If the file exists it will be overwritten. The file\n" -+"should be in TIFF/F format.\n" -+"The \"caller\" option makes the application behave as a calling machine,\n" -+"rather than the answering machine. The default behaviour is to behave as\n" -+"an answering machine.\n" -+"Uses LOCALSTATIONID to identify itself to the remote end.\n" -+" LOCALHEADERINFO to generate a header line on each page.\n" -+"Sets REMOTESTATIONID to the sender CSID.\n" -+" FAXPAGES to the number of pages received.\n" -+" FAXBITRATE to the transmition rate.\n" -+" FAXRESOLUTION to the resolution.\n" -+"Returns -1 when the user hangs up.\n" -+"Returns 0 otherwise.\n"; -+ -+#define MAX_BLOCK_SIZE 240 -+ -+static void span_message(int level, const char *msg) -+{ -+ int ast_level; -+ -+ if (level == SPAN_LOG_WARNING) -+ ast_level = __LOG_WARNING; -+ else if (level == SPAN_LOG_WARNING) -+ ast_level = __LOG_WARNING; -+ else -+ ast_level = __LOG_DEBUG; -+ ast_log(ast_level, __FILE__, __LINE__, __PRETTY_FUNCTION__, msg); -+} -+/*- End of function --------------------------------------------------------*/ -+ -+static void t30_flush(t30_state_t *s, int which) -+{ -+ /* TODO: */ -+} -+/*- End of function --------------------------------------------------------*/ -+ -+static void phase_e_handler(t30_state_t *s, void *user_data, int result) -+{ -+ struct ast_channel *chan; -+ t30_stats_t t; -+ char local_ident[21]; -+ char far_ident[21]; -+ char buf[11]; -+ -+ chan = (struct ast_channel *) user_data; -+ if (result == T30_ERR_OK) -+ { -+ t30_get_transfer_statistics(s, &t); -+ t30_get_far_ident(s, far_ident); -+ t30_get_local_ident(s, local_ident); -+ ast_log(LOG_DEBUG, "==============================================================================\n"); -+ ast_log(LOG_DEBUG, "Fax successfully received.\n"); -+ ast_log(LOG_DEBUG, "Remote station id: %s\n", far_ident); -+ ast_log(LOG_DEBUG, "Local station id: %s\n", local_ident); -+ ast_log(LOG_DEBUG, "Pages transferred: %i\n", t.pages_transferred); -+ ast_log(LOG_DEBUG, "Image resolution: %i x %i\n", t.x_resolution, t.y_resolution); -+ ast_log(LOG_DEBUG, "Transfer Rate: %i\n", t.bit_rate); -+ ast_log(LOG_DEBUG, "==============================================================================\n"); -+ manager_event(EVENT_FLAG_CALL, -+ "FaxReceived", "Channel: %s\nExten: %s\nCallerID: %s\nRemoteStationID: %s\nLocalStationID: %s\nPagesTransferred: %i\nResolution: %i\nTransferRate: %i\nFileName: %s\n", -+ chan->name, -+ chan->exten, -+ (chan->cid.cid_num) ? chan->cid.cid_num : "", -+ far_ident, -+ local_ident, -+ t.pages_transferred, -+ t.y_resolution, -+ t.bit_rate, -+ s->rx_file); -+ pbx_builtin_setvar_helper(chan, "REMOTESTATIONID", far_ident); -+ snprintf(buf, sizeof(buf), "%i", t.pages_transferred); -+ pbx_builtin_setvar_helper(chan, "FAXPAGES", buf); -+ snprintf(buf, sizeof(buf), "%i", t.y_resolution); -+ pbx_builtin_setvar_helper(chan, "FAXRESOLUTION", buf); -+ snprintf(buf, sizeof(buf), "%i", t.bit_rate); -+ pbx_builtin_setvar_helper(chan, "FAXBITRATE", buf); -+ } -+ else -+ { -+ ast_log(LOG_DEBUG, "==============================================================================\n"); -+ ast_log(LOG_DEBUG, "Fax receive not successful - result (%d) %s.\n", result, t30_completion_code_to_str(result)); -+ ast_log(LOG_DEBUG, "==============================================================================\n"); -+ } -+} -+/*- End of function --------------------------------------------------------*/ -+ -+static void phase_d_handler(t30_state_t *s, void *user_data, int result) -+{ -+ struct ast_channel *chan; -+ t30_stats_t t; -+ -+ chan = (struct ast_channel *) user_data; -+ if (result) -+ { -+ t30_get_transfer_statistics(s, &t); -+ ast_log(LOG_DEBUG, "==============================================================================\n"); -+ ast_log(LOG_DEBUG, "Pages transferred: %i\n", t.pages_transferred); -+ ast_log(LOG_DEBUG, "Image size: %i x %i\n", t.width, t.length); -+ ast_log(LOG_DEBUG, "Image resolution %i x %i\n", t.x_resolution, t.y_resolution); -+ ast_log(LOG_DEBUG, "Transfer Rate: %i\n", t.bit_rate); -+ ast_log(LOG_DEBUG, "Bad rows %i\n", t.bad_rows); -+ ast_log(LOG_DEBUG, "Longest bad row run %i\n", t.longest_bad_row_run); -+ ast_log(LOG_DEBUG, "Compression type %i\n", t.encoding); -+ ast_log(LOG_DEBUG, "Image size (bytes) %i\n", t.image_size); -+ ast_log(LOG_DEBUG, "==============================================================================\n"); -+ } -+} -+/*- End of function --------------------------------------------------------*/ -+ -+static int rxfax_exec(struct ast_channel *chan, void *data) -+{ -+ int res = 0; -+ char template_file[256]; -+ char target_file[256]; -+ char *s; -+ char *t; -+ char *v; -+ const char *x; -+ int option; -+ int len; -+ int i; -+ fax_state_t fax; -+ int calling_party; -+ int verbose; -+ int samples; -+ -+ struct ast_module_user *u; -+ struct ast_frame *inf = NULL; -+ struct ast_frame outf; -+ -+ int original_read_fmt; -+ int original_write_fmt; -+ -+ uint8_t __buf[sizeof(uint16_t)*MAX_BLOCK_SIZE + 2*AST_FRIENDLY_OFFSET]; -+ uint8_t *buf = __buf + AST_FRIENDLY_OFFSET; -+ -+ if (chan == NULL) -+ { -+ ast_log(LOG_WARNING, "Fax receive channel is NULL. Giving up.\n"); -+ return -1; -+ } -+ -+ span_set_message_handler(span_message); -+ -+ /* The next few lines of code parse out the filename and header from the input string */ -+ if (data == NULL) -+ { -+ /* No data implies no filename or anything is present */ -+ ast_log(LOG_WARNING, "Rxfax requires an argument (filename)\n"); -+ return -1; -+ } -+ -+ calling_party = FALSE; -+ verbose = FALSE; -+ target_file[0] = '\0'; -+ -+ for (option = 0, v = s = data; v; option++, s++) -+ { -+ t = s; -+ v = strchr(s, '|'); -+ s = (v) ? v : s + strlen(s); -+ strncpy((char *) buf, t, s - t); -+ buf[s - t] = '\0'; -+ if (option == 0) -+ { -+ /* The first option is always the file name */ -+ len = s - t; -+ if (len > 255) -+ len = 255; -+ strncpy(target_file, t, len); -+ target_file[len] = '\0'; -+ /* Allow the use of %d in the file name for a wild card of sorts, to -+ create a new file with the specified name scheme */ -+ if ((x = strchr(target_file, '%')) && x[1] == 'd') -+ { -+ strcpy(template_file, target_file); -+ i = 0; -+ do -+ { -+ snprintf(target_file, 256, template_file, 1); -+ i++; -+ } -+ while (ast_fileexists(target_file, "", chan->language) != -1); -+ } -+ } -+ else if (strncmp("caller", t, s - t) == 0) -+ { -+ calling_party = TRUE; -+ } -+ else if (strncmp("debug", t, s - t) == 0) -+ { -+ verbose = TRUE; -+ } -+ } -+ -+ /* Done parsing */ -+ -+ u = ast_module_user_add(chan); -+ -+ if (chan->_state != AST_STATE_UP) -+ { -+ /* Shouldn't need this, but checking to see if channel is already answered -+ * Theoretically asterisk should already have answered before running the app */ -+ res = ast_answer(chan); -+ } -+ -+ if (!res) -+ { -+ original_read_fmt = chan->readformat; -+ if (original_read_fmt != AST_FORMAT_SLINEAR) -+ { -+ res = ast_set_read_format(chan, AST_FORMAT_SLINEAR); -+ if (res < 0) -+ { -+ ast_log(LOG_WARNING, "Unable to set to linear read mode, giving up\n"); -+ return -1; -+ } -+ } -+ original_write_fmt = chan->writeformat; -+ if (original_write_fmt != AST_FORMAT_SLINEAR) -+ { -+ res = ast_set_write_format(chan, AST_FORMAT_SLINEAR); -+ if (res < 0) -+ { -+ ast_log(LOG_WARNING, "Unable to set to linear write mode, giving up\n"); -+ res = ast_set_read_format(chan, original_read_fmt); -+ if (res) -+ ast_log(LOG_WARNING, "Unable to restore read format on '%s'\n", chan->name); -+ return -1; -+ } -+ } -+ fax_init(&fax, calling_party); -+ if (verbose) -+ fax.logging.level = SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW; -+ x = pbx_builtin_getvar_helper(chan, "LOCALSTATIONID"); -+ if (x && x[0]) -+ t30_set_local_ident(&fax.t30_state, x); -+ x = pbx_builtin_getvar_helper(chan, "LOCALHEADERINFO"); -+ if (x && x[0]) -+ t30_set_header_info(&fax.t30_state, x); -+ t30_set_rx_file(&fax.t30_state, target_file, -1); -+ //t30_set_phase_b_handler(&fax.t30_state, phase_b_handler, chan); -+ t30_set_phase_d_handler(&fax.t30_state, phase_d_handler, chan); -+ t30_set_phase_e_handler(&fax.t30_state, phase_e_handler, chan); -+ t30_set_ecm_capability(&fax.t30_state, TRUE); -+ t30_set_supported_compressions(&fax.t30_state, T30_SUPPORT_T4_1D_COMPRESSION | T30_SUPPORT_T4_2D_COMPRESSION | T30_SUPPORT_T6_COMPRESSION); -+ while (ast_waitfor(chan, -1) > -1) -+ { -+ inf = ast_read(chan); -+ if (inf == NULL) -+ { -+ res = -1; -+ break; -+ } -+ if (inf->frametype == AST_FRAME_VOICE) -+ { -+ if (fax_rx(&fax, inf->data, inf->samples)) -+ break; -+ samples = (inf->samples <= MAX_BLOCK_SIZE) ? inf->samples : MAX_BLOCK_SIZE; -+ len = fax_tx(&fax, (int16_t *) &buf[AST_FRIENDLY_OFFSET], samples); -+ if (len) -+ { -+ memset(&outf, 0, sizeof(outf)); -+ outf.frametype = AST_FRAME_VOICE; -+ outf.subclass = AST_FORMAT_SLINEAR; -+ outf.datalen = len*sizeof(int16_t); -+ outf.samples = len; -+ outf.data = &buf[AST_FRIENDLY_OFFSET]; -+ outf.offset = AST_FRIENDLY_OFFSET; -+ outf.src = "RxFAX"; -+ if (ast_write(chan, &outf) < 0) -+ { -+ ast_log(LOG_WARNING, "Unable to write frame to channel; %s\n", strerror(errno)); -+ break; -+ } -+ } -+ } -+ ast_frfree(inf); -+ } -+ if (inf == NULL) -+ { -+ ast_log(LOG_DEBUG, "Got hangup\n"); -+ res = -1; -+ } -+ if (original_read_fmt != AST_FORMAT_SLINEAR) -+ { -+ res = ast_set_read_format(chan, original_read_fmt); -+ if (res) -+ ast_log(LOG_WARNING, "Unable to restore read format on '%s'\n", chan->name); -+ } -+ if (original_write_fmt != AST_FORMAT_SLINEAR) -+ { -+ res = ast_set_write_format(chan, original_write_fmt); -+ if (res) -+ ast_log(LOG_WARNING, "Unable to restore write format on '%s'\n", chan->name); -+ } -+ t30_terminate(&fax.t30_state); -+ } -+ else -+ { -+ ast_log(LOG_WARNING, "Could not answer channel '%s'\n", chan->name); -+ } -+ ast_module_user_remove(u); -+ return res; -+} -+/*- End of function --------------------------------------------------------*/ -+ -+static int unload_module(void) -+{ -+ int res; -+ -+ ast_module_user_hangup_all(); -+ -+ res = ast_unregister_application(app); -+ -+ -+ return res; -+} -+/*- End of function --------------------------------------------------------*/ -+ -+static int load_module(void) -+{ -+ return ast_register_application(app, rxfax_exec, synopsis, descrip); -+} -+/*- End of function --------------------------------------------------------*/ -+ -+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Trivial FAX Receive Application"); -+ -+/*- End of file ------------------------------------------------------------*/ -diff -Nru asterisk-1.4.22.org/apps/app_txfax.c asterisk-1.4.22/apps/app_txfax.c ---- asterisk-1.4.22.org/apps/app_txfax.c 1970-01-01 01:00:00.000000000 +0100 -+++ asterisk-1.4.22/apps/app_txfax.c 2008-11-29 15:02:27.000000000 +0100 -@@ -0,0 +1,303 @@ -+/* -+ * Asterisk -- A telephony toolkit for Linux. -+ * -+ * Trivial application to send a TIFF file as a FAX -+ * -+ * Copyright (C) 2003, Steve Underwood -+ * -+ * Steve Underwood <steveu@coppice.org> -+ * -+ * This program is free software, distributed under the terms of -+ * the GNU General Public License -+ */ -+ -+/*** MODULEINFO -+ <depend>spandsp</depend> -+***/ -+ -+#include "asterisk.h" -+ -+ASTERISK_FILE_VERSION(__FILE__, "$Revision:$") -+ -+#include <string.h> -+#include <stdlib.h> -+#include <stdio.h> -+#include <inttypes.h> -+#include <pthread.h> -+#include <errno.h> -+#include <tiffio.h> -+ -+#include <spandsp.h> -+ -+#include "asterisk/lock.h" -+#include "asterisk/file.h" -+#include "asterisk/logger.h" -+#include "asterisk/channel.h" -+#include "asterisk/pbx.h" -+#include "asterisk/module.h" -+#include "asterisk/translate.h" -+ -+static char *app = "TxFAX"; -+ -+static char *synopsis = "Send a FAX file"; -+ -+static char *descrip = -+" TxFAX(filename[|caller][|debug]): Send a given TIFF file to the channel as a FAX.\n" -+"The \"caller\" option makes the application behave as a calling machine,\n" -+"rather than the answering machine. The default behaviour is to behave as\n" -+"an answering machine.\n" -+"Uses LOCALSTATIONID to identify itself to the remote end.\n" -+" LOCALHEADERINFO to generate a header line on each page.\n" -+"Sets REMOTESTATIONID to the receiver CSID.\n" -+"Returns -1 when the user hangs up, or if the file does not exist.\n" -+"Returns 0 otherwise.\n"; -+ -+#define MAX_BLOCK_SIZE 240 -+ -+static void span_message(int level, const char *msg) -+{ -+ int ast_level; -+ -+ if (level == SPAN_LOG_WARNING) -+ ast_level = __LOG_WARNING; -+ else if (level == SPAN_LOG_WARNING) -+ ast_level = __LOG_WARNING; -+ else -+ ast_level = __LOG_DEBUG; -+ ast_log(ast_level, __FILE__, __LINE__, __PRETTY_FUNCTION__, msg); -+} -+/*- End of function --------------------------------------------------------*/ -+ -+#if 0 -+static void t30_flush(t30_state_t *s, int which) -+{ -+ /* TODO: */ -+} -+/*- End of function --------------------------------------------------------*/ -+#endif -+ -+static void phase_e_handler(t30_state_t *s, void *user_data, int result) -+{ -+ struct ast_channel *chan; -+ char far_ident[21]; -+ -+ chan = (struct ast_channel *) user_data; -+ if (result == T30_ERR_OK) -+ { -+ t30_get_far_ident(s, far_ident); -+ pbx_builtin_setvar_helper(chan, "REMOTESTATIONID", far_ident); -+ } -+ else -+ { -+ ast_log(LOG_DEBUG, "==============================================================================\n"); -+ ast_log(LOG_DEBUG, "Fax send not successful - result (%d) %s.\n", result, t30_completion_code_to_str(result)); -+ ast_log(LOG_DEBUG, "==============================================================================\n"); -+ } -+} -+/*- End of function --------------------------------------------------------*/ -+ -+static int txfax_exec(struct ast_channel *chan, void *data) -+{ -+ int res = 0; -+ char source_file[256]; -+ char *s; -+ char *t; -+ char *v; -+ const char *x; -+ int option; -+ int len; -+ fax_state_t fax; -+ int calling_party; -+ int verbose; -+ int samples; -+ -+ struct ast_module_user *u; -+ struct ast_frame *inf = NULL; -+ struct ast_frame outf; -+ -+ int original_read_fmt; -+ int original_write_fmt; -+ -+ uint8_t __buf[sizeof(uint16_t)*MAX_BLOCK_SIZE + 2*AST_FRIENDLY_OFFSET]; -+ uint8_t *buf = __buf + AST_FRIENDLY_OFFSET; -+ -+ if (chan == NULL) -+ { -+ ast_log(LOG_WARNING, "Fax transmit channel is NULL. Giving up.\n"); -+ return -1; -+ } -+ -+ span_set_message_handler(span_message); -+ -+ /* The next few lines of code parse out the filename and header from the input string */ -+ if (data == NULL) -+ { -+ /* No data implies no filename or anything is present */ -+ ast_log(LOG_WARNING, "Txfax requires an argument (filename)\n"); -+ return -1; -+ } -+ -+ calling_party = FALSE; -+ verbose = FALSE; -+ source_file[0] = '\0'; -+ -+ for (option = 0, v = s = data; v; option++, s++) -+ { -+ t = s; -+ v = strchr(s, '|'); -+ s = (v) ? v : s + strlen(s); -+ strncpy((char *) buf, t, s - t); -+ buf[s - t] = '\0'; -+ if (option == 0) -+ { -+ /* The first option is always the file name */ -+ len = s - t; -+ if (len > 255) -+ len = 255; -+ strncpy(source_file, t, len); -+ source_file[len] = '\0'; -+ } -+ else if (strncmp("caller", t, s - t) == 0) -+ { -+ calling_party = TRUE; -+ } -+ else if (strncmp("debug", t, s - t) == 0) -+ { -+ verbose = TRUE; -+ } -+ } -+ -+ /* Done parsing */ -+ -+ u = ast_module_user_add(chan); -+ -+ if (chan->_state != AST_STATE_UP) -+ { -+ /* Shouldn't need this, but checking to see if channel is already answered -+ * Theoretically asterisk should already have answered before running the app */ -+ res = ast_answer(chan); -+ } -+ -+ if (!res) -+ { -+ original_read_fmt = chan->readformat; -+ if (original_read_fmt != AST_FORMAT_SLINEAR) -+ { -+ res = ast_set_read_format(chan, AST_FORMAT_SLINEAR); -+ if (res < 0) -+ { -+ ast_log(LOG_WARNING, "Unable to set to linear read mode, giving up\n"); -+ return -1; -+ } -+ } -+ original_write_fmt = chan->writeformat; -+ if (original_write_fmt != AST_FORMAT_SLINEAR) -+ { -+ res = ast_set_write_format(chan, AST_FORMAT_SLINEAR); -+ if (res < 0) -+ { -+ ast_log(LOG_WARNING, "Unable to set to linear write mode, giving up\n"); -+ res = ast_set_read_format(chan, original_read_fmt); -+ if (res) -+ ast_log(LOG_WARNING, "Unable to restore read format on '%s'\n", chan->name); -+ return -1; -+ } -+ } -+ fax_init(&fax, calling_party); -+ if (verbose) -+ fax.logging.level = SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW; -+ -+ x = pbx_builtin_getvar_helper(chan, "LOCALSTATIONID"); -+ if (x && x[0]) -+ t30_set_local_ident(&fax.t30_state, x); -+ x = pbx_builtin_getvar_helper(chan, "LOCALHEADERINFO"); -+ if (x && x[0]) -+ t30_set_header_info(&fax.t30_state, x); -+ t30_set_tx_file(&fax.t30_state, source_file, -1, -1); -+ //t30_set_phase_b_handler(&fax.t30_state, phase_b_handler, chan); -+ //t30_set_phase_d_handler(&fax.t30_state, phase_d_handler, chan); -+ t30_set_phase_e_handler(&fax.t30_state, phase_e_handler, chan); -+ t30_set_ecm_capability(&fax.t30_state, TRUE); -+ t30_set_supported_compressions(&fax.t30_state, T30_SUPPORT_T4_1D_COMPRESSION | T30_SUPPORT_T4_2D_COMPRESSION | T30_SUPPORT_T6_COMPRESSION); -+ while (ast_waitfor(chan, -1) > -1) -+ { -+ inf = ast_read(chan); -+ if (inf == NULL) -+ { -+ res = -1; -+ break; -+ } -+ if (inf->frametype == AST_FRAME_VOICE) -+ { -+ if (fax_rx(&fax, inf->data, inf->samples)) -+ break; -+ samples = (inf->samples <= MAX_BLOCK_SIZE) ? inf->samples : MAX_BLOCK_SIZE; -+ len = fax_tx(&fax, (int16_t *) &buf[AST_FRIENDLY_OFFSET], samples); -+ if (len) -+ { -+ memset(&outf, 0, sizeof(outf)); -+ outf.frametype = AST_FRAME_VOICE; -+ outf.subclass = AST_FORMAT_SLINEAR; -+ outf.datalen = len*sizeof(int16_t); -+ outf.samples = len; -+ outf.data = &buf[AST_FRIENDLY_OFFSET]; -+ outf.offset = AST_FRIENDLY_OFFSET; -+ if (ast_write(chan, &outf) < 0) -+ { -+ ast_log(LOG_WARNING, "Unable to write frame to channel; %s\n", strerror(errno)); -+ break; -+ } -+ } -+ } -+ ast_frfree(inf); -+ } -+ if (inf == NULL) -+ { -+ ast_log(LOG_DEBUG, "Got hangup\n"); -+ res = -1; -+ } -+ if (original_read_fmt != AST_FORMAT_SLINEAR) -+ { -+ res = ast_set_read_format(chan, original_read_fmt); -+ if (res) -+ ast_log(LOG_WARNING, "Unable to restore read format on '%s'\n", chan->name); -+ } -+ if (original_write_fmt != AST_FORMAT_SLINEAR) -+ { -+ res = ast_set_write_format(chan, original_write_fmt); -+ if (res) -+ ast_log(LOG_WARNING, "Unable to restore write format on '%s'\n", chan->name); -+ } -+ t30_terminate(&fax.t30_state); -+ } -+ else -+ { -+ ast_log(LOG_WARNING, "Could not answer channel '%s'\n", chan->name); -+ } -+ ast_module_user_remove(u); -+ return res; -+} -+/*- End of function --------------------------------------------------------*/ -+ -+static int unload_module(void) -+{ -+ int res; -+ -+ ast_module_user_hangup_all(); -+ -+ res = ast_unregister_application(app); -+ -+ -+ return res; -+} -+/*- End of function --------------------------------------------------------*/ -+ -+static int load_module(void) -+{ -+ return ast_register_application(app, txfax_exec, synopsis, descrip); -+} -+/*- End of function --------------------------------------------------------*/ -+ -+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Trivial FAX Transmit Application"); -+ -+/*- End of file ------------------------------------------------------------*/ -diff -Nru asterisk-1.4.22.org/build_tools/menuselect-deps.in asterisk-1.4.22/build_tools/menuselect-deps.in ---- asterisk-1.4.22.org/build_tools/menuselect-deps.in 2008-08-14 04:02:15.000000000 +0200 -+++ asterisk-1.4.22/build_tools/menuselect-deps.in 2008-11-29 15:02:27.000000000 +0100 -@@ -23,6 +23,7 @@ - POPT=@PBX_POPT@ - PRI=@PBX_PRI@ - RADIUS=@PBX_RADIUS@ -+SPANDSP=@PBX_SPANDSP@ - SPEEX=@PBX_SPEEX@ - SPEEXDSP=@PBX_SPEEXDSP@ - SPEEX_PREPROCESS=@PBX_SPEEX_PREPROCESS@ -diff -Nru asterisk-1.4.22.org/configure.ac asterisk-1.4.22/configure.ac ---- asterisk-1.4.22.org/configure.ac 2008-09-08 18:26:00.000000000 +0200 -+++ asterisk-1.4.22/configure.ac 2008-11-29 15:02:27.000000000 +0100 -@@ -201,6 +201,7 @@ - AST_EXT_LIB_SETUP([PWLIB], [PWlib], [pwlib]) - AST_EXT_LIB_SETUP([OPENH323], [OpenH323], [h323]) - AST_EXT_LIB_SETUP([RADIUS], [Radius Client], [radius]) -+AST_EXT_LIB_SETUP([SPANDSP], [spandsp Library], [spandsp]) - AST_EXT_LIB_SETUP([SPEEX], [Speex], [speex]) - AST_EXT_LIB_SETUP([SPEEXDSP], [Speexdsp], [speexdsp]) - AST_EXT_LIB_SETUP([SQLITE], [SQLite], [sqlite]) -@@ -1302,6 +1303,8 @@ - - AST_EXT_LIB_CHECK([RADIUS], [radiusclient-ng], [rc_read_config], [radiusclient-ng.h]) - -+AST_EXT_LIB_CHECK([SPANDSP], [spandsp], [fax_init], [spandsp.h], [-ltiff -ljpeg -lz]) -+ - AST_EXT_LIB_CHECK([SPEEX], [speex], [speex_encode], [speex/speex.h], [-lm]) - - # See if the main speex library contains the preprocess functions -diff -Nru asterisk-1.4.22.org/include/asterisk/plc.h asterisk-1.4.22/include/asterisk/plc.h ---- asterisk-1.4.22.org/include/asterisk/plc.h 2006-06-14 16:12:56.000000000 +0200 -+++ asterisk-1.4.22/include/asterisk/plc.h 2008-11-29 15:02:27.000000000 +0100 -@@ -1,18 +1,17 @@ --/*! \file -- * \brief SpanDSP - a series of DSP components for telephony -+/* -+ * SpanDSP - a series of DSP components for telephony - * - * plc.h - * -- * \author Steve Underwood <steveu@coppice.org> -+ * Written by Steve Underwood <steveu@coppice.org> - * - * Copyright (C) 2004 Steve Underwood - * - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify -- * it under the terms of the GNU General Public License as published by -- * the Free Software Foundation; either version 2 of the License, or -- * (at your option) any later version. -+ * it under the terms of the GNU General Public License version 2, as -+ * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of -@@ -23,37 +22,36 @@ - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * -- * This version may be optionally licenced under the GNU LGPL licence. -- * -- * A license has been granted to Digium (via disclaimer) for the use of -- * this code. -+ * $Id: plc.h,v 1.15 2007/04/08 08:16:18 steveu Exp $ - */ - -+/*! \file */ - --#if !defined(_PLC_H_) --#define _PLC_H_ -- --#ifdef SOLARIS --#include <sys/int_types.h> --#else --#if defined(__OpenBSD__) || defined( __FreeBSD__) --#include <inttypes.h> --#else --#include <stdint.h> --#endif --#endif -+#if !defined(_SPANDSP_PLC_H_) -+#define _SPANDSP_PLC_H_ - - /*! \page plc_page Packet loss concealment - \section plc_page_sec_1 What does it do? --The packet loss concealment module provides a suitable synthetic fill-in signal, --to minimise the audible effect of lost packets in VoIP applications. It is not --tied to any particular codec, and could be used with almost any codec which does not -+The packet loss concealment module provides a synthetic fill-in signal, to minimise -+the audible effect of lost packets in VoIP applications. It is not tied to any -+particular codec, and could be used with almost any codec which does not - specify its own procedure for packet loss concealment. - --Where a codec specific concealment procedure exists, the algorithm is usually built -+Where a codec specific concealment procedure exists, that algorithm is usually built - around knowledge of the characteristics of the particular codec. It will, therefore, - generally give better results for that particular codec than this generic concealer will. - -+The PLC code implements an algorithm similar to the one described in Appendix 1 of G.711. -+However, the G.711 algorithm is optimised for 10ms packets. Few people use such small -+packets. 20ms is a much more common value, and longer packets are also quite common. The -+algorithm has been adjusted with this in mind. Also, the G.711 approach causes an -+algorithmic delay, and requires significant buffer manipulation when there is no packet -+loss. The algorithm used here avoids this. It causes no delay, and achieves comparable -+quality with normal speech. -+ -+Note that both this algorithm, and the one in G.711 are optimised for speech. For most kinds -+of music a much slower decay on bursts of lost packets give better results. -+ - \section plc_page_sec_2 How does it work? - While good packets are being received, the plc_rx() routine keeps a record of the trailing - section of the known speech signal. If a packet is missed, plc_fillin() is called to produce -@@ -83,7 +81,7 @@ - correct steadily fall. Therefore, the volume of the synthesized signal is made to decay - linearly, such that after 50ms of missing audio it is reduced to silence. - --- When real speech resumes, an extra 1/4 pitch period of sythetic speech is blended with the -+- When real speech resumes, an extra 1/4 pitch period of synthetic speech is blended with the - start of the real speech. If the erasure is small, this smoothes the transition. If the erasure - is long, and the synthetic signal has faded to zero, the blending softens the start up of the - real signal, avoiding a kind of "click" or "pop" effect that might occur with a sudden onset. -@@ -110,6 +108,9 @@ - the pitch assessment. */ - #define PLC_HISTORY_LEN (CORRELATION_SPAN + PLC_PITCH_MIN) - -+/*! -+ The generic packet loss concealer context. -+*/ - typedef struct - { - /*! Consecutive erased samples */ -@@ -127,12 +128,13 @@ - } plc_state_t; - - --#ifdef __cplusplus --extern "C" { -+#if defined(__cplusplus) -+extern "C" -+{ - #endif - --/*! Process a block of received audio samples. -- \brief Process a block of received audio samples. -+/*! Process a block of received audio samples for PLC. -+ \brief Process a block of received audio samples for PLC. - \param s The packet loss concealer context. - \param amp The audio sample buffer. - \param len The number of samples in the buffer. -@@ -147,13 +149,18 @@ - \return The number of samples synthesized. */ - int plc_fillin(plc_state_t *s, int16_t amp[], int len); - --/*! Process a block of received V.29 modem audio samples. -- \brief Process a block of received V.29 modem audio samples. -+/*! Initialise a packet loss concealer context. -+ \brief Initialise a PLC context. - \param s The packet loss concealer context. -- \return A pointer to the he packet loss concealer context. */ -+ \return A pointer to the the packet loss concealer context. */ - plc_state_t *plc_init(plc_state_t *s); - --#ifdef __cplusplus -+/*! Free a packet loss concealer context. -+ \param s The packet loss concealer context. -+ \return 0 for OK. */ -+int plc_release(plc_state_t *s); -+ -+#if defined(__cplusplus) - } - #endif - -diff -Nru asterisk-1.4.22.org/makeopts.in asterisk-1.4.22/makeopts.in ---- asterisk-1.4.22.org/makeopts.in 2008-06-12 21:08:20.000000000 +0200 -+++ asterisk-1.4.22/makeopts.in 2008-11-29 15:02:27.000000000 +0100 -@@ -138,6 +138,9 @@ - RADIUS_INCLUDE=@RADIUS_INCLUDE@ - RADIUS_LIB=@RADIUS_LIB@ - -+SPANDSP_INCLUDE=@SPANDSP_INCLUDE@ -+SPANDSP_LIB=@SPANDSP_LIB@ -+ - SPEEX_INCLUDE=@SPEEX_INCLUDE@ - SPEEX_LIB=@SPEEX_LIB@ - diff --git a/contrib/package/asterisk-xip/patches/016-iksemel-configure_ac.patch b/contrib/package/asterisk-xip/patches/016-iksemel-configure_ac.patch deleted file mode 100644 index 0b0b7d5e8b..0000000000 --- a/contrib/package/asterisk-xip/patches/016-iksemel-configure_ac.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nru asterisk-1.4.22.org/configure.ac asterisk-1.4.22/configure.ac ---- asterisk-1.4.22.org/configure.ac 2008-09-08 18:26:00.000000000 +0200 -+++ asterisk-1.4.22/configure.ac 2008-11-29 15:04:09.000000000 +0100 -@@ -514,7 +514,7 @@ - fi - fi - --AST_EXT_LIB_CHECK([IKSEMEL], [iksemel], [iks_start_sasl], [iksemel.h]) -+AST_EXT_LIB_CHECK([IKSEMEL], [iksemel], [iks_start_sasl], [iksemel.h], [-lgnutls -lgcrypt -lgpg-error]) - - if test "${PBX_IKSEMEL}" = 1; then - AST_EXT_LIB_CHECK([GNUTLS], [gnutls], [gnutls_bye], [gnutls/gnutls.h], [-lz -lgcrypt -lgpg-error]) diff --git a/contrib/package/asterisk-xip/patches/017-Makefile-no_march.patch b/contrib/package/asterisk-xip/patches/017-Makefile-no_march.patch deleted file mode 100644 index 98ec1100bc..0000000000 --- a/contrib/package/asterisk-xip/patches/017-Makefile-no_march.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nru asterisk-1.4.22.org/Makefile asterisk-1.4.22/Makefile ---- asterisk-1.4.22.org/Makefile 2008-09-08 22:15:42.000000000 +0200 -+++ asterisk-1.4.22/Makefile 2008-11-29 15:05:12.000000000 +0100 -@@ -215,7 +215,7 @@ - endif - - ifneq ($(PROC),ultrasparc) -- ASTCFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi) -+ #ASTCFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi) - endif - - ifeq ($(PROC),ppc) diff --git a/contrib/package/asterisk-xip/patches/023-autoconf-chan_h323.patch b/contrib/package/asterisk-xip/patches/023-autoconf-chan_h323.patch deleted file mode 100644 index 629bb382a7..0000000000 --- a/contrib/package/asterisk-xip/patches/023-autoconf-chan_h323.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -Nru asterisk-1.4.22.org/acinclude.m4 asterisk-1.4.22/acinclude.m4 ---- asterisk-1.4.22.org/acinclude.m4 2008-07-22 22:49:41.000000000 +0200 -+++ asterisk-1.4.22/acinclude.m4 2008-11-29 15:06:28.000000000 +0100 -@@ -588,6 +588,7 @@ - ;; - esac - AC_MSG_RESULT(${OPENH323_BUILD}) -+ OPENH323_SUFFIX="n_s" - - AC_SUBST([OPENH323_SUFFIX]) - AC_SUBST([OPENH323_BUILD]) -diff -Nru asterisk-1.4.22.org/configure.ac asterisk-1.4.22/configure.ac ---- asterisk-1.4.22.org/configure.ac 2008-09-08 18:26:00.000000000 +0200 -+++ asterisk-1.4.22/configure.ac 2008-11-29 15:06:28.000000000 +0100 -@@ -1259,7 +1259,7 @@ - if test "${HAS_PWLIB:-unset}" != "unset"; then - AST_CHECK_OPENH323_PLATFORM() - -- PLATFORM_PWLIB="pt_${PWLIB_PLATFORM}_r" -+ PLATFORM_PWLIB="pt_${PWLIB_PLATFORM}_r_s" - - AST_CHECK_PWLIB_BUILD([PWLib], [PWLIB], - [Define if your system has the PWLib libraries.], diff --git a/contrib/package/asterisk-xip/patches/026-gsm-mips.patch b/contrib/package/asterisk-xip/patches/026-gsm-mips.patch deleted file mode 100644 index e69de29bb2..0000000000 --- a/contrib/package/asterisk-xip/patches/026-gsm-mips.patch +++ /dev/null diff --git a/contrib/package/asterisk-xip/patches/030-acinclude.patch b/contrib/package/asterisk-xip/patches/030-acinclude.patch deleted file mode 100644 index 7ca79b64ef..0000000000 --- a/contrib/package/asterisk-xip/patches/030-acinclude.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff -Nru asterisk-1.4.22.org/acinclude.m4 asterisk-1.4.22/acinclude.m4 ---- asterisk-1.4.22.org/acinclude.m4 2008-07-22 22:49:41.000000000 +0200 -+++ asterisk-1.4.22/acinclude.m4 2008-11-29 15:08:07.000000000 +0100 -@@ -664,7 +664,7 @@ - [assume the C compiler uses GNU ld @<:@default=no@:>@])], - [test "$withval" = no || with_gnu_ld=yes], - [with_gnu_ld=no]) --AC_REQUIRE([AST_PROG_SED])dnl -+AC_REQUIRE([AC_PROG_SED])dnl - AC_REQUIRE([AC_PROG_CC])dnl - AC_REQUIRE([AC_CANONICAL_HOST])dnl - AC_REQUIRE([AC_CANONICAL_BUILD])dnl -@@ -769,28 +769,6 @@ - AC_SUBST([EGREP]) - ])]) # AST_PROG_EGREP - --# AST_PROG_SED --# ----------- --# Check for a fully functional sed program that truncates --# as few characters as possible. Prefer GNU sed if found. --AC_DEFUN([AST_PROG_SED], --[AC_CACHE_CHECK([for a sed that does not truncate output], ac_cv_path_SED, -- [dnl ac_script should not contain more than 99 commands (for HP-UX sed), -- dnl but more than about 7000 bytes, to catch a limit in Solaris 8 /usr/ucb/sed. -- ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ -- for ac_i in 1 2 3 4 5 6 7; do -- ac_script="$ac_script$as_nl$ac_script" -- done -- echo "$ac_script" | sed 99q >conftest.sed -- $as_unset ac_script || ac_script= -- _AC_PATH_PROG_FEATURE_CHECK(SED, [sed gsed], -- [_AC_FEATURE_CHECK_LENGTH([ac_path_SED], [ac_cv_path_SED], -- ["$ac_path_SED" -f conftest.sed])])]) -- SED="$ac_cv_path_SED" -- AC_SUBST([SED])dnl -- rm -f conftest.sed --])# AST_PROG_SED -- - dnl @synopsis ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) - dnl - dnl @summary figure out how to build C programs using POSIX threads diff --git a/contrib/package/asterisk-xip/patches/035-main-asterisk-uclibc-daemon.patch b/contrib/package/asterisk-xip/patches/035-main-asterisk-uclibc-daemon.patch deleted file mode 100644 index 262bed4a74..0000000000 --- a/contrib/package/asterisk-xip/patches/035-main-asterisk-uclibc-daemon.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -Nru asterisk-1.4.22.org/main/asterisk.c asterisk-1.4.22/main/asterisk.c ---- asterisk-1.4.22.org/main/asterisk.c 2008-07-26 17:31:21.000000000 +0200 -+++ asterisk-1.4.22/main/asterisk.c 2008-12-20 22:49:58.000000000 +0100 -@@ -2935,7 +2935,38 @@ - #if HAVE_WORKING_FORK - if (ast_opt_always_fork || !ast_opt_no_fork) { - #ifndef HAVE_SBIN_LAUNCHD -+#ifndef __UCLIBC__ - daemon(1, 0); -+#else -+/* -+ workaround for uClibc-0.9.29 mipsel bug: -+ recursive mutexes do not work if uClibc daemon() function has been called, -+ if parent thread locks a mutex -+ the child thread cannot acquire a lock with the same name -+ (same code works if daemon() is not called) -+ but duplication of uClibc daemon.c code in here does work. -+*/ -+ int fd; -+ switch (fork()) { -+ case -1: -+ exit(1); -+ case 0: -+ break; -+ default: -+ _exit(0); -+ } -+ if (setsid() == -1) -+ exit(1); -+ if (fork()) -+ _exit(0); -+ if ((fd = open("/dev/null", O_RDWR, 0)) != -1) { -+ dup2(fd, STDIN_FILENO); -+ dup2(fd, STDOUT_FILENO); -+ dup2(fd, STDERR_FILENO); -+ if (fd > 2) -+ close(fd); -+ } -+#endif - ast_mainpid = getpid(); - /* Blindly re-write pid file since we are forking */ - unlink(ast_config_AST_PID); diff --git a/contrib/package/asterisk-xip/patches/040-pickup2.patch b/contrib/package/asterisk-xip/patches/040-pickup2.patch deleted file mode 100644 index cc665ec372..0000000000 --- a/contrib/package/asterisk-xip/patches/040-pickup2.patch +++ /dev/null @@ -1,284 +0,0 @@ -*** xx/apps/app_pickup2.c 1970-01-01 08:00:00.000000000 +0800 ---- asterisk-1.4.22/apps/app_pickup2.c 2009-01-19 17:44:07.483909506 +0900 -*************** -*** 0 **** ---- 1,279 ---- -+ /* -+ * Asterisk -- A telephony toolkit for Linux. -+ * -+ * Pickup, channel independent call pickup -+ * -+ * Copyright (C) 2005-2007, Thorsten Knabe <ast@thorsten-knabe.de> -+ * -+ * Copyright (C) 2004, Junghanns.NET GmbH -+ * -+ * Klaus-Peter Junghanns <kpj@junghanns.net> -+ * -+ * Copyright (C) 2004, Florian Overkamp <florian@obsimref.com> -+ * -+ * This program is free software, distributed under the terms of -+ * the GNU General Public License -+ */ -+ -+ /*** MODULEINFO -+ <defaultenabled>yes</defaultenabled> -+ ***/ -+ -+ #include "asterisk.h" -+ -+ ASTERISK_FILE_VERSION(__FILE__, "$Revision: 2 $") -+ -+ #include <stdlib.h> -+ #include <unistd.h> -+ #include <string.h> -+ #include <stdio.h> -+ #include <signal.h> -+ #include <pthread.h> -+ #include "asterisk/lock.h" -+ #include "asterisk/file.h" -+ #include "asterisk/logger.h" -+ #include "asterisk/channel.h" -+ #include "asterisk/pbx.h" -+ #include "asterisk/module.h" -+ #include "asterisk/musiconhold.h" -+ #include "asterisk/features.h" -+ #include "asterisk/options.h" -+ -+ static char *app = "PickUp2"; -+ static char *synopsis = "PickUp ringing channel."; -+ static char *descrip = -+ " PickUp2(Technology/resource[&Technology2/resource2&...][|<option>]):\n" -+ "Matches the list of prefixes in the parameter list against channels in\n" -+ "state RINGING. If a match is found the channel is picked up and\n" -+ "PICKUP_CHANNEL is set to the picked up channel name. If no matching\n" -+ "channel is found PICKUP_CHANNEL is empty.\n" -+ "Possible options:\n" -+ "B: match on channel name of bridged channel.\n"; -+ -+ static char *app2 = "PickDown2"; -+ static char *synopsis2 = "Hangup ringing channel."; -+ static char *descrip2 = -+ " PickDown2(Technology/resource[&Technology2/resource2&...][|<option>]):\n" -+ "Matches the list of prefixes in the parameter list against channels in\n" -+ "state RINGING. If a match is found the channel is hung up and\n" -+ "PICKDOWN_CHANNEL is set to the hung up channel name. If no matching\n" -+ "channel is found PICKDOWN_CHANNEL is empty.\n" -+ "Possible options:\n" -+ "B: match on channel name of bridged channel.\n"; -+ -+ static char *app3 = "Steal2"; -+ static char *synopsis3 = "Steal a connected channel."; -+ -+ static char *descrip3 = -+ " Steal2(Technology/resource[&Technology2/resource2&...][|<option>]):\n" -+ "Matches the list of prefixes in the parameter list against channels in\n" -+ "state UP. If a match is found the channel is stolen and\n" -+ "STEAL_CHANNEL is set to the stolen channel name. If no matching\n" -+ "channel is found STEAL_CHANNEL is empty.\n" -+ "Possible options:\n" -+ "B: match on channel name of bridged channel.\n"; -+ -+ /* Find channel matching given pattern and state, skipping our own channel. -+ * Returns locked channel, which has to be unlocked using ast_mutex_unlock(). -+ * Returns NULL when no matching channel is found. -+ */ -+ static struct ast_channel *find_matching_channel(struct ast_channel *chan, -+ void *pattern, int chanstate) -+ { -+ struct ast_channel *cur; -+ char *pat = ""; -+ char *next_pat = NULL; -+ char *option = ""; -+ struct ast_channel *bridged; -+ -+ /* copy original pattern or use empty pattern if no pattern has been given*/ -+ if (pattern) { -+ pat = alloca(strlen(pattern) + 1); -+ strcpy(pat, pattern); -+ } -+ for (option = pat; *option; option++) { -+ if (*option == '|') { -+ *option = '\0'; -+ option++; -+ break; -+ } -+ } -+ ast_verbose(VERBOSE_PREFIX_4 -+ "find_matching_channel: pattern='%s' option='%s' state=%d\n", -+ (char *)pat, option, chanstate); -+ -+ /* match on bridged channel name */ -+ if (!strcmp("B", option)) { -+ /* Iterate over each part of the pattern */ -+ while (pat) { -+ /* find pattern for next iteration, -+ * terminate current pattern */ -+ for (next_pat = pat; -+ *next_pat && *next_pat != '&'; next_pat++); -+ if (*next_pat == '&') { -+ *next_pat = 0; -+ next_pat++; -+ } else -+ next_pat = NULL; -+ /* Iterate over all channels */ -+ cur = ast_channel_walk_locked(NULL); -+ while (cur) { -+ bridged = ast_bridged_channel(cur); -+ if (bridged) { -+ ast_verbose(VERBOSE_PREFIX_4 -+ "find_matching_channel: trying channel='%s' bridged='%s' " -+ "state=%d pattern='%s'\n", -+ cur->name, bridged->name, cur->_state, pat); -+ if ((cur != chan) && (bridged != chan) && -+ (cur->_state == chanstate) && -+ !strncmp(pat, bridged->name, strlen(pat))) { -+ ast_verbose(VERBOSE_PREFIX_4 -+ "find_matching_channel: " -+ "found channel='%s' bridged='%s'\n", -+ cur->name, bridged->name); -+ return(cur); -+ } -+ } -+ ast_mutex_unlock(&cur->lock); -+ cur = ast_channel_walk_locked(cur); -+ } -+ pat = next_pat; -+ } -+ } else { -+ /* Iterate over each part of the pattern */ -+ while (pat) { -+ /* find pattern for next iteration, -+ * terminate current pattern */ -+ for (next_pat = pat; -+ *next_pat && *next_pat != '&'; next_pat++); -+ if (*next_pat == '&') { -+ *next_pat = 0; -+ next_pat++; -+ } else -+ next_pat = NULL; -+ /* Iterate over all channels */ -+ cur = ast_channel_walk_locked(NULL); -+ while (cur) { -+ ast_verbose(VERBOSE_PREFIX_4 -+ "find_matching_channel: trying channel='%s' " -+ "state=%d pattern='%s'\n", -+ cur->name, cur->_state, pat); -+ if ((cur != chan) && -+ (cur->_state == chanstate) && -+ !strncmp(pat, cur->name, strlen(pat))) { -+ ast_verbose(VERBOSE_PREFIX_4 -+ "find_matching_channel: " -+ "found channel='%s'\n", -+ cur->name); -+ return(cur); -+ } -+ ast_mutex_unlock(&cur->lock); -+ cur = ast_channel_walk_locked(cur); -+ } -+ pat = next_pat; -+ } -+ } -+ return(NULL); -+ } -+ -+ static int pickup_channel(struct ast_channel *chan, void *pattern) -+ { -+ int ret = 0; -+ struct ast_module_user *u; -+ struct ast_channel *cur; -+ u = ast_module_user_add(chan); -+ cur = find_matching_channel(chan, pattern, AST_STATE_RINGING); -+ if (cur) { -+ ast_verbose(VERBOSE_PREFIX_3 -+ "Channel %s picked up ringing channel %s\n", -+ chan->name, cur->name); -+ pbx_builtin_setvar_helper(chan, "PICKUP_CHANNEL", cur->name); -+ if (chan->_state != AST_STATE_UP) { -+ ast_answer(chan); -+ } -+ if (ast_channel_masquerade(cur, chan)) { -+ ast_log(LOG_ERROR, "unable to masquerade\n"); -+ ret = -1; -+ } -+ ast_mutex_unlock(&cur->lock); -+ ast_mutex_unlock(&chan->lock); -+ } else { -+ pbx_builtin_setvar_helper(chan, "PICKUP_CHANNEL", ""); -+ } -+ ast_module_user_remove(u); -+ return(ret); -+ } -+ -+ static int pickdown_channel(struct ast_channel *chan, void *pattern) -+ { -+ int ret = 0; -+ struct ast_module_user *u; -+ struct ast_channel *cur; -+ u = ast_module_user_add(chan); -+ cur = find_matching_channel(chan, pattern, AST_STATE_RINGING); -+ if (cur) { -+ ast_verbose(VERBOSE_PREFIX_3 -+ "Channel %s hung up ringing channel %s\n", -+ chan->name, cur->name); -+ pbx_builtin_setvar_helper(chan, "PICKDOWN_CHANNEL", cur->name); -+ ast_softhangup_nolock(cur, AST_SOFTHANGUP_DEV); -+ ast_mutex_unlock(&cur->lock); -+ } else { -+ pbx_builtin_setvar_helper(chan, "PICKDOWN_CHANNEL", ""); -+ } -+ ast_module_user_remove(u); -+ return(ret); -+ } -+ -+ static int steal_channel(struct ast_channel *chan, void *pattern) -+ { -+ int ret = 0; -+ struct ast_module_user *u; -+ struct ast_channel *cur; -+ u = ast_module_user_add(chan); -+ cur = find_matching_channel(chan, pattern, AST_STATE_UP); -+ if (cur) { -+ ast_verbose(VERBOSE_PREFIX_3 -+ "Channel %s stole channel %s\n", -+ chan->name, cur->name); -+ pbx_builtin_setvar_helper(chan, "STEAL_CHANNEL", cur->name); -+ if (chan->_state != AST_STATE_UP) { -+ ast_answer(chan); -+ } -+ if (cur->_bridge) { -+ if (!ast_mutex_lock(&cur->_bridge->lock)) { -+ ast_moh_stop(cur->_bridge); -+ ast_mutex_unlock(&cur->_bridge->lock); -+ } -+ } -+ -+ if (ast_channel_masquerade(cur, chan)) { -+ ast_log(LOG_ERROR, "unable to masquerade\n"); -+ ret = -1; -+ } -+ ast_mutex_unlock(&cur->lock); -+ ast_mutex_unlock(&chan->lock); -+ } else { -+ pbx_builtin_setvar_helper(chan, "STEAL_CHANNEL", ""); -+ } -+ ast_module_user_remove(u); -+ return(ret); -+ } -+ -+ static int unload_module(void) -+ { -+ ast_module_user_hangup_all(); -+ ast_unregister_application(app3); -+ ast_unregister_application(app2); -+ return ast_unregister_application(app); -+ } -+ -+ static int load_module(void) -+ { -+ ast_register_application(app3, steal_channel, synopsis3, descrip3); -+ ast_register_application(app2, pickdown_channel, synopsis2, descrip2); -+ return ast_register_application(app, pickup_channel, synopsis, descrip); -+ } -+ -+ AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, -+ "PickUp2, PickDown2, Steal2 Application"); |