Wed, 10 Feb 2010 21:21:24 +0100
Introduce authentication credential logic into the LCR module.
This logic is meant to complement that of changeset 18, adding
additional authentication flexibility to the UAC module.
1 LCR module authentication extention (contribution)
3 Rationale
5 An orthoganal approach to abstract authentication logic out of the
6 routing script improves administration by keeping unnecessarily hard
7 coded authentication credentials out of the routing script.
9 Usage
11 The new lcr module parameters which achieve this are 'auth_realm_avp',
12 'auth_username_avp', and 'auth_password_avp'. To specify where the lcr
13 module should write these values set the parameters like so:
15 modparam("lcr", "auth_realm_avp", "$avp(s:arealm)")
16 modparam("lcr", "auth_username_avp", "$avp(s:auser)")
17 modparam("lcr", "auth_password_avp", "$avp(s:apass)")
19 Typically these parameters are used in conjunction with the uac modules
20 uac_auth() function, which uses similar variables which are specified in
21 a similar manner. In fact, the parameters of both lcr and uac modules
22 can be specified at the same time like so:
24 modparam("uac|lcr", "auth_realm_avp", "$avp(s:arealm)")
25 modparam("uac|lcr", "auth_username_avp", "$avp(s:auser)")
26 modparam("uac|lcr", "auth_password_avp", "$avp(s:apass)")
28 In addition to the existing column module parameters, specify the name
29 of each of the new gw table columns like so:
31 modparam("lcr", "user_column", "user")
32 modparam("lcr", "realm_column", "realm")
33 modparam("lcr", "passwd_column", "passwd")
35 At this point the new functionality of the lcr module is ready to be
36 used. Enter values into the gw table with its new columns and call the
37 standard lcr module functions load_gws() and next_gw().
39 Result
41 After calling load_gws() and next_gw(), inspect the variables associated
42 with the user, realm, and password columns (see the modparam entries) to
43 find that the lcr module can now hand off authentication credentials to
44 other modules with ease.
46 Location
48 http://scm.europalab.com/contrib/opensips/
49 http://scm.europalab.com/contrib/file/tip/opensips/
50 http://scm.europalab.com/contrib/file/tip/opensips/lcr-auth.txt
51 http://scm.europalab.com/contrib/file/tip/opensips/lcr-auth.diff
53 Instructions
55 To integrate this contributed logic into the source code tree of
56 a OpenSIPS distribution, download the unified diff and use the
57 patch(1) command:
59 $ cd /tmp && mkdir lcr-patch && cd lcr-patch
60 $ wget http://scm.europalab.com/contrib/raw-file/tip/opensips/lcr-auth.diff
61 $ tar zxf /tmp/opensips-<version>-tls.tar.gz
62 $ cd opensips-<version>-tls
63 $ patch -p0 <../lcr-auth.diff
65 Disclaimer
67 This software contribution is based on source code from OpenSIPS SVN
68 revision 6590. The author makes no guarantees as to this contribution.
69 A user who downloads and executes it does so at his own risk.
71 Michael Schloh von Bennewitz
72 http://michael.schloh.com/
73 Wednsday, 10. February 2010