rollback everything to known good state. E.164 and prefix routing patches are broken
[asterisk/asterisk.git] / channels / h323 / ast_h323.cpp
index 9dbc1aa..44e8163 100755 (executable)
@@ -687,7 +687,7 @@ H323Channel * MyH323Connection::CreateRealTimeLogicalChannel(const H323Capabilit
                cout << "               -- SessionID: " << sessionID << endl;
                cout << "               -- Direction: " << dir << endl;
        }
-       return new MyH323_ExternalRTPChannel(*this, capability, dir, sessionID, externalIpAddress, externalPort);
+       return new H323_ExternalRTPChannel(*this, capability, dir, sessionID, externalIpAddress, externalPort);
 }
 
 /** This callback function is invoked once upon creation of each
@@ -720,63 +720,6 @@ BOOL MyH323Connection::OnStartLogicalChannel(H323Channel & channel)
        return TRUE;    
 }
 
-/* MyH323_ExternalRTPChannel */
-MyH323_ExternalRTPChannel::MyH323_ExternalRTPChannel(MyH323Connection & connection,
-                                                                                                       const H323Capability & capability,
-                                                                                                       Directions direction,
-                                                                                                       unsigned sessionID,
-                                                                                                       const PIPSocket::Address & ip,
-                                                                                                       WORD dataPort)
-       : H323_ExternalRTPChannel(connection, capability, direction, sessionID, ip, dataPort)
-{
-       if (h323debug) {
-               cout << "       == New H.323 ExternalRTPChannel created." << endl;
-       }
-       return;
-}
-
-MyH323_ExternalRTPChannel::~MyH323_ExternalRTPChannel()
-{
-       if (h323debug) {
-               cout << "       == H.323 ExternalRTPChannel deleted." << endl;
-       }
-       return;
-}
-
-BOOL MyH323_ExternalRTPChannel::OnReceivedPDU(
-                               const H245_H2250LogicalChannelParameters & param,
-                               unsigned & errorCode)
-{
-       if (h323debug) {
-               cout << "       MyH323_ExternalRTPChannel::OnReceivedPDU " << endl;
-       }
-       return H323_ExternalRTPChannel::OnReceivedPDU( param, errorCode );
-}
-
-BOOL MyH323_ExternalRTPChannel::OnReceivedAckPDU(
-                               const H245_H2250LogicalChannelAckParameters & param)
-{
-
-       PIPSocket::Address remoteIpAddress;             // IP Address of remote endpoint
-       WORD                       remotePort;                  // remote endpoint Data port (control is dataPort+1)
-
-       if (h323debug) {
-               cout << "       MyH323_ExternalRTPChannel::OnReceivedAckPDU " << endl;
-       }
-
-       if (H323_ExternalRTPChannel::OnReceivedAckPDU( param )) {
-               GetRemoteAddress(remoteIpAddress, remotePort);
-               if (h323debug) {
-                       cout << "               -- remoteIpAddress: " << remoteIpAddress << endl;
-                       cout << "               -- remotePort: " << remotePort << endl;
-               }
-               /* Notify Asterisk of remote RTP information */
-               on_start_logical_channel(connection.GetCallReference(), (const char *)remoteIpAddress.AsString(), remotePort);
-               return TRUE;
-       }
-       return FALSE;
-}
-
 
 /** IMPLEMENTATION OF C FUNCTIONS */
 
@@ -943,7 +886,10 @@ 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;
@@ -954,26 +900,18 @@ int h323_set_alias(struct oh323_alias *alias)
        endPoint->AddAliasName(h323id); 
        endPoint->RemoveAliasName(localProcess->GetUserName());
 
-       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 (!e164.IsEmpty()) {
+               cout << "  == Adding E.164 \"" << e164 << "\" to endpoint" << endl;
+               endPoint->AddAliasName(e164);
        }
-
-       if(alias->prefix) {
-               struct e164_number *num = alias->prefix;
+       if (strlen(alias->prefix)) {
+               p = alias->prefix;
+               num = strsep(&p, ",");
                while(num) {
-                       if(strlen(num->number)) {
-                               cout << "  == Adding Prefix \"" << num->number << "\" to endpoint" << endl;
-                               endPoint->SupportedPrefixes += PString(num->number);
-                               endPoint->SetGateway();
-                       }
-                       num = num->next;
+               cout << "  == Adding Prefix \"" << num << "\" to endpoint" << endl;
+                       endPoint->SupportedPrefixes += PString(num);
+                       endPoint->SetGateway();
+               num = strsep(&p, ",");          
                }
        }
 
@@ -1159,3 +1097,5 @@ void h323_native_bridge(const char *token, char *them, char *capability)
 
 } /* extern "C" */
 
+
+