Be more detailed about why the include did not get included.
authorJoshua Colp <jcolp@digium.com>
Tue, 16 Dec 2008 16:50:11 +0000 (16:50 +0000)
committerJoshua Colp <jcolp@digium.com>
Tue, 16 Dec 2008 16:50:11 +0000 (16:50 +0000)
(closes issue #14071)
Reported by: kshumard
Patches:
      pbx_config.patch.improvederroroutput.txt uploaded by kshumard (license 92)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@164733 65c4cc65-6c06-0410-ace0-fbb531ad65f3

pbx/pbx_config.c

index dac6389..8b8abb3 100644 (file)
@@ -1557,7 +1557,31 @@ process_extension:
                        } else if (!strcasecmp(v->name, "include")) {
                                pbx_substitute_variables_helper(NULL, v->value, realvalue, sizeof(realvalue) - 1);
                                if (ast_context_add_include2(con, realvalue, registrar)) {
-                                       ast_log(LOG_WARNING, "Unable to include context '%s' in context '%s'\n", v->value, cxt);
+                                       switch (errno) {
+                                               case ENOMEM:
+                                                       ast_log(LOG_WARNING, "Out of memory for context addition\n");
+                                                       break;
+
+                                               case EBUSY:
+                                                       ast_log(LOG_WARNING, "Failed to lock context(s) list, please try again later\n");
+                                                       break;
+
+                                               case EEXIST:
+                                                       ast_log(LOG_WARNING, "Context '%s' already included in '%s' context\n",
+                                                                       v->value, cxt);
+                                                       break;
+
+                                               case ENOENT:
+                                               case EINVAL:
+                                                       ast_log(LOG_WARNING, "There is no existence of context '%s'\n",
+                                                                       errno == ENOENT ? v->value : cxt);
+                                                       break;
+
+                                               default:
+                                                       ast_log(LOG_WARNING, "Failed to include '%s' in '%s' context\n",
+                                                                       v->value, cxt);
+                                                       break;
+                                       }
                                }
                        } else if (!strcasecmp(v->name, "ignorepat")) {
                                pbx_substitute_variables_helper(NULL, v->value, realvalue, sizeof(realvalue) - 1);