Hi Henning, Thanks for your email, you pointed me in the right direction!
It turns out my configuration wasn’t setting the required flag during the actual routing. I didn’t understand the dialog module required you to set this flag ad-hoc, I just assumed this was done with the FLT/FLB default flags in the configuration. My Cseq is now incrementing, thanks again for your help! Andrew > On 1 May 2019, at 10:43 am, Andrew White <and...@uconnected.com.au> wrote: > > Hi Henning, > > Thanks for your reply! > > I believe I have it in the correct place. My kamailio.cfg is fairly simple, > as I do all my processing within app_ruby. Here’s the full config: > > https://0bin.net/paste/AQHG2Le8Opj0WT3Z#fUWSxjpEDyAmfNoLqrJ0Lwh5+STvEMJsa+4Jnw48I5+ > > <https://0bin.net/paste/AQHG2Le8Opj0WT3Z#fUWSxjpEDyAmfNoLqrJ0Lwh5+STvEMJsa+4Jnw48I5+> > > I’m not sure what you mean with initial dialog forming requests. Are you > saying I need to set the flag at the time the dialog is formed? > > My configuration of request_route and its child routes are fairly generic too: > > https://0bin.net/paste/T-TPl6Db+IpQOuGM#JbzCpj4xhIYx6Zv3Kh89D08BpqR0pkYiHp9pHSrW5uH > > <https://0bin.net/paste/T-TPl6Db+IpQOuGM#JbzCpj4xhIYx6Zv3Kh89D08BpqR0pkYiHp9pHSrW5uH> > > Thanks! > > Andrew > >> On 30 Apr 2019, at 9:06 pm, Henning Westerholt <h...@skalatan.de >> <mailto:h...@skalatan.de>> wrote: >> >> Hello Andrew, >> >> It seems indeed that the dialog is not found, and therefore the cseq can't >> be incremented. >> >> just to make sure there is no obvious error - you actually set the dlg_flag >> 4 in the proper place in the configuration - e.g. for initial dialog forming >> requests? >> >> Cheers, >> >> Henning >> >> Am 29.04.19 um 13:01 schrieb Andrew White: >>> Hi Henning/Karsten, >>> >>> Thanks so much for your feedback. >>> >>> @Henning - you’re right, I’ve misunderstood the purpose of cseq_diff. >>> Thanks for pointing that out, I’ve removed that reference! >>> >>> I’ve done a debug and privatised a few values (IPs, phone numbers, >>> passwords, etc): >>> >>> https://0bin.net/paste/yjXiQF4-IO7HSRvE#xdrfRXGjGG0TOA6VYV0iy49IuOSUFuMghz7cyUK1fhO >>> >>> <https://0bin.net/paste/yjXiQF4-IO7HSRvE#xdrfRXGjGG0TOA6VYV0iy49IuOSUFuMghz7cyUK1fhO> >>> >>> Flow of the call: >>> >>> A (Originating client) -> B (Kamailio) -> C (Provider) >>> >>> 5.6.7.8: >>> A >>> 1.2.3.4: >>> B (Public IP, advertise) >>> 10.0.1.2: >>> B (Private IP) >>> 0400123123: >>> Phone number being dialed >>> siptrunk.provider.local: >>> C >>> >>> I don’t understand the dialog module well, however it appears the auth >>> header is created around line 456. >>> >>> The lines below that read as follows: >>> >>> DEBUG: {1 102 INVITE 504966da0d624fd85a04e68a62c945f5@5.6.7.8 >>> <mailto:504966da0d624fd85a04e68a62c945f5@5.6.7.8>:5060} dialog >>> [dlg_cseq.c:59]: dlg_cseq_prepare_msg(): prepare msg for cseq update >>> operations >>> DEBUG: {1 102 INVITE 504966da0d624fd85a04e68a62c945f5@5.6.7.8 >>> <mailto:504966da0d624fd85a04e68a62c945f5@5.6.7.8>:5060} dialog >>> [dlg_cseq.c:145]: dlg_cseq_update(): initiating cseq updates >>> DEBUG: {1 102 INVITE 504966da0d624fd85a04e68a62c945f5@5.6.7.8 >>> <mailto:504966da0d624fd85a04e68a62c945f5@5.6.7.8>:5060} dialog >>> [dlg_hash.c:778]: internal_get_dlg(): no dialog >>> callid='504966da0d624fd85a04e68a62c945f5@5.6.7.8 >>> <mailto:callid='504966da0d624fd85a04e68a62c945f5@5.6.7.8>:5060' found >>> DEBUG: {1 102 INVITE 504966da0d624fd85a04e68a62c945f5@5.6.7.8 >>> <mailto:504966da0d624fd85a04e68a62c945f5@5.6.7.8>:5060} dialog >>> [dlg_hash.c:813]: get_dlg(): no dialog >>> callid='504966da0d624fd85a04e68a62c945f5@5.6.7.8 >>> <mailto:callid='504966da0d624fd85a04e68a62c945f5@5.6.7.8>:5060' found >>> DEBUG: {1 102 INVITE 504966da0d624fd85a04e68a62c945f5@5.6.7.8 >>> <mailto:504966da0d624fd85a04e68a62c945f5@5.6.7.8>:5060} dialog >>> [dlg_handlers.c:1224]: dlg_lookup_msg_dialog(): dlg with callid >>> '504966da0d624fd85a04e68a62c945f5@5.6.7.8 >>> <mailto:504966da0d624fd85a04e68a62c945f5@5.6.7.8>:5060' not found >>> DEBUG: {1 102 INVITE 504966da0d624fd85a04e68a62c945f5@5.6.7.8 >>> <mailto:504966da0d624fd85a04e68a62c945f5@5.6.7.8>:5060} dialog >>> [dlg_cseq.c:151]: dlg_cseq_update(): no dialog for this request >>> >>> This reads to me like the dialog wasn’t tracked, and as it can’t find it, >>> it isn’t incrementing it. Is that correct? >>> >>> The first reference I can see to dialog is on line 135, which is quite >>> similar: >>> >>> DEBUG: {1 102 INVITE 504966da0d624fd85a04e68a62c945f5@5.6.7.8 >>> <mailto:504966da0d624fd85a04e68a62c945f5@5.6.7.8>:5060} dialog >>> [dlg_hash.c:778]: internal_get_dlg(): no dialog >>> callid='504966da0d624fd85a04e68a62c945f5@5.6.7.8 >>> <mailto:callid='504966da0d624fd85a04e68a62c945f5@5.6.7.8>:5060’ found >>> >>> This makes me thing that the dialog isn’t being created in the first place. >>> However I have the dlg_flag enabled in kamailio.cfg: >>> >>> >>> modparam("dialog", >>> "dlg_flag", 4) >>> >>> modparam("dialog", >>> "track_cseq_updates", 1) >>> >>> modparam("dialog", >>> "event_callback", "ksr_dialog_event") >>> >>> >>> >>> I’ve had a good read through the dialog module docs, and it appears setting >>> the dlg_flag should enable dialog creation during the initial request. Have >>> I missed setting something here? >>> >>> Thanks! >>> >>> Andrew >>> >>>> On 28 Apr 2019, at 10:29 am, Henning Westerholt <h...@skalatan.de >>>> <mailto:h...@skalatan.de>> wrote: >>>> >>>> Hello, >>>> >>>> why do you set the variable cseq_diff to 1? From the module README: >>>> >>>> "The CSeq difference is stored in $dlg_var(cseq_diff), be sure this >>>> variable is not overwritten via config operation." >>>> >>>> A suggestion would be to test this with DBG log level, so see if the >>>> dialog module is logging something related to the CSEQ update code path. >>>> There is some log output that should be visible. >>>> >>>> Cheers, >>>> >>>> Henning >>>> >>>> Am 27.04.19 um 18:27 schrieb Karsten Horsmann: >>>>> Hi, >>>>> >>>>> AFAIK the uac module don't support cseq autoupdate. >>>>> >>>>> CSeq is not increased automatically by uac_auth() during authentication - >>>>> the follow up request may be rejected. CSeq can be increased when >>>>> authenticating INVITE requests - dialog module has to be used, with CSeq >>>>> tracking feature enabled (see the readme of dialog module). >>>>> >>>>> Hmm are you sure that the dialog module is taking care of your second >>>>> INVITE? >>>>> >>>>> Kind regards >>>>> Karsten >>>>> >>>>> Andrew White <and...@uconnected.com.au <mailto:and...@uconnected.com.au>> >>>>> schrieb am Fr., 26. Apr. 2019, 19:15: >>>>> Hi all, >>>>> >>>>> I’m still building with app_ruby and loving it - for the most part! >>>>> >>>>> I’m having an issue with one of my providers responding with a 482 on >>>>> auth invite. Researching, it appears that my CSeq isn’t incrementing and >>>>> this is the reason for the issue. >>>>> >>>>> I already have the relevant flag set in my kamailio.cfg however: >>>>> >>>>> modparam("dialog", "track_cseq_updates", 1) >>>>> >>>>> During my uac_auth, I’ve tried manually setting the diff, as well as >>>>> running msg_iflag_reset (as suggested by Daniel - >>>>> https://github.com/kamailio/kamailio/issues/1359 >>>>> <https://github.com/kamailio/kamailio/issues/1359> - unfortunately the >>>>> function isn’t exported in KEMI): >>>>> >>>>> >>>>> if >>>>> KSR::UAC.uac_auth() >>>>> then >>>>> >>>>> KSR.info("UAC authed, relaying") >>>>> >>>>> #KSR::COREX.msg_iflag_reset("UAC_AUTH") >>>>> >>>>> KSR::PV.sets("$dlg_var(cseq_diff)", >>>>> "1") >>>>> >>>>> KSR.info("CSeq diff: >>>>> #{KSR::PV.gete("$dlg_var(cseq_diff)")}") >>>>> >>>>> KSR::TM.t_relay() >>>>> >>>>> >>>>> Unfortunately in both cases the actual CSeq doesn’t increment in the >>>>> second INVITE: >>>>> >>>>> INVITE 1 (unauthenticated): >>>>> > CSeq: 102 INVITE >>>>> >>>>> INVITE 2 (with Authorization header): >>>>> > CSeq: 102 INVITE >>>>> >>>>> I’m unsure if I’ve missed something silly around the track_cseq_updates >>>>> flag, or if app_ruby somehow isn’t interacting with the dialog module >>>>> when running uac_auth to trigger the increment? >>>>> >>>>> Thanks! >>>>> >>>>> Kind regards, >>>>> >>>>> Andrew >>>>> _______________________________________________ >>>>> Kamailio (SER) - Users Mailing List >>>>> sr-users@lists.kamailio.org <mailto:sr-users@lists.kamailio.org> >>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users >>>>> <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users> >>>>> >>>>> >>>>> _______________________________________________ >>>>> Kamailio (SER) - Users Mailing List >>>>> sr-users@lists.kamailio.org <mailto:sr-users@lists.kamailio.org> >>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users >>>>> <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users> >>>> -- >>>> Henning Westerholt - https://skalatan.de/blog/ <https://skalatan.de/blog/> >>>> Kamailio services - https://skalatan.de/services >>>> <https://skalatan.de/services> >> -- >> Henning Westerholt - https://skalatan.de/blog/ <https://skalatan.de/blog/> >> Kamailio services - https://skalatan.de/services >> <https://skalatan.de/services>
_______________________________________________ Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users