Re: Issue adding SIP Trunk UAC Auth
Richard Robson via sr-users <[email protected]>
| Newsgroups | gmane.comp.voip.ser |
|---|---|
| Message-ID | <[email protected]> |
Hi,
what repay_route are you using? in your TOPSTN route you set the
failure_route, but no reply_route.
Regards,
Richard
On 16/01/2026 22:46, Mark Boyce via sr-users wrote:
> Hi All
>
> Wondering if anyone here has any thoughts on this issue, before I
> start trying to reverse engineer the config and randomly update things
> on this server.
>
> It’s a little out of date but not the worst I’ve seen :-)
>
> Kamailio 5.5.4
> Ubuntu 22.04 LTS
>
> Arrangement is the typical users phones & ITSP Carrier out in the real
> world, Asterisk on a private network with Kamailio in the middle. The
> config is broken up in to a mass of include files so not simple to
> include I’m afraid.
>
> Issue is -> I’ve been asked to add SIP Auth to the ITSP Trunk as they
> no longer have IP Auth. As it arrived I can see the ITSP Auth being
> relayed through to the asterisk server rather than being caught at the
> Kamailio level. I’ve tried to walk through the config and logs but
> can’t see anything obviously failing or missing.
>
>
> If I add the code below based on the default config and config from
> this page, ITSP Auth request is answered by Kamailio, but nothing from
> the ITSP gets sent to Asterisk.
> https://github.com/kamailio-asterisk/Kamailio-Example/blob/main/Kamailio%20Bytes%20-%20UAC%20INVITE%20Authentication
>
> *request_route {*
> (whole load of security defence stuff)
> # per request initial checks
> route(REQINIT);
>
> # NAT detection
> route(NATDETECT);
>
> route(KEEPALIVE);
>
> # CANCEL processing
> xlog("L_ALERT","FLOWTRACE: Checking for CANCEL ([$rm]From
> IP:$si:$sp)\n");
> if (is_method("CANCEL")) {
> if (t_check_trans()) {
> route(RELAY);
> }
> exit;
> }
>
> # handle retransmissions
> if (!is_method("ACK")) {
> if(t_precheck_trans()) {
> t_check_trans();
> exit;
> }
> t_check_trans();
> }
>
> # handle requests within SIP dialogs
> route(WITHINDLG);
>
> ### only initial requests (no To tag)
>
> # authentication
> route(AUTH);
>
> # Create dialog and record user / ip / etc in dlg_vars
> # if !is_known_dlg()
> route(MANAGE_DIALOG);
>
> # record routing for dialog forming requests (in case they are routed)
> # - remove preloaded route headers
> remove_hf("Route");
> if (is_method("INVITE|SUBSCRIBE|REFER")) {
> record_route();
> }
>
> # account only INVITEs
> if (is_method("INVITE")) {
> route(ACCOUNTING);
> }
>
> ### requests for my local domains
>
> # handle presence related requests
> route(PRESENCE);
>
>
> # handle registrations
> route(REGISTRAR);
>
> ### requests for my local domains
>
> if ($rU==$null) {
> # request with no Username in RURI
> sl_send_reply("484","Address Incomplete");
> exit;
> }
>
> # dispatch invite to subscriber, PSTN or PBX
> route(ROUTE_INVITE);
> }
>
>
> # Decide who to send the Invite out to
> *route[ROUTE_INVITE]{*
> # We only care about INVITES
> if(!is_method("INVITE")) return;
>
> (source type and destination type identified)
>
> # now route to destination
> switch ($dlg_var(destination_type)) {
> case "trunk":
> route(TOPSTN);
> break;
> exit;
>
> }
>
>
> # PSTN GW
> *route[TOPSTN]{*
> # check if PSTN GW IP is defined
> if (strempty($sel(cfg_get.pstn.gw_ip))) {
> xlog("SCRIPT: PSTN routing enabled but pstn.gw_ip not
> defined\n");
> return;
> }
>
> # normalize target number for pstn gateway
> # - convert leading 00 to +
> if (starts_with("$rU", "00")) {
> strip(2);
> prefix("+");
> }
>
> if (strempty($sel(cfg_get.pstn.gw_port))) {
> $ru ="sip:" + $rU + "@" + $sel(cfg_get.pstn.gw_ip);
> } else {
> $ru ="sip:" + $rU + "@" + $sel(cfg_get.pstn.gw_ip) +
> ":" + $sel(cfg_get.pstn.gw_port);
> }
> t_on_failure("TRUNKAUTH");
> t_relay();
> exit;
> }
>
>
>
> *failure_route[TRUNKAUTH]{*
> # Catch if already cancelled
> if (t_is_canceled()) {
> exit;
> }
> if(t_check_status("401|407")) {
> xlog("L_INFO", "TRUNKAUTH: responding to 401/407\n");
> $avp(auser) =“USERNAME";
> $avp(apass) =“PASSWORD";
> uac_auth();
> t_relay();
> exit;
> }
> }
>
>
>
> What have I missed :-?
> Thanks
> Mark
> --
> Mark Boyce
>
> This message contains confidential information. If you received this
> email by mistake, please let us know and delete it. We ask you to
> respect any confidential or private information in the email and do
> not share it unless appropriate to do so. We take precautions to
> minimise risk but we cannot guarantee the safety, confidentiality and
> security of the internet. Please carry out your own virus checks on
> any attachments. We are not liable or bound by the content of this email.
>
> Dark Origins Limited is a limited company registered in England and
> Wales. Registered number: 04877988.
>
>
> __________________________________________________________
> Kamailio - Users Mailing List - Non Commercial Discussions [email protected]
> To unsubscribe send an email [email protected]
> Important: keep the mailing list in the recipients, do not reply only to the sender!
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions -- [email protected]
To unsubscribe send an email to [email protected]
Important: keep the mailing list in the recipients, do not reply only to the sender!