aboutsummaryrefslogtreecommitdiffstats
path: root/channels/h323/ast_h323.cpp
diff options
context:
space:
mode:
authorjeremy <jeremy@f38db490-d61c-443f-a65b-d21fe96a405b>2004-03-18 20:39:15 +0000
committerjeremy <jeremy@f38db490-d61c-443f-a65b-d21fe96a405b>2004-03-18 20:39:15 +0000
commite9624dc611d3d88bae62e17f52679e94c2e840ce (patch)
tree95e033a5a85386fd2f94f5665df2184d2504419c /channels/h323/ast_h323.cpp
parentc7e36148599e47cdc3e45f0c39fe3a7bed34aa0f (diff)
Properly deal with E.164 and Prefix routing
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@2458 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/h323/ast_h323.cpp')
-rwxr-xr-xchannels/h323/ast_h323.cpp31
1 files changed, 18 insertions, 13 deletions
diff --git a/channels/h323/ast_h323.cpp b/channels/h323/ast_h323.cpp
index 44e816350..e55b93825 100755
--- a/channels/h323/ast_h323.cpp
+++ b/channels/h323/ast_h323.cpp
@@ -886,10 +886,7 @@ int h323_start_listener(int listenPort, struct sockaddr_in bindaddr)
int h323_set_alias(struct oh323_alias *alias)
{
- char *p;
- char *num;
PString h323id(alias->name);
- PString e164(alias->e164);
if (!h323_end_point_exist()) {
cout << "ERROR: [h323_set_alias] No Endpoint, this is bad!" << endl;
@@ -900,18 +897,26 @@ int h323_set_alias(struct oh323_alias *alias)
endPoint->AddAliasName(h323id);
endPoint->RemoveAliasName(localProcess->GetUserName());
- if (!e164.IsEmpty()) {
- cout << " == Adding E.164 \"" << e164 << "\" to endpoint" << endl;
- endPoint->AddAliasName(e164);
+ if(alias->e164) {
+ struct e164_number *num = alias->e164;
+ while(num) {
+ if(strlen(num->number)) {
+ cout << " == Adding E.164 \"" << num->number << "\" to endpoint" << endl;
+ endPoint->AddAliasName(num->number);
+ }
+ num = num->next;
+ }
}
- if (strlen(alias->prefix)) {
- p = alias->prefix;
- num = strsep(&p, ",");
+
+ if(alias->prefix) {
+ struct e164_number *num = alias->prefix;
while(num) {
- cout << " == Adding Prefix \"" << num << "\" to endpoint" << endl;
- endPoint->SupportedPrefixes += PString(num);
- endPoint->SetGateway();
- num = strsep(&p, ",");
+ if(strlen(num->number)) {
+ cout << " == Adding Prefix \"" << num->number << "\" to endpoint" << endl;
+ endPoint->SupportedPrefixes += PString(num->number);
+ endPoint->SetGateway();
+ }
+ num = num->next;
}
}