Hi Anthony,
Should have just been fixed in SVN trunk, please check https://trac.pjsip.org/repos/ticket/2227 for more info.
Thank you for the report and the analysis.
BR,
nanang
On Fri, Aug 30, 2019 at 10:14 AM Anthony Alba <ascanio.alba7@xxxxxxxxx> wrote:
Using PJSIP 2.9
Using all IPv4 but the hostname is AAAA resolvale.
Processing 200 OK and sending ACK fails because the stack does not try
the IPv4 address after IPv6 address is detected as
PJSIP_EUNSUPTRANSPOR
REGISTER/INVITE/BYE: all will try IPv6(fail) then IPv4 address
For INVITE processing 200 OK to send ACK it does not fall back to IPv4.
I narrowed the cause to sip_util.c:
1119 if (sent == -PJ_EPENDING) {
1120 /* This is the initial process.
1121 * When the process started, this function will be called by
1122 * stateless_send_resolver_callback() with sent
argument set to
1123 * -PJ_EPENDING.
1124 */
1125 cont = PJ_TRUE;
1126 } else {
1127 /* There are two conditions here:
1128 * (1) Message is sent (i.e. sent > 0),
1129 * (2) Failure (i.e. sent <= 0)
1130 */
1131 cont = (sent > 0) ? PJ_FALSE :
1132
(tdata->dest_info.cur_addr<tdata->dest_info.addr.count-1);
1133 if (stateless_data->app_cb) {
1134 (*stateless_data->app_cb)(stateless_data, sent, &cont);
1135 } else {
1136 /* Doesn't have application callback.
1137 * Terminate the process.
1138 */
1139 cont = PJ_FALSE;
1140 }
1141 }
Sending ACK, cont is set to PJ_FALSE.
Cheers
Anthony
_______________________________________________
Visit our blog: http://blog.pjsip.org
pjsip mailing list
pjsip@xxxxxxxxxxxxxxx
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
_______________________________________________ Visit our blog: http://blog.pjsip.org pjsip mailing list pjsip@xxxxxxxxxxxxxxx http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org