diff options
author | jeremy <jeremy@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-03-18 20:39:15 +0000 |
---|---|---|
committer | jeremy <jeremy@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-03-18 20:39:15 +0000 |
commit | e9624dc611d3d88bae62e17f52679e94c2e840ce (patch) | |
tree | 95e033a5a85386fd2f94f5665df2184d2504419c /channels/h323/ast_h323.cpp | |
parent | c7e36148599e47cdc3e45f0c39fe3a7bed34aa0f (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-x | channels/h323/ast_h323.cpp | 31 |
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; } } |