PJSUA2 - socket options missing for a regular and a TLS socket

ZC
Zarko Coklin
Fri, Jan 12, 2018 2:30 PM

Hello,

lately while working on PJSUA2 I discovered few things that are exposed and configurable in PJSUA and are not available through PJSUA2. For example, I had to modify certain socket options while working with TLS. Now, in PJSUA2 there are two structs where socket options should be possible: TransportConfig and  TlsConfig. These correspond to the following two PJSUA structs: pjsua_transport_config and pjsip_tls_setting.

The problem was that while PJSUA structs (pjsua_transport_config and pjsip_tls_setting) do have 'pj_sockopt_params sockopt_params' argument, there is no corresponding data member in PJSUA2. The attached patch does address this issue and introduces data members to PJSUA2. The change is tested and does work well, however, I am not sure if my changes are 100% correct when it comes to a serialization code in which, a 'void* optval' is dealt with.

The patch file is generated against a PJSIP 2. 6 version.

In my next post I am going to explain why I had to deal with this problem in the first place and will elaborate a change in default socket options. The change that be of benefit to all PJSIP users who use TCP and TLS.

Regards,
Zarko

Hello, lately while working on PJSUA2 I discovered few things that are exposed and configurable in PJSUA and are not available through PJSUA2. For example, I had to modify certain socket options while working with TLS. Now, in PJSUA2 there are two structs where socket options should be possible: TransportConfig and TlsConfig. These correspond to the following two PJSUA structs: pjsua_transport_config and pjsip_tls_setting. The problem was that while PJSUA structs (pjsua_transport_config and pjsip_tls_setting) do have 'pj_sockopt_params sockopt_params' argument, there is no corresponding data member in PJSUA2. The attached patch does address this issue and introduces data members to PJSUA2. The change is tested and does work well, however, I am not sure if my changes are 100% correct when it comes to a serialization code in which, a 'void* optval' is dealt with. The patch file is generated against a PJSIP 2. 6 version. In my next post I am going to explain why I had to deal with this problem in the first place and will elaborate a change in default socket options. The change that be of benefit to all PJSIP users who use TCP and TLS. Regards, Zarko