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.

(closes issue #18542)
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/trunk@307396 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Alexandr Anikin
2011-02-10 13:29:19 +00:00
parent 8f7982f280
commit 707cf78c5a
8 changed files with 104 additions and 54 deletions

View File

@@ -183,6 +183,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];
@@ -1236,13 +1237,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_debug(1, "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);
}
p->alertsent = 1;
}
break;
case AST_CONTROL_SRCUPDATE: