[Users] NAT ping types
harry gaillac
gaillacharry at yahoo.fr
Tue Jul 12 13:57:18 CEST 2005
Hello,
What about Maxim Sobolev and its MOH support !??
Harry
--- Bogdan-Andrei Iancu <bogdan at voice-system.ro> a
écrit :
> Hi folks,
>
> I extended nathelper (and some depending modules) to
> allow NAT pinging
> with SIP request. The main benefit of using SIP
> request instead of UDP
> package is the fact that there is a bidirectional
> traffic through the
> NAT - since each PING request from OpenSER (inbound
> traffic) will force
> the SIP client to generate a SIP reply (outbound
> traffic); so, even for
> NATs which updates the bind timeout only on outbound
> traffic, the NAT
> bind will be surely kept open - this couldn't be
> guaranteed by UDP
> package ping since the traffic was unidirectional
> (inbound - from
> outside to inside).
>
> The two type of pings can be use in the same time -
> mixed combination of
> contacts pinged with UDP packages and contacts
> pinged with SIP requests.
> What kind of ping will be used for each contact will
> be set at
> registration time via flags: if the REGISTRAR flag
> "sip_natping_flag" is
> set, the contact will be marked in USRLOC for SIP
> request pinging -
> NATHELPER will use default UDP package ping; for the
> marked contacts,
> the SIP request pinging will be used.
>
> To enable SIP request pinging in NATHELPER, you have
> to set the
> "sipping_from" parameter -default NULL- (FROM URI to
> be used for
> generating the SIP pings). Also you may change the
> "sipping_method"
> parameter to select a SIP method to be used (default
> is OPTIONS).
>
> The pinging SIP requests are statelessly generated
> by NATHELPER; the
> replies are automatically filtered out by the
> module. I preferred not to
> use TM to generate statefull replies from
> performance reasons:
> if you have 2000 nated contacts, at each 20
> seconds (pinging
> interval), 2000 new transactions will be created,
> transactions witch
> will leave in memory for 5 (wait timer) + 2 (delete
> timer) = 7 seconds;
> I find this penalty (like huge shared memory
> consumption and transaction
> lookup slowness) not paying the purpose;
> I think the lack of retransmissions (in the
> stateless version) is
> something comfortable in a pinging scenario.
>
> One more thing - it's really not important the code
> of the replies
> (that's 200 or not) - the important idea is to make
> the client to send
> something out to refresh the bind.
> There is a small limitation of the current version -
> since
> get_all_ucontacts() returns the received URI instead
> of contact URI
> (when nated contact), the SIP pinging requests will
> have in RURI a
> different URI that the registered contact. Most of
> the clients doesn't
> care about this, but some - like SIPURA- replies
> with 404 NOT FOUND :).
>
> Any comments, suggestions, questions are welcomed.
> Docs are updated both
> on CVS and web (for registrar and nathelper modules)
>
> regards,
> Bogdan
>
> _______________________________________________
> Users mailing list
> Users at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/users
>
___________________________________________________________________________
Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger
Téléchargez cette version sur http://fr.messenger.yahoo.com
More information about the Users
mailing list