[Users] NAT ping types
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Tue Jul 12 15:05:12 CEST 2005
Hi Harry,
this changes has nothing to do with MOH.
regards,
bogdan
harry gaillac wrote:
>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