Couple of things that I've noticed: 1) sip_transport.c, mod_on_tx_msg: it seems that the code makes an assumption, that the size of the message will always be less than PJSIP_MAX_PKT_LEN. While a reasonable assumption for UDP, it's not all that valid for TCP. We can send messages of *any* size over TCP, and this limitation shouldn't be in the way. 2) mod_msg_print is called after the application callback. What's the best approach for the application, if it wants to log the message? Reproducing the entire mod_on_tx_msg seems redundant (though, it may be useful to overcome the problem mentioned in (1) ;-) ). Seems like either I've missed a method, or the functionality offered by mod_on_tx_msg should be exposed in the API. Cheers, Alex