[asterisk-commits] rizzo: branch rizzo/astobj2 r48494 - in /team/rizzo/astobj2: ./ agi/ apps/ bu...

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Fri Dec 15 07:33:45 MST 2006


Author: rizzo
Date: Fri Dec 15 08:33:44 2006
New Revision: 48494

URL: http://svn.digium.com/view/asterisk?view=rev&rev=48494
Log:
update to trunk (with the exception of chan_zap and maybe
a few more little things).


Modified:
    team/rizzo/astobj2/.cleancount
    team/rizzo/astobj2/CHANGES
    team/rizzo/astobj2/Makefile
    team/rizzo/astobj2/UPGRADE.txt
    team/rizzo/astobj2/acinclude.m4
    team/rizzo/astobj2/agi/eagi-sphinx-test.c
    team/rizzo/astobj2/agi/eagi-test.c
    team/rizzo/astobj2/apps/app_amd.c
    team/rizzo/astobj2/apps/app_chanspy.c
    team/rizzo/astobj2/apps/app_db.c
    team/rizzo/astobj2/apps/app_dial.c
    team/rizzo/astobj2/apps/app_directed_pickup.c
    team/rizzo/astobj2/apps/app_directory.c
    team/rizzo/astobj2/apps/app_externalivr.c
    team/rizzo/astobj2/apps/app_festival.c
    team/rizzo/astobj2/apps/app_followme.c
    team/rizzo/astobj2/apps/app_ices.c
    team/rizzo/astobj2/apps/app_meetme.c
    team/rizzo/astobj2/apps/app_mp3.c
    team/rizzo/astobj2/apps/app_nbscat.c
    team/rizzo/astobj2/apps/app_osplookup.c
    team/rizzo/astobj2/apps/app_queue.c
    team/rizzo/astobj2/apps/app_read.c
    team/rizzo/astobj2/apps/app_sms.c
    team/rizzo/astobj2/apps/app_voicemail.c
    team/rizzo/astobj2/apps/app_zapras.c
    team/rizzo/astobj2/build_tools/menuselect-deps.in
    team/rizzo/astobj2/build_tools/prep_moduledeps
    team/rizzo/astobj2/build_tools/prep_tarball
    team/rizzo/astobj2/cdr/cdr_pgsql.c
    team/rizzo/astobj2/channels/chan_agent.c
    team/rizzo/astobj2/channels/chan_alsa.c
    team/rizzo/astobj2/channels/chan_features.c
    team/rizzo/astobj2/channels/chan_gtalk.c
    team/rizzo/astobj2/channels/chan_h323.c
    team/rizzo/astobj2/channels/chan_iax2.c
    team/rizzo/astobj2/channels/chan_local.c
    team/rizzo/astobj2/channels/chan_mgcp.c
    team/rizzo/astobj2/channels/chan_oss.c
    team/rizzo/astobj2/channels/chan_phone.c
    team/rizzo/astobj2/channels/chan_skinny.c
    team/rizzo/astobj2/channels/chan_zap.c
    team/rizzo/astobj2/channels/iax2-provision.c
    team/rizzo/astobj2/channels/misdn/isdn_lib.c
    team/rizzo/astobj2/configs/extensions.conf.sample
    team/rizzo/astobj2/configs/http.conf.sample
    team/rizzo/astobj2/configs/iax.conf.sample
    team/rizzo/astobj2/configs/manager.conf.sample
    team/rizzo/astobj2/configs/musiconhold.conf.sample
    team/rizzo/astobj2/configs/queues.conf.sample
    team/rizzo/astobj2/configs/res_odbc.conf.sample
    team/rizzo/astobj2/configs/sip.conf.sample
    team/rizzo/astobj2/configs/voicemail.conf.sample
    team/rizzo/astobj2/configs/zapata.conf.sample
    team/rizzo/astobj2/configure.ac
    team/rizzo/astobj2/contrib/asterisk-ng-doxygen
    team/rizzo/astobj2/doc/ael.txt
    team/rizzo/astobj2/doc/asterisk-conf.txt
    team/rizzo/astobj2/doc/billing.txt
    team/rizzo/astobj2/doc/manager.txt
    team/rizzo/astobj2/doc/snmp.txt
    team/rizzo/astobj2/funcs/func_cdr.c
    team/rizzo/astobj2/funcs/func_channel.c
    team/rizzo/astobj2/funcs/func_strings.c
    team/rizzo/astobj2/funcs/func_uri.c
    team/rizzo/astobj2/include/asterisk/app.h
    team/rizzo/astobj2/include/asterisk/astosp.h
    team/rizzo/astobj2/include/asterisk/autoconfig.h.in
    team/rizzo/astobj2/include/asterisk/causes.h
    team/rizzo/astobj2/include/asterisk/channel.h
    team/rizzo/astobj2/include/asterisk/cli.h
    team/rizzo/astobj2/include/asterisk/devicestate.h
    team/rizzo/astobj2/include/asterisk/doxyref.h
    team/rizzo/astobj2/include/asterisk/file.h
    team/rizzo/astobj2/include/asterisk/frame.h
    team/rizzo/astobj2/include/asterisk/fskmodem.h
    team/rizzo/astobj2/include/asterisk/http.h
    team/rizzo/astobj2/include/asterisk/lock.h
    team/rizzo/astobj2/include/asterisk/manager.h
    team/rizzo/astobj2/include/asterisk/pbx.h
    team/rizzo/astobj2/include/asterisk/rtp.h
    team/rizzo/astobj2/include/asterisk/tdd.h
    team/rizzo/astobj2/include/asterisk/term.h
    team/rizzo/astobj2/include/asterisk/threadstorage.h
    team/rizzo/astobj2/include/asterisk/utils.h
    team/rizzo/astobj2/main/app.c
    team/rizzo/astobj2/main/asterisk.c
    team/rizzo/astobj2/main/callerid.c
    team/rizzo/astobj2/main/cdr.c
    team/rizzo/astobj2/main/channel.c
    team/rizzo/astobj2/main/cli.c
    team/rizzo/astobj2/main/config.c
    team/rizzo/astobj2/main/db.c
    team/rizzo/astobj2/main/devicestate.c
    team/rizzo/astobj2/main/file.c
    team/rizzo/astobj2/main/frame.c
    team/rizzo/astobj2/main/fskmodem.c
    team/rizzo/astobj2/main/http.c
    team/rizzo/astobj2/main/logger.c
    team/rizzo/astobj2/main/manager.c
    team/rizzo/astobj2/main/pbx.c
    team/rizzo/astobj2/main/rtp.c
    team/rizzo/astobj2/main/tdd.c
    team/rizzo/astobj2/main/term.c
    team/rizzo/astobj2/main/translate.c
    team/rizzo/astobj2/main/udptl.c
    team/rizzo/astobj2/main/utils.c
    team/rizzo/astobj2/makeopts.in
    team/rizzo/astobj2/pbx/ael/ael-test/ref.ael-test3
    team/rizzo/astobj2/pbx/pbx_ael.c
    team/rizzo/astobj2/pbx/pbx_dundi.c
    team/rizzo/astobj2/pbx/pbx_spool.c
    team/rizzo/astobj2/res/res_agi.c
    team/rizzo/astobj2/res/res_config_pgsql.c
    team/rizzo/astobj2/res/res_crypto.c
    team/rizzo/astobj2/res/res_features.c
    team/rizzo/astobj2/res/res_jabber.c
    team/rizzo/astobj2/res/res_limit.c
    team/rizzo/astobj2/res/res_musiconhold.c
    team/rizzo/astobj2/res/res_odbc.c
    team/rizzo/astobj2/res/res_realtime.c
    team/rizzo/astobj2/sounds/Makefile
    team/rizzo/astobj2/utils/astman.c
    team/rizzo/astobj2/utils/check_expr.c
    team/rizzo/astobj2/utils/streamplayer.c

