Module: sip-router
Branch: master
Commit: 94e7ae77a6674d5e6a6d025a8e85f7b1c8733057
URL:
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=94e7ae7…
Author: Carsten Bock <carsten(a)ng-voice.com>
Committer: Carsten Bock <carsten(a)ng-voice.com>
Date: Wed Mar 20 17:31:34 2013 +0100
Updated example config for S-CSCF
---
examples/scscf/kamailio.cfg | 42 ++++++++++++++++++++++++++++++++----------
1 files changed, 32 insertions(+), 10 deletions(-)
diff --git a/examples/scscf/kamailio.cfg b/examples/scscf/kamailio.cfg
index 4fa09b0..444cd74 100644
--- a/examples/scscf/kamailio.cfg
+++ b/examples/scscf/kamailio.cfg
@@ -430,16 +430,38 @@ route[XMLRPC] {
# Route for handling Registrations:
######################################################################
route[REGISTER] {
- xlog("L_ERR", "Enter register block");
- t_newtran();
-
- ims_www_authenticate(NETWORKNAME);
-
- #check to see if user is authenticated - ie sip header has auth information - (already
challenged)
- if ($avp(maa_return_code) == 1) {
- # user has not been authenticated. Lets send a challenge via 401 Unauthorized
- ims_www_challenge("$td");
- exit;
+ if (!ims_www_authenticate(NETWORKNAME)) {
+ if ($? == -2) {
+ t_reply("403", "Authentication Failed");
+ exit;
+ } else if ($? == -3) {
+ t_reply("400", "Bad Request");
+ exit;
+ } else {
+ #user has not been authenticated. Lets send a challenge via 401
Unauthorized
+ xlog("L_DBG","About to challenge!
auth_ims\n");
+ ims_www_challenge("$td");
+ #this is async so to know status we have to check the reply avp
+ xlog("L_DBG","maa_return code is
$avp(s:maa_return_code)\n");
+
+ switch ($avp(s:maa_return_code)){
+ case 1: #success
+ xlog("L_DBG", "MAR success -
401/407 response sent from module");
+ break;
+ case -1: #failure
+ xlog("L_ERR", "MAR failure - error
response sent from module");
+ break;
+ case -2: #error
+ xlog("L_ERR", "MAR error - sending
error response now");
+ t_reply("500", "MAR
failed");
+ break;
+ default:
+ xlog("L_ERR", "Unknown return code
from MAR, value is [$avp(s:uaa_return_code)]");
+ t_reply("500", "Unknown response
code from MAR");
+ break;
+ }
+ exit;
+ }
} else {
# We need to check if this user is registered or not
if (!impu_registered("location")) {