|
|
|
@ -1061,11 +1061,6 @@ int ooH2250Receive(OOH323CallData *call)
|
|
|
|
|
while(total < len)
|
|
|
|
|
{
|
|
|
|
|
struct pollfd pfds;
|
|
|
|
|
recvLen = ooSocketRecv (call->pH225Channel->sock, message1, len-total);
|
|
|
|
|
memcpy(message+total, message1, recvLen);
|
|
|
|
|
total = total + recvLen;
|
|
|
|
|
|
|
|
|
|
if(total == len) break; /* Complete message is received */
|
|
|
|
|
|
|
|
|
|
pfds.fd = call->pH225Channel->sock;
|
|
|
|
|
pfds.events = POLLIN;
|
|
|
|
@ -1085,8 +1080,9 @@ int ooH2250Receive(OOH323CallData *call)
|
|
|
|
|
}
|
|
|
|
|
return OO_FAILED;
|
|
|
|
|
}
|
|
|
|
|
/* If remaining part of the message is not received in 3 seconds
|
|
|
|
|
exit */
|
|
|
|
|
|
|
|
|
|
/* exit If remaining part of the message is not received in 3 seconds */
|
|
|
|
|
|
|
|
|
|
if(!ooPDRead(&pfds, 1, call->pH225Channel->sock))
|
|
|
|
|
{
|
|
|
|
|
OOTRACEERR3("Error: Incomplete H.2250 message received - clearing "
|
|
|
|
@ -1099,6 +1095,23 @@ int ooH2250Receive(OOH323CallData *call)
|
|
|
|
|
}
|
|
|
|
|
return OO_FAILED;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
recvLen = ooSocketRecv (call->pH225Channel->sock, message1, len-total);
|
|
|
|
|
if (recvLen == 0) {
|
|
|
|
|
OOTRACEERR3("Error in read while receiving H.2250 message - "
|
|
|
|
|
"clearing call (%s, %s)\n", call->callType,
|
|
|
|
|
call->callToken);
|
|
|
|
|
ooFreeQ931Message(pctxt, pmsg);
|
|
|
|
|
if(call->callState < OO_CALL_CLEAR)
|
|
|
|
|
{
|
|
|
|
|
call->callEndReason = OO_REASON_TRANSPORTFAILURE;
|
|
|
|
|
call->callState = OO_CALL_CLEAR;
|
|
|
|
|
}
|
|
|
|
|
return OO_FAILED;
|
|
|
|
|
}
|
|
|
|
|
memcpy(message+total, message1, recvLen);
|
|
|
|
|
total = total + recvLen;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
OOTRACEDBGC3("Received Q.931 message: (%s, %s)\n",
|
|
|
|
|