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(a)66.224.20.38} Dec 22 00:45:09 web8 openser[7072]: DBUG:parse_to:
display={}, ruri={sip:1707874
9006(a)66.224.20.38} Dec 22 00:45:09 web8 openser[7069]: DEBUG:
get_hdr_field: <To> [32]; uri=[sip:17
078749006(a)66.224.20.38] Dec 22 00:45:09 web8 openser[7072]: DEBUG:
get_hdr_field: <To> [32]; uri=[sip:17
078749006(a)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(a)voice-system.ro>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:
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users