My problem is related, but more basic. I cannot get a single outgoing connection to authenticate. Here is the relevant code from openser.cfg:
modparam("uac","credential","xxxxxxxxx:outbound.vitelity.net:password") route{
...
if (uri =~ 'sip:1[0-9]{10}@66.224.20.38') { xlog("L_ERR","iiiiiiiiiiiiiiiiiiiiiiiiiiiiinside 11 digit route$rr:$rc:$au:$ar,$du,$fu\n"); # set failure route for authentication t_on_failure("3"); # reset flag to mark no authentication yet performed resetflag(7); # forward to PSTN t_relay("udp:outbound.vitelity.net:5060");
...
failure_route[3] { xlog("L_ERR","3333333333333333333333333entering route3\n"); # authentication reply received? if ( t_check_status("401|407") ) { # have we already tried to authenticate? if (isflagset(7)) { t_reply("503","Authentication failed"); return; } 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(); } }
The call always results in a busy tone. The log file indicates that nothing ever reaches the failure_route[3], which I would expect it to do. Any ideas?
Here is the log file:
Dec 22 00:45:08 web8 openser[7070]: iiiiiiiiiiiiiiiiiiiiiiiiiiiiinside 11 digit route<null>:0::,,sip:1020111@66.224.20.38 Dec 22 00:45:08 web8 openser[7070]: DEBUG: t_newtran: msg id=1 , global msg id=0 , T on entrance=0xffffffff Dec 22 00:45:08 web8 openser[7070]: parse_headers: flags=ffffffffffffffff Dec 22 00:45:08 web8 openser[7070]: parse_headers: flags=78 Dec 22 00:45:08 web8 openser[7070]: t_lookup_request: start searching: hash=4175 3, isACK=1 Dec 22 00:45:08 web8 openser[7070]: DEBUG: RFC3261 transaction matched, tid=c8eb cfd3f11e821e Dec 22 00:45:08 web8 openser[7070]: DEBUG:tm:REF_UNSAFE: after is 1 Dec 22 00:45:08 web8 openser[7070]: DEBUG: t_lookup_request: transaction found ( T=0x284a8c20) Dec 22 00:45:08 web8 openser[7070]: DEBUG: cleanup_uac_timers: RETR/FR timers re set Dec 22 00:45:08 web8 openser[7070]: DEBUG: add_to_tail_of_timer[2]: 0x284a8c68 Dec 22 00:45:08 web8 openser[7070]: grep_sock_info - checking if host==us: 12==1 2 && [66.224.20.38] == [66.224.20.38] Dec 22 00:45:08 web8 openser[7070]: grep_sock_info - checking if port 5060 match es port 5060 Dec 22 00:45:08 web8 openser[7070]: grep_sock_info - checking if host==us: 12==1 2 && [66.224.20.38] == [66.224.20.38] Dec 22 00:45:08 web8 openser[7070]: grep_sock_info - checking if port 5060 match es port 5060 Dec 22 00:45:08 web8 openser[7070]: lookup(): '17078749006' Not found in usrloc Dec 22 00:45:08 web8 openser[7070]: grep_sock_info - checking if host==us: 12==1 2 && [66.224.20.38] == [66.224.20.38] Dec 22 00:45:08 web8 openser[7070]: grep_sock_info - checking if port 5060 match es port 5060 Dec 22 00:45:08 web8 openser[7070]: lookup(): '17078749006' Not found in usrloc Dec 22 00:45:08 web8 openser[7070]: WARNING:sl:sl_send_reply: I won't send a rep ly for ACK!! Dec 22 00:45:08 web8 openser[7070]: DEBUG:tm:UNREF_UNSAFE: after is 0 Dec 22 00:45:08 web8 openser[7070]: DEBUG:destroy_avp_list: destroying list 0x0 Dec 22 00:45:08 web8 openser[7070]: receive_msg: cleaning up Dec 22 00:45:09 web8 openser[7072]: SIP Reply (status): Dec 22 00:45:09 web8 openser[7069]: SIP Reply (status): Dec 22 00:45:09 web8 openser[7072]: version: <SIP/2.0> Dec 22 00:45:09 web8 openser[7069]: version: <SIP/2.0> Dec 22 00:45:09 web8 openser[7072]: status: <100> Dec 22 00:45:09 web8 openser[7069]: status: <100> Dec 22 00:45:09 web8 openser[7072]: reason: <Trying> Dec 22 00:45:09 web8 openser[7069]: reason: <Trying> Dec 22 00:45:09 web8 openser[7072]: parse_headers: flags=2 Dec 22 00:45:09 web8 openser[7069]: parse_headers: flags=2 Dec 22 00:45:09 web8 openser[7072]: Found param type 232, <branch> = <z9hG4bK913 a.1a665075.0>; state=6 Dec 22 00:45:09 web8 openser[7069]: Found param type 232, <branch> = <z9hG4bK913 a.1a665075.0>; state=6 Dec 22 00:45:09 web8 openser[7072]: Found param type 234, <received> = <66.224.2 0.38>; state=16 Dec 22 00:45:09 web8 openser[7069]: Found param type 234, <received> = <66.224.2 0.38>; state=16 Dec 22 00:45:09 web8 openser[7072]: end of header reached, state=5 Dec 22 00:45:09 web8 openser[7069]: end of header reached, state=5 Dec 22 00:45:09 web8 openser[7072]: parse_headers: Via found, flags=2 Dec 22 00:45:09 web8 openser[7069]: parse_headers: Via found, flags=2 Dec 22 00:45:09 web8 openser[7072]: parse_headers: this is the first via Dec 22 00:45:09 web8 openser[7069]: parse_headers: this is the first via Dec 22 00:45:09 web8 openser[7072]: After parse_msg... Dec 22 00:45:09 web8 openser[7069]: After parse_msg... Dec 22 00:45:09 web8 openser[7072]: forward_reply: found module nathelper, passi ng reply to it Dec 22 00:45:09 web8 openser[7069]: forward_reply: found module nathelper, passi ng reply to it Dec 22 00:45:09 web8 openser[7072]: parse_headers: flags=20 Dec 22 00:45:09 web8 openser[7069]: parse_headers: flags=20 Dec 22 00:45:09 web8 openser[7072]: Found param type 235, <rport> = <63658>; sta te=6 Dec 22 00:45:09 web8 openser[7069]: Found param type 235, <rport> = <63658>; sta te=6 Dec 22 00:45:09 web8 openser[7072]: Found param type 232, <branch> = <z9hG4bKc8e bcfd3f11e821e>; state=16 Dec 22 00:45:09 web8 openser[7069]: Found param type 232, <branch> = <z9hG4bKc8e bcfd3f11e821e>; state=16 Dec 22 00:45:09 web8 openser[7069]: end of header reached, state=5 Dec 22 00:45:09 web8 openser[7072]: end of header reached, state=5 Dec 22 00:45:09 web8 openser[7069]: parse_headers: Via found, flags=20 Dec 22 00:45:09 web8 openser[7072]: parse_headers: Via found, flags=20 Dec 22 00:45:09 web8 openser[7069]: parse_headers: this is the second via Dec 22 00:45:09 web8 openser[7072]: parse_headers: this is the second via Dec 22 00:45:09 web8 openser[7069]: DEBUG:parse_to:end of header reached, state= 10 Dec 22 00:45:09 web8 openser[7072]: DEBUG:parse_to:end of header reached, state= 10 Dec 22 00:45:09 web8 openser[7069]: DBUG:parse_to: display={}, ruri={sip:1707874 9006@66.224.20.38} Dec 22 00:45:09 web8 openser[7072]: DBUG:parse_to: display={}, ruri={sip:1707874 9006@66.224.20.38} Dec 22 00:45:09 web8 openser[7069]: DEBUG: get_hdr_field: <To> [32]; uri=[sip:17 078749006@66.224.20.38] Dec 22 00:45:09 web8 openser[7072]: DEBUG: get_hdr_field: <To> [32]; uri=[sip:17 078749006@66.224.20.38] Dec 22 00:45:09 web8 openser[7069]: DEBUG: to body [sip:17078749006@66.224.20.3 8^M ] Dec 22 00:45:09 web8 openser[7072]: DEBUG: to body [sip:17078749006@66.224.20.3 8^M ] Dec 22 00:45:09 web8 openser[7069]: get_hdr_field: cseq <CSeq>: <45348> <INVITE>
Dec 22 00:45:09 web8 openser[7072]: get_hdr_field: cseq <CSeq>: <45348> <INVITE>
Dec 22 00:45:09 web8 openser[7069]: forward_reply: found module tm, passing repl y to it Dec 22 00:45:09 web8 openser[7072]: forward_reply: found module tm, passing repl y to it Dec 22 00:45:09 web8 openser[7069]: DEBUG: t_check: msg id=2 global id=1 T start =0xffffffff Dec 22 00:45:09 web8 openser[7072]: DEBUG: t_check: msg id=1 global id=0 T start =0xffffffff Dec 22 00:45:09 web8 openser[7069]: parse_headers: flags=22 Dec 22 00:45:09 web8 openser[7072]: parse_headers: flags=22 Dec 22 00:45:09 web8 openser[7069]: parse_headers: flags=8 Dec 22 00:45:09 web8 openser[7072]: parse_headers: flags=8 Dec 22 00:45:09 web8 openser[7069]: DEBUG: t_reply_matching: hash 41753 label 14 59971745 branch 0 Dec 22 00:45:09 web8 openser[7072]: DEBUG: t_reply_matching: hash 41753 label 14 59971745 branch 0 Dec 22 00:45:09 web8 openser[7069]: DEBUG:tm:REF_UNSAFE: after is 1 Dec 22 00:45:09 web8 openser[7069]: DEBUG: t_reply_matching: reply matched (T=0x 284a8c20)! Dec 22 00:45:09 web8 openser[7072]: DEBUG:tm:REF_UNSAFE: after is 2 Dec 22 00:45:09 web8 openser[7069]: DEBUG: t_check: msg id=2 global id=2 T end=0 x284a8c20 Dec 22 00:45:09 web8 openser[7072]: DEBUG: t_reply_matching: reply matched (T=0x 284a8c20)! Dec 22 00:45:09 web8 openser[7069]: DEBUG:tm:reply_received: org. status uas=408 , uac[0]=408 local=0 is_invite=1) Dec 22 00:45:09 web8 openser[7072]: DEBUG: t_check: msg id=1 global id=1 T end=0 x284a8c20 Dec 22 00:45:09 web8 openser[7069]: DEBUG:tm:t_should_relay_response: T_code=408 , new_code=100 Dec 22 00:45:09 web8 openser[7072]: DEBUG:tm:reply_received: org. status uas=408 , uac[0]=408 local=0 is_invite=1) Dec 22 00:45:09 web8 openser[7069]: DEBUG:tm:relay_reply: branch=0, save=0, rela y=-1 Dec 22 00:45:09 web8 openser[7069]: WARNING: set_timer for 1 list called on a "d etached" timer -- ignoring: 0x284a8d4c Dec 22 00:45:09 web8 openser[7072]: DEBUG:tm:t_should_relay_response: T_code=408 , new_code=100 Dec 22 00:45:09 web8 openser[7069]: DEBUG:tm:UNREF_UNSAFE: after is 1 Dec 22 00:45:09 web8 openser[7072]: DEBUG:tm:relay_reply: branch=0, save=0, rela y=-1 Dec 22 00:45:09 web8 openser[7069]: DEBUG:destroy_avp_list: destroying list 0x0 Dec 22 00:45:09 web8 openser[7069]: receive_msg: cleaning up Dec 22 00:45:09 web8 openser[7072]: WARNING: set_timer for 1 list called on a "d etached" timer -- ignoring: 0x284a8d4c Dec 22 00:45:09 web8 openser[7072]: DEBUG:tm:UNREF_UNSAFE: after is 0 Dec 22 00:45:09 web8 openser[7072]: DEBUG:destroy_avp_list: destroying list 0x0 Dec 22 00:45:09 web8 openser[7072]: receive_msg: cleaning up Dec 22 00:45:09 web8 openser[7073]: DEBUG: timer routine:0,tl=0x284a8ce0 next=0x 0 Dec 22 00:45:09 web8 openser[7073]: DEBUG: timer routine:4,tl=0x284a8cd0 next=0x 0 -- 702-874-3833 1-866-553-3833
Quoting Bogdan-Andrei Iancu bogdan@voice-system.ro:
Hi Stefan,
also, with the latest stable version, you can use dynamic credentials via AVPs. See: http://www.openser.org/docs/modules/1.1.x/uac.html#AUTH-REALM-AVP-ID
regards, bogdan
Stefano Capitanio wrote:
yes, if each provider have a different realm for authentication OpenSER can find the right credentials:
modparam("uac","credential","user1:realm1:passwd1")
modparam("uac","credential","user2:realm2:passwd2")
...and so on...
Stefano
Zac Amsler ha scritto:
Hmmm.
This is an interesting thing. My question is.. I have 4 providers that require authentication. Is this doable?
Thanks!
Cheers, Zac Amsler, Network Operations Sur-Tel Communications, Inc. & NetIQ Systems, LLC
- US48, Canada, A-Z Wholesale Termination.
- US48 Origination, Toll Free DIDs.
- Toll Free Termination (FREE).
Stefano Capitanio wrote:
Hi,
see example 6.2: http://www.voice-sistem.ro/docs/uac/ar01s06.html
Bye, Stefano
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users