[pjsip] Sending large SIP packets over UDP?

Johan Lantz johan.lantz at genaker.net
Tue Feb 3 06:39:08 EST 2009


Hi Benny

Thanks for the detailed response on my question. It is highly appriciated.

I came up with one final idea that it would be great if you could give 
thumps up or down on if I am missing some special cases.

I am only interested in having minimal delay for the INVITE, the rest I 
do not care about, all other messages can very well be TCP.

So my proposal was to set transport=tcp for the outgoing proxy and then 
in pjsua_make_call(..) when assigning the route set I will know 
beforhand if this INVITE is to be sent on tcp or udp. Ofcourse I will 
not know the exact size in bytes but I will have a good idea if it is 
<1300 bytes.

What I imagine doing is modify the route-set for the account under these 
special conditions and either remove it completly (less good, require 
dns lookup?) or make a temp route-set as a copy of the original one and 
just remove the transport=tcp parameter making this dialog use the same 
route-set but UDP instead of the default TCP if the estimation of the 
packet size is <1300.

I tested just to remove the:
f (!pj_list_empty(&acc->route_set))
        pjsip_dlg_set_route_set(dlg, &acc->route_set);

all together and it appears to work ok. Registration etc is TCP and the 
dialog is running UDP. The next step would be making a clone of the 
acc->route_set and removing the transport=tcp.

This seems like a pretty simple solution for my needs. Do you think I 
miss something vital in taking this approach?

Thanks

Johan





More information about the pjsip mailing list