[Serusers] sip-communicator

Klaus Darilion klaus.mailinglists at pernau.at
Tue Mar 2 13:46:19 CET 2004


The 200 OK to the REGISTER must have as many Contacts as currently 
registered at the proxy. So if you register and restart the client 
(without de-register), there will be 2 bindings (2 contacts) - the new 
one and the old. The old one will expires after some time as it will not 
be renewed.

klaus

Eduard San Anselmo Mateu wrote:

> Hello everyone.
> 
> I'm testing SER with some different clients, to see which one fits our needs
> better. The last one we tried was sip-communicator (java softphone), but I'm
> experiencing some problems with it. At first, everything seems to work well, but
> after a few seconds, the client says it's unregistered (when that's not true).
> Another issue is that when SER returns the 200 OK response to the REGISTER
> request, it has three different Contact headers, with different port numbers.
> The config file is this one: 
> 
> listen=192.168.0.15
> alias=albasoft.com
> alias=albasoft.com:5060
> alias=192.168.0.15
> #alias=192.168.20.15
> #alias=192.168.20.15:*
>                                                                                
>                                             
> #alias=192.168.20.15
>                                                                                
>                                             
> # ------------------ module loading ----------------------------------
>                                                                                
>                                             
> # Uncomment this if you want to use SQL database
> loadmodule "/usr/lib/ser/modules/mysql.so"
>                                                                                
>                                             
> loadmodule "/usr/lib/ser/modules/sl.so"
> loadmodule "/usr/lib/ser/modules/tm.so"
> loadmodule "/usr/lib/ser/modules/rr.so"
> loadmodule "/usr/lib/ser/modules/maxfwd.so"
> loadmodule "/usr/lib/ser/modules/usrloc.so"
> loadmodule "/usr/lib/ser/modules/registrar.so"
> loadmodule "/usr/lib/ser/modules/textops.so"
> loadmodule "/usr/lib/ser/modules/nathelper.so"
> 
> modparam("usrloc", "db_mode", 2)
> modparam("rr", "enable_full_lr", 1)
> 
> route{
>                                                                                
>                                             
>         # initial sanity checks -- messages with
>         # max_forwards==0, or excessively long requests
>         if (!mf_process_maxfwd_header("10")) {
>                 sl_send_reply("483","Too Many Hops");
>                 break;
>         };
>         if (msg:len >=  max_len ) {
>                 sl_send_reply("513", "Message too big");
>                 break;
>         };
>                                                                                
>                                             
>         if (loose_route()) {
>                 # mark routing logic in request
>                 append_hf("P-hint: rr-enforced\r\n");
>                 route(1);
>                 break;
>         };
>                                                                                
>                                             
>         if (!uri==myself) {
>                 # mark routing logic in request
>                 append_hf("P-hint: outbound\r\n");
>                 route(1);
>                 break;
>         };
>                                                                                
>                                             
>         # if the request is for other domain use UsrLoc
>         # (in case, it does not work, use the following command
>         # with proper names and addresses in it)
>         if (uri==myself) {
>                                                                                
>                                             
>                 if (method=="REGISTER") {
>                                                                                
>                                             
> # Uncomment this if you want to use digest authentication
> #                       if (!www_authorize("iptel.org", "subscriber")) {
> #                               www_challenge("iptel.org", "0");
> #                               break;
> #                       };
>                         force_rport();
>                         save("location");
>                         break;
>                 };
>                                                                                
>                                             
>                 lookup("aliases");
>                 if (!uri==myself) {
>                         append_hf("P-hint: outbound alias\r\n");
>                         route(1);
>                         break;
>                 };
>                                                                                
>                                             
>                 # native SIP destinations are handled using our USRLOC DB
>                 if (!lookup("location")) {
>                         sl_send_reply("404", "Not Found");
>                         break;
>                 };
>                 if (method=="INVITE" && !uri=~"sip:.*@192\.168\.0\..*") {
>                         log(1,"IEEE: la peticio va cap a fora\n");
>                         #fix_nated_sdp("1");
>                         #force_rtp_proxy();
>                         #t_on_reply("1");
>                 };
>         };
>         append_hf("P-hint: usrloc applied\r\n");
>         route(1);
> }
>                                                                                
>                                             
> route[1]
> {
>         # send it out now; use stateful forwarding as it works reliably
>         # even for UDP2TCP
>         if (!t_relay()) {
>                 sl_reply_error();
>         };
> }
> 
> onreply_route[1] {
>     if (status =~ "(183)|2[0-9][0-9]") {
>         if (!src_ip=~"192\.168\.0.\.*") {
>                 log(1,"onreply_route si que funciona\n");
>                 #force_rtp_proxy();
>         };
>     };
> }
>                                                                                
>                                             
> By the way, sip-communicator doesn't seem to be symmetric: the clients works on
> a random port, and the server, on 5060 (configurable), and those different
> Contact headres I've explained, are for 5060, and the three ports following the
> one sip-communicator has made the request from (for example, 1066, 1067, 1068).
> 
> Thanks in advance.
> 
> Eduard San Anselmo
> 
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
> 
> 




More information about the sr-users mailing list