Summary
I configured FreeSWITCH's sofia module to capture and send SIP messages to a HEP server by setting both sip-capture and capture-server, however sofia's HEP agent is splitting the message into multiple HEP packets when it gets to big. The splitting seems to align with TCP segmentation when locking at a wireshark capture. Given that the HEP packets report at the SIP level, it would be better for this spiting to not occur as they are difficult to reassemble on the HEP server side.
Proposal
I make a quick prove of concept on which i removed tport_capt_msg from transport level recv function tport_recv_stream on libsofia-sip-ua/tporttport_type_tcp.c and modified tport_deliver on libsofia-sip-ua/tport/tport.c to add a call to the capture function there and finish reassembly of SIP message with msg_iovec. This does in fact make the HEP packets contain the entire message, so a complete version of this approach might be the way to go here.
Summary
I configured FreeSWITCH's sofia module to capture and send SIP messages to a HEP server by setting both
sip-captureandcapture-server, however sofia's HEP agent is splitting the message into multiple HEP packets when it gets to big. The splitting seems to align with TCP segmentation when locking at a wireshark capture. Given that the HEP packets report at the SIP level, it would be better for this spiting to not occur as they are difficult to reassemble on the HEP server side.Proposal
I make a quick prove of concept on which i removed
tport_capt_msgfrom transport level recv functiontport_recv_streamonlibsofia-sip-ua/tporttport_type_tcp.cand modifiedtport_deliveronlibsofia-sip-ua/tport/tport.cto add a call to the capture function there and finish reassembly of SIP message withmsg_iovec. This does in fact make the HEP packets contain the entire message, so a complete version of this approach might be the way to go here.