Hello,
I've just recognized, that the mediaproxy module does not adjust the SDP
connection info of dialog-confirming ACKs (kamailio 3.2.1).
mediaproxy.c registers for the following dialog req callbacks:
mediaproxy.c:1955 if (dlg_api.register_dlgcb(dlg, DLGCB_REQ_WITHIN,
__dialog_requests, (void*)ice_data, __free_dialog_data) != 0)
But in dlg_handlers.c
1194 if (old_state==DLG_STATE_CONFIRMED_NA) {
1195 LM_DBG("confirming ACK successfully processed\n");
1196
1197 /* confirming ACK request */
1198 run_dlg_callbacks( DLGCB_CONFIRMED, dlg, req, NULL, dir, 0);
1199 } else {
1200 LM_DBG("sequential request successfully
processed\n");
1201
1202 /* within dialog request */
1203 run_dlg_callbacks( DLGCB_REQ_WITHIN, dlg, req, NULL, dir,
0);
So DLGCB_REQ_WITHIN does not seem to be called for the dialog-confirming
ACK (because it's no request WITHIN the dlg).
If UA sends such an ACK request with SDP, mediaproxy does not correct
the connection info.
I suggest to change mediaproxy.c:1955 to:
if (dlg_api.register_dlgcb(dlg, DLGCB_REQ_WITHIN | DLGCB_CONFIRMED,
__dialog_requests, (void*)ice_data, __free_dialog_data) != 0)
Regards
Jasmin