BOOL MyH323Connection::OnSendSignalSetup(H323SignalPDU & setupPDU) { call_details_t cd; char *s, *s1; if (h323debug) { cout << " -- Sending SETUP message" << endl; } sourceAliases = setupPDU.GetSourceAliases(); destAliases = setupPDU.GetDestinationAlias(); sourceE164 = ""; setupPDU.GetSourceE164(sourceE164); destE164 = ""; setupPDU.GetDestinationE164(destE164); /* Convert complex strings */ // FIXME: deal more than one source alias if ((s = strchr(sourceAliases, ' ')) != NULL) *s = '\0'; if ((s = strchr(sourceAliases, '\t')) != NULL) *s = '\0'; if ((s1 = strchr(destAliases, ' ')) != NULL) *s1 = '\0'; if ((s1 = strchr(destAliases, '\t')) != NULL) *s1 = '\0'; cd.call_reference = GetCallReference(); Lock(); cd.call_token = strdup((const char *)GetCallToken()); Unlock(); cd.call_source_aliases = strdup((const char *)sourceAliases); cd.call_dest_alias = strdup((const char *)destAliases); cd.call_source_e164 = strdup((const char *)sourceE164); cd.call_dest_e164 = strdup((const char *)destE164); int res = on_outgoing_call(cd); if (!res) { if (h323debug) { cout << " -- Call Failed" << endl; } return FALSE; } return H323Connection::OnSendSignalSetup(setupPDU); }
BOOL MyH323Connection::OnSendSignalSetup(H323SignalPDU & setupPDU) { call_details_t cd; char *s, *s1; if (h323debug) { cout << " -- Sending SETUP message" << endl; } if (connectionState == ShuttingDownConnection) return FALSE; if (!ast_cid_num.IsEmpty()) { setupPDU.GetQ931().SetCallingPartyNumber(ast_cid_num); } if (!ast_cid_name.IsEmpty()) { setupPDU.GetQ931().SetDisplayName(ast_cid_name); } sourceAliases = setupPDU.GetSourceAliases(); destAliases = setupPDU.GetDestinationAlias(); sourceE164 = ""; setupPDU.GetSourceE164(sourceE164); destE164 = ""; setupPDU.GetDestinationE164(destE164); /* Convert complex strings */ // FIXME: deal more than one source alias if ((s = strchr(sourceAliases, ' ')) != NULL) { *s = '\0'; } if ((s = strchr(sourceAliases, '\t')) != NULL) { *s = '\0'; } if ((s1 = strchr(destAliases, ' ')) != NULL) { *s1 = '\0'; } if ((s1 = strchr(destAliases, '\t')) != NULL) { *s1 = '\0'; } memset(&cd, 0, sizeof(cd)); cd.call_reference = GetCallReference(); cd.call_token = strdup((const char *)GetCallToken()); cd.call_source_aliases = strdup((const char *)sourceAliases); cd.call_dest_alias = strdup((const char *)destAliases); cd.call_source_e164 = strdup((const char *)sourceE164); cd.call_dest_e164 = strdup((const char *)destE164); int res = on_outgoing_call(&cd); if (!res) { if (h323debug) { cout << "\t-- Call Failed" << endl; } return FALSE; } if (progressSetup) { setupPDU.GetQ931().SetProgressIndicator(progressSetup); } return H323Connection::OnSendSignalSetup(setupPDU); }