Modifying Q.931 IEs in setup PDU
Hello all!
While trying to add code in Yate to set some important parameters - for the telephony business - I noticed my changes are overwritten by OpenH323 / H323Plus.
I reimplemented H323Connection::OnSendSignalSetup() and changed the Q.931 fields in setupPDU. Unfortunately the following code (in h323.cxx) undoes my changes:
if (!OnSendSignalSetup(setupPDU)) return EndedByNoAccept;
// Do this again (was done when PDU was constructed) in case // OnSendSignalSetup() changed something. setupPDU.SetQ931Fields(*this, TRUE); setupPDU.GetQ931().GetCalledPartyNumber(remotePartyNumber);
Is there any solid reason why setupPDU.SetQ931Fields(*this, TRUE) is called? Its default parameters are overwriting the type, plan, presentation and screening of the numbers. I also need to set separate type of number on caller and called party numbers.
My plan is to patch OpenH323 / H323Plus to delete the extra SetQ931Fields(). Do you see any unintended consequences of such a change?
Regards,
Paul Chitescu
Paul,
I absolutely agree that the application settings should not be overwritten after OnSendSignalSetup() and made the change in the H323Plus CVS.
Regards, Jan
Paul Chitescu wrote:
Hello all!
While trying to add code in Yate to set some important parameters - for the telephony business - I noticed my changes are overwritten by OpenH323 / H323Plus.
I reimplemented H323Connection::OnSendSignalSetup() and changed the Q.931 fields in setupPDU. Unfortunately the following code (in h323.cxx) undoes my changes:
if (!OnSendSignalSetup(setupPDU)) return EndedByNoAccept;
// Do this again (was done when PDU was constructed) in case // OnSendSignalSetup() changed something. setupPDU.SetQ931Fields(*this, TRUE); setupPDU.GetQ931().GetCalledPartyNumber(remotePartyNumber);
Is there any solid reason why setupPDU.SetQ931Fields(*this, TRUE) is called? Its default parameters are overwriting the type, plan, presentation and screening of the numbers. I also need to set separate type of number on caller and called party numbers.
My plan is to patch OpenH323 / H323Plus to delete the extra SetQ931Fields(). Do you see any unintended consequences of such a change?
Regards,
Paul Chitescu
Hi, Jan!
Thanks for this change, it helps to be able to use unpatched libraries.
Paul
On Wednesday 23 February 2011 07:13:01 pm Jan Willamowius wrote:
Paul,
I absolutely agree that the application settings should not be overwritten after OnSendSignalSetup() and made the change in the H323Plus CVS.
Regards, Jan
Paul Chitescu wrote:
Hello all!
While trying to add code in Yate to set some important parameters - for the telephony business - I noticed my changes are overwritten by OpenH323 / H323Plus.
I reimplemented H323Connection::OnSendSignalSetup() and changed the Q.931 fields in setupPDU. Unfortunately the following code (in h323.cxx) undoes my changes:
if (!OnSendSignalSetup(setupPDU)) return EndedByNoAccept;
// Do this again (was done when PDU was constructed) in case // OnSendSignalSetup() changed something. setupPDU.SetQ931Fields(*this, TRUE); setupPDU.GetQ931().GetCalledPartyNumber(remotePartyNumber);
Is there any solid reason why setupPDU.SetQ931Fields(*this, TRUE) is called? Its default parameters are overwriting the type, plan, presentation and screening of the numbers. I also need to set separate type of number on caller and called party numbers.
My plan is to patch OpenH323 / H323Plus to delete the extra SetQ931Fields(). Do you see any unintended consequences of such a change?
Regards,
Paul Chitescu
participants (2)
-
Jan Willamowius
-
Paul Chitescu