Hello,
this seems to be caused from 7c347e244cf761d0:
dialog.c: In function ‘ki_dlg_get_var’:
dialog.c:1552:51: error: ‘k’ undeclared (first use in this function)
1552 | val = ki_dlg_get_var_helper(msg, &sc, &sf, &st, &k);
| ^
dialog.c:1552:51: note: each undeclared identifier is reported only once for each function it appears in
dialog.c:1552:35: warning: passing argument 2 of ‘ki_dlg_get_var_helper’ from incompatible pointer type [-Wincompatible-pointer-types]
1552 | val = ki_dlg_get_var_helper(msg, &sc, &sf, &st, &k);
| ^~~
[..]
make[2]: *** [../../Makefile.rules:100: dialog.o] Error 1
Cheers,
Henning
From: Henning Westerholt <notifications(a)github.com>
Sent: Friday, May 20, 2022 6:42 PM
To: Kamailio Devel List <sr-dev(a)lists.sip-router.org>
Cc: Ci activity <ci_activity(a)noreply.github.com>
Subject: [kamailio/kamailio] Run failed: build - master (130ce1b)
[GitHub]
[kamailio/kamailio] build workflow run
[https://github.githubassets.com/images/email/icons/actions.png]
build: Some jobs were not successful
View workflow run<https://github.com/kamailio/kamailio/actions/runs/2359532599>
[build (bullseye, gcc)]
build / build (bullseye, gcc)
Failed in 2 minutes and 29 seconds
[annotations for build / build (bullseye, gcc)]11 <https://github.com/kamailio/kamailio/actions/runs/2359532599>
[build (bullseye, clang)]
build / build (bullseye, clang)
Cancelled
[annotations for build / build (bullseye, clang)]2 <https://github.com/kamailio/kamailio/actions/runs/2359532599>
[build (sid, gcc)]
build / build (sid, gcc)
Failed in 2 minutes and 35 seconds
[annotations for build / build (sid, gcc)]13 <https://github.com/kamailio/kamailio/actions/runs/2359532599>
[build (sid, clang)]
build / build (sid, clang)
Cancelled
[annotations for build / build (sid, clang)]2 <https://github.com/kamailio/kamailio/actions/runs/2359532599>
—
You are receiving this because this workflow ran on your branch.
Manage your GitHub Actions notifications<https://github.com/settings/notifications>
GitHub, Inc. ・88 Colin P Kelly Jr Street ・San Francisco, CA 94107
Module: kamailio
Branch: master
Commit: 3efc0c1093ed3c9b5a11e40e4ccc65c93f4627a4
URL: https://github.com/kamailio/kamailio/commit/3efc0c1093ed3c9b5a11e40e4ccc65c…
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Committer: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: 2022-05-20T13:31:17+02:00
modules: readme files regenerated - registrar ... [skip ci]
---
Modified: src/modules/registrar/README
---
Diff: https://github.com/kamailio/kamailio/commit/3efc0c1093ed3c9b5a11e40e4ccc65c…
Patch: https://github.com/kamailio/kamailio/commit/3efc0c1093ed3c9b5a11e40e4ccc65c…
---
diff --git a/src/modules/registrar/README b/src/modules/registrar/README
index 22483876ad..bf0a663710 100644
--- a/src/modules/registrar/README
+++ b/src/modules/registrar/README
@@ -96,6 +96,7 @@ Bogdan-Andre Iancu
4.9. reg_fetch_contacts(domain, uri, profile)
4.10. reg_free_contacts(profile)
4.11. reg_send_reply()
+ 4.12. reg_from_user(ultable, uri, mode)
5. Event Routes
@@ -162,8 +163,9 @@ Bogdan-Andre Iancu
1.43. reg_fetch_contacts usage
1.44. reg_free_contacts usage
1.45. reg_send_reply usage
- 1.46. event_route[usrloc:contact-expired] usage
- 1.47. $ulc(name) usage
+ 1.46. reg_from_user usage
+ 1.47. event_route[usrloc:contact-expired] usage
+ 1.48. $ulc(name) usage
Chapter 1. Admin Guide
@@ -230,6 +232,7 @@ Chapter 1. Admin Guide
4.9. reg_fetch_contacts(domain, uri, profile)
4.10. reg_free_contacts(profile)
4.11. reg_send_reply()
+ 4.12. reg_from_user(ultable, uri, mode)
5. Event Routes
@@ -991,6 +994,7 @@ kamcmd cfg.set_now_int registrar use_expired_contacts 0
4.9. reg_fetch_contacts(domain, uri, profile)
4.10. reg_free_contacts(profile)
4.11. reg_send_reply()
+ 4.12. reg_from_user(ultable, uri, mode)
4.1. save(domain, [, flags [, uri]])
@@ -1293,6 +1297,30 @@ save("location", "0x2");
reg_send_reply();
...
+4.12. reg_from_user(ultable, uri, mode)
+
+ The function returns true if the SIP message comes from the user
+ identified by 'uri' parameter by matching the associated location
+ records. The matching is done with the field 'received' if it is set,
+ otherwise with the contact address.
+
+ Meaning of the parameters is as follows:
+ * ultable - user location table (e.g., 'location')
+ * uri - SIP URI to identify the location records to match against.
+ * mode - matching mode (int) - host part (IP address) is matched
+ always. If mode has bit 1 set (value 1), then the port is matched
+ as well. If mode has bit 2 set (value 2), then the protocol is
+ matched as well.
+
+ This function can be used from ANY_ROUTE.
+
+ Example 1.46. reg_from_user usage
+...
+if(reg_from_user("location", "sip:alice@server.com", "0")) {
+ # message coming from where 'alice' sent before a REGISTER request
+}
+...
+
5. Event Routes
5.1. event_route[usrloc:contact-expired]
@@ -1302,7 +1330,7 @@ reg_send_reply();
Executed when a contact in location table has expired. The variable
$ulc(exp=>...) is filled with the attributes of the expired contact.
- Example 1.46. event_route[usrloc:contact-expired] usage
+ Example 1.47. event_route[usrloc:contact-expired] usage
...
event_route[usrloc:contact-expired] {
xlog("expired contact for $ulc(exp=>aor)\n");
@@ -1376,7 +1404,7 @@ event_route[usrloc:contact-expired] {
The pseudo-variable accepts positive index value to access a specific
contact record.
- Example 1.47. $ulc(name) usage
+ Example 1.48. $ulc(name) usage
...
if(reg_fetch_contacts("location", "$fu", "caller"))
{
Module: kamailio
Branch: master
Commit: f0bf4cebef916887cd5196dce0521d4784904ab8
URL: https://github.com/kamailio/kamailio/commit/f0bf4cebef916887cd5196dce0521d4…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2022-05-20T13:26:00+02:00
registrar: docs for reg_from_user() function
---
Modified: src/modules/registrar/doc/registrar_admin.xml
---
Diff: https://github.com/kamailio/kamailio/commit/f0bf4cebef916887cd5196dce0521d4…
Patch: https://github.com/kamailio/kamailio/commit/f0bf4cebef916887cd5196dce0521d4…
---
diff --git a/src/modules/registrar/doc/registrar_admin.xml b/src/modules/registrar/doc/registrar_admin.xml
index d8a3c88b57..c402ab4b20 100644
--- a/src/modules/registrar/doc/registrar_admin.xml
+++ b/src/modules/registrar/doc/registrar_admin.xml
@@ -1813,6 +1813,52 @@ save("location", "0x2");
...
reg_send_reply();
...
+</programlisting>
+ </example>
+ </section>
+ <section id="registrar.f.reg_from_user">
+ <title>
+ <function moreinfo="none">reg_from_user(ultable, uri, mode)</function>
+ </title>
+ <para>
+ The function returns true if the SIP message comes from the user
+ identified by 'uri' parameter by matching the associated location
+ records. The matching is done with the field 'received' if it is set,
+ otherwise with the contact address.
+ </para>
+ <para>Meaning of the parameters is as follows:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>ultable</emphasis> - user location table (e.g., 'location')
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>uri</emphasis> - SIP URI to identify the location records
+ to match against.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>mode</emphasis> - matching mode (int) - host part (IP address)
+ is matched always. If mode has bit 1 set (value 1), then the port is
+ matched as well. If mode has bit 2 set (value 2), then the protocol
+ is matched as well.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ This function can be used from ANY_ROUTE.
+ </para>
+ <example>
+ <title><function>reg_from_user</function> usage</title>
+ <programlisting format="linespecific">
+...
+if(reg_from_user("location", "sip:alice@server.com", "0")) {
+ # message coming from where 'alice' sent before a REGISTER request
+}
+...
</programlisting>
</example>
</section>
It seems that TOPOS is not working properly on RE-INVITE and stop masking IP and contact on some RE-INVITE.
When a RE-INVITE is send with Kamailio IP as Request-URI TOPOS is not operating.
Note : we are using the HTABLE trick to rewrite $ru and match the call but we would need to have TOPOS re-evaluating the dialog once done.
We use a standard configuration with 2 modifications.
1) in route[DISPATCH] to set the HTABLE
if(is_method("INVITE")) {
$sht(ct=>$ci::$ft) = $sel(contact.uri);
}
2) in route[WITHINDLG] to find the call if R-URI = myself
if(has_totag() && uri==myself) {
if($sht(ct=>$ci::$ft) != $null && $T_reply_code > 400) $shtex(ct=>$ci::$ft) = 10 ;
if($sht(ct=>$ci::$tt) != $null) {
$ru = $sht(ct=>$ci::$tt);
if (is_method("BYE")) $shtex(ct=>$ci::$tt) = 10 ;
route(RELAY);
}
}
As you can see in the PCAP the RE-INVITE goes directly to calling stating with the Contact not updated and the 200 OK is also sent to called party with wrong Contact info too.
[topos-issue.zip](https://github.com/kamailio/kamailio/files/8730489/topos-i…
This behavior breaks the BYE procedure.
Any advice ?
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3118
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3118(a)github.com>