[sr-dev] mediaproxy module and ACK with SDP

Jasmin Schnatterbeck js at data-cmr.net
Mon Dec 19 02:00:26 CET 2011


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




More information about the sr-dev mailing list