[OpenSIPS-Users] Mediaproxy: dialog module sends BYE to wrong location with NAT

Bogdan-Andrei Iancu bogdan at voice-system.ro
Mon Mar 9 12:11:54 CET 2009


Hi Phil,

Phil Vandry wrote:
> On Thu, Mar 05, 2009 at 07:38:28PM +0200, Bogdan-Andrei Iancu wrote:
>   
>> What you can do, instead of using Route hdr as holder for the IP:port of 
>> the nat, you can store this information in the dialog. See 
>> store_dlg_value() and fetch_dlg_value() - 
>> http://www.opensips.org/html/docs/modules/devel/dialog.html#id272552 .
>>     
>
> Oh, that is very nice. It's like AVPs but they persist for the dialog
> instead of only the transaction. I missed it because I am still working
> with 1.4.
>
>   
>> Then, you can use the local_route 
>> (http://www.opensips.org/index.php?n=Resources.DocsCoreRoutes#toc6) to 
>> catch the BYE generated by the dialog module and to set as dsturi the 
>> values you stored in the dialog.
>>     
>
> No, because the dsturi cannot be changed from within a local_route, see
> modules/tm/uac.c line 305 in current SVN revision, and the documentation
> confirms it: "Routing and signalling functions are not allowed.".
>   
That is correct - I forgot even my own code :D...

With this limitation (maybe I should drop it in the future) it means we 
cannot change the routing at BYE time, so what we have to find a way to 
do it when the dialog module stores the routing information in the 
dialog structure.

If we replace the contact sent by client with the NAT address, will the 
client still accept the sequential requests (in your case)?

Regards,
Bogdan




More information about the Users mailing list