[Serusers] UAC module problem with uac_auth()

Mik mik at ttn.ru
Tue May 10 19:08:09 CEST 2005


Hello,

I am try uac_auth() client authentication to another SIP server (PSTN 
gateway) entity via Digest authentication. All my attempts failure with 
log messagess:
......
3(98356) DEBUG:uac:uac_auth: picked reply is 0x0, code 401
3(98356) BUG:uac:uac_auth: empty reply on picked branch
......

I use example from http://www.voice-system.ro/docs/uac/ar01s06.html

Give my good advice.
I think, all needed information below.

My SIP server: 213.24.21.2
My UAC: 213.24.21.30
PSTN gateway: 212.53.35.244

SIP messages send/recived with PSTN gateway:
213.24.21.2     ->      212.53.35.244
Session Initiation Protocol
     Request-Line: INVITE sip:70456 at 212.53.35.244:5060 SIP/2.0
         Method: INVITE
         Resent Packet: False
     Message Header
         Record-Route: <sip:213.24.21.2;ftag=ef40b40ea4;lr>
         Via: SIP/2.0/UDP 213.24.21.2;branch=z9hG4bK2102.c205a46.0
         Via: SIP/2.0/UDP 213.24.21.30:5060;branch=z9hG4bKef40b40ea497
         From: <sip:2000 at 213.24.21.2>;tag=ef40b40ea4
         To: <sip:70456 at 213.24.21.2>
         Call-ID: ef2efc40-3cdd-b417-810e-0002a401969c at 213.24.21.30
         CSeq: 97 INVITE
         Supported: timer, replaces
         Min-SE: 1800
         Date: Mon, 19 Jul 2004 20:28:31 GMT
         User-Agent: AddPac SIP Gateway
         Contact: <sip:2000 at 213.24.21.30>
         Accept: application/sdp
         Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, UPDATE, REFER, NOTIFY
         Content-Type: application/sdp
         Content-Length: 249
         Max-Forwards: 16
     Message body
         Session Description Protocol

212.53.35.244     ->      213.24.21.2
Session Initiation Protocol
     Status-Line: SIP/2.0 100 Trying
         Status-Code: 100
         Resent Packet: False
     Message Header
         Via: SIP/2.0/UDP 213.24.21.2:5060;branch=z9hG4bK2102.c205a46.0
         Via: SIP/2.0/UDP 213.24.21.30:5060;branch=z9hG4bKef40b40ea497
         From: <sip:2000 at 213.24.21.2>;tag=ef40b40ea4
         To: <sip:70456 at 213.24.21.2>;tag=3846972144
         Call-ID: ef2efc40-3cdd-b417-810e-0002a401969c at 213.24.21.30
         CSeq: 97 INVITE
         Content-Length: 0

212.53.35.244     ->      213.24.21.2
Session Initiation Protocol
     Status-Line: SIP/2.0 401 Unauthorized
         Status-Code: 401
         Resent Packet: False
     Message Header
         Via: SIP/2.0/UDP 213.24.21.2:5060;branch=z9hG4bK2102.c205a46.0
         Via: SIP/2.0/UDP 213.24.21.30:5060;branch=z9hG4bKef40b40ea497
         From: <sip:2000 at 213.24.21.2>;tag=ef40b40ea4
         To: <sip:70456 at 213.24.21.2>
         Call-ID: ef2efc40-3cdd-b417-810e-0002a401969c at 213.24.21.30
         CSeq: 97 INVITE
         Contact: "SIP-H.323 IWF" 
<sip:TGK4 at 212.53.35.244:50666;transport=tcp>
         Record-Route: <sip:212.53.35.244:5060;lr>
         Record-Route: <sip:213.24.21.2;lr>
         WWW-Authenticate: Digest 
realm="etc.tario.ru",nonce="4280dfdc5f3d72476c787a60f587f741"
         Content-Length: 0

My ser.cfg:

user=voip
listen=213.24.21.2
log_stderror=yes

debug=3
fifo="/var/run/ser.pipe"
fifo_mode=0600
children=5
alias=tagan.ru
alias=megalink.com.ru
sip_warning=no

# ------------------ module loading ----------------------------------

loadmodule "/usr/local/lib/ser/modules/sl.so"
loadmodule "/usr/local/lib/ser/modules/tm.so"
loadmodule "/usr/local/lib/ser/modules/rr.so"
loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
loadmodule "/usr/local/lib/ser/modules/textops.so"
loadmodule "/usr/local/lib/ser/modules/acc.so"
loadmodule "/usr/local/lib/ser/modules/xlog.so"
loadmodule "/usr/local/lib/ser/modules/exec.so"
loadmodule "/usr/local/lib/ser/modules/uac.so"

modparam("uac","credential","user:etc.tario.ru:password")


route [0] {
..... skip......
     if (method=="INVITE") {
         if (isflagset(2)) {
             # Our user
             xlog("L_INFO", "[%ci]: GO TO PSTN.\n");
             t_on_failure("3");
             t_relay_to_udp("212.53.35.244","5060");
             break;
         }
         sl_send_reply("404", "Not found.");
         break;
     }
..... skip......

failure_route[3] {

     # authentication reply received?
     if ( t_check_status("401|407") ) {
         # have we already tried to authenticate?
         if (isflagset(7)) {
             t_reply("513","Authentication failed");
             xlog("L_INFO", "[%ci]: Remote authentication failed\n");
             break;
         }
         if (uac_auth()) {
             # mark that auth was performed
             setflag(7);
             # trigger again the failure route
             t_on_failure("3");
             # repeat the request with auth response this time
             append_branch();
             t_relay();
             break;
         }
         t_reply("514","Unknow authentication peer");
         xlog("L_INFO", "[%ci]: Unknown authentication peer.\n");
         break;
     }

}




More information about the sr-users mailing list