*/
void MyH323EndPoint::OnConnectionCleared(H323Connection & connection, const PString & clearedCallToken)
{
*/
void MyH323EndPoint::OnConnectionCleared(H323Connection & connection, const PString & clearedCallToken)
{
- PString remoteName = connection.GetRemotePartyName();
-
+ PIPSocket::Address Ip;
+ WORD sourcePort;
+
+ remoteName = connection.GetRemotePartyName();
cd.call_reference = connection.GetCallReference();
cd.call_reference = connection.GetCallReference();
- cd.call_token = (const char *)connection.GetCallToken();
+ cd.call_token = (const char *)clearedCallToken;
cd.call_source_aliases = (const char *)connection.GetRemotePartyName();
cd.call_source_aliases = (const char *)connection.GetRemotePartyName();
+ connection.GetSignallingChannel()->GetRemoteAddress().GetIpAndPort(Ip, sourcePort);
+ cd.sourceIp = (const char *)Ip.AsString();
+
/* Convert complex strings */
char *s;
if ((s = strchr(cd.call_source_aliases, ' ')) != NULL)
*s = '\0';
/* Convert complex strings */
char *s;
if ((s = strchr(cd.call_source_aliases, ' ')) != NULL)
*s = '\0';
- /* Invoke the PBX application registered callback */
- on_connection_cleared(cd);
-
switch (connection.GetCallEndReason()) {
case H323Connection::EndedByCallForwarded :
if (h323debug)
switch (connection.GetCallEndReason()) {
case H323Connection::EndedByCallForwarded :
if (h323debug)
if(connection.IsEstablished())
if (h323debug)
cout << " -- Call duration " << setprecision(0) << setw(5) << (PTime() - connection.GetConnectionStartTime()) << endl;
if(connection.IsEstablished())
if (h323debug)
cout << " -- Call duration " << setprecision(0) << setw(5) << (PTime() - connection.GetConnectionStartTime()) << endl;
+
+ /* Invoke the PBX application registered callback */
+ on_connection_cleared(cd);
+
+ return;
PString destE164;
PString sourceAliases;
PString destAliases;
PString destE164;
PString sourceAliases;
PString destAliases;
PIPSocket::Address Ip;
WORD sourcePort;
PIPSocket::Address Ip;
WORD sourcePort;
sourceAliases = setupPDU.GetSourceAliases();
destAliases = setupPDU.GetDestinationAlias();
sourceAliases = setupPDU.GetSourceAliases();
destAliases = setupPDU.GetDestinationAlias();
/* Convert complex strings */
// FIXME: deal more than one source alias
/* 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 ((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';
if ((s1 = strchr(destAliases, ' ')) != NULL)
*s1 = '\0';
if ((s1 = strchr(destAliases, '\t')) != NULL)
*s1 = '\0';
- GetSignallingChannel()->GetRemoteAddress().GetIpAndPort(Ip, sourcePort);
-
- sourceIp = Ip.AsString();
- cd.call_reference = GetCallReference();
- cd.call_token = (const char *)GetCallToken();
+ cd.call_reference = GetCallReference();
+ cd.call_token = (const char *)GetCallToken();
cd.call_source_aliases = (const char *)sourceAliases;
cd.call_source_aliases = (const char *)sourceAliases;
- cd.call_dest_alias = (const char *)destAliases;
- cd.call_source_e164 = (const char *)sourceE164;
- cd.call_dest_e164 = (const char *)destE164;
- cd.sourceIp = (const char *)sourceIp;
+ cd.call_dest_alias = (const char *)destAliases;
+ cd.call_source_e164 = (const char *)sourceE164;
+ cd.call_dest_e164 = (const char *)destE164;
+
+ GetSignallingChannel()->GetRemoteAddress().GetIpAndPort(Ip, sourcePort);
+ cd.sourceIp = (const char *)Ip.AsString();
/* Notify Asterisk of the request */
int res = on_incoming_call(cd);
/* Notify Asterisk of the request */
int res = on_incoming_call(cd);
BOOL MyH323Connection::OnSendSignalSetup(H323SignalPDU & setupPDU)
{
call_details_t cd;
BOOL MyH323Connection::OnSendSignalSetup(H323SignalPDU & setupPDU)
{
call_details_t cd;
if (h323debug) {
cout << " -- Sending SETUP message" << endl;
}
if (h323debug) {
cout << " -- Sending SETUP message" << endl;
}
/* Convert complex strings */
// FIXME: deal more than one source alias
/* 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 ((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)
if ((s1 = strchr(destAliases, ' ')) != NULL)
*s1 = '\0';
if ((s1 = strchr(destAliases, '\t')) != NULL)