Modified: team/rizzo/astobj2/.cleancount
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/.cleancount?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/.cleancount (original)
+++ team/rizzo/astobj2/.cleancount Fri Dec 15 08:33:44 2006
@@ -1,1 +1,1 @@
-25
+27

Modified: team/rizzo/astobj2/CHANGES
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/CHANGES?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/CHANGES (original)
+++ team/rizzo/astobj2/CHANGES Fri Dec 15 08:33:44 2006
@@ -58,3 +58,8 @@
   * Added QUEUE_VARIABLES function to set queue variables added setqueuevar and 
     setqueueentryvar options for each queue, see queues.conf.sample for details.
   * Brazilian Portuguese (pt-BR) in VM, and say.c was added via patch from cfassoni.
+  * CID matching information is now shown when doing 'dialplan show'.
+  * app_queue now has a 'loose' option which is almost exactly like 'strict' except it
+     does not count paused queue members as unavailable.
+  * Added maxfiles option to options section of asterisk.conf which allows you to specify
+     what Asterisk should set as the maximum number of open files when it loads.

Modified: team/rizzo/astobj2/Makefile
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/Makefile?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/Makefile (original)
+++ team/rizzo/astobj2/Makefile Fri Dec 15 08:33:44 2006
@@ -37,6 +37,11 @@
 export ASTVARLIBDIR
 export ASTDATADIR
 export ASTLOGDIR
+export ASTLIBDIR
+export ASTMANDIR
+export ASTHEADERDIR
+export ASTBINDIR
+export ASTSBINDIR
 export AGI_DIR
 export ASTCONFPATH
 export NOISY_BUILD
@@ -52,6 +57,7 @@
 export PROC
 export SOLINK
 export STRIP
+export DOWNLOAD
 
 # even though we could use '-include makeopts' here, use a wildcard
 # lookup anyway, so that make won't try to build makeopts if it doesn't
@@ -268,14 +274,14 @@
 	@echo " + Asterisk has successfully been built, and +"  
 	@echo " + can be installed by running:              +"
 	@echo " +                                           +"
-	@echo " +               make install                +"  
+	@echo " +               $(MAKE) install                +"  
 	@echo " +-------------------------------------------+"  
 
 _all: cleantest $(SUBDIRS)
 
 makeopts: configure
 	@echo "****"
-	@echo "**** The configure script must be executed before running 'make'."
+	@echo "**** The configure script must be executed before running '$(MAKE)'."
 	@echo "****"
 	@exit 1
 
@@ -683,6 +689,8 @@
 	rm -rf $(DESTDIR)$(ASTETCDIR)
 	rm -rf $(DESTDIR)$(ASTLOGDIR)
 
+menuconfig: menuselect
+
 menuselect: menuselect/menuselect menuselect-tree
 	- at menuselect/menuselect $(GLOBAL_MAKEOPTS) $(USER_MAKEOPTS) menuselect.makeopts && (echo "menuselect changes saved!"; rm -f channels/h323/Makefile.ast main/asterisk) || echo "menuselect changes NOT saved!"
 

