1The IMS ISC Module 2 3Dragos Vingarzan 4 5 FhG Fokus 6 <Dragos.Vingarzan@fokus.fraunhofer.de> 7 8Jason Penton 9 10 Smile Communications 11 <jason.penton@smilecoms.com> 12 13Richard Good 14 15 Smile Communications 16 <richard.good@smilecoms.com> 17 18 Copyright © 2007 FhG FOKUS 19 20 Copyright © 2012 Smile Communications 21 __________________________________________________________________ 22 23 Table of Contents 24 25 1. Admin Guide 26 27 1. Overview 28 2. Dependencies 29 30 2.1. Kamailio Modules 31 2.2. External Libraries or Applications 32 33 3. Parameters 34 35 3.1. my_uri (string) 36 3.2. expires_grace (integer) 37 3.3. isc_fr_timeout (integer) 38 3.4. isc_fr_inv_timeout (integer) 39 3.5. add_p_served_user (integer) 40 41 4. Functions 42 43 4.1. isc_match_filter_reg(reg_state,domain) 44 4.2. isc_match_filter(direction,domain) 45 4.3. isc_from_as(direction) 46 47 List of Examples 48 49 1.1. my_uri parameter usage 50 1.2. expires_grace parameter usage 51 1.3. isc_fr_timeout parameter usage 52 1.4. isc_fr_inv_timeout parameter usage 53 1.5. add_p_served_user parameter usage 54 1.6. isc_match_filter_reg usage 55 1.7. isc_match_filter usage 56 1.8. isc_from_as usage 57 58Chapter 1. Admin Guide 59 60 Table of Contents 61 62 1. Overview 63 2. Dependencies 64 65 2.1. Kamailio Modules 66 2.2. External Libraries or Applications 67 68 3. Parameters 69 70 3.1. my_uri (string) 71 3.2. expires_grace (integer) 72 3.3. isc_fr_timeout (integer) 73 3.4. isc_fr_inv_timeout (integer) 74 3.5. add_p_served_user (integer) 75 76 4. Functions 77 78 4.1. isc_match_filter_reg(reg_state,domain) 79 4.2. isc_match_filter(direction,domain) 80 4.3. isc_from_as(direction) 81 821. Overview 83 84 This module provides the functionality for an IMS S-CSCF to implement 85 the ISC interface between S-CSCF and SIP Application Server. 86 872. Dependencies 88 89 2.1. Kamailio Modules 90 2.2. External Libraries or Applications 91 922.1. Kamailio Modules 93 94 The Following modules must be loaded before this module: 95 * TM - Transaction Manager 96 * IMS Usrloc SCSCF 97 982.2. External Libraries or Applications 99 100 This modules requires the Kamailio internal IMS library. 101 1023. Parameters 103 104 3.1. my_uri (string) 105 3.2. expires_grace (integer) 106 3.3. isc_fr_timeout (integer) 107 3.4. isc_fr_inv_timeout (integer) 108 3.5. add_p_served_user (integer) 109 1103.1. my_uri (string) 111 112 This is the SIP URI of server on which the SCSCF is hosted. 113 114 Default value is 'sip:scscf.ims.smilecoms.com:6060'. 115 116 Example 1.1. my_uri parameter usage 117... 118modparam("ims_isc", "my_uri", "sip:scscf.ims.smilecoms.com:6060") 119... 120 1213.2. expires_grace (integer) 122 123 This is the expires value to add to the expires during 3rd party 124 registration to prevent expiration in Application Server. 125 126 Default value is 120. 127 128 Example 1.2. expires_grace parameter usage 129... 130modparam("ims_isc", "expires_grace", 120) 131... 132 1333.3. isc_fr_timeout (integer) 134 135 This is the time in ms that we will wait for an AS response before we 136 consider it dead. It has to be lower than the SIP transaction timeout 137 to prevent downstream timeouts. But not too small as ASs tend to take a 138 long time to respond. 139 140 Default value is 5000. 141 142 Example 1.3. isc_fr_timeout parameter usage 143... 144modparam("ims_isc", "isc_fr_timeout", 5000) 145... 146 1473.4. isc_fr_inv_timeout (integer) 148 149 This is the time in ms that we will wait for an AS INVITE response 150 before we consider it dead. It has to be lower than the SIP transaction 151 timeout to prevent downstream timeouts. But not too small as ASs tend 152 to take a long time to respond. 153 154 Default value is 20000 155 156 Example 1.4. isc_fr_inv_timeout parameter usage 157... 158modparam("ims_isc", "isc_fr_inv_timeout", 20000) 159... 160 1613.5. add_p_served_user (integer) 162 163 This boolean indicates if a P-Served-User should be added on the ISC 164 interface, according to RFC 5502. 165 166 Default value is 0 (false) 167 168 Example 1.5. add_p_served_user parameter usage 169... 170modparam("ims_isc", "add_p_served_user", 1) 171# p-served user header will be enabled 172... 173 1744. Functions 175 176 4.1. isc_match_filter_reg(reg_state,domain) 177 4.2. isc_match_filter(direction,domain) 178 4.3. isc_from_as(direction) 179 1804.1. isc_match_filter_reg(reg_state,domain) 181 182 This function checks if a REGISTER messages matches Initial Filter 183 Criteria - if so it inserts the necessary route headers and modifies 184 the destination URI to forward to the relevant Application Server. 185 186 A positive return code (1) means that the REGISTER message has matched 187 to Initial Filter Criteria and is armed for routing. 188 189 This function handles also the Service Info (if sent by the HSS), the 190 InsertRegisterRequest flag (if sent by the HSS) or the 191 InsertRegisterResponse flag (if sent by the HSS). Either the Service 192 Info OR the original REGISTER request OR the original REGISTER response 193 is added to the body of the REGISTER message, before it is forwarded to 194 the relevant Application Server. Multipart body is not supported in 195 this case. 196 197 Meaning of the parameters is as follows: 198 * reg_state if the user was previously registered 0 - for initial 199 registration, 1 for re/de-registration. 200 * domain that usrloc_scscf uses to store user information. 201 202 This function can be used from REQUEST_ROUTE. 203 204 Example 1.6. isc_match_filter_reg usage 205... 206isc_match_filter_reg("1","location"); 207... 208 2094.2. isc_match_filter(direction,domain) 210 211 This function checks if a non-REGISTER messages matches Initial Filter 212 Criteria - if so it inserts the necessary route headers and modifies 213 the destination URI to forward to the relevant Application Server. 214 215 A positive return code (1) means that the message has matched to 216 Initial Filter Criteria and is armed for routing. 217 218 Meaning of the parameters is as follows: 219 * direction the direction of this message - orig, term, etc. 220 * domain that usrloc_scscf uses to store user information. 221 222 This function can be used from REQUEST_ROUTE | FAILURE_ROUTE. 223 224 Example 1.7. isc_match_filter usage 225... 226isc_match_filter("orig","location"); 227... 228 2294.3. isc_from_as(direction) 230 231 This function checks if this message has come from an Application 232 Server. 233 234 A positive return code (1) means that the message has come from an 235 Application Server. 236 237 Meaning of the parameters is as follows: 238 * direction the direction of this message - orig, term, etc. 239 240 This function can be used from REQUEST_ROUTE | FAILURE_ROUTE. 241 242 Example 1.8. isc_from_as usage 243... 244if (!isc_from_as("orig")) { 245 remove_hf("P-Asserted-Identity"); 246} 247... 248