Corrections for properly work with H.323v2 (older) endpoints and other

small fixes.

Interpret remote side H.225 version.

Corrections for H.323v2 endpoints: 
don't start TCS and MSD before connect,
don't start TCS and MSD by accepting H.245 connection,
start TCS and MSD by StartH245 facility message.

Other fixes:
fix non zeroended remoteDisplayName issue, small fixes in call clearing
by closing H.245 connection, tcp keepalive introduced on TCP
connections (now is hardcoded, will be configurable in the future), 
don't force H.245tunneling if FastStart is active, don't send Alerting 
singal more than once per call.

(issue 0018542)
Reported by: vmikhelson
Patches: 
      issue18542-final-3.patch uploaded by may213 (license 454)
Tested by: vmikhelson


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@307509 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Alexandr Anikin
2011-02-10 18:50:50 +00:00
parent e60115cc20
commit aa41d4f640
8 changed files with 104 additions and 53 deletions

View File

@@ -184,6 +184,7 @@ static struct ooh323_pvt {
int nat;
int amaflags;
int progsent; /* progress is sent */
int alertsent; /* alerting is sent */
struct ast_dsp *vad;
struct OOH323Regex *rtpmask; /* rtp ip regexp */
char rtpmaskstr[120];
@@ -1234,12 +1235,15 @@ static int ooh323_indicate(struct ast_channel *ast, int condition, const void *d
break;
case AST_CONTROL_RINGING:
if (ast->_state == AST_STATE_RING || ast->_state == AST_STATE_RINGING) {
if (gH323Debug)
ast_log(LOG_DEBUG,"Sending manual ringback for %s, res = %d\n",
callToken,
ooManualRingback(callToken));
else
ooManualRingback(callToken);
if (!p->alertsent) {
if (gH323Debug) {
ast_debug(1, "Sending manual ringback for %s, res = %d\n",
callToken,
ooManualRingback(callToken));
} else {
ooManualRingback(callToken);
}
}
}
break;
case AST_CONTROL_SRCUPDATE: