aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Thill <nico@openwrt.org>2005-12-09 22:41:38 +0000
committerNicolas Thill <nico@openwrt.org>2005-12-09 22:41:38 +0000
commit9d2f20ac75dc1ddfd167ef6d53a5e3a93450d02d (patch)
tree527675cbb308bfe1271dc6b44d06392b91859320
parent764347e0dda10f1a9680d5e867d30f30a00a25a1 (diff)
downloadupstream-9d2f20ac75dc1ddfd167ef6d53a5e3a93450d02d.tar.gz
upstream-9d2f20ac75dc1ddfd167ef6d53a5e3a93450d02d.tar.bz2
upstream-9d2f20ac75dc1ddfd167ef6d53a5e3a93450d02d.zip
add asterisk-mini package, put modules.conf under rev; control, add ipkg conffiles.
SVN-Revision: 2610
-rw-r--r--openwrt/package/asterisk/Config.in27
-rw-r--r--openwrt/package/asterisk/Makefile37
-rw-r--r--openwrt/package/asterisk/files/modules.conf97
-rw-r--r--openwrt/package/asterisk/ipkg/asterisk-mini.conffiles13
-rw-r--r--openwrt/package/asterisk/ipkg/asterisk-mini.control5
-rw-r--r--openwrt/package/asterisk/ipkg/asterisk.conffiles20
-rw-r--r--openwrt/package/asterisk/patches/asterisk-1.0.7-config-modules.patch120
7 files changed, 196 insertions, 123 deletions
diff --git a/openwrt/package/asterisk/Config.in b/openwrt/package/asterisk/Config.in
index 963e372e2e..127bb15bea 100644
--- a/openwrt/package/asterisk/Config.in
+++ b/openwrt/package/asterisk/Config.in
@@ -112,4 +112,31 @@ config BR2_PACKAGE_ASTERISK_VOICEMAIL
help
Voicemail related modules for Asterisk
+config BR2_PACKAGE_ASTERISK_MINI
+ prompt "asterisk-mini..................... Minimal open source PBX"
+ tristate
+ default m if CONFIG_DEVEL
+ help
+ 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.
+
+ http://www.asterisk.org/
+
+ This package contains only the following modules:
+ - 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
+
+
endmenu
diff --git a/openwrt/package/asterisk/Makefile b/openwrt/package/asterisk/Makefile
index 8077ffda14..e670774f17 100644
--- a/openwrt/package/asterisk/Makefile
+++ b/openwrt/package/asterisk/Makefile
@@ -16,6 +16,7 @@ PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
include $(TOPDIR)/package/rules.mk
$(eval $(call PKG_template,ASTERISK,asterisk,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+$(eval $(call PKG_template,ASTERISK_MINI,asterisk-mini,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
$(eval $(call PKG_template,ASTERISK_MYSQL,asterisk-mysql,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
$(eval $(call PKG_template,ASTERISK_PGSQL,asterisk-pgsql,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
$(eval $(call PKG_template,ASTERISK_VOICEMAIL,asterisk-voicemail,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
@@ -70,6 +71,7 @@ $(PKG_BUILD_DIR)/.built:
$(MAKE) -C $(PKG_BUILD_DIR) \
DESTDIR="$(PKG_INSTALL_DIR)" \
install samples
+ rm -f $(PKG_INSTALL_DIR)/etc/asterisk/*.old
touch $@
$(IPKG_ASTERISK):
@@ -80,7 +82,7 @@ $(IPKG_ASTERISK):
rm -rf $(IDIR_ASTERISK)/usr/include
rm -rf $(IDIR_ASTERISK)/var
(cd $(IDIR_ASTERISK)/usr/lib/asterisk; \
- rm -rf agi-bin/*; \
+ rm -rf agi-bin; \
rm -rf images; \
rm -rf keys/*; \
rm -rf mohmp3/*.mp3; \
@@ -106,8 +108,8 @@ $(IPKG_ASTERISK):
rm -f skinny.conf ; \
rm -f dundi.conf ; \
)
- $(SED) 's|/var/lib/asterisk|/usr/lib/asterisk|g' $(IDIR_ASTERISK)/etc/asterisk/musiconhold.conf
- rm -f $(IDIR_ASTERISK)/etc/asterisk/*.old
+ install -m0644 ./files/modules.conf $(IDIR_ASTERISK)/etc/asterisk/
+ $(SED) 's|/var/lib/asterisk|/usr/lib/asterisk|g' $(PKG_INSTALL_DIR)/etc/asterisk/musiconhold.conf
install -d -m0755 $(IDIR_ASTERISK)/etc/default
install -m0644 ./files/asterisk.default $(IDIR_ASTERISK)/etc/default/asterisk
install -d -m0755 $(IDIR_ASTERISK)/etc/init.d
@@ -116,6 +118,34 @@ $(IPKG_ASTERISK):
$(RSTRIP) $(IDIR_ASTERISK)
$(IPKG_BUILD) $(IDIR_ASTERISK) $(PACKAGE_DIR)
+$(IPKG_ASTERISK_MINI):
+ install -d -m0755 $(IDIR_ASTERISK_MINI)/etc/asterisk
+ for f in asterisk enum extconfig extensions features iax iaxprov logger manager modules musiconhold rtp sip; do \
+ cp -fpR $(PKG_INSTALL_DIR)/etc/asterisk/$$f.conf $(IDIR_ASTERISK_MINI)/etc/asterisk/ ; \
+ done
+ install -m0644 ./files/modules.conf $(IDIR_ASTERISK)/etc/asterisk/
+ $(SED) 's|/var/lib/asterisk|/usr/lib/asterisk|g' $(PKG_INSTALL_DIR)/etc/asterisk/musiconhold.conf
+ install -d -m0755 $(IDIR_ASTERISK_MINI)/usr/lib/asterisk
+ cp -fpR $(PKG_INSTALL_DIR)/usr/lib/asterisk/firmware $(IDIR_ASTERISK_MINI)/usr/lib/asterisk/
+ install -d -m0755 $(IDIR_ASTERISK_MINI)/usr/lib/asterisk/keys
+ install -d -m0755 $(IDIR_ASTERISK_MINI)/usr/lib/asterisk/modules
+ for f in 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; do \
+ cp -fpR $(PKG_INSTALL_DIR)/usr/lib/asterisk/modules/$$f.so $(IDIR_ASTERISK_MINI)/usr/lib/asterisk/modules/ ; \
+ done
+ install -d -m0755 $(IDIR_ASTERISK_MINI)/usr/lib/asterisk/mohmp3
+ install -d -m0755 $(IDIR_ASTERISK_MINI)/usr/lib/asterisk/sounds
+ install -d -m0755 $(IDIR_ASTERISK_MINI)/usr/sbin
+ cp -fpR $(PKG_INSTALL_DIR)/usr/sbin/asterisk $(IDIR_ASTERISK_MINI)/usr/sbin/
+ cp -fpR $(PKG_INSTALL_DIR)/usr/sbin/safe_asterisk $(IDIR_ASTERISK_MINI)/usr/sbin/
+ install -d -m0755 $(IDIR_ASTERISK_MINI)/etc/default
+ install -m0644 ./files/asterisk.default $(IDIR_ASTERISK_MINI)/etc/default/asterisk
+ install -d -m0755 $(IDIR_ASTERISK_MINI)/etc/init.d
+ install -m0755 ./files/asterisk.init $(IDIR_ASTERISK_MINI)/etc/init.d/asterisk
+ ln -sf asterisk $(IDIR_ASTERISK_MINI)/etc/init.d/S60asterisk
+ $(RSTRIP) $(IDIR_ASTERISK_MINI)
+ $(IPKG_BUILD) $(IDIR_ASTERISK_MINI) $(PACKAGE_DIR)
+
$(IPKG_ASTERISK_MYSQL):
install -d -m0755 $(IDIR_ASTERISK_MYSQL)/etc/asterisk
install -m0600 $(PKG_BUILD_DIR)/configs/cdr_mysql.conf.sample $(IDIR_ASTERISK_MYSQL)/etc/asterisk/cdr_mysql.conf
@@ -204,6 +234,7 @@ $(IPKG_ASTERISK_PBX_DUNDI):
$(IPKG_BUILD) $(IDIR_ASTERISK_PBX_DUNDI) $(PACKAGE_DIR)
$(IPKG_ASTERISK_RES_AGI):
+ install -d -m0755 $(IDIR_ASTERISK_RES_AGI)/usr/lib/asterisk/agi-bin
install -d -m0755 $(IDIR_ASTERISK_RES_AGI)/usr/lib/asterisk/modules
install -m0755 $(PKG_BUILD_DIR)/res/res_agi.so $(IDIR_ASTERISK_RES_AGI)/usr/lib/asterisk/modules/
$(RSTRIP) $(IDIR_ASTERISK_RES_AGI)
diff --git a/openwrt/package/asterisk/files/modules.conf b/openwrt/package/asterisk/files/modules.conf
new file mode 100644
index 0000000000..eeda73f65f
--- /dev/null
+++ b/openwrt/package/asterisk/files/modules.conf
@@ -0,0 +1,97 @@
+;
+; Asterisk configuration file
+;
+; Module Loader configuration file
+;
+
+[modules]
+autoload=yes
+;
+; 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_manager.so ; Asterisk Call Manager CDR Backend
+noload => chan_agent.so ; Agent Proxy Channel
+; 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 Translat
+; load => codec_ulaw.so ; Mu-law Coder/Decoder
+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 for Asterisk
+noload => app_authenticate.so ; Authentication Application
+noload => app_cdr.so ; Make sure asterisk doesn't save CDR for
+noload => app_chanisavail.so ; Check if channel is available
+noload => app_controlplayback.so ; Control Playback Application
+noload => app_cut.so ; Cuts up variables
+noload => app_db.so ; Database access functions for Asterisk e
+; load => app_dial.so ; Dialing Application
+noload => app_directory.so ; Extension Directory
+noload => app_disa.so ; DISA (Direct Inward System Access) Appli
+; 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_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
+; load => app_milliwatt.so ; Digital Milliwatt (mu-law) Test Applicat
+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, if n
+noload => app_qcall.so ; Call from Queue
+noload => app_queue.so ; True Call Queueing
+noload => app_random.so ; Random goto
+noload => app_read.so ; Read Variable Application
+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_sms.so ; SMS/PSTN handler
+noload => app_softhangup.so ; Hangs up the requested channel
+noload => app_striplsd.so ; Strip trailing digits
+noload => app_substring.so ; (Deprecated) Save substring digits in a
+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
+; load => pbx_config.so ; Text Extension Configuration
+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/openwrt/package/asterisk/ipkg/asterisk-mini.conffiles b/openwrt/package/asterisk/ipkg/asterisk-mini.conffiles
new file mode 100644
index 0000000000..f95c338f68
--- /dev/null
+++ b/openwrt/package/asterisk/ipkg/asterisk-mini.conffiles
@@ -0,0 +1,13 @@
+/etc/asterisk/asterisk.conf
+/etc/asterisk/enum.conf
+/etc/asterisk/extconfig.conf
+/etc/asterisk/extensions.conf
+/etc/asterisk/features.conf
+/etc/asterisk/iax.conf
+/etc/asterisk/iaxprov.conf
+/etc/asterisk/logger.conf
+/etc/asterisk/manager.conf
+/etc/asterisk/modules.conf
+/etc/asterisk/musiconhold.conf
+/etc/asterisk/rtp.conf
+/etc/asterisk/sip.conf
diff --git a/openwrt/package/asterisk/ipkg/asterisk-mini.control b/openwrt/package/asterisk/ipkg/asterisk-mini.control
new file mode 100644
index 0000000000..b609fab9be
--- /dev/null
+++ b/openwrt/package/asterisk/ipkg/asterisk-mini.control
@@ -0,0 +1,5 @@
+Package: asterisk-mini
+Priority: optional
+Section: net
+Depends: libncurses, libpthread
+Description: A minimal open source PBX
diff --git a/openwrt/package/asterisk/ipkg/asterisk.conffiles b/openwrt/package/asterisk/ipkg/asterisk.conffiles
new file mode 100644
index 0000000000..db04961218
--- /dev/null
+++ b/openwrt/package/asterisk/ipkg/asterisk.conffiles
@@ -0,0 +1,20 @@
+/etc/asterisk/asterisk.conf
+/etc/asterisk/agents.conf
+/etc/asterisk/alarmreceiver.conf
+/etc/asterisk/cdr_manager.conf
+/etc/asterisk/enum.conf
+/etc/asterisk/extconfig.conf
+/etc/asterisk/extensions.conf
+/etc/asterisk/features.conf
+/etc/asterisk/iax.conf
+/etc/asterisk/iaxprov.conf
+/etc/asterisk/indications.conf
+/etc/asterisk/logger.conf
+/etc/asterisk/manager.conf
+/etc/asterisk/modules.conf
+/etc/asterisk/musiconhold.conf
+/etc/asterisk/osp.conf
+/etc/asterisk/privacy.conf
+/etc/asterisk/queues.conf
+/etc/asterisk/rtp.conf
+/etc/asterisk/sip.conf
diff --git a/openwrt/package/asterisk/patches/asterisk-1.0.7-config-modules.patch b/openwrt/package/asterisk/patches/asterisk-1.0.7-config-modules.patch
deleted file mode 100644
index 28da5ae92b..0000000000
--- a/openwrt/package/asterisk/patches/asterisk-1.0.7-config-modules.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-diff -ruN asterisk-1.0.7-old/configs/modules.conf.sample asterisk-1.0.7-new/configs/modules.conf.sample
---- asterisk-1.0.7-old/configs/modules.conf.sample 2003-06-26 20:57:54.000000000 +0200
-+++ asterisk-1.0.7-new/configs/modules.conf.sample 2005-10-25 04:08:28.000000000 +0200
-@@ -7,33 +7,91 @@
- [modules]
- autoload=yes
- ;
--; If you want, load the GTK console right away.
--; Don't load the KDE console since
--; it's not as sophisticated right now.
--;
--noload => pbx_gtkconsole.so
--;load => pbx_gtkconsole.so
--noload => pbx_kdeconsole.so
--;
--; Intercom application is obsoleted by
--; chan_oss. Don't load it.
--;
--noload => app_intercom.so
--;
--; Explicitly load the chan_modem.so early on to be sure
--; it loads before any of the chan_modem_* 's afte rit
--;
--load => chan_modem.so
--load => res_musiconhold.so
--;
--; Load either OSS or ALSA, not both
--; By default, load OSS only (automatically) and do not load ALSA
--;
--noload => chan_alsa.so
--;noload => chan_oss.so
-+; 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_manager.so ; Asterisk Call Manager CDR Backend
-+noload => chan_agent.so ; Agent Proxy Channel
-+; 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 Translat
-+; load => codec_ulaw.so ; Mu-law Coder/Decoder
-+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 for Asterisk
-+noload => app_authenticate.so ; Authentication Application
-+noload => app_cdr.so ; Make sure asterisk doesn't save CDR for
-+noload => app_chanisavail.so ; Check if channel is available
-+noload => app_controlplayback.so ; Control Playback Application
-+noload => app_cut.so ; Cuts up variables
-+noload => app_db.so ; Database access functions for Asterisk e
-+; load => app_dial.so ; Dialing Application
-+noload => app_directory.so ; Extension Directory
-+noload => app_disa.so ; DISA (Direct Inward System Access) Appli
-+; 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_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
-+; load => app_milliwatt.so ; Digital Milliwatt (mu-law) Test Applicat
-+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, if n
-+noload => app_qcall.so ; Call from Queue
-+noload => app_queue.so ; True Call Queueing
-+noload => app_random.so ; Random goto
-+noload => app_read.so ; Read Variable Application
-+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_sms.so ; SMS/PSTN handler
-+noload => app_softhangup.so ; Hangs up the requested channel
-+noload => app_striplsd.so ; Strip trailing digits
-+noload => app_substring.so ; (Deprecated) Save substring digits in a
-+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
-+; load => pbx_config.so ; Text Extension Configuration
-+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=yes
-+chan_modem.so=no