AE-1179 Support H323 video conference feature

Review Request #842 — Created May 6, 2025 and submitted

pradeep
APV10
rel_apv_10_7_2_17_bhel_h323_nat
AE-1179
ngurunathan, prajesh

H323 involves set of protocol suits. Mainly h225 & h245. Certain packets of these protcol carry the IP address on the payload as per the protocol requirements. ASN1C library is used & modified to parse these packets and update the internal IP that they carry in payload with the NAT IP.

tested H225 setup. H245 OpenLogicChannel and OpenLogicChannelAck packets. Payloads of these protocol updated with NAT IP replacing the local ip.

Cli added:

AN#sh h323
H323 natting is enabled.

AN#
AN(config)#h323 ?
nat enable/disable natting

AN(config)#h323 nat ?
disable Disable H225 natting
enable Enable H323 natting

AN(config)#h323 nat enable

AN(config)#

Description From Last Updated

pass it from Makefile. CFLAGS += -DDEBUG_LOG

prajeshprajesh

change status => action ?

prajeshprajesh

remove these debugs if they are no longer needed.

prajeshprajesh

white spaces.

prajeshprajesh

space after if.

prajeshprajesh

make offset < len check before indexing.

prajeshprajesh

rename it as H323_PACKET_NOT_OURS

prajeshprajesh

add offset < len checks to avoid buffer overflows.

prajeshprajesh

what are 1C and 1E. please add some comments and add necessary #defines

prajeshprajesh

define and add comments to understand the logic better.

prajeshprajesh

Pass it from Makefile.

prajeshprajesh

Use Makefile to define macros -DDEBUG_LOG.

prajeshprajesh

remove whitespace changes from all other places.

prajeshprajesh

if (extpresent)

prajeshprajesh

we dont use uper.. do we need this change ?

prajeshprajesh

these logs are not useful.. clean them up.

prajeshprajesh

make the cli h225 nat enable and h245 nat enable

prajeshprajesh

Enable H225 natting.

prajeshprajesh

Configute H245 natting.

prajeshprajesh

Enable H245 natting.

prajeshprajesh

Disable H245 natting

prajeshprajesh

H225_ENABLED for better readability. Same for H245.

prajeshprajesh

it is a config rather than a status.

prajeshprajesh

Make it explicit.. H225 natting.

prajeshprajesh

write memory changes missing.. reboot and check. Also, do we need clear CLI?

prajeshprajesh

can we split nat_h323_payload into two functions nat_h225_payload() and nat_h245_payload(), Otherwise, fixing one might break other one..

prajeshprajesh
prajesh
  1. 
      
  2. pass it from Makefile.

    CFLAGS += -DDEBUG_LOG

  3. remove these debugs if they are no longer needed.

  4. make offset < len check before indexing.

  5. add offset < len checks to avoid buffer overflows.

  6. what are 1C and 1E. please add some comments and add necessary #defines

    1. added #define tokens for the same

  7. define and add comments to understand the logic better.

  8. Use Makefile to define macros -DDEBUG_LOG.

  9. remove whitespace changes from all other places.

    1. this library has folloed this style. I thin there thousands of if statements and other statements where they followed same style.

  10. we dont use uper.. do we need this change ?

    1. right we only need aper. But somehow for h245 ack this function was being used even though we have used the "aper" API.
      So under the function "SEQUENCE_decode_uper" I had to replace it with the code "SEQUENCE_decode_aper"

  11. these logs are not useful.. clean them up.

  12. make the cli h225 nat enable and h245 nat enable

    1. done.
      AN(config)#h323 ?
      nat enable/disable natting

      AN(config)#h323 nat ?
      disable Disable H323 natting
      enable Enable H323 natting

      we will have only one CLI. which enable both h225 and h245 protocols

  13. H225_ENABLED for better readability. Same for H245.

  14. it is a config rather than a status.

  15. can we split nat_h323_payload into two functions

    nat_h225_payload() and nat_h245_payload(),

    Otherwise, fixing one might break other one..

  16. 
      
prajesh
  1. 
      
  2. write memory changes missing.. reboot and check.

    Also, do we need clear CLI?

  3. 
      
pradeep
pradeep
pradeep
prajesh
  1. Ship It!
  2. 
      
ngurunathan
  1. Ship It!
  2. 
      
pradeep
Review request changed

Status: Closed (submitted)

Loading...