I am sure this must have been covered somewhere, but I cannot find it.
I am trying to get openser to register with username and password and forward a call to that server. This is for outbound sip termination to the PSTN.
If somebody could point me to the right place, I would be grateful.
Bill
Take a look on the UA module... it do what You are looking for.
Edson.
-----Original Message----- From: users-bounces@openser.org [mailto:users-bounces@openser.org] On Behalf Of Xantek, Inc. Sent: quarta-feira, 13 de dezembro de 2006 22:02 To: users@openser.org Subject: [Users] Routing calls to a sip terminator
I am sure this must have been covered somewhere, but I cannot find it.
I am trying to get openser to register with username and password and forward a call to that server. This is for outbound sip termination to the PSTN.
If somebody could point me to the right place, I would be grateful.
Bill
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users
Thank you. I have looked at the uac module, but don't quite understand how to do it. Do you have an example config file?
Hi,
see example 6.2: http://www.voice-sistem.ro/docs/uac/ar01s06.html
Bye, Stefano
Bill Neely ha scritto:
Thank you. I have looked at the uac module, but don't quite understand how to do it. Do you have an example config file?
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
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
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
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
Xantek, Inc. wrote:
I am sure this must have been covered somewhere, but I cannot find it.
I am trying to get openser to register with username and password and forward a call to that server. This is for outbound sip termination to the PSTN.
openser is a proxy thus basically openser can'T do that.
Now the good news. For registration at the termination provider you can use sipsak. For sending authentication credentials to the termination provider openser has the "uac" module. But be aware that this module does not always works as it does not increase the cseq when sending the INVITE with credentials (search the archive for details). E.g. the uac module wont work if the termination providers uses Asterisk (as Asterisk checks the cseq)
regards klaus
If somebody could point me to the right place, I would be grateful.
Bill
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users