Modified: team/rizzo/astobj2/UPGRADE.txt
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/UPGRADE.txt?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/UPGRADE.txt (original)
+++ team/rizzo/astobj2/UPGRADE.txt Fri Dec 15 08:33:44 2006
@@ -3,6 +3,17 @@
 
 Manager:
 
-* The CallerID fields across manager events have now been made more
+* The CallerID fields across Manager events have now been made more
   consistent. CallerID Number will be sent as CallerIDNum and CallerID
   Name will be sent as CallerIDName wherever used.
+
+AEL:
+
+* Macros are now implemented underneath with the Gosub() application.
+  Heaven Help You if you wrote code depending on any aspect of this!
+  Previous to 1.6, macros were implemented with the Macro() app, which
+  provided a nice feature of auto-returning. The compiler will do its
+  best to insert a Return() app call at the end of your macro if you did
+  not include it, but really, you should make sure that all execution
+  paths within your macros end in "return;".
+

Modified: team/rizzo/astobj2/acinclude.m4
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/acinclude.m4?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/acinclude.m4 (original)
+++ team/rizzo/astobj2/acinclude.m4 Fri Dec 15 08:33:44 2006
@@ -567,3 +567,140 @@
       [ac_cv_func_fork_works=no],
       [ac_cv_func_fork_works=cross])])]
 )# _AST_FUNC_FORK
+
+# AST_PROG_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([AST_PROG_LD],
+[AC_ARG_WITH([gnu-ld],
+    [AC_HELP_STRING([--with-gnu-ld],
+	[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_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AST_PROG_LD_GNU
+])# AST_PROG_LD
+
+
+# AST_PROG_LD_GNU
+# --------------
+AC_DEFUN([AST_PROG_LD_GNU],
+[AC_REQUIRE([AST_PROG_EGREP])dnl
+AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# AST_PROG_LD_GNU
+
+# AST_PROG_EGREP
+# -------------
+m4_ifndef([AST_PROG_EGREP], [AC_DEFUN([AST_PROG_EGREP],
+[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
+   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi])
+ EGREP=$ac_cv_prog_egrep
+ 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
+

Modified: team/rizzo/astobj2/agi/eagi-sphinx-test.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/agi/eagi-sphinx-test.c?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/agi/eagi-sphinx-test.c (original)
+++ team/rizzo/astobj2/agi/eagi-sphinx-test.c Fri Dec 15 08:33:44 2006
@@ -4,6 +4,15 @@
  * This code is released into public domain
  * without any warranty of any kind.
  *
+ */
+
+/*! \file
+ * Extended AGI test application
+ *
+ * This code is released into public domain
+ * without any warranty of any kind.
+ *
+ *	\ingroup agi
  */
 
 #include <stdio.h>

Modified: team/rizzo/astobj2/agi/eagi-test.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/agi/eagi-test.c?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/agi/eagi-test.c (original)
+++ team/rizzo/astobj2/agi/eagi-test.c Fri Dec 15 08:33:44 2006
@@ -17,6 +17,15 @@
 #include "asterisk/compat.h"
 
 #define AUDIO_FILENO (STDERR_FILENO + 1)
+
+/*! \file
+ * Extended AGI test application
+ *
+ * This code is released into the public domain
+ * with no warranty of any kind
+ *
+ * \ingroup agi
+ */
 
 static int read_environment(void)
 {

Modified: team/rizzo/astobj2/apps/app_amd.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/apps/app_amd.c?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/apps/app_amd.c (original)
+++ team/rizzo/astobj2/apps/app_amd.c Fri Dec 15 08:33:44 2006
@@ -151,8 +151,8 @@
 			maximumNumberOfWords = atoi(args.argMaximumNumberOfWords);
 		if (!ast_strlen_zero(args.argSilenceThreshold))
 			silenceThreshold = atoi(args.argSilenceThreshold);
-	} else
-		ast_log(LOG_NOTICE, "AMD using the default parameters.\n");
+	} else if (option_debug)
+		ast_log(LOG_DEBUG, "AMD using the default parameters.\n");
 
 	/* Now we're ready to roll! */
 	if (option_verbose > 2)

Modified: team/rizzo/astobj2/apps/app_chanspy.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/apps/app_chanspy.c?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/apps/app_chanspy.c (original)
+++ team/rizzo/astobj2/apps/app_chanspy.c Fri Dec 15 08:33:44 2006
@@ -658,7 +658,8 @@
 
 	if ((argc = ast_app_separate_args(data, '|', argv, sizeof(argv) / sizeof(argv[0])))) {
 		context = argv[0];
-		exten = strsep(&context, "@");
+		if (!ast_strlen_zero(argv[0]))
+			exten = strsep(&context, "@");
 		if (ast_strlen_zero(context))
 			context = ast_strdupa(chan->context);
 		if (argc > 1)

Modified: team/rizzo/astobj2/apps/app_db.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/apps/app_db.c?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/apps/app_db.c (original)
+++ team/rizzo/astobj2/apps/app_db.c Fri Dec 15 08:33:44 2006
@@ -50,7 +50,7 @@
 
 /*! \todo XXX Remove this application after 1.4 is relased */
 static char *d_descrip =
-"  DBdel(family/key): This applicaiton will delete a key from the Asterisk\n"
+"  DBdel(family/key): This application will delete a key from the Asterisk\n"
 "database.\n"
 "  This application has been DEPRECATED in favor of the DB_DELETE function.\n";
 

Modified: team/rizzo/astobj2/apps/app_dial.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/apps/app_dial.c?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/apps/app_dial.c (original)
+++ team/rizzo/astobj2/apps/app_dial.c Fri Dec 15 08:33:44 2006
@@ -67,7 +67,7 @@
 
 static char *descrip =
 "  Dial(Technology/resource[&Tech2/resource2...][|timeout][|options][|URL]):\n"
-"This applicaiton will place calls to one or more specified channels. As soon\n"
+"This application will place calls to one or more specified channels. As soon\n"
 "as one of the requested channels answers, the originating channel will be\n"
 "answered, if it has not already been answered. These two channels will then\n"
 "be active in a bridged call. All other channels that were requested will then\n"
@@ -419,7 +419,12 @@
 					src->name, dialstatus);
 }	
 
-/* helper function for wait_for_answer() */
+/*!
+ * helper function for wait_for_answer()
+ *
+ * XXX this code is highly suspicious, as it essentially overwrites
+ * the outgoing channel without properly deleting it.
+ */
 static void do_forward(struct dial_localuser *o,
 	struct cause_args *num, struct ast_flags *peerflags, int single)
 {
@@ -504,10 +509,10 @@
 				char cidname[AST_MAX_EXTENSION];
 				ast_set_callerid(c, S_OR(in->macroexten, in->exten), get_cid_name(cidname, sizeof(cidname), in), NULL);
 			}
-		}
-	}
-	/* Hangup the original channel now, in case we needed it */
-	ast_hangup(c);
+			/* Hangup the original channel now, in case we needed it */
+			ast_hangup(c);
+		}
+	}
 }
 
 /* argument used for some functions. */
