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 1 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] 569 lines
[+20]
724
		echo ";transcode_via_sln = yes ; Build transcode paths via SLINEAR, instead of directly" ; \
724
		echo ";transcode_via_sln = yes ; Build transcode paths via SLINEAR, instead of directly" ; \
725
		echo ";runuser = asterisk ; The user to run as" ; \
725
		echo ";runuser = asterisk ; The user to run as" ; \
726
		echo ";rungroup = asterisk ; The group to run as" ; \
726
		echo ";rungroup = asterisk ; The group to run as" ; \
727
		echo ";lightbackground = yes ; If your terminal is set for a light-colored background" ; \
727
		echo ";lightbackground = yes ; If your terminal is set for a light-colored background" ; \
728
		echo "documentation_language = en_US ; Set the Language you want Documentation displayed in. Value is in the same format as locale names" ; \
728
		echo "documentation_language = en_US ; Set the Language you want Documentation displayed in. Value is in the same format as locale names" ; \

    
   
729
		echo ";hideconnect = yes ; Hide messages displayed when a remote console connects and disconnects" ; \
729
		echo "" ; \
730
		echo "" ; \
730
		echo "; Changing the following lines may compromise your security." ; \
731
		echo "; Changing the following lines may compromise your security." ; \
731
		echo ";[files]" ; \
732
		echo ";[files]" ; \
732
		echo ";astctlpermissions = 0660" ; \
733
		echo ";astctlpermissions = 0660" ; \
733
		echo ";astctlowner = root" ; \
734
		echo ";astctlowner = root" ; \
[+20] [20] 68 lines
[+20]
802
	rm -f contrib/scripts/asterisk.logrotate.tmp
803
	rm -f contrib/scripts/asterisk.logrotate.tmp
803

    
   
804

   
804
config:
805
config:
805
	@if [ "${OSARCH}" = "linux-gnu" ]; then \
806
	@if [ "${OSARCH}" = "linux-gnu" ]; then \
806
		if [ -f /etc/redhat-release -o -f /etc/fedora-release ]; then \
807
		if [ -f /etc/redhat-release -o -f /etc/fedora-release ]; then \
807
			$(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;\
808
			if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
810
			if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
809
		elif [ -f /etc/debian_version ]; then \
811
		elif [ -f /etc/debian_version ]; then \
810
			$(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;\
811
			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; \
812
		elif [ -f /etc/gentoo-release ]; then \
815
		elif [ -f /etc/gentoo-release ]; then \
813
			$(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;\
814
			if [ -z "$(DESTDIR)" ]; then /sbin/rc-update add asterisk default; fi; \
818
			if [ -z "$(DESTDIR)" ]; then /sbin/rc-update add asterisk default; fi; \
815
		elif [ -f /etc/mandrake-release -o -f /etc/mandriva-release ]; then \
819
		elif [ -f /etc/mandrake-release -o -f /etc/mandriva-release ]; then \
816
			$(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;\
817
			if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
822
			if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
818
		elif [ -f /etc/SuSE-release -o -f /etc/novell-release ]; then \
823
		elif [ -f /etc/SuSE-release -o -f /etc/novell-release ]; then \
819
			$(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;\
820
			if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
826
			if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
821
		elif [ -f /etc/arch-release -o -f /etc/arch-release ]; then \
827
		elif [ -f /etc/arch-release -o -f /etc/arch-release ]; then \
822
			$(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;\
823
		elif [ -f /etc/slackware-version ]; then \
830
		elif [ -f /etc/slackware-version ]; then \
824
			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." \
825
		else \
832
		else \
826
			echo "We could not install init scripts for your distribution."; \
833
			echo "We could not install init scripts for your distribution."; \
827
		fi \
834
		fi \
[+20] [20] 123 lines
/trunk/apps/app_confbridge.c
Diff Revision 1 Diff Revision 5
 
/trunk/bridges/bridge_builtin_features.c
Diff Revision 1 Diff Revision 5
 
/trunk/bridges/bridge_multiplexed.c
Diff Revision 1 Diff Revision 5
 
/trunk/bridges/bridge_simple.c
Diff Revision 1 Diff Revision 5
 
/trunk/bridges/bridge_softmix.c
Diff Revision 1 Diff Revision 5
 
/trunk/channels/chan_bridge.c
Diff Revision 1 Diff Revision 5
 
/trunk/include/asterisk/bridging.h
Diff Revision 1 Diff Revision 5
 
/trunk/include/asterisk/bridging_features.h
Diff Revision 1 Diff Revision 5
 
/trunk/include/asterisk/bridging_technology.h
Diff Revision 1 Diff Revision 5
 
/trunk/include/asterisk/channel.h
Diff Revision 1 Diff Revision 5
 
/trunk/main/Makefile
Diff Revision 1 Diff Revision 5
 
/trunk/main/bridging.c
Diff Revision 1 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.