Pre-Submission Checklist

Type Of Change

Checklist:

Description

Use origin-host of CCR response as destination-host of subsequent CCR requests
When connecting to a diameter node which using relay, it may load balance requests to multiple servers for handling. This change ensures that subsequent requests are sent to the same server.

Honour AVP_Time_Quota_Threshold in CCR response
Charging server indicates it want an interim update X number of seconds before all quota has been used.

Add new modparam «strip_plus_from_e164»
The existing formatitng routine check if it's a tel: or sip: uri, and sets E.164 or SIP according to that. If it's E.164, it strips "tel:" too. A subscription id with leading "+" is actually of type SIP.

I didn't want to make a breaking change here, so I introduced a new setting which fixes the behaviour.

Moved subscription id formatting into a common function
For more clean code, and one place to make further adjustments.

Handle CCR response without AVP_Validity_Time
If missing, various places in the module reported immediate expire.

Handle IMS_RAR (Re-auth) request from charging server
Typical scenario is that there's a missing interim update, and the server want to check if the session is still alive. At reception we try a lookup and if found, schedule a new request.

Handle IMS_ASR (Abort) request from charging server
Similar handling as for re-auth, but for server-initiated termination of the call.

Fixed issue with signed/unsigned int related to check for Expires header
cscf_get_expires_hdr() returns signed (-1 for not found), while that value was added
to the outgoing diameter request unsigned. That again resulted in an Expires AVP with
a really large value, and was rejected by the charging server.

Most probably cscf_get_expires_hdr() should be changed to return unsigned since the value theoretical can be that big, but since that is a common function for the ims modules it would require more testing than I'm capable of right now.

Use str_dup() and str_free() from ims_getters instead of locally defined
Those were needed more places.

--

I'm a little bit unsure about updating a string allocated in shm, where the length is changed (look in ims_ro.c, credit_control_session_callback()). Is the correct way to do a shm_free() and then reallocate, or is there a more simple way of doing it?


You can view, comment on, or merge this pull request online at:

  https://github.com/kamailio/kamailio/pull/3640

Commit Summary

File Changes

(19 files)

Patch Links:


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <kamailio/kamailio/pull/3640@github.com>