@@ -590,7 +595,7 @@
 						       OPT_CALLEE_MONITOR | OPT_CALLER_MONITOR |
 						       OPT_CALLEE_PARK | OPT_CALLER_PARK |
 						       DIAL_NOFORWARDHTML);
-					ast_copy_string(c->context, "", sizeof(c->context));
+					ast_copy_string(c->dialcontext, "", sizeof(c->dialcontext));
 					ast_copy_string(c->exten, "", sizeof(c->exten));
 				}
 				continue;
@@ -625,7 +630,7 @@
 							       OPT_CALLEE_MONITOR | OPT_CALLER_MONITOR |
 							       OPT_CALLEE_PARK | OPT_CALLER_PARK |
 							       DIAL_NOFORWARDHTML);
-						ast_copy_string(c->context, "", sizeof(c->context));
+						ast_copy_string(c->dialcontext, "", sizeof(c->dialcontext));
 						ast_copy_string(c->exten, "", sizeof(c->exten));
 						/* Setup early bridge if appropriate */
 						ast_channel_early_bridge(in, peer);
@@ -822,14 +827,15 @@
 static int do_timelimit(struct ast_channel *chan, struct ast_bridge_config *config,
 	char *parse, unsigned int *calldurationlimit)
 {
+	char *stringp = ast_strdupa(parse);
 	char *limit_str, *warning_str, *warnfreq_str;
 	const char *var;
 	int play_to_caller=0,play_to_callee=0;
 	int delta;
 
-	limit_str = strsep(&warnfreq_str, ":");
-	warning_str = strsep(&warnfreq_str, ":");
-	warnfreq_str = parse;
+	limit_str = strsep(&stringp, ":");
+	warning_str = strsep(&stringp, ":");
+	warnfreq_str = strsep(&stringp, ":");
 
 	config->timelimit = atol(limit_str);
 	if (warning_str)
@@ -1170,43 +1176,40 @@
 		
 		ast_copy_string(pa.privcid,l,sizeof(pa.privcid));
 
-		if (ast_test_flag(&opts, OPT_SCREEN_NOCLID)) {
-			/* XXX double check the logic here */
-			if (strncmp(pa.privcid,"NOCALLERID",10) != 0 ) { /* if callerid is set */
-				if (option_verbose > 2)
-					ast_verbose( VERBOSE_PREFIX_3  "CallerID set (%s); N option set; Screening should be off\n", pa.privcid);
-				pa.privdb_val = AST_PRIVACY_ALLOW;
-			} else {
-				if (option_verbose > 2)
-					ast_verbose( VERBOSE_PREFIX_3  "CallerID blank; N option set; Screening should happen; dbval is %d\n", pa.privdb_val);
-			}
-		}
-
-		switch (pa.privdb_val) {
-		case AST_PRIVACY_DENY:
+		if( strncmp(pa.privcid,"NOCALLERID",10) != 0 && ast_test_flag(&opts, OPT_SCREEN_NOCLID) ) { /* if callerid is set, and ast_test_flag(&opts, OPT_SCREEN_NOCLID) is set also */  
+			if (option_verbose > 2)
+				ast_verbose( VERBOSE_PREFIX_3  "CallerID set (%s); N option set; Screening should be off\n", pa.privcid);
+			pa.privdb_val = AST_PRIVACY_ALLOW;
+		}
+		else if(ast_test_flag(&opts, OPT_SCREEN_NOCLID) && strncmp(pa.privcid,"NOCALLERID",10) == 0 ) {
+			if (option_verbose > 2)
+				ast_verbose( VERBOSE_PREFIX_3  "CallerID blank; N option set; Screening should happen; dbval is %d\n", pa.privdb_val);
+		}
+		
+		if(pa.privdb_val == AST_PRIVACY_DENY ) {
 			ast_copy_string(pa.status, "NOANSWER", sizeof(pa.status));
 			if (option_verbose > 2)
 				ast_verbose( VERBOSE_PREFIX_3  "Privacy DB reports PRIVACY_DENY for this callerid. Dial reports unavailable\n");
 			res=0;
 			goto out;
-
-		case AST_PRIVACY_KILL:
+		}
+		else if(pa.privdb_val == AST_PRIVACY_KILL ) {
 			ast_copy_string(pa.status, "DONTCALL", sizeof(pa.status));
 			if (ast_opt_priority_jumping || ast_test_flag(&opts, OPT_PRIORITY_JUMP)) {
 				ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 201);
 			}
 			res = 0;
 			goto out; /* Is this right? */
-
-		case AST_PRIVACY_TORTURE:
+		}
+		else if(pa.privdb_val == AST_PRIVACY_TORTURE ) {
 			ast_copy_string(pa.status, "TORTURE", sizeof(pa.status));
 			if (ast_opt_priority_jumping || ast_test_flag(&opts, OPT_PRIORITY_JUMP)) {
 				ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 301);
 			}
 			res = 0;
 			goto out; /* is this right??? */
-
-		case AST_PRIVACY_UNKNOWN:
+		}
+		else if(pa.privdb_val == AST_PRIVACY_UNKNOWN ) {
 			/* Get the user's intro, store it in priv-callerintros/$CID, 
 			   unless it is already there-- this should be done before the 
 			   call is actually dialed  */
@@ -1371,7 +1374,7 @@
 			ast_app_group_set_channel(tmp->chan, outbound_group);
 
 		/* Inherit context and extension */
-		ast_copy_string(tmp->chan->context, chan->context, sizeof(tmp->chan->context));
+		ast_copy_string(tmp->chan->dialcontext, chan->context, sizeof(tmp->chan->dialcontext));
 		ast_copy_string(tmp->chan->exten, chan->exten, sizeof(tmp->chan->exten));
 
 		/* Place the call, but don't wait on the answer */
@@ -1427,6 +1430,7 @@
 		if (ast_test_flag(outgoing, OPT_MUSICBACK)) {
 			moh = 1;
 			ast_moh_start(chan, opt_args[OPT_ARG_MUSICBACK], NULL);
+			ast_indicate(chan, AST_CONTROL_PROGRESS);
 		} else if (ast_test_flag(outgoing, OPT_RINGBACK)) {
 			ast_indicate(chan, AST_CONTROL_RINGING);
 			sentringing++;

Modified: team/rizzo/astobj2/apps/app_directed_pickup.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/apps/app_directed_pickup.c?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/apps/app_directed_pickup.c (original)
+++ team/rizzo/astobj2/apps/app_directed_pickup.c Fri Dec 15 08:33:44 2006
@@ -97,7 +97,7 @@
 
 	while ((target = ast_channel_walk_locked(target))) {
 		if (!strcasecmp(target->exten, exten) &&
-		    !strcasecmp(target->context, context) &&
+		    !strcasecmp(target->dialcontext, context) &&
 		    can_pickup(target)) {
 			res = pickup_do(chan, target);
 			ast_channel_unlock(target);

Modified: team/rizzo/astobj2/apps/app_directory.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/apps/app_directory.c?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/apps/app_directory.c (original)
+++ team/rizzo/astobj2/apps/app_directory.c Fri Dec 15 08:33:44 2006
@@ -282,17 +282,17 @@
 #endif
 
 	if (ast_fileexists(fn, NULL, chan->language) > 0) {
-		res = ast_stream_and_wait(chan, fn, chan->language, AST_DIGIT_ANY);
+		res = ast_stream_and_wait(chan, fn, AST_DIGIT_ANY);
 		ast_stopstream(chan);
 		/* If Option 'e' was specified, also read the extension number with the name */
 		if (readext) {
-			ast_stream_and_wait(chan, "vm-extension", chan->language, AST_DIGIT_ANY);
+			ast_stream_and_wait(chan, "vm-extension", AST_DIGIT_ANY);
 			res = ast_say_character_str(chan, ext, AST_DIGIT_ANY, chan->language);
 		}
 	} else {
 		res = ast_say_character_str(chan, S_OR(name, ext), AST_DIGIT_ANY, chan->language);
 		if (!ast_strlen_zero(name) && readext) {
-			ast_stream_and_wait(chan, "vm-extension", chan->language, AST_DIGIT_ANY);
+			ast_stream_and_wait(chan, "vm-extension", AST_DIGIT_ANY);
 			res = ast_say_character_str(chan, ext, AST_DIGIT_ANY, chan->language);
 		}
 	}
@@ -303,7 +303,7 @@
 
 	for (loop = 3 ; loop > 0; loop--) {
 		if (!res)
-			res = ast_stream_and_wait(chan, "dir-instr", chan->language, AST_DIGIT_ANY);
+			res = ast_stream_and_wait(chan, "dir-instr", AST_DIGIT_ANY);
 		if (!res)
 			res = ast_waitfordigit(chan, 3000);
 		ast_stopstream(chan);
@@ -622,7 +622,7 @@
 
 	for (;;) {
 		if (!res)
-			res = ast_stream_and_wait(chan, dirintro, chan->language, AST_DIGIT_ANY);
+			res = ast_stream_and_wait(chan, dirintro, AST_DIGIT_ANY);
 		ast_stopstream(chan);
 		if (!res)
 			res = ast_waitfordigit(chan, 5000);

Modified: team/rizzo/astobj2/apps/app_externalivr.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/apps/app_externalivr.c?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/apps/app_externalivr.c (original)
+++ team/rizzo/astobj2/apps/app_externalivr.c Fri Dec 15 08:33:44 2006
@@ -40,6 +40,7 @@
 #include <string.h>
 #include <unistd.h>
 #include <errno.h>
+#include <signal.h>
 
 #include "asterisk/lock.h"
 #include "asterisk/file.h"
@@ -153,7 +154,7 @@
 		if (state->current) {
 			file_to_stream = state->current->filename;
 		} else {
-			file_to_stream = "silence-10";
+			file_to_stream = "silence/10";
 			u->playing_silence = 1;
 		}
 
@@ -262,9 +263,13 @@
 		.finishlist = AST_LIST_HEAD_INIT_VALUE,
 	};
 	struct ivr_localuser *u = &foo;
+	sigset_t fullset, oldset;
 
 	lu = ast_module_user_add(chan);
-	
+
+	sigfillset(&fullset);
+	pthread_sigmask(SIG_BLOCK, &fullset, &oldset);
+
 	u->abort_current_sound = 0;
 	u->chan = chan;
 	
@@ -312,6 +317,9 @@
 	if (!pid) {
 		/* child process */
 		int i;
+
+		signal(SIGPIPE, SIG_DFL);
+		pthread_sigmask(SIG_UNBLOCK, &fullset, NULL);
 
 		if (ast_opt_high_priority)
 			ast_set_priority(0);
@@ -335,6 +343,8 @@
 		int ready_fd;
 		int waitfds[2] = { child_errors_fd, child_commands_fd };
 		struct ast_channel *rchan;
+
+		pthread_sigmask(SIG_SETMASK, &oldset, NULL);
 
 		close(child_stdin[0]);
 		child_stdin[0] = 0;

Modified: team/rizzo/astobj2/apps/app_festival.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/apps/app_festival.c?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/apps/app_festival.c (original)
+++ team/rizzo/astobj2/apps/app_festival.c Fri Dec 15 08:33:44 2006
@@ -130,19 +130,26 @@
 #ifdef __PPC__ 
 	char c;
 #endif
+	sigset_t fullset, oldset;
+
+	sigfillset(&fullset);
+	pthread_sigmask(SIG_BLOCK, &fullset, &oldset);
 
         res = fork();
         if (res < 0)
                 ast_log(LOG_WARNING, "Fork failed\n");
-        if (res)
+        if (res) {
+		pthread_sigmask(SIG_SETMASK, &oldset, NULL);
                 return res;
+	}
         for (x=0;x<256;x++) {
                 if (x != fd)
                         close(x);
         }
 	if (ast_opt_high_priority)
 		ast_set_priority(0);
-
+	signal(SIGPIPE, SIG_DFL);
+	pthread_sigmask(SIG_UNBLOCK, &fullset, NULL);
 /*IAS */
 #ifdef __PPC__  
 	for( x=0; x<length; x+=2)

Modified: team/rizzo/astobj2/apps/app_followme.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/apps/app_followme.c?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/apps/app_followme.c (original)
+++ team/rizzo/astobj2/apps/app_followme.c Fri Dec 15 08:33:44 2006
@@ -982,7 +982,7 @@
 		ast_mutex_unlock(&f->lock);
 
 		if (targs.followmeflags.flags & FOLLOWMEFLAG_STATUSMSG) 
-			ast_stream_and_wait(chan, targs.statusprompt, chan->language, "");
+			ast_stream_and_wait(chan, targs.statusprompt, "");
 
 		snprintf(namerecloc,sizeof(namerecloc),"%s/followme.%s",ast_config_AST_SPOOL_DIR,chan->uniqueid);
 		duration = 5;
@@ -1022,7 +1022,7 @@
 		if (targs.status != 100) {
 			ast_moh_stop(chan);
 			if (targs.followmeflags.flags & FOLLOWMEFLAG_UNREACHABLEMSG) 
-				ast_stream_and_wait(chan, targs.sorryprompt, chan->language, "");
+				ast_stream_and_wait(chan, targs.sorryprompt, "");
 			res = 0;
 		} else {
 			caller = chan;

Modified: team/rizzo/astobj2/apps/app_ices.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/apps/app_ices.c?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/apps/app_ices.c (original)
+++ team/rizzo/astobj2/apps/app_ices.c Fri Dec 15 08:33:44 2006
@@ -65,15 +65,27 @@
 {
 	int res;
 	int x;
+	sigset_t fullset, oldset;
+
+	sigfillset(&fullset);
+	pthread_sigmask(SIG_BLOCK, &fullset, &oldset);
+
 	res = fork();
 	if (res < 0) 
 		ast_log(LOG_WARNING, "Fork failed\n");
-	if (res)
+	if (res) {
+		pthread_sigmask(SIG_SETMASK, &oldset, NULL);
 		return res;
+	}
+
+	/* Stop ignoring PIPE */
+	signal(SIGPIPE, SIG_DFL);
+	pthread_sigmask(SIG_UNBLOCK, &fullset, NULL);
+
 	if (ast_opt_high_priority)
 		ast_set_priority(0);
 	dup2(fd, STDIN_FILENO);
-	for (x=STDERR_FILENO + 1;x<256;x++) {
+	for (x=STDERR_FILENO + 1;x<1024;x++) {
 		if ((x != STDIN_FILENO) && (x != STDOUT_FILENO))
 			close(x);
 	}
@@ -84,7 +96,7 @@
 	/* As a last-ditch effort, try to use PATH */
 	execlp("ices", "ices", filename, (char *)NULL);
 	ast_log(LOG_WARNING, "Execute of ices failed\n");
-	return -1;
+	_exit(0);
 }
 
 static int ices_exec(struct ast_channel *chan, void *data)

Modified: team/rizzo/astobj2/apps/app_meetme.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/apps/app_meetme.c?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/apps/app_meetme.c (original)
+++ team/rizzo/astobj2/apps/app_meetme.c Fri Dec 15 08:33:44 2006
@@ -900,11 +900,11 @@
 	return NULL;
 }
 	
-static char meetme_usage[] =
+static const char meetme_usage[] =
 "Usage: meetme (un)lock|(un)mute|kick|list [concise] <confno> <usernumber>\n"
 "       Executes a command for the conference or on a conferee\n";
 
-static char sla_show_usage[] =
+static const char sla_show_usage[] =
 "Usage: sla show\n"
 "       Lists status of all shared line appearances\n";
 
@@ -1945,6 +1945,13 @@
 			conf->markedusers--;
 		/* Remove ourselves from the list */
 		AST_LIST_REMOVE(&conf->userlist, user, list);
+
+		/* Change any states */
+		if (!conf->users)
+			ast_device_state_changed("meetme:%s", conf->confno);
+		if (confflags & (CONFFLAG_SLA_STATION|CONFFLAG_SLA_TRUNK))
+			ast_device_state_changed("SLA:%s", conf->confno + 4);
+
 		if (AST_LIST_EMPTY(&conf->userlist)) {
 			/* close this one when no more users and no references*/
 			if (!conf->refcount)
@@ -1953,12 +1960,6 @@
 		/* Return the number of seconds the user was in the conf */
 		snprintf(meetmesecs, sizeof(meetmesecs), "%d", (int) (time(NULL) - user->jointime));
 		pbx_builtin_setvar_helper(chan, "MEETMESECS", meetmesecs);
-
-		/* This device changed state now */
-		if (!conf->users)	/* If there are no more members */
-			ast_device_state_changed("meetme:%s", conf->confno);
-		if (confflags & (CONFFLAG_SLA_STATION|CONFFLAG_SLA_TRUNK))
-			ast_device_state_changed("SLA:%s", conf->confno + 4);
 	}
 	free(user);
 	AST_LIST_UNLOCK(&confs);
@@ -2315,10 +2316,12 @@
 					ast_waitstream(chan, "");
 			} else {
 				if (sscanf(confno, "%d", &confno_int) == 1) {
-					res = ast_streamfile(chan, "conf-enteringno", chan->language);
-					if (!res) {
-						ast_waitstream(chan, "");
-						res = ast_say_digits(chan, confno_int, "", chan->language);
+					if (!ast_test_flag(&confflags, CONFFLAG_QUIET)) {
+						res = ast_streamfile(chan, "conf-enteringno", chan->language);
+						if (!res) {
+							ast_waitstream(chan, "");
+							res = ast_say_digits(chan, confno_int, "", chan->language);
+						}
 					}
 				} else {
 					ast_log(LOG_ERROR, "Could not scan confno '%s'\n", confno);
@@ -2951,6 +2954,10 @@
 
 	/* Find conference */
 	sla = sla2 = ASTOBJ_CONTAINER_FIND(&slas, data);
+
+	if (!sla2)
+		return AST_DEVICE_INVALID;
+
 	ASTOBJ_UNREF(sla2, sla_destroy);
 
 	if (option_debug)

Modified: team/rizzo/astobj2/apps/app_mp3.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/apps/app_mp3.c?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/apps/app_mp3.c (original)
+++ team/rizzo/astobj2/apps/app_mp3.c Fri Dec 15 08:33:44 2006
@@ -64,15 +64,25 @@
 {
 	int res;
 	int x;
+	sigset_t fullset, oldset;
+
+	sigfillset(&fullset);
+	pthread_sigmask(SIG_BLOCK, &fullset, &oldset);
+
 	res = fork();
 	if (res < 0) 
 		ast_log(LOG_WARNING, "Fork failed\n");
-	if (res)
+	if (res) {
+		pthread_sigmask(SIG_SETMASK, &oldset, NULL);
 		return res;
+	}
 	if (ast_opt_high_priority)
 		ast_set_priority(0);
+	signal(SIGPIPE, SIG_DFL);
+	pthread_sigmask(SIG_UNBLOCK, &fullset, NULL);
+
 	dup2(fd, STDOUT_FILENO);
-	for (x=0;x<256;x++) {
+	for (x=STDERR_FILENO + 1;x<256;x++) {
 		if (x != STDOUT_FILENO)
 			close(x);
 	}
@@ -94,7 +104,7 @@
 	    execlp("mpg123", "mpg123", "-q", "-s", "-f", "8192", "--mono", "-r", "8000", filename, (char *)NULL);
 	}
 	ast_log(LOG_WARNING, "Execute of mpg123 failed\n");
-	return -1;
+	_exit(0);
 }
 
 static int timed_read(int fd, void *data, int datalen, int timeout)

Modified: team/rizzo/astobj2/apps/app_nbscat.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/apps/app_nbscat.c?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/apps/app_nbscat.c (original)
+++ team/rizzo/astobj2/apps/app_nbscat.c Fri Dec 15 08:33:44 2006
@@ -68,16 +68,26 @@
 {
 	int res;
 	int x;
+	sigset_t fullset, oldset;
+
+	sigfillset(&fullset);
+	pthread_sigmask(SIG_BLOCK, &fullset, &oldset);
+
 	res = fork();
 	if (res < 0) 
 		ast_log(LOG_WARNING, "Fork failed\n");
-	if (res)
+	if (res) {
+		pthread_sigmask(SIG_SETMASK, &oldset, NULL);
 		return res;
+	}
+	signal(SIGPIPE, SIG_DFL);
+	pthread_sigmask(SIG_UNBLOCK, &fullset, NULL);
+
 	if (ast_opt_high_priority)
 		ast_set_priority(0);
 
 	dup2(fd, STDOUT_FILENO);
-	for (x=0;x<256;x++) {
+	for (x = STDERR_FILENO + 1; x < 1024; x++) {
 		if (x != STDOUT_FILENO)
 			close(x);
 	}
@@ -85,7 +95,7 @@
 	execl(NBSCAT, "nbscat8k", "-d", (char *)NULL);
 	execl(LOCAL_NBSCAT, "nbscat8k", "-d", (char *)NULL);
 	ast_log(LOG_WARNING, "Execute of nbscat8k failed\n");
-	return -1;
+	_exit(0);
 }
 
 static int timed_read(int fd, void *data, int datalen)

Modified: team/rizzo/astobj2/apps/app_osplookup.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/apps/app_osplookup.c?view=diff&rev=48494&r1=48493&r2=48494
==============================================================================
--- team/rizzo/astobj2/apps/app_osplookup.c (original)
+++ team/rizzo/astobj2/apps/app_osplookup.c Fri Dec 15 08:33:44 2006
@@ -21,7 +21,7 @@
  * \brief Open Settlement Protocol (OSP) Applications
  *
  * \author Mark Spencer <markster at digium.com>
- * 
+ *
  * \ingroup applications
  */
 
@@ -56,20 +56,54 @@
 #include "asterisk/astosp.h"
 
 /* OSP Buffer Sizes */
-#define OSP_INTSTR_SIZE			((unsigned int)16)			/* OSP signed/unsigned int string buffer size */
-#define OSP_NORSTR_SIZE			((unsigned int)256)			/* OSP normal string buffer size */
-#define OSP_TOKSTR_SIZE			((unsigned int)4096)			/* OSP token string buffer size */
+#define OSP_INTSTR_SIZE		((unsigned int)16)		/* OSP signed/unsigned int string buffer size */
+#define OSP_NORSTR_SIZE		((unsigned int)256)		/* OSP normal string buffer size */
+#define OSP_TOKSTR_SIZE		((unsigned int)4096)	/* OSP token string buffer size */
+#define OSP_TECHSTR_SIZE	((unsigned int)32)		/* OSP signed/unsigned int string buffer size */
+#define OSP_UUID_SIZE		((unsigned int)16)		/* UUID size */
+#define OSP_UUIDSTR_SIZE	((unsigned int)36)		/* UUID string size */
+
+/* OSP Authentication Policy */
+enum osp_authpolicy {
+	OSP_AUTH_NO,		/* Accept any call */
+	OSP_AUTH_YES,		/* Accept call with valid OSP token or without OSP token */
+	OSP_AUTH_EXCLUSIVE	/* Only accept call with valid OSP token */
+};
+
+/* Call ID type*/
+#define OSP_CALLID_UNDEFINED	((unsigned int)0)			/* UNDEFINED */
+#define OSP_CALLID_H323			((unsigned int)(1 << 0))	/* H.323 */
+#define OSP_CALLID_SIP			((unsigned int)(1 << 1))	/* SIP */
+#define OSP_CALLID_IAX			((unsigned int)(1 << 2))	/* IAX2 */
+#define OSP_CALLID_MAXNUM		((unsigned int)3)			/* Max number of call ID type */
+
+/* OSP Supported Destination Protocols */
+#define OSP_PROT_H323			((char*)"H323")				/* H323 Q931 protocol name*/
+#define OSP_PROT_SIP			((char*)"SIP")				/* SIP protocol name */
+#define OSP_PROT_IAX			((char*)"IAX")				/* IAX protocol name */
+#define OSP_PROT_OTHER			((char*)"OTHER")			/* Other protocol name */
+
+/* OSP supported Destination Tech */
+#if 0
+#define OSP_TECH_H323			((char*)"OOH323")			/* OOH323 tech name */
+#endif
+#define OSP_TECH_H323			((char*)"H323")				/* OH323 tech name */
+#define OSP_TECH_SIP			((char*)"SIP")				/* SIP tech name */
+#define OSP_TECH_IAX			((char*)"IAX2")				/* IAX2 tech name */
+
+/* SIP OSP header field name */
+#define OSP_SIP_HEADER			((char*)"P-OSP-Auth-Token: ")
 
 /* OSP Constants */
-#define OSP_INVALID_HANDLE		((int)-1)				/* Invalid OSP handle, provider, transaction etc. */
-#define OSP_CONFIG_FILE			((const char*)"osp.conf")		/* OSP configuration file name */
-#define OSP_GENERAL_CAT			((const char*)"general")		/* OSP global configuration context name */
-#define OSP_DEF_PROVIDER		((const char*)"default")		/* OSP default provider context name */

[... 13448 lines stripped ...]


More information about the asterisk-commits mailing list