diff options
Diffstat (limited to 'addons/ooh323c/src/ooh245.c')
-rw-r--r-- | addons/ooh323c/src/ooh245.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/addons/ooh323c/src/ooh245.c b/addons/ooh323c/src/ooh245.c index adbe1842e..d993c9ed2 100644 --- a/addons/ooh323c/src/ooh245.c +++ b/addons/ooh323c/src/ooh245.c @@ -2102,10 +2102,20 @@ int ooHandleH245Command(OOH323CallData *call, int ooOnReceivedTerminalCapabilitySetAck(OOH323CallData* call) { + int ret = OO_OK; call->localTermCapState = OO_LocalTermCapSetAckRecvd; if(call->remoteTermCapState != OO_RemoteTermCapSetAckSent) return OO_OK; + if(call->masterSlaveState == OO_MasterSlave_Idle) { + ret = ooSendMasterSlaveDetermination(call); + if(ret != OO_OK) { + OOTRACEERR3("ERROR:Sending Master-slave determination message " + "(%s, %s)\n", call->callType, call->callToken); + return ret; + } + } + if((call->masterSlaveState == OO_MasterSlave_Master || call->masterSlaveState == OO_MasterSlave_Slave) && (call->msAckStatus == OO_msAck_remoteReceived)) @@ -3127,6 +3137,16 @@ int ooOnReceivedTerminalCapabilitySet(OOH323CallData *call, H245Message *pmsg) call->localTermCapState != OO_LocalTermCapSetAckRecvd) return OO_OK; + if(call->masterSlaveState == OO_MasterSlave_Idle) { + ret = ooSendMasterSlaveDetermination(call); + if(ret != OO_OK) { + OOTRACEERR3("ERROR:Sending Master-slave determination message " + "(%s, %s)\n", call->callType, call->callToken); + return ret; + } + } + + /* Check MasterSlave procedure has finished */ if(call->masterSlaveState != OO_MasterSlave_Master && call->masterSlaveState != OO_MasterSlave_Slave) |