Review Board 1.7.16


Bridging API for Conference Bridge purposes

Review Request #93 - Created Dec. 15, 2008 and submitted

Joshua Colp
team/file/bridging
Reviewers
asterisk-dev
russell
Asterisk
This patch implements the new bridging API and brings with it a module for conference bridges. It does *not* replace existing internal bridging or features yet and will not cause any regressions when put in. It will essentially be introduced as a first test phase to work out any unforeseen critical issues. The bridging core itself is fully implemented besides the following: jitterbuffer support, native bridging, and interval hooks (hooks that are time based versus action based). If you would like an explanation of what the bridging API is made up of and how it works that can be found in the bridging.h header file.
Conference bridge testing using app_confbridge with features. Joining two channels with simple frame exchange and joining three channels to move it to a true conference bridge. IVR capability of app_confbridge was also tested.
/trunk/Makefile
Diff Revision 3 Diff Revision 5
[20] 143 lines
[+20]
144
  ASTHEADERDIR=$(includedir)/asterisk
144
  ASTHEADERDIR=$(includedir)/asterisk
145
  ASTBINDIR=$(bindir)
145
  ASTBINDIR=$(bindir)
146
  ASTSBINDIR=$(sbindir)
146
  ASTSBINDIR=$(sbindir)
147
  ASTSPOOLDIR=$(localstatedir)/spool/asterisk
147
  ASTSPOOLDIR=$(localstatedir)/spool/asterisk
148
  ASTLOGDIR=$(localstatedir)/log/asterisk
148
  ASTLOGDIR=$(localstatedir)/log/asterisk
149
  ASTVARRUNDIR=$(localstatedir)/run
149
  ASTVARRUNDIR=$(localstatedir)/run/asterisk
150
  ASTMANDIR=$(mandir)
150
  ASTMANDIR=$(mandir)
151
ifneq ($(findstring BSD,$(OSARCH)),)
151
ifneq ($(findstring BSD,$(OSARCH)),)
152
  ASTVARLIBDIR=$(prefix)/share/asterisk
152
  ASTVARLIBDIR=$(prefix)/share/asterisk
153
  ASTVARRUNDIR=$(localstatedir)/run/asterisk
153
  ASTVARRUNDIR=$(localstatedir)/run/asterisk
154
  ASTDBDIR=$(localstatedir)/db/asterisk
154
  ASTDBDIR=$(localstatedir)/db/asterisk
[+20] [20] 648 lines
[+20]
803
	rm -f contrib/scripts/asterisk.logrotate.tmp
803
	rm -f contrib/scripts/asterisk.logrotate.tmp
804

    
   
804

   
805
config:
805
config:
806
	@if [ "${OSARCH}" = "linux-gnu" ]; then \
806
	@if [ "${OSARCH}" = "linux-gnu" ]; then \
807
		if [ -f /etc/redhat-release -o -f /etc/fedora-release ]; then \
807
		if [ -f /etc/redhat-release -o -f /etc/fedora-release ]; then \
808
			$(INSTALL) -m 755 contrib/init.d/rc.redhat.asterisk $(DESTDIR)/etc/rc.d/init.d/asterisk; \
808
			cat contrib/init.d/rc.redhat.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR);s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/rc.d/init.d/asterisk ;\

    
   
809
			chmod 755 $(DESTDIR)/etc/rc.d/init.d/asterisk;\
809
			if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
810
			if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
810
		elif [ -f /etc/debian_version ]; then \
811
		elif [ -f /etc/debian_version ]; then \
811
			$(INSTALL) -m 755 contrib/init.d/rc.debian.asterisk $(DESTDIR)/etc/init.d/asterisk; \
812
			cat contrib/init.d/rc.debian.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR);s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/init.d/asterisk ;\

    
   
813
			chmod 755 $(DESTDIR)/etc/init.d/asterisk;\
812
			if [ -z "$(DESTDIR)" ]; then /usr/sbin/update-rc.d asterisk start 50 2 3 4 5 . stop 91 2 3 4 5 .; fi; \
814
			if [ -z "$(DESTDIR)" ]; then /usr/sbin/update-rc.d asterisk start 50 2 3 4 5 . stop 91 2 3 4 5 .; fi; \
813
		elif [ -f /etc/gentoo-release ]; then \
815
		elif [ -f /etc/gentoo-release ]; then \
814
			$(INSTALL) -m 755 contrib/init.d/rc.gentoo.asterisk $(DESTDIR)/etc/init.d/asterisk; \
816
			cat contrib/init.d/rc.gentoo.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR);s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/init.d/asterisk ;\

    
   
817
			chmod 755 $(DESTDIR)/etc/init.d/asterisk;\
815
			if [ -z "$(DESTDIR)" ]; then /sbin/rc-update add asterisk default; fi; \
818
			if [ -z "$(DESTDIR)" ]; then /sbin/rc-update add asterisk default; fi; \
816
		elif [ -f /etc/mandrake-release -o -f /etc/mandriva-release ]; then \
819
		elif [ -f /etc/mandrake-release -o -f /etc/mandriva-release ]; then \
817
			$(INSTALL) -m 755 contrib/init.d/rc.mandriva.asterisk $(DESTDIR)/etc/rc.d/init.d/asterisk; \
820
			cat contrib/init.d/rc.mandriva.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR);s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/rc.d/init.d/asterisk ;\

    
   
821
			chmod 755 $(DESTDIR)/etc/rc.d/init.d/asterisk;\
818
			if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
822
			if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
819
		elif [ -f /etc/SuSE-release -o -f /etc/novell-release ]; then \
823
		elif [ -f /etc/SuSE-release -o -f /etc/novell-release ]; then \
820
			$(INSTALL) -m 755 contrib/init.d/rc.suse.asterisk $(DESTDIR)/etc/init.d/asterisk; \
824
			cat contrib/init.d/rc.suse.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR);s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/init.d/asterisk ;\

    
   
825
			chmod 755 $(DESTDIR)/etc/init.d/asterisk;\
821
			if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
826
			if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
822
		elif [ -f /etc/arch-release -o -f /etc/arch-release ]; then \
827
		elif [ -f /etc/arch-release -o -f /etc/arch-release ]; then \
823
			$(INSTALL) -m 755 contrib/init.d/rc.archlinux.asterisk $(DESTDIR)/etc/rc.d/asterisk; \
828
			cat contrib/init.d/rc.archlinux.asterisk | sed 's|__ASTERISK_ETC_DIR__|$(ASTETCDIR);s|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;s|__ASTERISK_VARRUN_DIR__|$(ASTVARRUNDIR)|;' > $(DESTDIR)/etc/rc.d/asterisk ;\

    
   
829
			chmod 755 $(DESTDIR)/etc/rc.d/asterisk;\
824
		elif [ -f /etc/slackware-version ]; then \
830
		elif [ -f /etc/slackware-version ]; then \
825
			echo "Slackware is not currently supported, although an init script does exist for it." \
831
			echo "Slackware is not currently supported, although an init script does exist for it." \
826
		else \
832
		else \
827
			echo "We could not install init scripts for your distribution."; \
833
			echo "We could not install init scripts for your distribution."; \
828
		fi \
834
		fi \
[+20] [20] 123 lines
/trunk/apps/app_confbridge.c
Diff Revision 3 Diff Revision 5
 
/trunk/bridges/bridge_builtin_features.c
Diff Revision 3 Diff Revision 5
 
/trunk/bridges/bridge_multiplexed.c
Diff Revision 3 Diff Revision 5
 
/trunk/bridges/bridge_simple.c
Diff Revision 3 Diff Revision 5
 
/trunk/bridges/bridge_softmix.c
Diff Revision 3 Diff Revision 5
 
/trunk/channels/chan_bridge.c
Diff Revision 3 Diff Revision 5
 
/trunk/include/asterisk/bridging.h
Diff Revision 3 Diff Revision 5
 
/trunk/include/asterisk/bridging_features.h
Diff Revision 3 Diff Revision 5
 
/trunk/include/asterisk/bridging_technology.h
Diff Revision 3 Diff Revision 5
 
/trunk/include/asterisk/channel.h
Diff Revision 3 Diff Revision 5
 
/trunk/main/Makefile
Diff Revision 3 Diff Revision 5
 
/trunk/main/bridging.c
Diff Revision 3 Diff Revision 5
 
  1. /trunk/Makefile: Loading...
  2. /trunk/apps/app_confbridge.c: Loading...
  3. /trunk/bridges/bridge_builtin_features.c: Loading...
  4. /trunk/bridges/bridge_multiplexed.c: Loading...
  5. /trunk/bridges/bridge_simple.c: Loading...
  6. /trunk/bridges/bridge_softmix.c: Loading...
  7. /trunk/channels/chan_bridge.c: Loading...
  8. /trunk/include/asterisk/bridging.h: Loading...
  9. /trunk/include/asterisk/bridging_features.h: Loading...
  10. /trunk/include/asterisk/bridging_technology.h: Loading...
  11. /trunk/include/asterisk/channel.h: Loading...
  12. /trunk/main/Makefile: Loading...
  13. /trunk/main/bridging.c: Loading...

https://reviewboard.asterisk.org/ runs on a server provided by Digium, Inc. and uses bandwidth donated to the open source Asterisk community by API Digital Communications in Huntsville, AL USA.
Please report problems with this site to asteriskteam@digium.com.