aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-09-01 15:36:52 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-09-01 15:36:52 +0000
commitd2f07e93ab8233c91d5e4a9b3b216126694aaaa2 (patch)
tree58fe9923998973f2e9a488bb7446ebd4366facab
parent41eca3162accfa1e685bb81afee5fe03026d7b27 (diff)
Add H.323, SIP, IAX/IAX2 to ENUM Lookup (bug #202)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1452 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-xapps/app_enumlookup.c18
-rwxr-xr-xenum.c11
2 files changed, 28 insertions, 1 deletions
diff --git a/apps/app_enumlookup.c b/apps/app_enumlookup.c
index 4f132a518..fb0956721 100755
--- a/apps/app_enumlookup.c
+++ b/apps/app_enumlookup.c
@@ -73,6 +73,24 @@ static int enumlookup_exec(struct ast_channel *chan, void *data)
c += 4;
snprintf(tmp, sizeof(tmp), "SIP/%s", c);
pbx_builtin_setvar_helper(chan, "ENUM", tmp);
+ } else if (!strcasecmp(tech, "H323")) {
+ c = dest;
+ if (!strncmp(c, "h323:", 5))
+ c += 5;
+ snprintf(tmp, sizeof(tmp), "H323/%s", c);
+ pbx_builtin_setvar_helper(chan, "ENUM", tmp);
+ } else if (!strcasecmp(tech, "IAX")) {
+ c = dest;
+ if (!strncmp(c, "iax:", 4))
+ c += 4;
+ snprintf(tmp, sizeof(tmp), "IAX/%s", c);
+ pbx_builtin_setvar_helper(chan, "ENUM", tmp);
+ } else if (!strcasecmp(tech, "IAX2")) {
+ c = dest;
+ if (!strncmp(c, "iax2:", 5))
+ c += 5;
+ snprintf(tmp, sizeof(tmp), "IAX2/%s", c);
+ pbx_builtin_setvar_helper(chan, "ENUM", tmp);
} else if (!strcasecmp(tech, "tel")) {
c = dest;
if (!strncmp(c, "tel:", 4))
diff --git a/enum.c b/enum.c
index b3a0a3ce9..ef6c19b50 100755
--- a/enum.c
+++ b/enum.c
@@ -187,11 +187,20 @@ static int parse_naptr(unsigned char *dst, int dstsize, char *tech, int techsize
if ((!strncasecmp(services, "e2u+sip", 7)) ||
(!strncasecmp(services, "sip+e2u", 7))) {
strncpy(tech, "sip", techsize -1);
+ } else if ((!strncasecmp(services, "e2u+h323", 7)) ||
+ (!strncasecmp(services, "h323+e2u", 7))) {
+ strncpy(tech, "h323", techsize -1);
+ } else if ((!strncasecmp(services, "e2u+iax", 7)) ||
+ (!strncasecmp(services, "iax+e2u", 7))) {
+ strncpy(tech, "iax", techsize -1);
+ } else if ((!strncasecmp(services, "e2u+iax2", 7)) ||
+ (!strncasecmp(services, "iax2+e2u", 7))) {
+ strncpy(tech, "iax2", techsize -1);
} else if ((!strncasecmp(services, "e2u+tel", 7)) ||
(!strncasecmp(services, "tel+e2u", 7))) {
strncpy(tech, "tel", techsize -1);
} else if (strncasecmp(services, "e2u+voice:", 10)) {
- ast_log(LOG_WARNING, "Services must be e2u+sip, sip+e2u, e2u+tel, tel+e2u or e2u+voice:\n");
+ ast_log(LOG_WARNING, "Services must be e2u+sip, sip+e2u, e2u+h323, h323+e2u, e2u+iax, iax+e2u, e2u+iax2, iax2+e2u, e2u+tel, tel+e2u or e2u+voice:\n");
return -1;
}