Hello Kamailio Community,
I am currently using *Kamailio v6.0.3* as an IMS SIP core integrated with a 5G core network, and I would like to ask a question regarding *voicemail service* integration using *iFC* (initial filter criteria).
The below is my deployment overview:
- Kamailio is deployed as *three separated IMS roles*, each running in its own K8s pod: P-CSCF, S-CSCF, and I-CSCF. - The configuration files are largely based on the following Open5GS IMS examples: - P-CSCF: https://github.com/herlesupreeth/docker_open5gs/blob/master/pcscf/kamailio_p... - S-CSCF: https://github.com/herlesupreeth/docker_open5gs/blob/master/scscf/kamailio_s... - I-CSCF: https://github.com/herlesupreeth/docker_open5gs/blob/master/icscf/kamailio_i... - A third-party Application Server, *Asterisk*, is deployed in a separate K8s pod and is intended to act as a voicemail server.
The target behavior is a typical IMS voicemail scenario:
1. UE A calls UE B. 2. If UE B rejects the call or is unreachable (e.g. the SIP response code as 486 Busy Here, 480 Temporarily Unavailable, etc.), the call should be forwarded to the voicemail server (Asterisk), allowing UE A to leave a voice message.
Originally, I planned to rely on *iFC in the S-CSCF* to trigger forwarding to the voicemail application server. However, from my understanding of the current *ims_isc* implementation in Kamailio, iFC trigger points are evaluated only on the initial request context (method, header, session case, etc.), and do not support conditions based on SIP response status codes returned from the UE.
My questions are therefore:
1. Is my understanding correct that, in Kamailio v6.0.3, iFC cannot be triggered conditionally based on the SIP response codes (e.g. 486/480/408) received from the terminating UE? 2. If this functionality is not supported, is there a recommended or existing method within Kamailio IMS to forward calls to a voicemail server (such as Asterisk) when the terminating UE fails?
I would appreciate any clarification or references to existing implementations or best practices. Thank you very much for your time and for the continued development of Kamailio.
-- Best regards, Ethan
Hello,
I have not looked into the referenced configuration. But of course, you can evaluate the SIP response code from an user agent in a failure route and then choose an appropriate action (e.g. routing to a application, voicemail etc..).
There is some example code in the default kamailio.cfg, route(TOVOICEMAIL);
Cheers,
Henning
From: 高秉寬 via sr-users sr-users@lists.kamailio.org Sent: Monday, January 19, 2026 5:46 PM To: Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org Cc: 高秉寬 s9327990@gmail.com Subject: [SR-Users] Question about iFC support for SIP response-code based voicemail forwarding
Hello Kamailio Community,
I am currently using Kamailio v6.0.3 as an IMS SIP core integrated with a 5G core network, and I would like to ask a question regarding voicemail service integration using iFC (initial filter criteria).
The below is my deployment overview: · Kamailio is deployed as three separated IMS roles, each running in its own K8s pod: P-CSCF, S-CSCF, and I-CSCF. · The configuration files are largely based on the following Open5GS IMS examples: o P-CSCF: https://github.com/herlesupreeth/docker_open5gs/blob/master/pcscf/kamailio_p... o S-CSCF: https://github.com/herlesupreeth/docker_open5gs/blob/master/scscf/kamailio_s... o I-CSCF: https://github.com/herlesupreeth/docker_open5gs/blob/master/icscf/kamailio_i... · A third-party Application Server, Asterisk, is deployed in a separate K8s pod and is intended to act as a voicemail server.
The target behavior is a typical IMS voicemail scenario: 1. UE A calls UE B. 2. If UE B rejects the call or is unreachable (e.g. the SIP response code as 486 Busy Here, 480 Temporarily Unavailable, etc.), the call should be forwarded to the voicemail server (Asterisk), allowing UE A to leave a voice message.
Originally, I planned to rely on iFC in the S-CSCF to trigger forwarding to the voicemail application server. However, from my understanding of the current ims_isc implementation in Kamailio, iFC trigger points are evaluated only on the initial request context (method, header, session case, etc.), and do not support conditions based on SIP response status codes returned from the UE.
My questions are therefore: 1. Is my understanding correct that, in Kamailio v6.0.3, iFC cannot be triggered conditionally based on the SIP response codes (e.g. 486/480/408) received from the terminating UE? 2. If this functionality is not supported, is there a recommended or existing method within Kamailio IMS to forward calls to a voicemail server (such as Asterisk) when the terminating UE fails? I would appreciate any clarification or references to existing implementations or best practices. Thank you very much for your time and for the continued development of Kamailio.
-- Best regards, Ethan
Hi,
Thank you very much for your reply.
I've implemented the voicemail forwarding logic using a failure route and verified that evaluating the SIP response codes there works well for my use case. The reference to the example in the default kamailio.cfg was very helpful.
Thanks again for your help and for taking the time to respond.
Best regards, Ethan
Henning Westerholt hw@gilawa.com 於 2026年1月20日週二 下午6:44寫道:
Hello,
I have not looked into the referenced configuration. But of course, you can evaluate the SIP response code from an user agent in a failure route and then choose an appropriate action (e.g. routing to a application, voicemail etc..).
There is some example code in the default kamailio.cfg, route(TOVOICEMAIL);
Cheers,
Henning
*From:* 高秉寬 via sr-users sr-users@lists.kamailio.org *Sent:* Monday, January 19, 2026 5:46 PM *To:* Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org *Cc:* 高秉寬 s9327990@gmail.com *Subject:* [SR-Users] Question about iFC support for SIP response-code based voicemail forwarding
Hello Kamailio Community,
I am currently using *Kamailio v6.0.3* as an IMS SIP core integrated with a 5G core network, and I would like to ask a question regarding *voicemail service* integration using *iFC* (initial filter criteria).
The below is my deployment overview:
· Kamailio is deployed as *three separated IMS roles*, each running in its own K8s pod: P-CSCF, S-CSCF, and I-CSCF.
· The configuration files are largely based on the following Open5GS IMS examples:
o P-CSCF: https://github.com/herlesupreeth/docker_open5gs/blob/master/pcscf/kamailio_p...
o S-CSCF: https://github.com/herlesupreeth/docker_open5gs/blob/master/scscf/kamailio_s...
o I-CSCF: https://github.com/herlesupreeth/docker_open5gs/blob/master/icscf/kamailio_i...
· A third-party Application Server, *Asterisk*, is deployed in a separate K8s pod and is intended to act as a voicemail server.
The target behavior is a typical IMS voicemail scenario:
UE A calls UE B.If UE B rejects the call or is unreachable (e.g. the SIP responsecode as 486 Busy Here, 480 Temporarily Unavailable, etc.), the call should be forwarded to the voicemail server (Asterisk), allowing UE A to leave a voice message.
Originally, I planned to rely on *iFC in the S-CSCF* to trigger forwarding to the voicemail application server. However, from my understanding of the current *ims_isc* implementation in Kamailio, iFC trigger points are evaluated only on the initial request context (method, header, session case, etc.), and do not support conditions based on SIP response status codes returned from the UE.
My questions are therefore:
Is my understanding correct that, in Kamailio v6.0.3, iFC cannotbe triggered conditionally based on the SIP response codes (e.g. 486/480/408) received from the terminating UE?
If this functionality is not supported, is there a recommended orexisting method within Kamailio IMS to forward calls to a voicemail server (such as Asterisk) when the terminating UE fails?
I would appreciate any clarification or references to existing implementations or best practices.
Thank you very much for your time and for the continued development of Kamailio.
--
Best regards,
Ethan