Hello!
In the configuration below Kamailio Proxy creates a transaction for the SIP
PUBLISH to get info from the HTTP server in async mode.
But before creating a transaction, a synthetic 200 OK is sent, so that I
need somehow to drop the real 200 OK from the upstream Presence Server.
If drop 200 OK in *reply_route*, tm module starts to retransmit.
Those it is necessary that the 200 OK be consumed by the tm module, but
does not go further.
*if ( !is_method("PUBLISH") ) {*
* …
[View More]sl_send_reply("200", "Ok"); t_newtran();*
* $http_req(suspend) = 1; http_async_query("$var(url)",
"CALLBACK");*
*}*
*route[CALLBACK] {*
* <some header manipulation>*
* t_on_reply("PUBLISH_REPLY"); route(RELAY); exit;*
*}*
*onreply_route[PUBLISH_REPLY] { if ( t_check_status("200") ) {
drop; # Does not work!!! }}*
Any advice is appreciated
--
BR,
Denys Pozniak
[View Less]
Hello,
I had some questions regarding the Kamailio config file.
I am trying to make Kamailio just behave as a sip proxy between two sip trunks. Could you send me an example for this possibly?
Hi,
If topos is activated and kamailio responds with a 407 "proxy
authentication required" to an initial INVITE, INVITE received after with
credentials (MD5 response in Proxy-Authorization header) is badly managed.
Credentials are never validated and Kamailio responds 407 again. If topoh
is used instead topos all works fine and credentials are validated.
call flow is:
Phone sends INVITE to kamailio SBC
kamailio respond 407 "proxy authentication required" because SBC wants to
authenticate …
[View More]caller
Phone resends INVITE with Proxy-Authorization header with all valid
information
kamailio responds 407 again instead forwarding INVITE.
My code:
if (!pv_auth_check("$fd", "$sht(auth_cache=>$var(key))", "0", "1")) {
auth_challenge("$fd", “1”);
exit;
}
# user authenticated - remove auth header
consume_credentials();
So if topos is used, pv_auth_check always returns false even if the phone
sets valid information.
If topoh is activated, pv_auth_check always returns true (same phone and
same kamailio SBC versioning)
I made my tests with kamailio 5.4.3 on centos 7.
Regards,
Frédéric Gaisnon
[View Less]
Hi
I m using kamailio 5.3
OS Ubuntu 18
I wan to Register on sip server and then send traffic to to it form
kamailio.
Like :
Client ---(sip peer)-->kamailio------(sip peer)---->gateway
Please help me
Thank you
Regards
Gaurav Kumar
Hi List,
I have some weird multipart/mixed;boundary issues.
I use kamailio 5.3.6 with rtpengine 7.x.x (same with 8.x.x).
If i try to remove a multipart/mixed and leave only the sdp with
filter_body() that works except one thing.
The sender used IMHO an non RFC compliant version of rfc5621 and wrote the
Content-Length Header twice (one in the header, one in the sdp).
After manipulating the SDP filter_body() lets Content-Length in the sdp (i
guess).
And rtpengine is not happy with the sdp …
[View More]after that.
rtpengine [rtpengine.c:2588]: rtpp_function_call(): proxy replied with
error: Failed to parse SDP
Any ideas how to solve this?
Kind regards
Karsten Horsmann
https://tools.ietf.org/html/rfc5621#section-3.1
route[REMOVE_MULTIPART] {
if (has_body("multipart/mixed")) {
if ($sel(cfg_get.remove.multipart) == 1) {
if (filter_body("application/sdp")) {
remove_hf("Content-Type");
append_hf("Content-Type:
application/sdp\r\n");
msg_apply_changes();
xlog("L_WARN", "[$cfg(route)] Body part
multipart/mixed with application/sdp found\n");
} else {
xlog("L_ERROR", "[$cfg(route)] Body part
multipart/mixed without application/sdp found\n");
}
} else {
xlog("L_INFO", "[$cfg(route)] Body part
multipart/mixed found - manipulation disabled\n");
}
}
}
-------------------
INVITE sip:+49XXXXXXXX@172.20.120.57:5060 SIP/2.0
Via: SIP/2.0/UDP 172.20.120.51:5061;branch=z9hG4bK-6589-1-0
From: sipp <sip:sipp@172.20.120.51:5061>;tag=6589SIPpTag001
To: sut <sip:+49XXXXXXXXX@172.20.120.57:5060>
Call-ID: 1-6589(a)172.20.120.51
CSeq: 1 INVITE
Contact: sip:sipp@172.20.120.51:5061
Max-Forwards: 70
Subject: Performance Test
Content-Type: multipart/mixed;boundary=sonus-content-delim
Content-Length: 1185
--sonus-content-delim
Content-Type: application/sdp
Content-Length: 305
v=0
o=Sonus_UAC 895311 862130 IN IP4 8.8.8.8
s=SIP Media Capabilities
c=IN IP4 8.8.8.8
t=0 0
m=audio 26088 RTP/AVP 8 0 18 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:18 annexb=no
a=fmtp:101 0-15
a=sendrecv
a=rtcp:26089
a=ptime:20
--sonus-content-delim
Content-Type: application/pidf+xml
<?xml version="1.0" encoding="UTF-8"?><presence
xmlns="urn:ietf:params:xml:ns:pidf"
xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10"
xmlns:cl="urn:ietf:params:xml:ns:pidf:geopriv10:civicLoc"
mlns:btd="http://btd.orange-business.com" entity="
pres:geotarget@btip.orange-business.com"><tuple
id="XXXX"><status><gp:geopriv><gp:location-info><cl:civicAddress><cl:country>DE</cl:countr
<cl:A1>Some
State</cl:A1><cl:A3>Somewhere</cl:A3><cl:A4>Somewhere</cl:A4><cl:A6>Somestreet</cl:A6><cl:YYY>1</cl:YYY><cl:PC>9999</cl:PC><cl:EMERGENCYZONE>XXXXXXX</cl:EMERG
CYZONE></cl:civicAddress></gp:location-info><gp:usage-rules></gp:usage-rules></gp:geopriv></status></tuple></presence>
--sonus-content-delim--
---------------------
INVITE sip:+49XXXXXXXX@foo SIP/2.0
Via: SIP/2.0/TCP
212.XX.XX.XX;branch=z9hG4bKc228.6b8fdf20d79998d1d355feb2dcf5ba63.0
From: sipp <sip:sipp@foo>;tag=6589SIPpTag001
To: sut <sip:+49XXXXXXXX@foo>
Call-ID: 1-6589(a)172.20.120.51
CSeq: 1 INVITE
Max-Forwards: 69
Content-Length: 347
Content-Type: application/sdp
P-Asserted-Identity: <sip:+49XXXXXXXX@212.XX.XX.XX>
Contact: <sip:btpsh-60211bbe-674b-1@212.XX.XX.XX;transport=tcp>
Content-Length: 305
v=0
o=Sonus_UAC 895311 862130 IN IP4 8.8.8.8
s=SIP Media Capabilities
c=IN IP4 8.8.8.8
t=0 0
m=audio 26088 RTP/AVP 8 0 18 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:18 annexb=no
a=fmtp:101 0-15
a=sendrecv
a=rtcp:26089
a=ptime:20
--
Mit freundlichen Grüßen
*Karsten Horsmann*
[View Less]
Hello,
UAC sends INVITE to UAS, authorization procedure is required, therefore UAS
responds with an 407 error code. At this point, the client does not respond
with ACK, but the server does not send retransmits.
Is this the expected behavior?
* UAC -- SIPp, UAS -- Kamailio.
Can the Kamailio be configured to send 407 code retransmissions?
Thanks!
Hi,
Call to a number forwarded to a FAX by using two Kamailio proxies.
(INVITE) --> KamailioA --> GW1 --> KamailioB --> GW2 --> FAX
FAX --> (RE-INVITE) --> GW2 --> KamailioB --> (TO Header being corrupted)
KamailioB is corrupting TO header when receiving RE-INVITE and causing the call to fail.
1) Only one "uac_replace_from()" is being used in each Kamailio.
2) GW1 is adding +1 (using E164 format) to URI and FROM headers.
I was wondering if any of the above might …
[View More]cause the TO header corruption.
Any help would be appreciated.
AL
[View Less]
Hi
I have setup dispatcher failover on Kamailio 5.1 as below. If destination X.X.X.X is down, traffic should be routed to Y.Y.Y.Y.
The failover is working but every time after 30 sec Timeout. Is there a way to setup health check properly so the failed destination can be ignored while it is down?
Your help is greatly appreciated,
AL
# dispatcher.list
1 sip:X.X.X.X:5060 0 0
1 sip:Y.Y.Y.Y:5060 0 0
# ----- dispatcher params -----
modparam("dispatcher", "list_file", "/usr/local/etc/kamailio/…
[View More]dispatcher.list")
modparam("dispatcher", "flags", 2)
modparam("dispatcher", "ds_ping_interval", 10)
modparam("dispatcher", "dst_avp", "$avp(AVP_DST)")
modparam("dispatcher", "grp_avp", "$avp(AVP_GRP)")
modparam("dispatcher", "cnt_avp", "$avp(AVP_CNT)")
modparam("dispatcher", "sock_avp", "$avp(AVP_SOCK)")
modparam("dispatcher", "ds_probing_mode", 1)
modparam("dispatcher", "ds_inactive_threshold", 4)
modparam("dispatcher", "ds_ping_latency_stats", 1)
modparam("dispatcher", "ds_probing_threshold", 1)
# Dispatch requests
route[DISPATCH] {
if(!ds_select_dst("1", "4")) {
send_reply("503", "No destination");
exit;
}
t_on_failure("DISPATCH_FAILOVER");
route(RELAY);
exit;
}
# Failure Route
failure_route[DISPATCH_FAILOVER]{
if (t_is_canceled()) exit;
if(!ds_next_dst()) {
send_reply("503", "Out of gateways");
exit;
}
t_on_failure("DISPATCHER_FAILOVER");
t_relay();
}
[View Less]
Hi,
I was wondering what is the recommended approach to implement a failover on several destination SIP servers:
1) using DNS SRV records
2) using dispatcher list
3) combination of both.
Thanks,
AL
Hello Members,
Kamailio acc module is not inserting cdr into MySQL DB, sometimes it works
and sometimes didn't, the number of parameters/values are similar in failed
as well success scenario. I also check with tcpdump for MySQL requests,
unfortunately, Kamailio didn't issue insert query toward DB server, so it
is clear to me that the MySQL server is nothing to do with failed queries.
Please guide me on what I should do to find and fix the issue.
Kamailio Installed version :
kamailio -v
…
[View More]version: kamailio 5.4.1 (x86_64/linux) 2ca223
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE,
USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC,
TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT,
USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST,
HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024,
BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 2ca223
compiled on 12:51:24 Sep 21 2020 with gcc 6.3.0
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_logic.c:691]: tmcb_func(): acc callback called for t(0x7fe29b2a7870)
event type 512, reply code 200
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_logic.c:413]: should_acc_reply(): probing acc state - code: 200 flags:
0x6
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_logic.c:446]: should_acc_reply(): acc is on
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 0
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 1
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 2
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 4
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 5
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 6
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 7
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 8
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 9
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 10
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 11
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 12
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 13
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 16
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 17
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 19
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 20
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 22
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 26
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 28
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 29
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 32
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 6, index i 33
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: tm
[t_hooks.c:256]: run_trans_callbacks_internal(): DBG: trans=0x7fe29b2a7870,
callback type 512, id 0 entered
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 0
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 1
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 2
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 3
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 4
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 5
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 8
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 9
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 11
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 12
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 14
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 18
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 20
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 21
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 24
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 25
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: ERROR: acc
[acc_cdr.c:267]: db_write_cdr(): failed to insert into database
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 0
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 1
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 2
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 3
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 4
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 5
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 8
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 9
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 11
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 12
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 14
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 18
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 20
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 21
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 24
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: acc
[acc_extra.h:63]: free_strar_mem(): Freeing memory, type is 2,
message_index 3, index i 25
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: ERROR: acc
[acc_cdr.c:682]: cdr_on_end_confirmed(): failed to write cdr!
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103637]: DEBUG: tm
[t_reply.c:1758]: cleanup_uac_timers(): RETR/FR timers reset
Jan 28 13:38:29 /root/mykamailio/sbin/kamailio[103682]: DEBUG: tm
[timer.c:634]: wait_handler(): finished transaction: 0x7fe29727ba88
(p:0x7fe294d27288/n:0x7fe294d27288)
--
Regards
M Arqum
[View Less]
Hi there!
Go ahead I apologize for my English.
I have a Kamailio 5.4 with the DISPATCHER module and UAC enabled (for
remote REGISTER), the DISPATCHER has several SETIDs, and they have one
or more Asterisk balanced behind it.
In Kamalio script, when an endpoint does REGISTER, I enable the REGISTER
of the UAC module. And when it expires or expires=0 I disable the
REGISTER in the UAC module.
In the UACREG table in the database, L_UUID (unique key), L_USERNAME,
R_USERNAME, and …
[View More]AUTH_USERNAME have the same value. For example CST100EXT100.
Knowing that the DISPATCHER and UAC modules have no relationship, but
that when a SETID has several balanced Asterisks, how can I make the UAC
module send the REGISTER to all the Asterisks of a SETID?
Clarifications;
1.- I cannot update the Asterisk, which are currently in version 11.
They do not support PATH.
2.- I can modify the content of the UACREG table so that l_uuid has a
suffix '_X'.
3.- Call jsonrpc_exec several times to enable the REGISTER in the UAC
module.
(diff emulated)
< jsonrpc_exec ('{"id": 1, "jsonrpc": "2.0", "method": "uac.reg_enable",
"params": ["l_uuid", "s: $ au"]}') ;
> jsonrpc_exec ('{"id": 1, "jsonrpc": "2.0", "method":
"uac.reg_enable", "params": ["l_uuid", "s: $ au_1"]}') ;
> jsonrpc_exec ('{"id": 1, "jsonrpc": "2.0", "method":
"uac.reg_enable", "params": ["l_uuid", "s: $ au_2"]}') ;
> jsonrpc_exec ('{"id": 1, "jsonrpc": "2.0", "method":
"uac.reg_enable", "params": ["l_uuid", "s: $ au_3"]}') ;
But I want to know if there is any more elegant way to do this.
Cheers, JV
--
Logo <http://www.voiper.es/>
Javier Valencia | CTO
Centro de Negocios Martín Buendía
Camino de las Cañadas, nº 1C, Portal 1, 2ºG
29649 Mijas (Málaga)
# 951562080 (T) <tel:951562080> | 687486759 (M) <tel:687486759>
# www.voiper.es <http://www.voiper.es/>
------------------------------------------------------------------------
AVISO LEGAL
-----------
Este mensaje contiene información confidencial destinada para ser leída
exclusivamente por el destinatario. Queda prohibida la reproducción,
publicación, divulgación, total o parcial del mensaje así como el uso no
autorizados por el emisor. En caso de recibir el mensaje por error, se ruega
su comunicación al remitente lo antes posible. Por favor, indique
inmediatamente si usted o su empresa no aceptan comunicaciones de este tipo
por Internet.
Las opiniones, conclusiones y demás información incluida en este mensaje que
no esté relacionada con asuntos profesionales de SMART RECARGAS, S.L, se
entenderá que nunca se ha dado, ni está respaldado por el mismo.
Responsable del Tratamiento de Datos
------------------------------------
SMART RECARGAS , SL
Camino de las Cañadas, 1C PORTAL 1 2º G
29651 MIJAS COSTA (MALAGA)
[View Less]
Is it possible to send arbitrary text messages triggered by an external
application (evapi/http) to registered SIP clients via websocket?
The following doesn't seem to do anything.
KSR.corex.send_data("sip:user@example.com", "Message at $Ts");
--
--
This message contains confidential information and is intended only for the
individual named. If you are not the named addressee, you should not
disseminate, distribute or copy this email. Please notify the sender
immediately by email if you …
[View More]have received this email by mistake and delete
this email from your system. Email transmission cannot be guaranteed to be
secure or error-free, as information could be intercepted, corrupted, lost,
destroyed, arrive late or incomplete, or contain viruses. The sender,
therefore, does not accept liability for any errors or omissions in the
contents of this message which arise as a result of email transmission. If
verification is required, please request a hard-copy version.
[View Less]
Hi there,
I was wondering if there's a way to log various core error events in some
DB.
For example, below error occurred
Jan 29 11:43:56 kamailio[11076]: {1 11440 INVITE
28b653bd-8f62-4085-a5ef-f2a4ac0f393d } ERROR: <core>
[core/parser/sdp/sdp_helpr_funcs.c:499]: extract_mediaip(): no `IP[4|6]'
address in `c=' field
Jan 29 11:43:56 kamailio[11076]: {1 11440 INVITE
28b653bd-8f62-4085-a5ef-f2a4ac0f393d } ERROR: <core>
[core/parser/sdp/sdp.c:430]: parse_sdp_session(): can't …
[View More]extract common
media IP from the message
Thanks in advance. Regards,
--Sergiu
[View Less]
Hello community,
Please your support, I tell you that I am integrating Kamailio with
MsTeams, after some time reviewing this, I finally achieved the connection
from my Kamailio server to MsTeams and I can validate that the connection
to MsTeams is in AP.
[root @ kamailio-server kamailio] # kamcmd dispatcher.list | egrep "URI |
FLAGS"
URI: sip: sip.pstnhub.microsoft.com;
transport = tls
FLAGS: AP
However, from the …
[View More]admin panel of MsTeams (Direct Routing) I see that the
connection to my sbc "sbc.netvoiceperu.com" is with TLS connectivity status
in "Active" but the SIP options status is in "Warning".
I have made calls from MsTeams thinking that the SIP options status would
change to "active" but it is still in "Warning" state. On the other hand, I
have enabled a siptrace in Kamailio and verify that the SIP OPTIONS from
kamailio are being sent in the following format to MsTeams.
OPTIONS sip: sip.pstnhub.microsoft.com; transport = tls SIP / 2.0
Via: SIP / 2.0 / TLS 161.35.44.66:5061
;branch=z9hG4bKea07.52224687000000000000000000000000.0
To: <sip: sip.pstnhub.microsoft.com; transport = tls>
From: <sip: sbc.netvoiceperu.com>; tag =
d3569c818b500aeb8c373426e76c2884-81763c71
CSeq: 10 OPTIONS
Call-ID: 13ea237a751e0c48-9148(a)161.35.44.66
Max-Forwards: 70
Content-Length: 0
User-Agent: kamailio (5.4.0 (x86_64 / linux))
As you can see, the SIP OPTIONS sent from Kamailio to MsTeams does not
contain the "Contact" field, which in theory said "Contact" field should
have been added by Kamailio according to the configuration added in
kamailio.cfg
event_route [tm: local-request] {
sip_trace ();
if (is_method ("OPTIONS") && $ ru = ~ "pstnhub.microsoft.com") {
append_hf ("Contact: <sip: sbc.netvoiceperu.com: 5061;
transport = tls> \ r \ n");
}
xlog ("L_INFO", "Sent out tm request: $ mb \ n");
}
As additional information, I inform you that I also managed to observe the
SIP OPTIONS that MsTeams sends to Kamailio.
OPTIONS sip: sbc.netvoiceperu.com: 5061; transport = tls SIP / 2.0
FROM: <sip: sip-du-a-eu.pstnhub.microsoft.com: 5061>; tag =
f1bdeb5f-662f-4544-a436-e9aa9ad78da4
TO: <sip: sbc.netvoiceperu.com>
CSEQ: 1 OPTIONS
CALL-ID: c47e2782-16c3-49cb-8931-24e9709d260a
MAX-FORWARDS: 70
VIA: SIP / 2.0 / TLS 52.114.75.24:5061;branch=z9hG4bK48b0e6be
CONTACT: <sip: sip-du-a-eu.pstnhub.microsoft.com: 5061>
CONTENT-LENGTH: 0
USER-AGENT: Microsoft.PSTNHub.SIPProxy v.2021.1.15.7 i.EUWE.10
ALLOW: INVITE, ACK, OPTIONS, CANCEL, BYE, NOTIFY
However I don't see the 200 OK SIP responses from Kamailio to MsTeams.
I think this may be the reason why I see the SIP OPTIONS status in
"Warning" from the MsTeams panel. Maybe the contact field is not being
added in the SIP OPTIONS messages that Kamailio sends to MsTeams and for
that reason I don't see 200OK responses from MsTeams.
Could you help me solve this please.
Cheers
Saludos Cordiales
--
*Willy Valles Rios*
*Unified Communications Specialist*
phone: +51955747343
em@il: willyvalles17(a)gmail.com
[View Less]
Hello,
I am trying to configure Kamailio as both an inbound and outbound proxy. Inbound requests flow Sip Trunk -> Kamailio -> Asterisk. Outbound requests flow Asterisk -> Kamailio -> Sip Trunk. Inbound traffic is sent to port 5060 on kamailio which listens on the PRIVATE_IP:5060 and advertises PUBLIC_IP:5060. How can we ensure that when messages are sent to the Sip Trunk they have Record-Route headers with the PUBLIC_IP and when messages are sent to asterisk they have Record-…
[View More]Route headers with the PRIVATE_IP?
[View Less]
Hello,
I got some time Ack packets looping on my servers during 4 hours if I don’t restart the system ( 4 hours is my dialog timeout).
Jan 27 16:59:02 vma-2 kamailio[4544]: WARNING: { 1 # SDvl91b03-576e9e12b1569f0361fceb3625955037-agvh8j0020 * } dialog [dlg_handlers.c:1322]: dlg_onroute(): unable to find dialog for ACK with route param 'dc2.f24' [717:1071] and call-id 'SDvl91b03-576e9e12b1569f0361fceb3625955037-agvh8j0020'
Jan 27 16:59:02 vma-2 kamailio[4545]: WARNING: { 1 # SDvl91b03-…
[View More]576e9e12b1569f0361fceb3625955037-agvh8j0020 * } dialog [dlg_handlers.c:1322]: dlg_onroute(): unable to find dialog for ACK with route param 'dc2.f24' [717:1071] and call-id 'SDvl91b03-576e9e12b1569f0361fceb3625955037-agvh8j0020'
Jan 27 16:59:02 vma-2 kamailio[4545]: WARNING: { 1 # SDvl91b03-576e9e12b1569f0361fceb3625955037-agvh8j0020 * } dialog [dlg_handlers.c:1322]: dlg_onroute(): unable to find dialog for ACK with route param 'dc2.f24' [717:1071] and call-id 'SDvl91b03-576e9e12b1569f0361fceb3625955037-agvh8j0020'
Jan 27 16:59:02 vma-2 kamailio[4544]: WARNING: { 1 # SDvl91b03-576e9e12b1569f0361fceb3625955037-agvh8j0020 * } dialog [dlg_handlers.c:1322]: dlg_onroute(): unable to find dialog for ACK with route param 'dc2.f24' [717:1071] and call-id 'SDvl91b03-576e9e12b1569f0361fceb3625955037-agvh8j0020'
Jan 27 16:59:02 vma-2 kamailio[4545]: WARNING: { 1 # SDvl91b03-576e9e12b1569f0361fceb3625955037-agvh8j0020 * } dialog [dlg_handlers.c:1322]: dlg_onroute(): unable to find dialog for ACK with route param 'dc2.f24' [717:1071] and call-id 'SDvl91b03-576e9e12b1569f0361fceb3625955037-agvh8j0020'
It generates approximatively 2 millions packets per loop.
On the last occurrence I noticed a ‘SIP/2.0 200 canceling’ generated per Kamailio before the loop started (which seems uncomon on this host)
Bellow is a screenshot of the beginning of the loop and may dialog and topos config.
Has anyone encountered such behavour ?
Regards,
David
[cid:image001.png@01D6F4E2.F68B5140]
modparam("dialog", "dlg_flag", 1)
modparam("dialog", "hash_size", 1024)
modparam("dialog", "default_timeout", 14500)
modparam("dialog", "event_callback", "ksr_dialog_event")
modparam("dialog", "db_url", DBURL_DLG)
modparam("dialog", "db_update_period", 15)
modparam("dialog", "db_mode", 1)
modparam("topos", "storage", "redis")
modparam("topos", "dialog_expire", 14500)
modparam("topos", "contact_host", "PUBLICIP")
modparam("topos_redis", "serverid", "topos")
[View Less]
Hey group,
I was wondering if there is a way to control the websocket buffer size to
support large SIP messages. I received the following error when sending
content-length of 65000
2021-01-26T17:32:19.251408+00:00 sjomainkama50 kamailio[31871]: 109(32008)
WARNING: websocket [*ws_frame.c*:482]: decode_and_validate_ws_frame():
message is too long for our buffer size (65535 / 66151)
I am assuming this is controlled by the tcp_rd_buf params which I have set
to 131k:
*tcp_*rd_buf_size=131072
…
[View More]
and this is my tcp_wr_buf params:
*tcp_*wq_blk_size=131072
*tcp_*conn_wq_max=131072
Please advise.
Thanks.
--
Andy Chen
Sr. Telephony Lead Engineer
achen@ <achen(a)thinkingphones.com>fuze.com
--
*Confidentiality Notice: The information contained in this e-mail and any
attachments may be confidential. If you are not an intended recipient, you
are hereby notified that any dissemination, distribution or copying of this
e-mail is strictly prohibited. If you have received this e-mail in error,
please notify the sender and permanently delete the e-mail and any
attachments immediately. You should not retain, copy or use this e-mail or
any attachment for any purpose, nor disclose all or any part of the
contents to any other person. Thank you.*
[View Less]
Hi,
I was wondering if Kamailio can support FQDN endpoint which resolves to multiple IPs, checks if the first IP is not reachable, try the next one in the list.
Thanks,
AL
Hello! In 5.4 release announce there is a line about contact rewriting.
"new Contact address encoding/decoding functions – replace/restore
Contact address with SIP server address, by encoding/decoding old
address in a parameter"
Where can I find some documentation or examples about NEW functions?
At present we handle this task exactly the same way via parameters
manually. It is kinda verbose and hard to understand. Maybe new
functions will simplify this. Please advise!
Thanks!
--
Best …
[View More]regards,
Dmitry Sytchev,
IT Engineer
[View Less]
Hi Team,
We are using sipwise rtpengine on platform centos 7. To get call related
statistics from rtpengine. We tried to use utils "rtpengine-ng-client" and
"rtpengine-ctl". But for us both of them are not working.
*Rtpengine process status:*
[root@ctl utils]# ps -ef |grep rtpengine
root 3924 668 0 00:11 pts/0 00:00:00 grep --color=auto rtpengine
root 20502 20499 0 Jan19 ? 00:10:02 ../sbin/rtpengine -f
--num-threads 4 -i pub/10.211.160.132 -i priv/10.211.160.132 -n
127.…
[View More]0.0.1:8500 -c 127.0.0.1:8500 -m 32001 -M 32500 -T 184 -o 90 -d 4 -s 900
-p /var/run/rtpengine1.pid --scheduling rr --priority 37
[root@ctl utils]#
* rtpengine-ng-client:*
When i ran rtpengine-ng-client, I was getting Bencode.pm missing so I have
manually installed perl bencode library
"perl-Convert-Bencode-1.03-9.el7.noarch.rpm"
Now when i ran rtpengine-ng-client i am getting below error
[root@ctl utils]# ./rtpengine-ng-client list
*Undefined subroutine &Bencode::bencode called at
/usr/local/lib64/perl5/NGCP/Rtpengine.pm line 33. *
*rtpengine-ctl:*
When i ran ./rtpengine-ctl -ip 127.0.0.1:8500 list , We are not getting
any valid response from rtpengine.
[root@ctl utils]# ./rtpengine-ctl -ip 127.0.0.1:8500 list
*Inside do while after call socket->recv(response, 1024*1024*10)*
Please find the below attached source code for rtpengine-ng-client and
rtpengine-ctl.
Any help and suggestion will be highly appreciated.
Thanks,
Mahesh
[View Less]
Hello,
I was pretty sure there was a way to call a route from config file from Kemi, but I can’t find documentation about it.
Does that really exists or did I dreamed it ?
Regards,
David
Hi all
Have any of you experienced problems using MySQL(Not MariaDB) on a debian machine, with caching_sha2_password?
I am having some trouble:
Jan 21 08:13:41 MobileValue-Kamailio systemd[1]: Starting Kamailio (OpenSER) - the Open Source SIP Server...
Jan 21 08:13:42 MobileValue-Kamailio kamailio: INFO: <core> [core/tcp_main.c:4983]: init_tcp(): using epoll_lt as the io watch method (auto detected)
Jan 21 08:13:42 MobileValue-Kamailio kamailio[24260]: Listening on
Jan 21 08:13:42 …
[View More]MobileValue-Kamailio kamailio[24260]: udp: 185.31.176.39:5060
Jan 21 08:13:42 MobileValue-Kamailio kamailio[24260]: tcp: 185.31.176.39:80
Jan 21 08:13:42 MobileValue-Kamailio kamailio[24260]: Aliases:
Jan 21 08:13:42 MobileValue-Kamailio kamailio[24260]: tcp: voipgw01.evercall.dk:80
Jan 21 08:13:42 MobileValue-Kamailio kamailio[24260]: udp: voipgw01.evercall.dk:5060
Jan 21 08:13:42 MobileValue-Kamailio /usr/sbin/kamailio[24262]: INFO: rr [../outbound/api.h:52]: ob_load_api(): unable to import bind_ob - maybe module is not loaded
Jan 21 08:13:42 MobileValue-Kamailio /usr/sbin/kamailio[24262]: INFO: rr [rr_mod.c:185]: mod_init(): outbound module not available
Jan 21 08:13:42 MobileValue-Kamailio /usr/sbin/kamailio[24262]: ERROR: db_mysql [km_my_con.c:163]: db_mysql_new_connection(): driver error: Plugin caching_sha2_password could not be loaded: /usr/lib/x86_64-linux-gnu/mariadb19/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
Jan 21 08:13:42 MobileValue-Kamailio /usr/sbin/kamailio[24262]: ERROR: <core> [db.c:319]: db_do_init2(): could not add connection to the pool
Jan 21 08:13:42 MobileValue-Kamailio /usr/sbin/kamailio[24262]: ERROR: dispatcher [dispatch.c:903]: ds_connect_db(): cannot initialize db connection
Jan 21 08:13:42 MobileValue-Kamailio /usr/sbin/kamailio[24262]: ERROR: dispatcher [dispatch.c:937]: ds_init_db(): unable to connect to the database
Jan 21 08:13:42 MobileValue-Kamailio /usr/sbin/kamailio[24262]: ERROR: dispatcher [dispatcher.c:404]: mod_init(): could not initiate a connect to the database
Jan 21 08:13:42 MobileValue-Kamailio /usr/sbin/kamailio[24262]: ERROR: <core> [core/sr_module.c:849]: init_mod(): Error while initializing module dispatcher (/usr/lib/x86_64-linux-gnu/kamailio/modules/dispatcher.so)
Jan 21 08:13:42 MobileValue-Kamailio /usr/sbin/kamailio[24262]: INFO: <core> [core/sctp_core.c:53]: sctp_core_destroy(): SCTP API not initialized
Jan 21 08:13:42 MobileValue-Kamailio systemd[1]: kamailio.service: Control process exited, code=exited, status=255/EXCEPTION
Jan 21 08:13:42 MobileValue-Kamailio systemd[1]: kamailio.service: Failed with result 'exit-code'.
Jan 21 08:13:42 MobileValue-Kamailio systemd[1]: Failed to start Kamailio (OpenSER) - the Open Source SIP Server.
I can get around the problem, by making the kamailio & kamailioro user use mysql_native_password instead.
But am i wrong to belieave that it should Work out of the box?
Here are the installed packages from APT:
kamailio/unknown,now 5.4.3+bpo10 amd64 [installed]
kamailio-json-modules/unknown,now 5.4.3+bpo10 amd64 [installed]
kamailio-mysql-modules/unknown,now 5.4.3+bpo10 amd64 [installed]
kamailio-outbound-modules/unknown,now 5.4.3+bpo10 amd64 [installed]
default-libmysqlclient-dev/stable,now 1.0.5 amd64 [installed]
default-libmysqld-dev/stable,now 1.0.5 amd64 [installed]
libmariadb-dev/stable,now 1:10.3.27-0+deb10u1 amd64 [installed,automatic]
libmariadb-dev-compat/stable,now 1:10.3.27-0+deb10u1 amd64 [installed,automatic]
mysql-apt-config/unknown,now 0.8.16-1 all [installed]
mysql-client/unknown,now 8.0.23-1debian10 amd64 [installed,automatic]
mysql-common/unknown,now 8.0.23-1debian10 amd64 [installed,automatic]
mysql-community-client/unknown,now 8.0.23-1debian10 amd64 [installed,automatic]
mysql-community-client-core/unknown,now 8.0.23-1debian10 amd64 [installed,automatic]
mysql-community-client-plugins/unknown,now 8.0.23-1debian10 amd64 [installed,automatic]
mysql-community-server/unknown,now 8.0.23-1debian10 amd64 [installed,automatic]
mysql-community-server-core/unknown,now 8.0.23-1debian10 amd64 [installed,automatic]
mysql-server/unknown,now 8.0.23-1debian10 amd64 [installed]
Thanks in advance
Nicki Bo Otte
[View Less]
Hi guys;
I have some rtpproxy questions:
- When a proxy is in a failed state, what happens to the active sessions /
streams?
- How many times the module should retry to send and receive after timeout
was
generated?
- *How often are the control messages sent to the rtp proxy’s in the pool?*
*- I would like to know the exact nc message that’s used for the control
messages*
*Thank you.*
Hi All,
I would like to ask you if there is any way how to track usrloc location cleaning operation with some event route, so I can broadcast the change with for example kafka message.
If no, how do you keep track of online/offlice status of the user?
I am trying to avoid using change data capture in mysql proxy for location table.
Michal
Hi to all,
Does anyone have experience using Kamailio in front of some Lambda / Cloud functions? For example, passing call info with JSON to functions.Please share your ideas.
Regards,HYavari
I'm having a problem installing kamailio 5.4 using the following guide
https://kamailio.org/docs/tutorials/5.4.x/kamailio-install-guide-git/ .
I have a debian 10.7 machine where I install default-mysql-server package
for the database. After that I follow the install guide and everything goes
smoothly until I have to install the init.d scripts.
1. I do "cd /usr/local/src/kamailio-5.4/kamailio'
2. I do "make install-initd-debian"
Then make fails with the following error
"
root@kamServ:/usr/local/…
[View More]src/kamailio-5.4/kamailio# make install-initd-debian
make -C src/ install-initd-debian
make[1]: Entering directory '/usr/local/src/kamailio-5.4/kamailio/src'
sed -e "s#DAEMON=/usr/sbin/kamailio#DAEMON=/usr/local/sbin/kamailio#g" \
-e "s#NAME=kamailio#NAME=kamailio#g" \
-e "s#DESC=Kamailio#DESC=kamailio#g" \
-e "s#HOMEDIR=/run/kamailio#HOMEDIR=/run/kamailio#g" \
-e "s#DEFAULTS=/etc/default/kamailio#DEFAULTS=/etc/default/kamailio#g" \
-e
"s#CFGFILE=/etc/kamailio/kamailio.cfg#CFGFILE=/usr/local/etc/kamailio/kamailio.cfg#g"
\
< pkg/kamailio/deb/debian/kamailio.init \
> /etc/init.d/kamailio
/bin/sh: 1: cannot open pkg/kamailio/deb/debian/kamailio.init: No such file
make[1]: *** [Makefile:982: install-initd-debian] Error 2
make[1]: Leaving directory '/usr/local/src/kamailio-5.4/kamailio/src'
make: *** [Makefile:34: install-initd-debian] Error 2
"
Am I doing something wrong? Possibly in the wrong directory? If you need
any more information please don't hesitate to ask.
Sincerely,
Matthew Sherwood
[View Less]
Hello
I’m trying to use function xavp_rm_by_index to remove a specific index from a given xavp.
I’m observing an unexpected behaviour, I think it might be a bug :
Instead of just removing the index, the function removes the index and all others before it.
E.g : if called with « idx = 1 », it removes indexes 0 and 1.
Reading the code of xavp_rm_internal (which is called by xavp_rm_by_index), I don’t think it behaves at it should :
/* Remove xavps
* idx: <0 remove all xavps with the same …
[View More]name
* >=0 remove only the specified index xavp
* Returns number of xavps that were deleted
*/
For example when I do this :
LM_ERR("COUNT BEFORE: %d\n", xavp_count(rname, NULL));
int rm_count = xavp_rm_by_index(rname, 1, NULL); // TEST
LM_ERR("REMOVED: %d\n", rm_count);
LM_ERR("COUNT AFTER: %d\n", xavp_count(rname, NULL));
« rm_count » returned is 1 (which is expected). However, « count after » is decremented by 2.
And when I look at the contents of my xavp, I notice that the first two elements have been removed.
Likewise if xavp_rm_by_index is invoked with idx = 2 => the first 3 elements are removed.
So… do you think this is a bug ? or something I didn’t understand ?
Thanks for your help !
Regards,
Nicolas.
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
[View Less]
I am working to track concurrent channels with the dialog module, but I have run in to an issue. Due to the nature of my required configuration, I have a need to strip the record route headers from packets that are sent to the upstream proxy. This leaves no way for the dialog module to track the state of the call. I was hoping that DID_FALLBACK or DID_NONE modes would track by call id or some other constant, but it does not appear to.
So, before I start down the path of using htable to …
[View More]store and reinsert the did when a packet returns, is there something I am missing with dialog? Is there some more efficient way to do this?
- Charles
[View Less]
Hello,
Kamailio 5.4.3 has been installed from source.
"kamctl ping sip:10.10.10.10:5060" is sent from the command line.
Errors:
Jan 12 15:59:24 KAM-TEST /usr/local/kam/kamailio[66587]: ERROR: jsonrpcs
[jsonrpcs_mod.c:1352]: jsonrpc_exec_ex(): invalid json doc [[{"jsonrpc":
"2.0", "method": "tm.t_uac", "], "reply_name": "kamailio_receiver_85791",
"id": 85791}]].", "From:sip:daemon@KAM-TEST
Jan 12 15:59:24 KAM-TEST /usr/local/kam/kamailio[66587]: ERROR: jsonrpcs
[jsonrpcs_fifo.c:461]: …
[View More]jsonrpc_fifo_server(): failed to execute the json
document from fifo stream
This command is working in 4.4.
Has anyone tried using kamctl ping in 5.4?
Is it a bug in 5.4.3 ?
Thank you,
Julia.
[View Less]
Hi All,
Sorry for the intrusion and asking directly, but there’s so much information out there that I would spend years looking for the answer myself and spending equal amount of time in a lab playing. I do like the last idea but time is a little short.
I’m thinking of using Kamailio to overcome a few downfalls in the main SBC/PBX commercial product space that I’ve typically deployed and wanted to ask if it is possible to use as a stateful proxy and carry out the following header manipulation …
[View More]type scenario with a bit more dynamassium:
Use the FROM and TO header to create two value pairs that would be sent via a REST request to an external application, which will return two corresponding values to (a) supply a different value to update the original FROM header and (b) a full PAI sting to add on to the outgoing message.
If you have experience of this or if it’s a nonstarter I’d love to know.
There’s so many modules and great stuff that you have in your toy chest it is amazing and kudos to all you developers being so inventive out there: it leaves me to think I’ve been deploying SIP wrong all these years.
Thanks and keep safe and well, Mark
[View Less]
Hello,
I'm looking for a way to retrieve the number of rows stored in a xavp.
(Something better than manually iterating over the xavp)
Basically, I'd like to call xavp_count from the script.
Is that possible ?
Regards,
Nicolas.
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, …
[View More]copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
[View Less]
Hello
have some questions about Kamailio HA + loadbalancers (dispatcher modules)
1. is posible to make HA for RTP media? maybe RTPEngine +redis? is not
possible to do this with RTProxy? where is some examples?
2. What do Kamailio db cluster module? it can replicate every DB query
record like normal DB cluster? or better is to use native MySQL cluster
mode?
3. How is working dispatcher modules in HA? how call is handled and
htable in memory between loadbalancers endpoint nodes etc... IS …
[View More]it
posible to do only with DMQ ?
Just need understand how to do basic Kamailio setup with HA and load
balancers in general, for example if will be 2 phisical servers, in
every server is virtualisation and every server has 2 VPS. 1 VPS for
frontend Kamailio loadbanancer, 1 VPS backend Kamailio app with
accounts, routing logic, LCR, RTP media app etc... between load
balancers i know maybe is possible to do floating ip, dns round
robinetc... and if one VPs server down, call will be dropet in every
situation? or call will not be droped and how to prevent it.
Just need to know in general schema and architecture how to do this real
HA in Kamailio and avoind sinlge point of failure and where to read and
learn it ho to make HA in real. In the internet no many docs about it,
many conference video how good it is, but no good examples with config,
i did not founded, so will be very glad for any help in these newbie
questions ;) with single kamailio is many answers, but is realy
difficult to understand how to do voip HA with Kamailio without single
point of failure.
Thanks for any answers...
[View Less]
Hello,
I am running kamailio 5.3.8 on Debian 9. Kamailio is installed via apt
package manager. I am trying to get apiban.org to work and it seems to be
having a problem with the http_client module. I have searched for the
kamailio modules and I am unable to find anything that resembles http. I
have also installed the extra module and no luck. What would be the
correct module to install?
kamailio: ERROR: <core> [core/sr_module.c:500]: load_module(): could not
find module <http_client> in </usr/lib/x86_64-linux-gnu/kamailio/modules/>
Hi everyone.
I wanted all of you to know, that I have made JavaScript stubs, for autocompletion in IDE’s, for those of you that use KEMI JavaScript.
Specifically tested on Jetbrains PHPStorm/Webstorm.
The stubs are available for free at my GitHub page.
The link is https://github.com/captainDuckay/Kamailio-javascript-stubs
My main language isn't typescript or JavaScript, and this is one of my first public releases.
With that said though, I am open for critics, or even guidance.
I hope it's …
[View More]usable for you.
// Nicki Bo Otte
[View Less]
Hi,
We noticed an issue with the way the Kamailio is handling certain messages being sent to them, specifically, the To header being relayed from Kamailio to the next hop is malformatted.
Any assistance is greatly appreciated
INVITE received by Kamailio:
Request: Invite
Request URI: sip:2053140346;isub=33343@72.31.12.137:5060;transport=udp
From: <sip:+13037819601@71.44.15.84;user=phone>;tag=gK00a85927
…
[View More] To: <sip:+12053140346@72.31.12.137>;tag=SDnpoa601-1c711123926
Call-ID: SDnpoa601-f1bc387aa5a486c1dd943d1b53ae8e6a-8q7og02
CSeq: 860668 INVITE
Contact: <sip:+13037819601@107.14.122.29:5060>
SDP IP: 0.0.0.0
SDP Port: 43126
INVITE forwarded by Kamailio:
Request: Invite
Request URI: sip:2053140346;isub=33343@72.31.12.137:5060;transport=udp
From: <sip:+13037819601@71.44.15.84;user=phone>;tag=gK00a85927
To: <sip:+120531403Oh.lc".3/+0]1..31.12.137>;tag=SDnpoa601-1c711123926
Call-ID: SDnpoa601-f1bc387aa5a486c1dd943d1b53ae8e6a-8q7og02
CSeq: 860668 INVITE
Contact: <sip:+13037819601@107.14.122.29:5060>
SDP IP: 0.0.0.0
SDP Port: 43126
Another example in BYE:
BYE received by Kamailio:
To: "WIRELESS CALLER" <sip:+18131111111@71.44.13.84>;tag=gK0a788ca6
BYE forwarded by Kamailio:
To: "WIRELESS CALLER" <sip:+18131112222A.++.+,-94
Thanks.
AL
[View Less]
Hello all. As they say in radio, “long time listener, first time caller”
Anyway, I am having trouble getting past the following road block and any help would be greatly appreciated.
Kamailio version is 5.4.3
When attempting to use dispatcher to send OPTIONS packets to several TLS destinations, the packets are leaving the Kamailio server on random ports. This is a problem because the servers I am sending the OPTIONS to (MS Teams) are enforcing rport so the responses are returned to a port …
[View More]that Kamailio is not listening on. I have tried to force the socket in the event route (relevant parts of snippet below) but it does not appear to help. I should also mention that I am not behind NAT and the TLS socket is specified in the dispatcher attrs.
event_route[tm:local-request] {
sip_trace();
$fs = “tls:**ip-address**:5061”;
}
I have used Kamailio as a TLS server for many projects, but this is my first time as a client. I am sure I am missing something.
- Charles
[View Less]
Hello
I have a Kamailio running behind NAT, which sends calls to a VOIP
service provider.
I have setup the Kamalio to listen on port 5071, and also setup a port
forward in the router.
Now the problem is that with TCP, 5071 is not used for the dialog, but a
new port is chosen everytime. This means that when the mobile phone
called hands up, I never sees the BYE, because BYE is a new dialog.
To which port is the server supposed to send the BYE, and what field
tells the server this.
-- …
[View More]
-------------------- Med Liberalistiske Hilsner ----------------------
Civilingeniør, Kjeld Flarup - Mit sind er mere åbent end min tegnebog
Sofienlundvej 6B, 7560 Hjerm, Tlf: 40 29 41 49
Den ikke akademiske hjemmeside for liberalismen - www.liberalismen.dk
[View Less]
Actually we have installed kamailio 5.4.2 and rtpengine like load balancer
in a NAT environment. behind the nat we have 2 identical nodes using REFER
for transfer
call to another destiny. On the other NAt side we have our public carrier.
When some node sends to kamailio the REFER message and kamailio reroutes
this message to the carrier. The call is rejected due company policies.
We want to know how we can convert or modify the REFER message into INVITE
for finally transfer the call.
…
[View More]kamailio -v:
version: kamailio 5.4.2 (x86_64/linux) 4fdc21
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE,
USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC,
TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT,
USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST,
HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024,
BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 4fdc21
compiled on 20:43:45 Dec 1 2020 with unknown
Uname -a:
Linux proxy 4.15.0-124-generic #127-Ubuntu SMP Fri Nov 6 10:54:43 UTC 2020
x86_64 x86_64 x86_64 GNU/Linux
[View Less]
Actually we have installed kamailio 5.4.2 and rtpengine like load balancer
in a NAT environment. behind the nat we have 2 identical nodes using REFER
for transfer
call to another destiny. On the other NAt side we have our public carrier.
When some node sends to kamailio the REFER message and kamailio reroutes
this message to the carrier. The call is rejected due company policies.
We want to know how we can convert or modify the REFER message into INVITE
for finally transfer the call.
…
[View More]kamailio -v:
version: kamailio 5.4.2 (x86_64/linux) 4fdc21
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE,
USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC,
TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT,
USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST,
HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024,
BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 4fdc21
compiled on 20:43:45 Dec 1 2020 with unknown
Uname -a:
Linux proxy 4.15.0-124-generic #127-Ubuntu SMP Fri Nov 6 10:54:43 UTC 2020
x86_64 x86_64 x86_64 GNU/Linux
rtpengine -v:
Version: 9.2.0.0+0~mr9.2.0.0 git-master-aa5e0244
[View Less]
Actually we have installed kamailio 5.4.2 and rtpengine like load balancer
in a NAT environmet. behind the nat we have 2 identycal nodes using REFER
for transfer
call to another destiny. in the other NAt side we have our public carrier.
When some node send to kamailio the REFER message and kamailio reroute this
message to the carrier. The call is rejected due company policies.
We want know how can we do for convert or modify the REFER message into
INVITE for finally transfer the call.
…
[View More]kamailio -v:
version: kamailio 5.4.2 (x86_64/linux) 4fdc21
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE,
USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC,
TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT,
USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST,
HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024,
BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 4fdc21
compiled on 20:43:45 Dec 1 2020 with unknown
Uname -a:
Linux proxy 4.15.0-124-generic #127-Ubuntu SMP Fri Nov 6 10:54:43 UTC 2020
x86_64 x86_64 x86_64 GNU/Linux
rtpengine -v:
Version: 9.2.0.0+0~mr9.2.0.0 git-master-aa5e0244
[View Less]
Is it possible to insert the current dialog into the profile by using the
following way?
modparam("dialog", "profiles_no_value", "mytest;xyz")
$var(profilename)="xyz";
set_dlg_profile(" $var(profilename) ");
Currently it is giving errors and not allowing to use variable instead of
static profile name.
Or is there any alternative to pass profile name as variable?
---
Thanks,
Hello,
I'm on Kamailio 4.4.7 and I'm trying to do uac.reg_refresh over a row
non existing on DB to try to unload, but data still persist on Kamailio.
How to unload only one registry from UACs remote registrations when
delete a record from DB without do a uac.reg_reload?
UAC remote registrations is above 2k rows, I don't know if it's much or not.
Regards, JV
--
Logo <http://www.voiper.es/>
Javier Valencia | CTO
Centro de Negocios Martín Buendía
Camino de las Cañadas, nº 1C, …
[View More]Portal 1, 2ºG
29649 Mijas (Málaga)
# 951562080 (T) <tel:951562080> | 687486759 (M) <tel:687486759>
# www.voiper.es <http://www.voiper.es/>
------------------------------------------------------------------------
AVISO LEGAL
-----------
Este mensaje contiene información confidencial destinada para ser leída
exclusivamente por el destinatario. Queda prohibida la reproducción,
publicación, divulgación, total o parcial del mensaje así como el uso no
autorizados por el emisor. En caso de recibir el mensaje por error, se ruega
su comunicación al remitente lo antes posible. Por favor, indique
inmediatamente si usted o su empresa no aceptan comunicaciones de este tipo
por Internet.
Las opiniones, conclusiones y demás información incluida en este mensaje que
no esté relacionada con asuntos profesionales de SMART RECARGAS, S.L, se
entenderá que nunca se ha dado, ni está respaldado por el mismo.
Responsable del Tratamiento de Datos
------------------------------------
SMART RECARGAS , SL
Camino de las Cañadas, 1C PORTAL 1 2º G
29651 MIJAS COSTA (MALAGA)
[View Less]
Hi there!
I'm getting different responses from Kamailio 4.4.7 when domain.dump exec;
From *kamcmd*:
I'm getting two domains; .es and .net.
Request to jsonrpc-s module:
Response from jsonrpc-s module:
And now, I'm getting only one domain.
What's I'm doing wrong?
Hello,
I'm playing with RPC on my Kamailio 4.4.7, and I getting rare behaivor
with *uac.reg_refresh* command.
When I run it thru kamcmd like docs describes, this is without *l_uuid*
parameter, I'm geting "*error: 500 - Invalid Parameters*" output. And
when I run with *l_uuid* parameter, I get no output. But in both cases,
Kamalio don't refresh data from DB.
But I run this command thru HTTP (JSONRPC-S), both call modes are
equivalent. With or without l_uuid parameter geting no output and …
[View More]
refresh data from DB.
It's a normal behaivor?
Regards, JV
--
Logo <http://www.voiper.es/>
Javier Valencia | CTO
Centro de Negocios Martín Buendía
Camino de las Cañadas, nº 1C, Portal 1, 2ºG
29649 Mijas (Málaga)
# 951562080 (T) <tel:951562080> | 687486759 (M) <tel:687486759>
# www.voiper.es <http://www.voiper.es/>
------------------------------------------------------------------------
AVISO LEGAL
-----------
Este mensaje contiene información confidencial destinada para ser leída
exclusivamente por el destinatario. Queda prohibida la reproducción,
publicación, divulgación, total o parcial del mensaje así como el uso no
autorizados por el emisor. En caso de recibir el mensaje por error, se ruega
su comunicación al remitente lo antes posible. Por favor, indique
inmediatamente si usted o su empresa no aceptan comunicaciones de este tipo
por Internet.
Las opiniones, conclusiones y demás información incluida en este mensaje que
no esté relacionada con asuntos profesionales de SMART RECARGAS, S.L, se
entenderá que nunca se ha dado, ni está respaldado por el mismo.
Responsable del Tratamiento de Datos
------------------------------------
SMART RECARGAS , SL
Camino de las Cañadas, 1C PORTAL 1 2º G
29651 MIJAS COSTA (MALAGA)
[View Less]
Hi there,
I'm using Kamailio 4.4.7 with UAC remote registrations module.
In my database have all rows with expires column value's 3600, and my
PBX (asterisk) min, max and default expires to 3600. But I can see how
Kamailio it's sending REGISTER each 150segs.
UAC module parameters values;
modparam("uac", "reg_db_url", "mysql://XXX")
modparam("uac", "reg_db_table", "uacreg")
modparam("uac", "reg_contact_addr", "XXX")
modparam("uac", "reg_timer_interval", 5)
modparam("uac", "…
[View More]reg_retry_interval", 60)
My uacreg table it's above 2k rows.
Regards, JV
--
Logo <http://www.voiper.es/>
Javier Valencia | CTO
Centro de Negocios Martín Buendía
Camino de las Cañadas, nº 1C, Portal 1, 2ºG
29649 Mijas (Málaga)
# 951562080 (T) <tel:951562080> | 687486759 (M) <tel:687486759>
# www.voiper.es <http://www.voiper.es/>
------------------------------------------------------------------------
AVISO LEGAL
-----------
Este mensaje contiene información confidencial destinada para ser leída
exclusivamente por el destinatario. Queda prohibida la reproducción,
publicación, divulgación, total o parcial del mensaje así como el uso no
autorizados por el emisor. En caso de recibir el mensaje por error, se ruega
su comunicación al remitente lo antes posible. Por favor, indique
inmediatamente si usted o su empresa no aceptan comunicaciones de este tipo
por Internet.
Las opiniones, conclusiones y demás información incluida en este mensaje que
no esté relacionada con asuntos profesionales de SMART RECARGAS, S.L, se
entenderá que nunca se ha dado, ni está respaldado por el mismo.
Responsable del Tratamiento de Datos
------------------------------------
SMART RECARGAS , SL
Camino de las Cañadas, 1C PORTAL 1 2º G
29651 MIJAS COSTA (MALAGA)
[View Less]
My use case is such that I want to be able to send a SIP MESSAGE destined
for a single username to multiple users. In order to be able to map that
target username to multiple usernames, I tried using rtjson and evapi/http
(to generate the routing json), but none of them worked.
Is it the right approach? Is there any other way to programmatically
generate multiple targets for SIP request? I am familiar with dynamic
routing but I need more flexibility.
Initially, I tried sending the request to …
[View More]a different username but that
didn't work and got the following message in the http async result route.
kamailio | 19(25) ERROR: nathelper [nathelper.c:1461]: sdp_1918():
Unable to parse sdp body
kamailio | 19(25) NOTICE: <core> [core/kemi.c:124]:
sr_kemi_core_notice(): In evapi msg branch
kamailio | 28(34) NOTICE: {2 6661 MESSAGE q6hikd6tumsr1dh35kvj} <core>
[core/kemi.c:124]: sr_kemi_core_notice(): In evapi reply branch
The message was received on the originally requested to user and also $tu still
points to the original user instead of the new user even after executing
the following code.
KSR.rtjson.init_routes(response);
KSR.rtjson.push_routes();
KSR.nathelper.fix_nated_contact();
In http response, I receive the following and don't see any rtjson errors
when init_routes is executed on it.
{"version":"1.0","routing":"parallel","routes":[{"headers":{"from":{"display":"test_1","uri":"sip:
*test_1*@test.com:9908"},"to":{"display":"test_4","uri":"sip:*test_4*@
test.com:9908
"},"extra":""},"branch_flags":8,"fr_timer":5000,"fr_inv_timer":30000}]}
Please note that the request was sent to *test_2*(a)test.com. I have tried
other combinations of above but nothing works.
I have already searched on Google and read relevant articles and blog
posts.
Thanks
--
--
This message contains confidential information and is intended only for the
individual named. If you are not the named addressee, you should not
disseminate, distribute or copy this email. Please notify the sender
immediately by email if you have received this email by mistake and delete
this email from your system. Email transmission cannot be guaranteed to be
secure or error-free, as information could be intercepted, corrupted, lost,
destroyed, arrive late or incomplete, or contain viruses. The sender,
therefore, does not accept liability for any errors or omissions in the
contents of this message which arise as a result of email transmission. If
verification is required, please request a hard-copy version.
[View Less]
Hi all,
I've made a post last month regarding losing MySQL connections -
https://lists.kamailio.org/pipermail/sr-users/2020-December/111389.html
At the time I thought connections were dying as a consequence of low
activity and traffic on the proxy. Meanwhile, I've migrated a great number
of equipments to the proxy with Registers being refreshed every 10minutes
and the problem still persists.
In order to try to fix this i've added timeout_interval and ping_interval
from the db_mysql module. …
[View More]My SQL client on the Kamailio machine is
mysql-community-client 5.6.50-2.el7. It writes and reads in a remote
InnoDB database.
This are the logs i get from Kamailio when the problem appears :
Jan 7 09:43:27 sbc_bbt01_active
/usr/local/kamailio-5.4/sbin/kamailio[21735]: ERROR: {1 27880 REGISTER
e5f8f7bc-cbb2-40b3-9037-edacd6276a2b} db_mysql [km_dbase.c:123]:
db_mysql_submit_query(): driver error on query: Lock wait timeout exceeded;
try restarting transaction (1205)
Jan 7 09:43:27 sbc_bbt01_active
/usr/local/kamailio-5.4/sbin/kamailio[21735]: ERROR: {1 27880 REGISTER
e5f8f7bc-cbb2-40b3-9037-edacd6276a2b} <core> [db_query.c:348]:
db_do_update(): error while submitting query
Jan 7 09:43:27 sbc_bbt01_active
/usr/local/kamailio-5.4/sbin/kamailio[21735]: ERROR: {1 27880 REGISTER
e5f8f7bc-cbb2-40b3-9037-edacd6276a2b} usrloc [ucontact.c:1147]:
db_update_ucontact_ruid(): updating database failed
Jan 7 09:43:27 sbc_bbt01_active
/usr/local/kamailio-5.4/sbin/kamailio[21735]: ERROR: {1 27880 REGISTER
e5f8f7bc-cbb2-40b3-9037-edacd6276a2b} usrloc [ucontact.c:1663]:
update_contact_db(): failed to update database
Jan 7 09:43:27 sbc_bbt01_active
/usr/local/kamailio-5.4/sbin/kamailio[21735]: ERROR: {1 27880 REGISTER
e5f8f7bc-cbb2-40b3-9037-edacd6276a2b} registrar [save.c:784]:
update_contacts(): failed to update contact
Jan 7 09:43:27 sbc_bbt01_active
/usr/local/kamailio-5.4/sbin/kamailio[21735]: ERROR: {1 27880 REGISTER
e5f8f7bc-cbb2-40b3-9037-edacd6276a2b} sl [sl_funcs.c:414]:
sl_reply_error(): stateless error reply used: I'm terribly sorry, server
error occurred (1/SL)
Originally I had usrloc db_mode on mode 3 - DB-Only Scheme. In order to try
to mitigate the issue I changed it to mode 1 - Write-Through scheme but
even then I get the same log errors and an "500" error is still sent to the
client. I chose this mode since, as far as I can understand it applies
changes directly to DB but also uses cache. Please correct me if i'm wrong
on that.
Has this issue happened with anyone before? Is there a way to mitigate this
issue? My only constraint is that I need the database to be always updated
since I have an HA setup, and as such, I can't use cache only methods.
Best Regards,
[View Less]
Greetings,
I'm using loose_route() from the RR module and i'm having troubles making
it use the following exception from the code : "There is only one
exception: If the request is out-of-dialog (no to-tag) and there is only
one Route: header indicating the local proxy, then the Route: header is
removed and the function returns FALSE."
My example is a REGISTER without To-TAG which has a Route header with
kamailio address. If i use proxy IP on Route header , loose_route() returns
false as it …
[View More]should. However, if i use an hostname belonging to the proxy
in the route, loose_route() returns true.
I have hostnames and local ips defined in the "DOMAIN" table but it doesn't
seem to be working. Which other places can local hostnames and ips be
configured in order to be seen as local to loose_route() ?
Best Regards
[View Less]
in my scenario call coming from sbc to kamailio proxy and we route to pbx
server in that when
kamailio proxy get the call at that time i am removing Contact header using
remove_hf("Contact") and adding contact Header using
append_hf("$uac_req(hdrs)") for route to PBX server . in that signaling i
am getting modified Contact header but old contact header not removed
properly some junks are remain in the signaling
scenario :
SBC ---------> Kamailio proxy ------> PBX
before using remove_hf(…
[View More]"Contact")
INVITE sip:user2@ <sip%3A5678(a)opensips.org>domain.org;transport=UDP SIP/2.0
Via: SIP/2.0/UDP
10.212.xxx.xxx:port;branch=z9hG4bK-524287-1---8c5ac8642f321a9e
Max-Forwards: 70
Contact: <sip:user1@10.212.xxx.xxx:39931;transport=UDP>
To: <sip:user2@ <sip%3A5678(a)opensips.org>domain.org;transport=UDP>
From: <sip:user1@ <sip%3A1234(a)opensips.org>domain.org
;transport=UDP>;tag=891fd646
Call-ID: t9Ff-fCrin_VN1IO9Xf1mA..
CSeq: 2 INVITE
Content-Type: application/sdp
Proxy-Authorization: Digest username="user1",realm="domain.org
<http://opensips.org/>
",nonce="5ff5a660afc72502212b4a611bb0d689efadafab",uri="sip:user2@domain.org
<sip%3A5678(a)opensips.org>;transport=UDP",response="f926e3742cbdcb8c68ea9b5
82ac2dc",cnonce="9b3276d6d37aaa6107a835df8e5b3a87",nc=00000001,qop=auth,algorithm=MD5
User-Agent: Z 3.15.40006 rv2.8.20
Allow-Events: presence, kpml, talk
Content-Length: 243
v=0
o=Z 0 0 IN IP4 10.212.xxx.xxx
s=Z
c=IN IP4 10.212.xxx.xxx
t=0 0
m=audio 8000 RTP/AVP 3 110 8 0 97 101
a=rtpmap:110 speex/8000
a=rtpmap:97 iLBC/8000
a=fmtp:97 mode=30
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=sendrecv
after using remove-hf("Contact") function removing contact header but some
junks are left and that eats next To header line and breaks Invite packet
INVITE sip:user2@domain.org:;transport=UDP SIP/2.0
Record-Route:
<sip:172.xx.xx.xxx;lr=on;ftag=891fd646;vst=AAAAAFFTQVkuCENVXUEpHwNLAQEOSwdcDhwUcG9ydD1VRFA-;vsf=AAAAAFVCQ1U0ChwlAQMMHgBHHwFJVAYVYW5zcG9ydD1VRFA->
Via: SIP/2.0/UDP
172.xx.xx.xxx;branch=z9hG4bKbe4c.9743b885ad3452287530994a2cad6e50.0
Via: SIP/2.0/UDP
10.212.xxx.xxx:39931;rport=39931;received=172.xx.xx.x;branch=z9hG4bK-524287-1---8c5ac8642f321a9e
Max-Forwards: 69
sip:user1@172.xx.xx.x:39931;transport=UDPTo: <sip:user2@domain.org
<sip%3Adevang3032(a)opensips.org>>
From: <sip:user1@domain.org <sip%3Adppatel(a)opensips.org>>;tag=891fd646
Call-ID: t9Ff-fCrin_VN1IO9Xf1mA..
CSeq: 2 INVITE
Content-Type: application/sdp
User-Agent: Z 3.15.40006 rv2.8.20
Allow-Events: presence, kpml, talk
Content-Length: 534
Contact: <sip:user2@172.xx.xx.xxx:5060
<http://sip:dppatel@172.16.16.163:5060/>>
v=0
o=Z 0 0 IN IP4 10.212.xxx.xxx
s=Z
c=IN IP4 172.xx.xx.xxx
t=0 0
m=audio 11210 RTP/AVP 3 110 8 0 97 101
a=rtpmap:3 GSM/8000
a=rtpmap:110 speex/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:97 iLBC/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:97 mode=30
a=fmtp:101 0-16
a=sendrecv
a=rtcp:11211
a=ice-ufrag:lzjregPe
a=ice-pwd:RtA9x3jUWk4yNpJlzPL60nsRck
a=candidate:LhtmUSbPt9BJs4ZC 1 UDP 2130706431 172.xx.xx.xxx 11210 typ host
a=candidate:LhtmUSbPt9BJs4ZC 2 UDP 2130706430 172.xx.xx.xxx 11211 typ host
As you can see Contact header is gone but
sip:1234@172.xx.xx.x:39931;transport=UDP
part left before To header . and its breake invite packet .
Any suggestion will be highly appreciated.
--
*Disclaimer*
In addition to generic Disclaimer which you have agreed on our
website, any views or opinions presented in this email are solely those of
the originator and do not necessarily represent those of the Company or its
sister concerns. Any liability (in negligence, contract or otherwise)
arising from any third party taking any action, or refraining from taking
any action on the basis of any of the information contained in this email
is hereby excluded.
*Confidentiality*
This communication (including any
attachment/s) is intended only for the use of the addressee(s) and contains
information that is PRIVILEGED AND CONFIDENTIAL. Unauthorized reading,
dissemination, distribution, or copying of this communication is
prohibited. Please inform originator if you have received it in error.
*Caution for viruses, malware etc.*
This communication, including any
attachments, may not be free of viruses, trojans, similar or new
contaminants/malware, interceptions or interference, and may not be
compatible with your systems. You shall carry out virus/malware scanning on
your own before opening any attachment to this e-mail. The sender of this
e-mail and Company including its sister concerns shall not be liable for
any damage that may incur to you as a result of viruses, incompleteness of
this message, a delay in receipt of this message or any other computer
problems.
[View Less]
in my requirement call coming from sbc to kamailio proxy and we route to
pbx server in that when
kamailio proxy get the call at that time i am removing Contact header using
remove_hf("Contact") and adding contact Header using
append_hf("$uac_req(hdrs)") for route to PBX server . in that signaling i
am getting modified Contact header but old contact header not removed
properly some junks are remain in the signaling
scenario :
SBC ---------> Kamailio proxy ------> PBX
before using …
[View More]remove_hf("Contact")
INVITE sip:user2@ <sip%3A5678(a)opensips.org>domain.org;transport=UDP SIP/2.0
Via: SIP/2.0/UDP
10.212.xxx.xxx:port;branch=z9hG4bK-524287-1---8c5ac8642f321a9e
Max-Forwards: 70
Contact: <sip:user1@10.212.xxx.xxx:39931;transport=UDP>
To: <sip:user2@ <sip%3A5678(a)opensips.org>domain.org;transport=UDP>
From: <sip:user1@ <sip%3A1234(a)opensips.org>domain.org
;transport=UDP>;tag=891fd646
Call-ID: t9Ff-fCrin_VN1IO9Xf1mA..
CSeq: 2 INVITE
Content-Type: application/sdp
Proxy-Authorization: Digest username="user1",realm="domain.org
<http://opensips.org>
",nonce="5ff5a660afc72502212b4a611bb0d689efadafab",uri="sip:user2@domain.org
<sip%3A5678(a)opensips.org>;transport=UDP",response="f926e3742cbdcb8c68ea9b5
82ac2dc",cnonce="9b3276d6d37aaa6107a835df8e5b3a87",nc=00000001,qop=auth,algorithm=MD5
User-Agent: Z 3.15.40006 rv2.8.20
Allow-Events: presence, kpml, talk
Content-Length: 243
v=0
o=Z 0 0 IN IP4 10.212.xxx.xxx
s=Z
c=IN IP4 10.212.xxx.xxx
t=0 0
m=audio 8000 RTP/AVP 3 110 8 0 97 101
a=rtpmap:110 speex/8000
a=rtpmap:97 iLBC/8000
a=fmtp:97 mode=30
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=sendrecv
after using remove-hf("Contact") function removing contact header but some
junks are left and that eats next To header line and breaks Invite packet
INVITE sip:user2@domain.org:;transport=UDP SIP/2.0
Record-Route:
<sip:172.xx.xx.xxx;lr=on;ftag=891fd646;vst=AAAAAFFTQVkuCENVXUEpHwNLAQEOSwdcDhwUcG9ydD1VRFA-;vsf=AAAAAFVCQ1U0ChwlAQMMHgBHHwFJVAYVYW5zcG9ydD1VRFA->
Via: SIP/2.0/UDP
172.xx.xx.xxx;branch=z9hG4bKbe4c.9743b885ad3452287530994a2cad6e50.0
Via: SIP/2.0/UDP
10.212.xxx.xxx:39931;rport=39931;received=172.xx.xx.x;branch=z9hG4bK-524287-1---8c5ac8642f321a9e
Max-Forwards: 69
sip:user1@172.xx.xx.x:39931;transport=UDPTo: <sip:user2@domain.org
<sip%3Adevang3032(a)opensips.org>>
From: <sip:user1@domain.org <sip%3Adppatel(a)opensips.org>>;tag=891fd646
Call-ID: t9Ff-fCrin_VN1IO9Xf1mA..
CSeq: 2 INVITE
Content-Type: application/sdp
User-Agent: Z 3.15.40006 rv2.8.20
Allow-Events: presence, kpml, talk
Content-Length: 534
Contact: <sip:user2@172.xx.xx.xxx:5060
<http://sip:dppatel@172.16.16.163:5060>>
v=0
o=Z 0 0 IN IP4 10.212.xxx.xxx
s=Z
c=IN IP4 172.xx.xx.xxx
t=0 0
m=audio 11210 RTP/AVP 3 110 8 0 97 101
a=rtpmap:3 GSM/8000
a=rtpmap:110 speex/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:97 iLBC/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:97 mode=30
a=fmtp:101 0-16
a=sendrecv
a=rtcp:11211
a=ice-ufrag:lzjregPe
a=ice-pwd:RtA9x3jUWk4yNpJlzPL60nsRck
a=candidate:LhtmUSbPt9BJs4ZC 1 UDP 2130706431 172.16.16.163 11210 typ host
a=candidate:LhtmUSbPt9BJs4ZC 2 UDP 2130706430 172.16.16.163 11211 typ host
As you can see Contact header is gone but
sip:1234@172.xx.xx.x:39931;transport=UDP
part left before To header . and its breake invite packet .
Any suggestion will be highly appreciated.
--
*Disclaimer*
In addition to generic Disclaimer which you have agreed on our
website, any views or opinions presented in this email are solely those of
the originator and do not necessarily represent those of the Company or its
sister concerns. Any liability (in negligence, contract or otherwise)
arising from any third party taking any action, or refraining from taking
any action on the basis of any of the information contained in this email
is hereby excluded.
*Confidentiality*
This communication (including any
attachment/s) is intended only for the use of the addressee(s) and contains
information that is PRIVILEGED AND CONFIDENTIAL. Unauthorized reading,
dissemination, distribution, or copying of this communication is
prohibited. Please inform originator if you have received it in error.
*Caution for viruses, malware etc.*
This communication, including any
attachments, may not be free of viruses, trojans, similar or new
contaminants/malware, interceptions or interference, and may not be
compatible with your systems. You shall carry out virus/malware scanning on
your own before opening any attachment to this e-mail. The sender of this
e-mail and Company including its sister concerns shall not be liable for
any damage that may incur to you as a result of viruses, incompleteness of
this message, a delay in receipt of this message or any other computer
problems.
[View Less]
Hi All
Is it possible to explicitly define the tls cert to be used per destination by dispatcher?
I'm attempting to integrate with a service that requires domain name presented to match that of the cert. Where the use of dispatcher is probably not as intended anyway as it targets the same set of destinations multiple times (primary and secondary endpoints for the service im integrating with), with multiple distinct set id's (basically a set per customer for multi tenancy) which expects a sip …
[View More]ping per account to verify that connection is alive and healthy.
#Example Dispatcher list
#Account 1
1 sip:a.cloudservice.com:5061;transport=tls 8 1 socket=tls:10.0.0.2:5061;ping_sni=sip.account1.com;ping_from=sip:sip.account1.com:5061
1 sip:b.cloudservice.com:5061;transport=tls 8 1 socket=tls:10.0.0.2:5061;ping_sni=sip.account1.com;ping_from=sip:sip.account1.com:5061;
#Account 2
2 sip:a.cloudservice.com:5061;transport=tls 8 1 socket=tls:10.0.0.2:5061;ping_sni=sip.account2.com;ping_from=sip:sip.account2.com:5061;
2 sip:b.cloudservice.com:5061;transport=tls 8 1 socket=tls:10.0.0.2:5061;ping_sni=sip.account2.com;ping_from=sip:sip.account2.com:5061;
Currently I'm running a solution based around certs with multiple SAN (subject alternative name) defined, but this is a pain to administrate, and not as scalable as I would like. I want to be able to define multiple client:any tls profiles and explicitly send via that profile. Its easy enough to do that in config using the tls xavps to define a server name and/or id. But for the sip options ping by dispatcher to work you need to specify the server name or id before the tm:local-request event route fire's.
I've resorted to hacking away at dispatcher to see what would happen if I set the tls server name or id before the OPTIONS message is sent, and it works great for the first tls client profile matched, but any others you define re-use the initial tcp connection so reuses the first connections tls config, thus presenting the wrong cert (I'm probably wrong but logs show only one tls complete_init() related to dispatcher pings and the second set's pings skips all the tls init logging so suggests some thing is cached/reused, and logging on the service indicates cert name mismatch with set1s cert being offered)
So I've hit a bit of a dead end, is there a way to force a new tcp connection per server name/id
I fear outbound SNI might be a bit of a can of worms, for it to work nicely with dispatcher as is, would be an extension of the proto:host:port format to include a name or id, maybe something like:
tls(name=sub.domain.com):10.0.0.5:5061
But that looks like it would have a lot of wide reaching knock-on effects, so setting it as an attribute like ping_from works fine as I'm currently doing, if I could force a new connection from dispatch.c....
The other thing that's occurred to me is that it might be better to stop trying to adapt a small percentage of dispatcher's functionality and trying to hammer a round peg into a square hole and instead try and create a new module similar to dispatcher in so much that it sends pings (that's all I really need in this case) and use dispatcher as intended with a single set of non-repeated destinations for routing. This would also allow much simpler integration with MS teams (if added ability to set contact address on the background pings) as well as the service im trying to integrate, and a more natural data set to be used as in my example you can see the only difference is the customers domain between each set. How I would imagine it to work would be to create a tls connection per customer domain, then iterate through the connections per destination in pseudo json the data would look like this:
{
Destinations:[
[1,["a.cloudservice.com","b.cloudservice.com"]],
[2,["sip.pstnhub.microsoft.com", "sip2.pstnhub.microsoft.com", "sip3.pstnhub.microsoft.com"]
],
Sources:[
{uri:"sip.account1.com",destinationMapping:[1]},
{uri:"sip.account2.com",destinationMapping:[1,2]}
]
}
And would just run in the background sending pings with SNI support, and if based on dispatcher should make it easy enough adapt things like the destination up and down event routes, and would allow me to use Kamailio much like I would use nginx for web stuff as a reverse proxy and handle TLS offload on my edge gateway proxy.
Any thoughts?, im frustratingly close to having something that will do if I could get a new connection to be created, but I fear my use case might be sufficiently different from dispatchers to make a new module a sensible approach..
Regards
Tim.
[View Less]
Greetings,
I'm doing a migration from a opensips system to kamailio one and i'm trying
to replicate its functionalities.
The system is a Registrar with a pstn gateway. I noticed that on the
opensips version, loose_route() is called on initial requests and it seems
to be used to protect against preloaded routes.
However, on the default Kamailio configuration file loose_route() is only
called on requests in-dialog and the verification mentioned above is not
used.
Why doesn't Kamailio includes …
[View More]this verification? Is there are any security
concerns not using it?
Best Regards,
[View Less]
Hello everyone,
I'm beginner in Kamailio, I want to connect my asterisk Server with
Kamailio. Can you please help me in this context. I shall be very thankful
to you.
Regards,
Rohit Kumar
On Thu, Dec 31, 2020, 16:31 <sr-users-request(a)lists.kamailio.org> wrote:
> Send sr-users mailing list submissions to
> sr-users(a)lists.kamailio.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-…
[View More]users
> or, via email, send a message with subject or body 'help' to
> sr-users-request(a)lists.kamailio.org
>
> You can reach the person managing the list at
> sr-users-owner(a)lists.kamailio.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of sr-users digest..."
>
>
> Today's Topics:
>
> 1. using kamailio 5.4 with the websocket or xmlhttprequest
> (Daniel Hermann N'don)
> 2. Re: using kamailio 5.4 with the websocket or xmlhttprequest
> (Antony Stone)
> 3. Re: using kamailio 5.4 with the websocket or xmlhttprequest
> (Daniel Hermann N'don)
> 4. Using a specific log level for "script" ? (Chaigneau, Nicolas)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 30 Dec 2020 14:15:19 +0000
> From: Daniel Hermann N'don <danielhermann.ndon(a)outlook.com>
> To: "sr-users(a)lists.kamailio.org" <sr-users(a)lists.kamailio.org>
> Subject: [SR-Users] using kamailio 5.4 with the websocket or
> xmlhttprequest
> Message-ID:
> <
> MWHPR05MB291167705F86195717CA7E3181D70(a)MWHPR05MB2911.namprd05.prod.outlook.com
> >
>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Hello everyone, I'm a beginner in kamailio technology, and I would like to
> know how to communicate with kamailio from the web.
>
[View Less]
Hello,
Is it possible to set a specific log level for the Kamailio script ?
I've seen that the < debugger > module allows to do that with modules or < core > :
https://kamailio.org/docs/modules/5.4.x/modules/debugger.html#dbg.p.mod_lev…
So I've tried to do :
modparam("debugger", "mod_level_mode", 1)
modparam("debugger", "mod_hash_size", 5)
modparam("debugger", "mod_level", "my_module=3") // this works
modparam("debugger", "mod_level", "core=3") // also works
modparam("debugger"…
[View More], "mod_level", "script=3") // nope...
But it doesn't seem to work for < script >... :/
Regards,
Nicolas.
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
[View Less]
Hello!
Could somebody explain how the parameters *publ_cache=2* and
*subs_db_mode* depend
on each other?
Do I understand correctly that only the following modes of *subs_db_mode* are
allowed 0,1,2?
*subs_db_mode:0 - This disables database completely. Only memory will be
used. Subscriptions will not survive restart. Use this value if you need a
really fast presence module and subscription persistence is not necessary
or is provided by other means.1 - Write-Through scheme. Subscriptions …
[View More]are
updated synchronously in database and in memory(used for read operations).
Use this scheme if speed is not top priority, but it's important that no
subscriptions will be lost during crash or reboot or if you have an
external application that reads the state of the subscriptions from
database and they need to be updated synchronously.2 - Write-Back scheme.
This is a combination of previous two schemes. All changes are made to
memory and database synchronization is done in the timer. The timer deletes
all expired contacts and flushes all modified or new subscriptions to
database. Use this scheme if you encounter high-load peaks and want them to
process as fast as possible. Latency of this mode is much lower than
latency of mode 1, but slightly higher than latency of mode 0. To control
the interval at which data is flushed to database, set the db_update_period
parameter.3 - DB-Only scheme. No memory cache is kept, all operations being
directly performed with the database. The timer deletes all expired
subscriptions from database. The mode is useful if you configure more
servers sharing the same DB without any replication at SIP level. The mode
may be slower due the high number of DB operation.*
--
BR,
Denys Pozniak
[View Less]
Hello everyone! I faced some unfortunately issue with presence module. Let me
describe setup scheme a bit: I'm publishing dialog states via pua_dialoginfo
from one kamailio server(for calls proccessing itself) to another one
kamailio(standalone kamailio just for handling presence,blf,mwi etc)
So, about issue, let's say we have device A which has outgoing subscription
to extension which belongs to device B and device C(both devices has same
extension but different usernames, webrtc+sip phone, …
[View More]effectively its the
same Phone, I'm using pubruri_avps to change entities from usernames to
extension) . And, in some cases,for examle, when thirtparty is making call
to this extension(B,C devices) and making CANCEL after couple seconds - I
see the PUBLISH from callserver to presence server with state "terminated',
I see 200ok response.. but presence server isn't sending NOTIFY to device A
about state "terminated", everything is good with "trying" and "early"
states...
That problem is happening 1 of 50 tries.. I've tried a lot of things to fix
that - still are not succeed.
p.s. everything is good from logs/sip point of view... And also, when I
disable the webrtc device - I'm not able to reproduce that issue anymore.
Looks like something wrong with case, when you have multiple different
username behind the same presentity.
Maybe someone had same issue and may help me. Thanks!
--
Sent from: http://sip-router.1086192.n5.nabble.com/Users-f3.html
[View Less]
Hello,
I'm working with IMS network and VoLTE related services. My problem is
that I would like to use Kamailio as a presence watcher but I haven't
managed to make it happen yet. The approach would be that once
Kamailio gets 3rd party registration from S-CSCF the Kamailio would
send SUBSCRIBE back to S-CSCF to subscribe the presence of
subscription. Once a subscription place or get calls the status of
subscription would be updated to Kamailio and to the database where it
can be fetched. I have …
[View More]checked presence and pua modules, but haven't
found a way to make it work as expected.
Is there way to do that or is this totally incompatible approach to do that?
Best Regards,
Jukka Heikkilä
jutsco(a)gmail.com
[View Less]
Hi,
What is the recommended practice for implementing a self-sustained Presence
server from my current Kamailio configuration? That is I want the Presence
module to be fed status updates as Kamailio is routing calls and handling
registrations. So when a user registers, his phone is ringing, he is on
the phone, etc.., the Presence module gets notified and can update its
subscribers accordingly. Must I add snippets of codes to all of these
events and generate local Publish messages, or is …
[View More]there a better way?
I'm using the latest version 5.4.x.
Regards,
Michel Pelletier
[View Less]
Hi there!
When I start my webrtc kamailio suddenly stops.
I can see this on syslog:
Dec 28 16:08:53 webrtc /usr/sbin/kamailio[803]: CRITICAL: <core>
[core/mem/q_malloc.c:519]: qm_free(): BUG: freeing already freed
pointer (0x7f55756c2ab8), called from tls: tls_init.c:
ser_free(323), first free tls: tls_init.c: ser_malloc(293) - ignoring
Dec 28 16:08:53 webrtc /usr/sbin/kamailio[803]: CRITICAL: <core>
[core/mem/q_malloc.c:519]: qm_free(): BUG: freeing …
[View More]already freed
pointer (0x7f55756c3138), called from tls: tls_init.c:
ser_free(323), first free tls: tls_init.c: ser_malloc(293) - ignoring
... omit vervose ...
Dec 28 16:08:53 webrtc /usr/sbin/kamailio[803]: CRITICAL: <core>
[core/mem/q_malloc.c:519]: qm_free(): BUG: freeing already freed
pointer (0x7f55756c1f38), called from tls: tls_init.c:
ser_free(323), first free tls: tls_init.c: ser_free(323) - ignoring
...omit verbose ...
Dec 28 16:08:53 webrtc /usr/sbin/kamailio[803]: CRITICAL: <core>
[core/mem/q_malloc.c:519]: qm_free(): BUG: freeing already freed
pointer (0x7f557569f250), called from tls: tls_init.c:
ser_free(323), first free tls: tls_init.c: ser_realloc(299) - ignoring
Dec 28 16:08:53 webrtc /usr/sbin/kamailio[803]: CRITICAL: <core>
[core/mem/q_malloc.c:519]: qm_free(): BUG: freeing already freed
pointer (0x7f557565cf60), called from tls: tls_init.c:
ser_free(323), first free tls: tls_init.c: ser_malloc(293) - ignoring
Dec 28 16:08:53 webrtc /usr/sbin/kamailio[803]: INFO: <core>
[core/sctp_core.c:53]: sctp_core_destroy(): SCTP API not initialized
OS info:
root@webrtc:/etc/kamailio# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
root@webrtc:/etc/kamailio# free -m
total used free shared
buff/cache available
Mem: 16041 134 15551 108 356 15524
Swap: 974 0 974
Kamailio version:
version: kamailio 5.4.3 (x86_64/linux)
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS,
DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC,
Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX,
FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR,
USE_DST_BLACKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE
1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: unknown
compiled with gcc 8.3.0
Kamailio params:
SHM_MEMORY=512
PKG_MEMORY=32
SSL info:
root@webrtc:/etc/kamailio# apt show openssl
Package: openssl
Version: 1.1.1d-0+deb10u4
Priority: optional
Section: utils
Maintainer: Debian OpenSSL Team
<pkg-openssl-devel(a)lists.alioth.debian.org>
Installed-Size: 1.495 kB
Depends: libc6 (>= 2.15), libssl1.1 (>= 1.1.1)
Suggests: ca-certificates
Homepage: https://www.openssl.org/
Download-Size: 843 kB
APT-Manual-Installed: no
APT-Sources: http://security.debian.org/debian-security
buster/updates/main amd64 Packages
Description: juego de herramientas Secure Sockets Layer - utilidad
criptográfica
Este paquete forma parte de la implementación del proyecto OpenSSL
de los
protocolos criptográficos SSL y TLS para la comunicación segura a
través de
Internet.
.
Contiene el binario de propósito general para la línea de órdenes
/usr/bin/openssl,
útil para operaciones criptográficas como:
* creación de parámetros clave RSA, DH y DSA;
* creación de certificados X.509, CSR y CRL;
* calcular resúmenes de mensajes;
* cifrado y descifrado con cifras;
* probar clientes y servidores SSL/TLS;
* gestión de correo firmado o cifrado S/MIME.
Should I use another version of openssl, or maybe use gnutls?
Regards,
Javier Valencia
[View Less]
Hi,
What is the recommended practice for implementing a self-sustained Presence
server from my current Kamailio configuration. That is I want the Presence
module to be fed status updates from the same Kamailio that is routing the
calls. So when a user registers, his phone is ringing, he is busy, on the
phone, etc.., the Presence module gets notified and can update subscribers
accordingly. Must I add snippets of codes to all of these events and
generate local Publish messages, or is there a …
[View More]better way?
I'm using the latest version 5.4.x.
Regards,
Michel Pelletier
[View Less]
Hello,
I am redirecting the agents/reps to their asterisk server based on the
hostname which they connect, and, i wonder if it's possible to read from db
instead of the file cause it's getting big ;)
# Dispatch requests
route[DISPATCH] {
switch ($fd){
case "oro.streamlinepbx.nl":
if (!ds_select_dst("1", "4")) {
send_reply(503, "Service
Unavailable $fd");
…
[View More] exit;
}
break;
case "oro3.streamlinepbx.nl":
if (!ds_select_dst("2", "4")) {
send_reply(503, "Service
Unavailable $fd");
exit;
}
break;
............
default:
log("unknow destination?");
send_reply(503, "No service defined");
xlog("--- SCRIPT: going to <$ru> via <$du>
...Exiting");
exit;
}
xlog("--- SCRIPT: going to <$ru> via <$du> (attrs:
$xavp(_dsdst_=>attrs))\n");
t_on_failure("RTF_DISPATCH");
route(RELAY);
exit;
}
Thanks,
[View Less]
A year that was very tough for the entire world is getting close to its
end, no doubt that was the most challenging in our life so far for many
of us, however, with a distributed, friendly and collaborative
community, Kamailio project continued to develop consistently, bringing
out a new major release. I trust it helped people and companies world
wide to to connect with the dear ones and build a better way of living.
The season holidays are ahead, time to rest a bit, spend time with
family and …
[View More]friends, being online or face to face. As usual, I take this
chance to express my thanks and greetings to all the friends,
developers, supporting companies and community members that made 2020
another great year for Kamailio project.
Enjoy the holidays! Merry Christmas!
Daniel
* Santa is flying Kamailio! *
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
[View Less]
Hallo,
I try to install the module app_lua in Kamailio 5.3.
ls: cannot access '/usr/lib/liblua*': No such file or directory
ls: cannot access '/usr/lib/liblua*': No such file or directory
CC (gcc) [M app_lua.so] app_lua_mod.o
In file included from app_lua_mod.c:32:
app_lua_api.h:25:10: fatal error: lua.h: No such file or directory
#include <lua.h>
^~~~~~~
compilation terminated.
make[2]: *** [../../Makefile.rules:100: app_lua_mod.o] Error 1
make[1]: *** …
[View More][Makefile:511: modules] Error 1
make[1]: Leaving directory '/usr/local/src/kamailio-5.3/kamailio/src'
make: *** [Makefile:34: all] Error 2
Any help appreciated
Greeting Rob van den Bulk
[View Less]
FOSDEM - Real Time Communications devroom CfP
=============================================
NOTE: we have extended the deadline but we will give preference
to people who submitted earlier when we set the time for each
talk. Please submit your proposal ASAP so that you can get
your preferred time slot.
Overview
--------
[FOSDEM](https://fosdem.org) is one of the world's premier meetings of
free software developers, with over five thousand people attending each
year. FOSDEM 2021 takes place 6-…
[View More]7 February 2021 and for the very first
time, it will be online.
This document contains information about:
- Real-Time Communications developer room (devroom)
- speaking opportunities
- volunteering
New rules for the online edition
--------------------------------
This year FOSDEM will be fully online instead of being held in Brussels,
here are the most important things to know about this (quite
significant) change:
- The reference time will be Brussels local time (CET)
- Talks will be pre-recorded in advance, and streamed during the event
- The Q/A session will be live
- A facility will be provided for people watching to chat between
themselves
- A facility will be provided for people watching to submit questions
Call for participation - Real Time Communications (RTC)
-------------------------------------------------------
The Real-Time devroom is about all things involving real-time
communication, including: XMPP, SIP, WebRTC, telephony, mobile VoIP,
codecs, peer-to-peer, privacy and encryption.
**We are looking for speakers for the devroom and volunteers who can
help manage the scheduling and live Q&A sessions.**
The devroom is only on Saturday, 6th of February 2021.
To discuss the devroom, volunteer or ask questions, please join the
[Free-RTC mailing
list](http://lists.freertc.org/mailman/listinfo/discuss).
### Key dates
- 20th Dec: Submission deadline (extended to 8 January)
- 24th Dec: Announcement of selected talks
- 15th Jan: Presentations upload deadline
- 6th & 7th Feb: Conference dates (online)
- 6th Feb: RTC devroom date (online)
### Speaking opportunities
Note: if you used FOSDEM Pentabarf before, please use the same
account/username
Real-Time Communications devroom: deadline 23:59 UTC on 20th of
December. Please use the
[Pentabarf](https://penta.fosdem.org/submission/FOSDEM21/) system to
submit a talk proposal for the devroom. On the "General" tab, please
look for the "Track" option and choose "Real Time Communications
devroom".
### First-time speaking?
FOSDEM devrooms are a welcoming environment for people who have never
given a talk before. Please feel free to contact the devroom
administrators personally if you would like to ask any questions about
it.
This year this is more true than ever, being able to record your
presentation offline without an audience in front can greatly help build
up one's confidence!
### Submission guidelines
The Pentabarf system will ask for many of the essential details. Please
remember to re-use your account from previous years if you have one.
In the "Submission notes", please tell us about:
- The purpose of your talk
- Any other talk applications (devrooms, lightning talks, main track)
- Availability constraints and special needs
You can use HTML and links in your bio, abstract and description.
If you maintain a blog, please consider providing us with the URL of a
feed with posts tagged for your RTC-related work.
We will be looking for relevance to the conference and devroom themes,
presentations aimed at developers of free and open source software about
RTC-related topics.
Please feel free to suggest a duration between 20 minutes and 55 minutes
but note that the final decision on talk durations will be made by the
devroom administrators based on the number of received proposals. As the
two previous devrooms have been combined into one, we may decide to give
shorter slots than in previous years so that more speakers can
participate.
Please note FOSDEM aims to record and live-stream all talks. The CC-BY
license is used.
### Recording help
The devroom organization is able to provide help with recording your
session. The recording would be performed at a scheduled time with one
of us, so you won't be alone giving your presentation. Minimal edits
will be possible, but the ideal plan is to record it in one shot.
Thanks Dan Jenkins for providing us with the means to do this!
Volunteers needed
-----------------
To make the devroom run successfully, we are looking for volunteers.
This year many things be done for the first time, so all the help we can
get is more than welcome.
Spread the word and discuss
---------------------------
If you know of any mailing lists where this CfP would be relevant,
please forward this document. If this devroom excites you, please blog
or microblog about it, especially if you are submitting a talk.
If you regularly blog about RTC topics, please send details about your
blog to the planet site administrators:
- All projects https://planet.freertc.org planet(a)freertc.org
- XMPP https://planet.jabber.org ralphm(a)ik.nu
- SIP https://planet.sip5060.net planet(a)sip5060.net
Please also link to the Planet sites from your own blog or web site as
this helps everybody in the free real-time communications community.
Contact
-------
For any private queries, contact us directly using the address
**fosdem-rtc-admin(a)freertc.org** and for any other queries please ask on
the [Free-RTC mailing
list](http://lists.freertc.org/mailman/listinfo/discuss).
The devroom administration team:
- Saúl Ibarra Corretgé <s(a)saghul.net>
- Ralph Meijer <ralphm(a)ik.nu>
- Daniel-Constantin Mierla <miconda(a)gmail.com>
- Daniel Pocock <daniel(a)pocock.pro>
- Guus der Kinderen <guus.der.kinderen(a)gmail.com>
[View Less]
Hello,
I'm a newbie when it comes to Kamailio and I would like to know if there's a
working example of a Mid-Registrar implementation. I read on other posts
that the UAC module can be used to achieve this but, honestly, I don't
understand how. If any of you could provide some path I could follow I would
be very thankful.
--
Sent from: http://sip-router.1086192.n5.nabble.com/Users-f3.html
Any updates on this?
On Tue, Dec 15, 2020 at 8:13 PM Syed Shahryar <syedshahryar(a)gmail.com>
wrote:
> I am new to Kamailio so may be doing something wrong. I looked at
> https://www.kamailio.org/wiki/cookbooks/5.4.x/core.
>
> I tried the following combinations but getting errors in all cases:
>
> #!subst "/EVAPI_PORT/$env(EVAPI_PORT)/"
> #!substdef "/EVAPI_PORT/$env(EVAPI_PORT)/"
> #!substdefs "/EVAPI_PORT/$env(EVAPI_PORT)/"
>
> *Errors:*
> 0(6) ERROR: …
[View More]<core> [core/pvapi.c:924]: pv_parse_spec2(): error searching
> pvar "env"
> 0(6) ERROR: <core> [core/pvapi.c:1127]: pv_parse_spec2(): wrong char
> [E/69] in [$env(EVAPI_PORT)/] at [5 (5)]
> 0(6) ERROR: <core> [core/re.c:170]: parse_repl(): bad specifier in
> replace part /$env(EVAPI_PORT)/
> 0(6) ERROR: <core> [core/ppcfg.c:69]: pp_subst_add(): bad subst
> expression: /EVAPI_PORT/$env(EVAPI_PORT)/
>
> At a later step, I would like to do:
> #!define EVAPI_LISTEN "0.0.0.0:EVAPI_PORT"
>
> And use EVAP_LISTEN in mod_param for the evapi module.
>
> And something similar to above for TLS settings.
>
>
> On Tue, Dec 15, 2020 at 12:41 PM Daniel-Constantin Mierla <
> miconda(a)gmail.com> wrote:
>
>> Hello,
>>
>> as written on the tracker, look at using #!subst or #!substdef (see core
>> cookbook), they should be able to get the substitution value from
>> environment using $env(NAME).
>>
>> The master branch introduced #!defenv as a (simpler) alternative.
>>
>> Cheers,
>> Daniel
>> On 12.12.20 05:33, Syed Shahryar wrote:
>>
>> I tried many combinations of the following but I keep getting syntax
>> errors:
>>
>> listen=tls:TLS_IP:$env(TLS_PORT) advertise PUBLIC_IP:$env(TLS_PORT)
>>
>>
>> TLS_IP and PUBLIC_IP are constants defined at the top using #!define.
>> And, TLS_PORT is supposed to be the env variable.
>>
>>
>> --
>> --
>> This message contains confidential information and is intended only for
>> the individual named. If you are not the named addressee, you should not
>> disseminate, distribute or copy this email. Please notify the sender
>> immediately by email if you have received this email by mistake and delete
>> this email from your system. Email transmission cannot be guaranteed to be
>> secure or error-free, as information could be intercepted, corrupted, lost,
>> destroyed, arrive late or incomplete, or contain viruses. The sender,
>> therefore, does not accept liability for any errors or omissions in the
>> contents of this message which arise as a result of email transmission. If
>> verification is required, please request a hard-copy version.
>>
>> _______________________________________________
>> Kamailio (SER) - Users Mailing Listsr-users@lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>
>> --
>> Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
>> Funding: https://www.paypal.me/dcmierla
>>
>>
>
> --
> --
> This message contains confidential information and is intended only for
> the individual named. If you are not the named addressee, you should not
> disseminate, distribute or copy this email. Please notify the sender
> immediately by email if you have received this email by mistake and delete
> this email from your system. Email transmission cannot be guaranteed to be
> secure or error-free, as information could be intercepted, corrupted, lost,
> destroyed, arrive late or incomplete, or contain viruses. The sender,
> therefore, does not accept liability for any errors or omissions in the
> contents of this message which arise as a result of email transmission. If
> verification is required, please request a hard-copy version.
>
--
--
This message contains confidential information and is intended only for the
individual named. If you are not the named addressee, you should not
disseminate, distribute or copy this email. Please notify the sender
immediately by email if you have received this email by mistake and delete
this email from your system. Email transmission cannot be guaranteed to be
secure or error-free, as information could be intercepted, corrupted, lost,
destroyed, arrive late or incomplete, or contain viruses. The sender,
therefore, does not accept liability for any errors or omissions in the
contents of this message which arise as a result of email transmission. If
verification is required, please request a hard-copy version.
[View Less]
Hello,
I consider using keydb-server in an active/action setup without sentinel.
Do you know if there is a way to declare both hosts in ndb_redis with the same server name (target use : topos) ?
Regards,
David
Apologies for not having included the sr-users in the previous email.
Anyhow, the solution suggested by Social Boh indeed worked, as a side
effect of which we would not run into the issue described.
*NOTE:* There was a peculiar configuration in keepalived with keeping both
the nodes as BACKUP and setting the 'nopreempt' flag only in the actual
MASTER(one with higher 'priority') side to make the keepalived thing to
work properly.
However, I was wondering if someone could confirm if this issue …
[View More]has been
fixed inside the source code itself as I am using an older release v5.3.2
Regards,
Harneet Singh
On Thu, Dec 17, 2020 at 9:52 PM harneet singh <hbilling(a)gmail.com> wrote:
> Thanks Social Boh,
>
> I will investigate this possibility and if it does work in our case, that
> should circumvent the issue.
> In addition, is there a fix known to the SR-Users which could be available
> inside the Dispatcher module to cause syncing just like the syncing is
> there in the Dialog module via DMQ. I wanted to check this as I am using
> v5.3.2 and unaware if new releases could have fixed this issue?
>
> Regards,
> Harneet Singh
>
> On Wed, Dec 16, 2020 at 10:46 PM Social Boh <social(a)bohboh.info> wrote:
>
>> Maybe a option is leave the secondary like primary when primary go up
>> newly.
>>
>> Example: Primary go down, Secondary is the new Primary. Primary came back
>> up but Secondary still is the VIP and still process the calls.
>>
>> Only if Secondary go down, primary is the new VIP.
>>
>> The keepalived parameter for this behaviour is:
>>
>> *nopreempt*
>>
>> ---
>> I'm SoCIaL, MayBe
>>
>> El 16/12/2020 a las 11:57 a. m., harneet singh escribió:
>>
>> Hi All,
>>
>> I am using Kamailio in HA mode with Keepalived providing the VIP(Virtual
>> IP) functionality, and have run into a rather peculiar issue.
>>
>> *Setup:*
>>
>> Caller ------------ KamailioVIP(*Primary *and *Secondary*
>> Kamailio)------- Callee
>>
>> HA provided by Keepalived
>> DMQ is used between the Primary and Secondary Kamailio for dialog sync
>>
>> *Issue Seen:*
>>
>> *Suppose the Primary Kamailio has been brought down* and the Secondary
>> one is actually active and tied to the VIP.
>>
>> When a call is fired from the Caller, it traverses through the Secondary
>> Kamailio and lands onto the callee. The dialogs are updated properly. At
>> this point, the Primary Kamailio is brought up, and dialog state is synced
>> due to the DMQ module.
>> The Keepalived will now attach the VIP to the Primary Instance. If the
>> caller hangs up the phone at this point, the BYE sip message traverses
>> through the Primary Kamailio instance to the callee and the call is
>> cleared, but there are two issues here.
>>
>> 1. The Primary Kamailio throws an error in *ds_load_remove() *saying
>> that it cannot find the load for the specific call id. This is apparently
>> due to the fact that the dispatcher data is not synced between the two
>> modules but dialog data is. So dialog wise, things are fine. Can this be
>> fixed somehow?
>>
>> 2. The above is still as grave a problem as the dialogs are cleared.
>> BUT, if we check the '*kamcmd dispatcher.list*' on the *SECONDARY*
>> kamailio even well after the call is cleared, the *DLGLOAD* shows 1.
>> Since we are using the *Call Load based distribution* for the
>> dispatching, this is effectively one call stuck on the dispatcher, which
>> leads to resource leak.
>>
>> Is this a known issue, and if so, do we have a way to circumvent this?
>>
>> Regards,
>> Harneet Singh
>> --
>> "Once you eliminate the impossible, whatever remains, no matter how
>> improbable, must be the truth" - Sir Arthur Conan Doyle
>>
>> _______________________________________________
>> Kamailio (SER) - Users Mailing Listsr-users@lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>
>>
>
> --
> "Once you eliminate the impossible, whatever remains, no matter how
> improbable, must be the truth" - Sir Arthur Conan Doyle
>
--
"Once you eliminate the impossible, whatever remains, no matter how
improbable, must be the truth" - Sir Arthur Conan Doyle
[View Less]
Hello,
Kamailio SIP Server v5.3.8 stable has been released.
This is a maintenance release of the previous stable branch (5.3), that includes fixes since the release of v5.3.7. There are no change to database schema or configuration language structure that you have to do on previous installations of v5.3.x.
Deployments running previous v5.3.x versions are recommended to be upgraded to v5.3.8.
For more details about version 5.3.8 (including links and guidelines to download the tar …
[View More]file or from GIT repository), visit:
https://www.kamailio.org/w/2020/12/kamailio-v5-3-8-released/
RPM, Debian/Ubuntu packages will be available soon as well.
Many thanks to all contributing and using Kamailio!
Cheers,
Henning
--
Henning Westerholt - https://skalatan.de/blog/
Kamailio services - https://gilawa.com<https://gilawa.com/>
[View Less]
Hi, I have been trying to integrate MSTeams with PBX Through Kamailio. Calls are working now. Hold has Issues. MSTeams uses REFER to manage this all with NOTIFY.
I am sending t_send_reply("202", "Accepted");
when receive Refer now I need to send NOTIFY I think I can use t_uac_send() NOTIFY I am unable to send t_uac_send properly on when recertifications refer from MSTeams.
Any one with the experience on this ?
Thanks,
Hello,
I'd like to use a < select > as described here:
http://www.kamailio.org/wiki/cookbooks/5.4.x/selects#contactparams_s
I'm trying to extract a parameter from the Contact URI.
What I've tried to do:
xlog("L_INFO", "contact.uri: $sel(contact.uri)\n"); # OK
xlog("L_INFO", "contact.uri.params: $sel(contact.uri.params)\n"); # null ??
This does not seem to work... see output here :
3(10316) INFO: {1 INVITE r8wEHsAgxNIS5OJL} …
[View More]<script>: contact.uri: sip:+33145678901;tgrp=YC031;trunk-context=YC90@10.31.22.2:5099
3(10316) INFO: {1 INVITE r8wEHsAgxNIS5OJL} <script>: contact.uri.params: <null>
What am I doing wrong ?
Maybe this is the wrong approach for what I'm trying to do ?
Regards,
Nicolas.
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
[View Less]
Hello,
I am planning to release next week (likely on Monday 21st December) the next minor version out of branch 5.3, version 5.3.8.
Backports of fixed issues from git master will be integrated as usual. If you are aware of new issues which were not yet reported, let us know (by creating an issue on the tracker).
Cheers,
Henning
--
Henning Westerholt - https://skalatan.de/blog/
Kamailio services - https://gilawa.com<https://gilawa.com/>
What's the best way of sending a message to all other sessions (and the
receiver) of the same sender?
For example: If user1(a)example.com is logged in to Kamailio from multiple
devices and from one of the devices user1 sends a SIP message to
user2(a)example.com. I want the message forwarded not only to
user2(a)example.com but also to all other user1(a)example.com sessions.
What's the easiest way to achieve this?
--
--
This message contains confidential information and is intended only for …
[View More]the
individual named. If you are not the named addressee, you should not
disseminate, distribute or copy this email. Please notify the sender
immediately by email if you have received this email by mistake and delete
this email from your system. Email transmission cannot be guaranteed to be
secure or error-free, as information could be intercepted, corrupted, lost,
destroyed, arrive late or incomplete, or contain viruses. The sender,
therefore, does not accept liability for any errors or omissions in the
contents of this message which arise as a result of email transmission. If
verification is required, please request a hard-copy version.
[View Less]
Hi,
Can't figure it out when to use RTPproxy, i am forwarding everything to
asterisk in seem to work without RTPproxy.
The scenario is like this:
Softphone -> INTERNET -> Kamailio - > Asterisk (private ip)
Now it seems to work without any rtpproxy but is it ok?
Hi All,
I am using Kamailio in HA mode with Keepalived providing the VIP(Virtual
IP) functionality, and have run into a rather peculiar issue.
*Setup:*
Caller ------------ KamailioVIP(*Primary *and *Secondary* Kamailio)-------
Callee
HA provided by Keepalived
DMQ is used between the Primary and Secondary Kamailio for dialog sync
*Issue Seen:*
*Suppose the Primary Kamailio has been brought down* and the Secondary one
is actually active and tied to the VIP.
When a call is fired …
[View More]from the Caller, it traverses through the Secondary
Kamailio and lands onto the callee. The dialogs are updated properly. At
this point, the Primary Kamailio is brought up, and dialog state is synced
due to the DMQ module.
The Keepalived will now attach the VIP to the Primary Instance. If the
caller hangs up the phone at this point, the BYE sip message traverses
through the Primary Kamailio instance to the callee and the call is
cleared, but there are two issues here.
1. The Primary Kamailio throws an error in *ds_load_remove() *saying
that it cannot find the load for the specific call id. This is apparently
due to the fact that the dispatcher data is not synced between the two
modules but dialog data is. So dialog wise, things are fine. Can this be
fixed somehow?
2. The above is still as grave a problem as the dialogs are cleared. BUT,
if we check the '*kamcmd dispatcher.list*' on the *SECONDARY* kamailio even
well after the call is cleared, the *DLGLOAD* shows 1. Since we are using
the *Call Load based distribution* for the dispatching, this is effectively
one call stuck on the dispatcher, which leads to resource leak.
Is this a known issue, and if so, do we have a way to circumvent this?
Regards,
Harneet Singh
--
"Once you eliminate the impossible, whatever remains, no matter how
improbable, must be the truth" - Sir Arthur Conan Doyle
[View Less]
Hello,
(cross-posting to kamailio public groups, a few may get this message
duplicated).
Fosdem 2021 is going to be online, meaning that it opens the possibility
for everyone to do a presentation on the RTC Devroom, no longer being
required to travel to Brussels. Therefore I am sending here the link to
CFP in case someone would be interested to present about Kamailio or
something else RTC-related:
* https://github.com/FreeRTC/fosdem/blob/master/2021/cfp.md
New speakers are always …
[View More]welcome! Only have in mind that the event is
targeting developers and source code development, therefore your
proposals have to be made from this perspective.
Note also that submission deadline is 20th of December, very short time
frame from now.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
[View Less]
Here is my setting:
modparam("dmq", "server_address", "sip:0.0.0.0:5090" )
modparam("dmq", "notification_address", "sip:0.0.0.0:5090")
modparam("dmq", "multi_notify", 1)
modparam("dmq", "num_workers", 2)
modparam("dmq", "worker_usleep", 0)
modparam("dmq", "ping_interval", 90)
I have tried localhost and I believe other options but to no avail.
I also get the following message:
ERROR: dmq [dmq_funcs.c:516]: ping_servers(): cannot retrieve initial
nodelist from sip:0.0.0.0:5090
How do I set …
[View More]up DMQ for adding and removing any Kamailio instance to/from
the cluster and any Kamailio instance could serve any request coming from
any client? ie. all Kamailio instances keep the current state in DMQ.
I also have dmq_usrloc enabled.
--
--
This message contains confidential information and is intended only for the
individual named. If you are not the named addressee, you should not
disseminate, distribute or copy this email. Please notify the sender
immediately by email if you have received this email by mistake and delete
this email from your system. Email transmission cannot be guaranteed to be
secure or error-free, as information could be intercepted, corrupted, lost,
destroyed, arrive late or incomplete, or contain viruses. The sender,
therefore, does not accept liability for any errors or omissions in the
contents of this message which arise as a result of email transmission. If
verification is required, please request a hard-copy version.
[View Less]
Dear Team,
I am using kamailio + rtpengine, how can I processed dtmf from cfg scripts. even thought I can able to see dtmf over syslog.
but can not able to capture in kamailio.cfg.
how can I prepared ivr using kamalio?
Please find the attached syslog.
Regards
Amit Pal
I am sending JWT tokens via SIP URL through JSSIP for authentication before
websocket connection is made.
However, I am getting errors like:
ERROR: <core> [core/parser/parse_uri.c:1326]: _parse_ruri(): bad uri <
*/sip?jwt=..*
I have the following setting in kamailio config:
modparam("xhttp", "url_match", "^/sip") // only match this path
Is this a bug or some configuration issue? How do I resolve it?
--
--
This message contains confidential information and is intended only for the
…
[View More]individual named. If you are not the named addressee, you should not
disseminate, distribute or copy this email. Please notify the sender
immediately by email if you have received this email by mistake and delete
this email from your system. Email transmission cannot be guaranteed to be
secure or error-free, as information could be intercepted, corrupted, lost,
destroyed, arrive late or incomplete, or contain viruses. The sender,
therefore, does not accept liability for any errors or omissions in the
contents of this message which arise as a result of email transmission. If
verification is required, please request a hard-copy version.
[View Less]
Hello,
Is it something like the XFF for Kamailio so I can see in asterisk (sip
show peers) the ip of the registered softphone and not Kamailio's IP ?
Thanks!
I tried many combinations of the following but I keep getting syntax errors:
listen=tls:TLS_IP:$env(TLS_PORT) advertise PUBLIC_IP:$env(TLS_PORT)
TLS_IP and PUBLIC_IP are constants defined at the top using #!define.
And, TLS_PORT is supposed to be the env variable.
--
--
This message contains confidential information and is intended only for the
individual named. If you are not the named addressee, you should not
disseminate, distribute or copy this email. Please notify the sender
…
[View More]immediately by email if you have received this email by mistake and delete
this email from your system. Email transmission cannot be guaranteed to be
secure or error-free, as information could be intercepted, corrupted, lost,
destroyed, arrive late or incomplete, or contain viruses. The sender,
therefore, does not accept liability for any errors or omissions in the
contents of this message which arise as a result of email transmission. If
verification is required, please request a hard-copy version.
[View Less]
Greetings all,
I'm having some dropped MySQL connections in my Kamailio in times of low or
no activity in the proxy.
These are the errors i'm getting :
db_mysql [km_dbase.c:123]: db_mysql_submit_query(): driver error on
query: Lost connection to MySQL server during query (2013)
<core> [db_query.c:348]: db_do_update(): error while submitting query
usrloc [ucontact.c:1147]: db_update_ucontact_ruid(): updating database
failed
usrloc [ucontact.c:1663]: update_contact_db(): …
[View More]failed to update database
registrar [save.c:784]: update_contacts(): failed to update contact
sl [sl_funcs.c:414]: sl_reply_error(): stateless error reply used: I'm
terribly sorry, server error occurred (1/SL)
In order to try to fix this i've added timeout_interval and ping_interval
from the db_mysql module. Is this the best approach?
I've restarted my Kamailio but i don't see any ping going to my BD. Is
there any other config that I need to add so that the pings are sent?
Is it possible to do a ping to verify connection and reconnect mannualy on
the config file?
Best Regards,
[View Less]
Hi,
I'm trying to investigate a possible memory leak issue in Kamailio and I'm
following the instructions indicated in
https://www.kamailio.org/wiki/tutorials/troubleshooting/memory
I'm using Kamailo 4.4 with the following kamailio internals:
Print out of kamailio internals
Version: kamailio 4.4.2 (x86_64/linux) 892ad6
Default config:
/apollo/env/TachyonPlatformKamailio/etc/kamailio/kamailio.cfg
Default paths to modules:
/apollo/env/TachyonPlatformKamailio/lib64/kamailio/modules
…
[View More]Compile flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS,
USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP,
PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, DBG_QM_MALLOC,
USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER,
USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
MAX_RECV_BUFFER_SIZE=262144
MAX_LISTEN=16
MAX_URI_SIZE=1024
BUF_SIZE=65535
DEFAULT PKG_SIZE=8MB
DEFAULT SHM_SIZE=64MB
ADAPTIVE_WAIT_LOOPS=1024
TCP poll methods: poll, epoll_lt, epoll_et, sigio_rt, select
Source code revision ID: 892ad6
Compiled with: x86_64-unknown-linux-gnu-gcc 4.9.4
Compiled on: 23:36:48 Dec 8 2020
Thank you for flying kamailio!
I have attached to one of the kamailio tcp receiver processes via GDB and I
am trying to dump memory blocks from the memory manager. However,
mem_block is not in the current_context.
The following is the output from my gdb session:
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-amazon-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from
/opt/codedeploy-agent/deployment-root/95bb1634-e653-4cec-b327-99b18b9227a8/d-7AJ1XZP58/deployment-archive/sbin/kamailio...done.
Attaching to program: /apollo/env/TachyonPlatformKamailio/sbin/kamailio,
process 8946
ptrace: Operation not permitted.
(gdb) set $i=0
(gdb) set $a = mem_block->first_frag
No symbol "mem_block" in current context.
(gdb) info list
Undefined info command: "list". Try "help info".
(gdb) info threads
No threads.
Is there something I need to do before accessing the mem_block symbol?
Also do you have any other suggestions for debugging memory leaks that may
not be documented?
Note: i can't upgrade to the latest version of Kamailio as we have custom
modules and would require considerable effort to upgrade.
Thanks,
Sheldon.
[View Less]
Hi all, does anyone was able to use sngrep (with -k option) to decrypt TLS
connections?
I'am doing what help says; used private key is the correct one; but no
traffic is seen on sngrep.
If i use not ecrypted call i can see everything, so sngrep is working good.
Any hint?
regards
--
Sent from: http://sip-router.1086192.n5.nabble.com/Users-f3.html
Hi,
I am forwarding all the traffic to my asterisk server ( including registers)
everything seems to work when i first register but if stay idle 2-3 minute
it gets unregistered and then i can't register back unless i restart
kamailio
see attached print screen
Hello,
Kamailio SIP Server v5.4.3 stable release is out.
This is a maintenance release of the latest stable branch, 5.4, that
includes fixes since the release of v5.4.2. There is no change to
database schema or configuration language structure that you have to do
on previous installations of v5.4.x. Deployments running previous v5.4.x
versions are strongly recommended to be upgraded to v5.4.3.
For more details about version 5.4.3 (including links and guidelines to
download the tarball or …
[View More]from GIT repository), visit:
* https://www.kamailio.org/w/2020/12/kamailio-v5-4-3-released/
RPM, Debian/Ubuntu packages will be available soon as well.
Many thanks to all contributing and using Kamailio!
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
[View Less]
Hi all,
I’m trying to implement following routing behaviour:
- ingress INVITE is sequentially forked to 1 or more endpoints
- under certain conditions sequential forking may be stopped and pre-defined error returned to the caller
Here’s is part of the config responsible for handling errors:
failure_route[ROUTE_ELEMENT_FINAL_FAILURE_HELPER] {
route(ROUTE_ELEMENT_FINAL_FAILURE);
}
route[ROUTE_ELEMENT_FINAL_FAILURE] {
# We need to check if the error happens before the first egress, …
[View More]because T-state is not defined yet so we can not use t_reply
if ($var(before_first_egress) == 0) {
t_reply("$var(sipCode)", "$var(sipMessage)");
} else {
sl_send_reply("$var(sipCode)", "$var(sipMessage)");
}
}
Here is a simple scenario where delivering call to first endpoint times out after receiving 180 Ringing (using custom fr_inv_timer value) where:
- .33 is caller
- .208 is Kamailio
- .138 is callee
Notice that 504 is retransmitted by Kamailio. Here is a comparison of 180 and 504 returned by Kamailio:
As can be seen, 180 was proxied from the callee and has callee’s to-tag (tag=CALLEE1), however 504 that was generated by Kamailio using t_reply() has a different to-tag (presumably generated by Kamailio).
How can I tell Kamailio not to generate new to-tag but to use the last one that proxied back to the caller?
Thanks in advance for any help!
Regards,
Ivan
[View Less]
Hello,
I am considering to release Kamailio v5.4.3 sometime next week, likely
on Monday, December 14, 2020. This is the usual heads up notification to
see if anyone is aware of issues not yet reported to bug tracker and if
yes, do it as soon as possible to give them a chance to be fixed.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Funding: https://www.paypal.me/dcmierla
This is a generic question about using environment variables in a config
file.
If I want to use below where TLS_IP itself is a constant defined somewhere
else. TLS_IP might be set via an env variable as well.
#!define TLS_TO_LISTEN tls:TLS_IP:$env(TLS_PORT)
Will that work? I see syntax errors and other weird issues. What's the
right syntax?
--
--
This message contains confidential information and is intended only for the
individual named. If you are not the named addressee, you should not
…
[View More]disseminate, distribute or copy this email. Please notify the sender
immediately by email if you have received this email by mistake and delete
this email from your system. Email transmission cannot be guaranteed to be
secure or error-free, as information could be intercepted, corrupted, lost,
destroyed, arrive late or incomplete, or contain viruses. The sender,
therefore, does not accept liability for any errors or omissions in the
contents of this message which arise as a result of email transmission. If
verification is required, please request a hard-copy version.
[View Less]
Can someone share their configuration file explaining how they used consul
to achieve high availability?
--
--
This message contains confidential information and is intended only for the
individual named. If you are not the named addressee, you should not
disseminate, distribute or copy this email. Please notify the sender
immediately by email if you have received this email by mistake and delete
this email from your system. Email transmission cannot be guaranteed to be
secure or error-free, …
[View More]as information could be intercepted, corrupted, lost,
destroyed, arrive late or incomplete, or contain viruses. The sender,
therefore, does not accept liability for any errors or omissions in the
contents of this message which arise as a result of email transmission. If
verification is required, please request a hard-copy version.
[View Less]
Hello,
If the user never registered (or few hours passed from its unregister) the
subscription to REGINFO will return an empty body NOTIFY (no xml).
I don't see any flag in module to force a body for this case, as in the
presence module is force_dummy_presence who can force a body on a first
NOTIFY.
The RFC3680 says :
o Notifications triggered from a SUBSCRIBE contain full state
(the list of all contacts bound to the address-of-record).
It appears that in this …
[View More]case the response is not conform to RFC.
Regards,
Adrian
[View Less]
Hello all!
We are running Kamailio version 5.3.3 with 16 small Asterisk servers.
Kamailio uses a dispatcher module to distribute calls. Algorithm #11 is
selected. All destinations are configured with priority set to 50 and
attribute to rweight=50.
We noticed that one server constantly receives more calls than others. I
run a few tests. I was sending 1000 calls to the system. 4 per second. All
servers except one were getting around 60 calls while the last one - around
100.
I then noticed that …
[View More]the server which receives most calls is always last in
the "kamcmd dispatcher.list" command output. I then changed the order in
the dispatcher DB table and repeat the test. The other server that now was
last was getting the most calls.
Does anyone else use algorithm #11 and finds the same thing? Is there
something additional that I can provide to help with the investigation?
Thanks!
[View Less]
Hello Kamailions,
Well, I think I found the cause of my issue where the Dialog profile was
not defined.. Well it was.
I had not enabled antiflood, by not enabling antiflood, the htable
module was also not loaded...
I guess the us of profiles_with_value parameter needs htable? Is that
correct?
If so, that means the htable is a dependency for the dialog module....,
then it would be sometihng that could be added to the documentation of
the dialog module.
When this is not the case, then I …
[View More]have to dig deeper, as I do not get an
error anymore about the profile not being known...
Thank you.
Gertjan
[View Less]
Hello,
Does anybody has used with success the reginfo modules ?
I added lines bellow in configuration, and tried different variations,
Even if my subscribe for "reginfo" events is accepted (with 202 OK), I
receive no notification when respective user registers.
Nor do I get the xml body in the first notification.
Added in my config:
loadmodule "presence_reginfo.so"
loadmodule "pua_reginfo.so"
modparam("pua_reginfo", "default_domain", "192.168.60.65")
modparam("…
[View More]pua_reginfo", "server_address", "sip:reginfo@192.168.60.65")
modparam("pua_reginfo", "publish_reginfo", 1)
Thank you in advance,
Adrian
[View Less]
Aatif Shaikh <aatif.shaikh(a)ecosmob.com>
Mon, Dec 7, 11:00 AM (3 days ago)
to sr-users
Hello All
I configure my kamailio.cfg to handle SLA using (SCA module) and shared
presence is working but still facing some issue in case of hold invite and
BYE and the reason behind of that issue is following error
Nov 26 07:38:40 SBC-4-1 /usr/local/sbin/kamailio[104107]: ERROR: sca
[sca_call_info.c:1008]: sca_call_info_invite_request_handler(): Failed to
update sip:4569@test.sip.abcd.com …
[View More]appearance-index 0 to active
actually, in Kamailio appearances, I can see the entry for this call but
the index is 1 instead of 0, and Kamailio going to update with a 0 index
[root@SBC-4-1 ntcarfte-kamailio]# kamcmd sca.all_appearances
sip:4569@test.sip.abcd.com 1 active 1606376289 sip:4569@10.xx.xx.xx
:5070;transport=udp sip:2003@test.sip.abcd.com
186161_mobile-rel120MTQ5OTcyZjFhMjMyNmI1ZGE1MWY4ODc2M2RkN2VmZmQ
45dc18d8 H6cS9vecZ248B
if I manually update appearances using RPC command with index 1 then the
phone started blinking as I change state to held
# kamcmd sca.update_appearance sip:4569@sc4test.sip.teledge.com 1 held
# kamcmd sca.all_appearances
sip:4569@test.sip.abcd.com 1 held 1606376516 sip:4569@10.xx.xx.xx
:5070;transport=udp sip:2003@test.sip.abcd.com
186161_mobile-rel120NzE5MDgyZDc1NjJiYjcwMWFlYmI3NzM3NjE2OTRhZjU
08f005cb eK9ratm83g92e
kamailio.cfg
route[SCA] {
if(is_method("SUBSCRIBE")) {
if ($hdr(Event) == "call-info" || $hdr(Event) ==
"line-seize") {
xlog("L_INFO","(MAIN) :HELLO ($avp(uuid)) : $avp(rsi) $sp
$hdr(Event)");
xdbg("SCA: $hdr(Event) SUBSCRIBE $ru from $si:$sp");
sca_handle_subscribe();
exit;
}
return;
}
if (!is_method("BYE|CANCEL|INVITE|PRACK|REFER")) {
return;
}
sca_call_info_update();
}
route[RELAY_OUTBOUND_FS] {
xlog("L_INFO","(RELAY_OUTBOUND_FS) : ($avp(uuid)) : INSIDE ROUTE ");
if (!has_totag()){
$avp(set_h) = 1;
}
t_on_reply("REPLY_OUTBOUND_FS");
route(SCA);
if (!t_relay()) {
sl_reply_error();
}
exit;
}
route[RELAY_INBOUND_FS] {
if(is_method("INVITE|BYE|UPDATE|CANCEL|ACK")) {
$avp(s:puburis_caller) = $fu;
setflag(8);
dlg_manage();
}
if(is_method("REGISTER")) {
t_on_reply("REPLY_REGISTER");
} else {
t_on_reply("REPLY_INBOUND_FS");
}
route(SCA);
if (!t_relay()) {
sl_reply_error();
}
exit;
}
onreply_route[REPLY_INBOUND_FS] {
xdbg("incoming reply\n");
if (status =~ "[456][0-9][0-9]") {
# don't update SCA state here, since there may be
# failure route processing (e.g., call forwarding).
# update state in failure route instead.
return;
}
route(SCA);
}
onreply_route[REPLY_OUTBOUND_FS] {
xdbg("incoming reply\n");
if (status =~ "[456][0-9][0-9]") {
# don't update SCA state here, since there may be
# failure route processing (e.g., call forwarding).
# update state in failure route instead.
return;
}
route(SCA);
}
can someone help me with this Did I missed something to handle SLA?
[View Less]
Hello,
We have a problem with a SIP doorbell device which sends media one way
only, and NAT at the receiving device.
When the doorbell button is pressed it makes a call to a configured
destination. Since the doorbell only sends and doesn't receive it sends the
INVITE with sendonly in the SDP, and the destination then replies with a
200 OK with recvonly in the SDP. The problem is that the destination is
behind NAT, and its reply contains a private network IP in the SDP.
Normally Asterisk when …
[View More]nat=yes works around that by adjusting the
destination for RTP to be the address it actually receives audio from,
however because this device is recvonly Asterisk never receives audio from
it. This means Asterisk keeps trying to send the doorbell's RTP to the
private network IP which of course fails, and the destination never gets
the RTP from the doorbell.
We haven't found a solution in Asterisk to this, so are now looking to
Kamailio which acts as a load-balancing proxy in front of Asterisk for one.
For example, maybe we could use fix_nated_sdp, but only on 200 OK's with
recvonly.
Has anyone else encountered this, and are there any recommended solutions?
Thank you in advance!
--
David Cunningham, Voisonics Limited
http://voisonics.com/
USA: +1 213 221 1092
New Zealand: +64 (0)28 2558 3782
[View Less]
The doorbell is the caller. ICE support would be required on the
callee side (between NATed callee and asterisk).
There's no need for ICE support on the doorbell/caller side.
-ovidiu
On Wed, Dec 9, 2020 at 2:42 AM Alex Balashov <abalashov(a)evaristesys.com> wrote:
>
> ICE support just doesn't seem to me to be something a SIP doorbell would
> have.
>
> On 12/9/20 2:39 AM, Olle E. Johansson wrote:
> >
> >
> >> On 8 Dec 2020, at 18:55, Richard Fuchs <…
[View More]rfuchs(a)sipwise.com
> >> <mailto:rfuchs@sipwise.com>> wrote:
> >>
> >> Use IPv6
> >
> > While I like that proposal, assuming that IPv6 will not have a stateful
> > firewall is propably not a good assumption.
> > So I suspect that an IPv6 firewall would not let the packets in if there
> > is not outbound traffic first. I do like Ovidius
> > ICE-based solution and would like to add RTCP - if muxed it would open
> > the port, but the likelyhood that it’s
> > implemented is propably low.
> >
> > IPv6 greetings!
> > /O :-)
> >>
> >> Cheers
> >>
> >> On 07/12/2020 23.01, David Cunningham wrote:
> >>> Hello,
> >>>
> >>> We have a problem with a SIP doorbell device which sends media one
> >>> way only, and NAT at the receiving device.
> >>>
> >>> When the doorbell button is pressed it makes a call to a configured
> >>> destination. Since the doorbell only sends and doesn't receive it
> >>> sends the INVITE with sendonly in the SDP, and the destination then
> >>> replies with a 200 OK with recvonly in the SDP. The problem is that
> >>> the destination is behind NAT, and its reply contains a private
> >>> network IP in the SDP.
> >>>
> >>> Normally Asterisk when nat=yes works around that by adjusting the
> >>> destination for RTP to be the address it actually receives audio
> >>> from, however because this device is recvonly Asterisk never receives
> >>> audio from it. This means Asterisk keeps trying to send the
> >>> doorbell's RTP to the private network IP which of course fails, and
> >>> the destination never gets the RTP from the doorbell.
> >>>
> >>> We haven't found a solution in Asterisk to this, so are now looking
> >>> to Kamailio which acts as a load-balancing proxy in front of Asterisk
> >>> for one. For example, maybe we could use fix_nated_sdp, but only on
> >>> 200 OK's with recvonly.
> >>>
> >>> Has anyone else encountered this, and are there any recommended
> >>> solutions?
> >>>
> >>> Thank you in advance!
> >>>
> >>> --
> >>> David Cunningham, Voisonics Limited
> >>> http://voisonics.com/ <http://voisonics.com/>
> >>> USA: +1 213 221 1092
> >>> New Zealand: +64 (0)28 2558 3782
> >>>
> >>> _______________________________________________
> >>> Kamailio (SER) - Users Mailing List
> >>> sr-users(a)lists.kamailio.org
> >>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
> >> _______________________________________________
> >> Kamailio (SER) - Users Mailing List
> >> sr-users(a)lists.kamailio.org <mailto:sr-users@lists.kamailio.org>
> >> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
> >
> >
> > _______________________________________________
> > Kamailio (SER) - Users Mailing List
> > sr-users(a)lists.kamailio.org
> > https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
> >
>
> --
> Alex Balashov | Principal | Evariste Systems LLC
>
> Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)
> Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
>
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users(a)lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
--
VoIP Embedded, Inc.
http://www.voipembedded.com
[View Less]
Hello,
I am trying to configure kamailio as an LCR based on prices but also
signaling quality indicators like ASR and ACDR.
Can you please help me and tell me where to start?
Regards
Abdoul
Hi all,
i have a problem with kamailio 5.3.x and asterisk 13, i basically forward
everything, but i cant manage to make it register.
The register arrives on asterisk see the capture bellow:
Any help is much appreciated!
----------------
REGISTER sip:oro.sips.nl;transport=UDP SIP/2.0
Via: SIP/2.0/UDP
104.201.100.15;branch=z9hG4bK4d5e.997621d931a2ad9f6423e2ac7782a319.1
Via: SIP/2.0/UDP 34.12.55.102:34626
;received=34.12.55.102;branch=z9hG4bK-524287-1---0a0bffd64bbd9941;rport=34626
Max-Forwards: …
[View More]69
Contact: <sip:test-user1@34.12.55.102:34626
;transport=UDP;rinstance=85c33e976be3dad1>
To: <sip:test-user1@oro.sips.nl;transport=UDP>
From: <sip:test-user1@oro.sips.nl;transport=UDP>;tag=6d8fd914
Call-ID: h6lkViFgxurpVRkw4Ly-GQ..
CSeq: 1 REGISTER
Expires: 60
Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO,
SUBSCRIBE
User-Agent: Z 5.4.9 rv2.10.11.7
Allow-Events: presence, kpml, talk
Content-Length: 0
Path: <sip:104.201.100.15;lr;received=sip:34.12.55.102:34626>
-------------------the config -------
# - flags
# FLT_ - per transaction (message) flags
# FLB_ - per branch flags
#!define FLT_ACC 1
#!define FLT_ACCMISSED 2
#!define FLT_ACCFAILED 3
#!define FLT_FS 10
####### Global Parameters #########
debug=4
log_stderror=yes
memdbg=5
memlog=5
log_facility=LOG_LOCAL0
fork=yes
children=4
/* comment the next line to enable TCP */
disable_tcp=yes
/* uncomment the next line to disable the auto discovery of local aliases
based on revers DNS on IPs (default on) */
auto_aliases=no
/* add local domain aliases */
# alias="mysipserver.com"
port=5060
/* uncomment and configure the following line if you want Kamailio to
bind on a specific interface/port/proto (default bind on all available)
*/
# listen=udp:127.0.0.1:5060
sip_warning=no
####### Modules Section ########
# set module path
#mpath="/usr/local/lib/kamailio/modules/"
#loadmodule "db_mysql.so"
loadmodule "jsonrpcs.so"
loadmodule "kex.so"
loadmodule "corex.so"
loadmodule "tm.so"
loadmodule "tmx.so"
loadmodule "sl.so"
loadmodule "rr.so"
loadmodule "pv.so"
loadmodule "maxfwd.so"
loadmodule "textops.so"
loadmodule "siputils.so"
loadmodule "xlog.so"
loadmodule "sanity.so"
loadmodule "ctl.so"
loadmodule "acc.so"
loadmodule "dispatcher.so"
loadmodule "path.so"
# ----------------- setting module-specific parameters ---------------
# ----- jsonrpcs params -----
modparam("jsonrpcs", "pretty_format", 1)
# ----- rr params -----
# add value to ;lr param to cope with most of the UAs
modparam("rr", "enable_full_lr", 1)
# do not append from tag to the RR (no need for this script)
modparam("rr", "append_fromtag", 0)
# ----- acc params -----
modparam("acc", "log_flag", FLT_ACC)
modparam("acc", "failed_transaction_flag", FLT_ACCFAILED)
modparam("acc", "log_extra",
"src_user=$fU;src_domain=$fd;dst_ouser=$tU;dst_user=$rU;dst_domain=$rd;src_ip=$si")
# ----- tm params -----
modparam("tm", "fr_timer", 2000)
modparam("tm", "fr_inv_timer", 40000)
# ----- dispatcher params -----
#modparam("dispatcher", "db_url", DBURL)
#modparam("dispatcher", "table_name", "dispatcher")
modparam("dispatcher", "list_file", "/etc/kamailio/dispatcher.list")
modparam("dispatcher", "flags", 2)
modparam("dispatcher", "xavp_dst", "_dsdst_")
modparam("dispatcher", "xavp_ctx", "_dsctx_")
modparam("dispatcher", "ds_ping_from", "sip:proxy@mykamailio")
modparam("dispatcher", "ds_ping_interval", 30)
modparam("dispatcher", "ds_probing_threshold", 10)
modparam("dispatcher", "ds_inactive_threshold", 5)
modparam("dispatcher", "ds_ping_reply_codes",
"class=2;code=403;code=488;class=3")
modparam("dispatcher", "ds_probing_mode", 1)
modparam("path", "use_received", 1)
####### Routing Logic ########
# main request routing logic
request_route {
# per request initial checks
route(REQINIT);
if(ds_is_from_list()) {
setflag(FLT_FS);
}
# CANCEL processing
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);
if (isflagset(FLT_FS)) {
route(FROM_FS);
exit;
}
### only initial requests (no To tag)
# record routing for dialog forming requests (in case they are routed)
# - remove preloaded route headers
remove_hf("Route");
if (is_method("INVITE|SUBSCRIBE")) {
record_route();
}
# account only INVITEs
if (is_method("INVITE")) {
setflag(FLT_ACC); # do accounting
}
# handle presence related requests
route(PRESENCE);
# handle registrations
route(REGISTRAR);
if ($rU==$null) {
# request with no Username in RURI
sl_send_reply("484","Address Incomplete");
exit;
}
# dispatch destinations
route(DISPATCH);
}
route[FROM_FS]
{
record_route();
route(RELAY);
exit;
}
route[RELAY] {
if (!t_relay()) {
sl_reply_error();
}
exit;
}
# Per SIP request initial checks
route[REQINIT] {
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
}
if(!sanity_check("1511", "7")) {
xlog("Malformed SIP message from $si:$sp\n");
exit;
}
}
# Handle requests within SIP dialogs
route[WITHINDLG] {
if (has_totag()) {
# sequential request withing a dialog should
# take the path determined by record-routing
if (loose_route()) {
if (is_method("BYE")) {
setflag(FLT_ACC); # do accounting ...
setflag(FLT_ACCFAILED); # ... even if the transaction fails
}
route(RELAY);
} else {
if (is_method("SUBSCRIBE") && uri == myself) {
# in-dialog subscribe requests
route(PRESENCE);
exit;
}
if ( is_method("ACK") ) {
if ( t_check_trans() ) {
# non loose-route, but stateful ACK;
# must be ACK after a 487 or e.g. 404 from upstream server
t_relay();
exit;
} else {
# ACK without matching transaction ... ignore and discard.
exit;
}
}
sl_send_reply("404","Not here");
}
exit;
}
}
# Handle SIP registrations
route[REGISTRAR] {
if(!is_method("REGISTER"))
return;
add_path_received();
route(DISPATCH);
}
# Presence server route
route[PRESENCE] {
if(!is_method("PUBLISH|SUBSCRIBE"))
return;
sl_send_reply("404", "Not here");
exit;
}
# Dispatch requests
route[DISPATCH] {
# round robin dispatching on gateways group '1'
switch ($fd){
case "oro.sips.nl":
send_reply(483, "Ok, Skipper!");
if (!ds_select_dst("1", "4")) {
log("ERROR: no active destinations found!\n");
send_reply(503, "Service Unavailable");
exit;
}
ds_select_dst("1", "4");
log("---- flag value is $dd -- branch $fd \n");
xdbg("--- SCRIPT: going to <$ru> via <$du> (attrs:
$xavp(_dsdst_=>attrs))\n");
break;
case "oro2.sips.nl":
send_reply(483, "Ok, Skipper!");
if (!ds_select_dst("2", "4")) {
log("ERROR: no active destinations found!\n");
send_reply(503, "Service Unavailable");
exit;
}
ds_select_dst("2", "4");
log("---- flag value is $dd -- branch $fd \n");
xdbg("--- SCRIPT: going to <$ru> via <$du> (attrs:
$xavp(_dsdst_=>attrs))\n");
break;
default:
log("unknow destination?");
send_reply(503, "No service defined");
exit;
}
xdbg("--- SCRIPT: going to <$ru> via <$du> (attrs:
$xavp(_dsdst_=>attrs))\n");
t_on_failure("RTF_DISPATCH");
route(RELAY);
exit;
}
# Try next destionations in failure route
failure_route[RTF_DISPATCH] {
if (t_is_canceled()) {
exit;
}
# next DST - only for 500 or local timeout
if (t_check_status("500")
or (t_branch_timeout() and !t_branch_replied())) {
if(ds_next_dst()) {
xdbg("--- SCRIPT: retrying to <$ru> via <$du> (attrs:
$xavp(_dsdst_=>attrs))\n");
t_on_failure("RTF_DISPATCH");
route(RELAY);
exit;
}
}
}
[View Less]
Hello All
I configure my kamailio.cfg to handle SLA using (SCA module) and shared
presence is working but still facing some issue in case of hold invite and
BYE and the reason behind of that issue is following error
Nov 26 07:38:40 SBC-4-1 /usr/local/sbin/kamailio[104107]: ERROR: sca
[sca_call_info.c:1008]: sca_call_info_invite_request_handler(): Failed to
update sip:4569@test.sip.abcd.com appearance-index 0 to active
actually, in Kamailio appearances, I can see the entry for this call but
…
[View More]the index is 1 instead of 0, and Kamailio going to update with a 0 index
[root@SBC-4-1 ntcarfte-kamailio]# kamcmd sca.all_appearances
sip:4569@test.sip.abcd.com 1 active 1606376289
sip:4569@10.xx.xx.xx:5070;transport=udp
sip:2003@test.sip.abcd.com
186161_mobile-rel120MTQ5OTcyZjFhMjMyNmI1ZGE1MWY4ODc2M2RkN2VmZmQ 45dc18d8
H6cS9vecZ248B
if I manually update appearances using RPC command with index 1 then the
phone started blinking as I change state to held
# kamcmd sca.update_appearance sip:4569@sc4test.sip.teledge.com 1 held
# kamcmd sca.all_appearances
sip:4569@test.sip.abcd.com 1 held 1606376516
sip:4569@10.xx.xx.xx:5070;transport=udp
sip:2003@test.sip.abcd.com
186161_mobile-rel120NzE5MDgyZDc1NjJiYjcwMWFlYmI3NzM3NjE2OTRhZjU 08f005cb
eK9ratm83g92e
kamailio.cfg
route[SCA] {
if(is_method("SUBSCRIBE")) {
if ($hdr(Event) == "call-info" || $hdr(Event) ==
"line-seize") {
xlog("L_INFO","(MAIN) :HELLO ($avp(uuid)) : $avp(rsi) $sp
$hdr(Event)");
xdbg("SCA: $hdr(Event) SUBSCRIBE $ru from $si:$sp");
sca_handle_subscribe();
exit;
}
return;
}
if (!is_method("BYE|CANCEL|INVITE|PRACK|REFER")) {
return;
}
sca_call_info_update();
}
route[RELAY_OUTBOUND_FS] {
xlog("L_INFO","(RELAY_OUTBOUND_FS) : ($avp(uuid)) : INSIDE ROUTE ");
if (!has_totag()){
$avp(set_h) = 1;
}
t_on_reply("REPLY_OUTBOUND_FS");
route(SCA);
if (!t_relay()) {
sl_reply_error();
}
exit;
}
route[RELAY_INBOUND_FS] {
if(is_method("INVITE|BYE|UPDATE|CANCEL|ACK")) {
$avp(s:puburis_caller) = $fu;
setflag(8);
dlg_manage();
}
if(is_method("REGISTER")) {
t_on_reply("REPLY_REGISTER");
} else {
t_on_reply("REPLY_INBOUND_FS");
}
route(SCA);
if (!t_relay()) {
sl_reply_error();
}
exit;
}
onreply_route[REPLY_INBOUND_FS] {
xdbg("incoming reply\n");
if (status =~ "[456][0-9][0-9]") {
# don't update SCA state here, since there may be
# failure route processing (e.g., call forwarding).
# update state in failure route instead.
return;
}
route(SCA);
}
onreply_route[REPLY_OUTBOUND_FS] {
xdbg("incoming reply\n");
if (status =~ "[456][0-9][0-9]") {
# don't update SCA state here, since there may be
# failure route processing (e.g., call forwarding).
# update state in failure route instead.
return;
}
route(SCA);
}
can someone help me with this Did I missed something to handle SLA?
--
--
Regards,
*Aatif Shaikh *| Software Developer
+91 9033976268Hangout: aatif.shaikh(a)ecosmob.comSkype :
aatif.shaikh(a)ecosmob.com
*Ecosmob Technologies Pvt. Ltd. *
https://www.ecosmob.com
VoIP | Web | Mobile | IoT | Big Data
<https://twitter.com/ecosmob> <https://www.facebook.com/Ecosmob>
<https://plus.google.com/+Ecosmob>
<https://www.linkedin.com/company/ecosmob>
<https://in.pinterest.com/ecosmob/>
This e-mail message may contain confidential or legally privileged
information and is intended only for the use of the intended recipient(s).
Any unauthorized disclosure, dissemination, distribution, copying or the
taking of any action in reliance on the information herein is prohibited.
Ecosmob Technologies is not responsible for errors or omissions in this
message and denies any responsibility for any damage arising from the use
of e-mail. Any opinion and other statement contained in this message and
any attachment are solely those of the author and do not necessarily
represent those of the company.
--
*Disclaimer*
In addition to generic Disclaimer which you have agreed on our
website, any views or opinions presented in this email are solely those of
the originator and do not necessarily represent those of the Company or its
sister concerns. Any liability (in negligence, contract or otherwise)
arising from any third party taking any action, or refraining from taking
any action on the basis of any of the information contained in this email
is hereby excluded.
*Confidentiality*
This communication (including any
attachment/s) is intended only for the use of the addressee(s) and contains
information that is PRIVILEGED AND CONFIDENTIAL. Unauthorized reading,
dissemination, distribution, or copying of this communication is
prohibited. Please inform originator if you have received it in error.
*Caution for viruses, malware etc.*
This communication, including any
attachments, may not be free of viruses, trojans, similar or new
contaminants/malware, interceptions or interference, and may not be
compatible with your systems. You shall carry out virus/malware scanning on
your own before opening any attachment to this e-mail. The sender of this
e-mail and Company including its sister concerns shall not be liable for
any damage that may incur to you as a result of viruses, incompleteness of
this message, a delay in receipt of this message or any other computer
problems.
[View Less]
Thank you Joel for the tip.
But that is also not it.....
I tried of course, but when you look at the Dialog module documentation
is says:
modparam("dialog", "profiles_with_value", "caller ; my_profile")
So there are spaces in the modparam config for the dialog profiles.
Its just so strange that when starting Kamailio I get the error that the
Profile outbound is not configured, while it is...
Log line:
Dec 6 15:04:04 proxy01 /usr/local/sbin/kamailio[76664]: CRITICAL:
dialog […
[View More]dialog.c:391]: fixup_profile(): profile <inbound> not defined
kamailo.cfg
# ---- Dialog params -------------
modparam("dialog", "default_timeout", 7200)
modparam("dialog", "db_mode", 0)
modparam("dialog", "dlg_flag", DLG_FLAG)
modparam("dialog", "hash_size", 4096)
#modparam("dialog", "detect_spirals", 1)
modparam("dialog", "profiles_with_value", "inbound")
Im starting to think that I am missing some configuration in the
kamailio.cfg file...
Rgds,
Gertjan
[View Less]
Thanks again Sergiu,
/Hmmm... if dialog params are wrapped in a ifdef condition, then do you
have something like #!define WITH_DIALOG at the top?/
But the #!define WITH_DIALOG is to choose between loading module
parameters or not loading module parameters...
When you do not add #!ifdef WITH_XXX before the parameters and #!endif
after, then those parameters will be loaded when starting Kamailio.
So, I still have the issue that the profile is not being loaded.
I have tried renaming the …
[View More]profiles, in the route and the parameters, but
that does not make a difference..
# ---- Dialog params -------------
modparam("dialog", "default_timeout", 7200)
modparam("dialog", "db_mode", 0)
modparam("dialog", "dlg_flag", DLG_FLAG)
modparam("dialog", "hash_size", 4096)
#modparam("dialog", "detect_spirals", 1)
modparam("dialog", "profiles_with_value", "inbound ; outbound")
route[CONCURRENT_IN]
{
#Add call to customer profile
#Check if customer has not reached inbound call limit
#Get max concurrent calls
sql_query("cc", "select max_calls_in from calllimit where
cust_id='$avp(custid)'", "ra");
$avp(maxcalls)=$dbr(ra=>[0,0]);
sql_result_free("ra");
$avp(concurrent) = 0;
get_profile_size("inbound", "$avp(custid)", "$avp(concurrent)");
if( $avp(concurrent) >= $var(max) )
{
xlog("L_INFO"," Call limit reached for customer
$avp(custid)\r\n ");
sl_send_reply("503", "No Lines Available");
exit;
}
set_dlg_profile("inbound", "$avp(custid)");
return;
}
But this still results in:
Dec 5 09:34:33 proxy01 /usr/local/sbin/kamailio[75755]: CRITICAL:
dialog [dialog.c:391]: fixup_profile(): profile <inbound> not defined
Dec 5 09:34:33 proxy01 /usr/local/sbin/kamailio[75755]: ERROR: <core>
[core/route.c:1166]: fix_actions(): fixing failed (code=-6) at
cfg:/usr/local/etc/kamailio/kamailio.cfg:1578
[View Less]
Hi all,
I was wondering if someone can help me understand how the ICE parameter
works in the rtpengine module works.
So basically our client does an ICE candidate lookup and grabs a list of
them and applies it to the INVITE that gets sent to the Kamailio. The list
looks like this:
2020-12-03T18:05:46.456030+00:00 ashmainkama51 kamailio[22147]:
a=candidate:3373280875 1 udp 2122262783
2001:8a0:78fc:7000:e1d7:e93:3c50:ee71 59827 typ host generation 0
network-id 2 network-cost 10
2020-12-03T18:…
[View More]05:46.456057+00:00 ashmainkama51 kamailio[22147]:
a=candidate:3040609428 1 udp 2122197247
2001:8a0:78fc:7000:d979:bf75:dbc0:69f 59828 typ host generation 0
network-id 3 network-cost 10
2020-12-03T18:05:46.456081+00:00 ashmainkama51 kamailio[22147]:
a=candidate:1681997092 1 udp 2122129151 192.168.1.66 59829 typ host
generation 0 network-id 1 network-cost 10
2020-12-03T18:05:46.456106+00:00 ashmainkama51 kamailio[22147]:
a=candidate:2274611867 1 tcp 1518283007
2001:8a0:78fc:7000:e1d7:e93:3c50:ee71 9 typ host tcptype active generation
0 network-id 2 network-cost 10
2020-12-03T18:05:46.456131+00:00 ashmainkama51 kamailio[22147]:
a=candidate:4223662180 1 tcp 1518217471
2001:8a0:78fc:7000:d979:bf75:dbc0:69f 9 typ host tcptype active generation
0 network-id 3 network-cost 10
2020-12-03T18:05:46.456155+00:00 ashmainkama51 kamailio[22147]:
a=candidate:717406676 1 tcp 1518149375 192.168.1.66 9 typ host tcptype
active generation 0 network-id 1 network-cost 10
2020-12-03T18:05:46.456180+00:00 ashmainkama51 kamailio[22147]:
a=candidate:2130547417 1 udp 8199935 206.81.191.27 61165 typ relay raddr
85.247.0.121 rport 53091 generation 0 network-id 1 network-cost 10
In the rtpengine_offer, I have this:
rtpengine_offer("ICE=force DTLS=passive replace-session-connection
replace-origin external internal");
What i am trying to do is to tell the freeswitch endpoint to use rtpengine
as ICE candidate and I see in the SDP this is happening:
a=candidate:6296910676 1 udp 659136 206.81.191.52 52766 typ host generation
0
Btw..206.81.191.52 is a separate AWS instance running rtpengine binary.
On the rtpengine_answer, I tell the remote client side the same thing..use
rtpengine as your ICE candidate:
rtpengine_answer("ICE=force DTLS=passive replace-session-connection
replace-origin internal external");
and this is snippet from 200 OK:
a=candidate:6296910676 1 udp 659136 206.81.191.52 52766 typ host generation
0
Question:
Why does the rtpengine logs still show that it's trying to use
2001:8a0:78fc:7000:e1d7:e93:3c50:ee71 as RTP candidate in this scenario?
Dec 3 18:05:47 ashmainrtpe42 rtpengine[8505]: DEBUG:
[ep1sbnkk9tikhg4kpmot]: Forward to sink endpoint:
2001:8a0:78fc:7000:e1d7:e93:3c50:ee71:59827 (RTP seq 25423 TS 0)
I thought ICE=force will handle such adjustments so that all rtp is handled
by the rtpengine to our client and bypass the STUN server?
Thanks.
--
Andy Chen
Sr. Telephony Lead Engineer
achen@ <achen(a)thinkingphones.com>fuze.com
--
*Confidentiality Notice: The information contained in this e-mail and any
attachments may be confidential. If you are not an intended recipient, you
are hereby notified that any dissemination, distribution or copying of this
e-mail is strictly prohibited. If you have received this e-mail in error,
please notify the sender and permanently delete the e-mail and any
attachments immediately. You should not retain, copy or use this e-mail or
any attachment for any purpose, nor disclose all or any part of the
contents to any other person. Thank you.*
[View Less]
Well, I saw similar questions in the list already but looks like nobody has
answer.
Please look at REFER below.
Kamilio get REFER from MS and sends it to FS node. Next, FS node try to
make 3th call for some reason.I expect that FS will not do 3th call and
just will connect Alice and Bob itself.
2020/05/14 12:32:00.637027 KAM_IP:5060 -> FS_IP:5060
REFER sip:Alice_number@FS_IP:5060;transport=udp SIP/2.0
FROM: Customer1<sip:MS_TRUNK_NUMBER@sip.pstnhub.microsoft.com:5061
;user=phone>;…
[View More]tag=a860c50a3fb54d08b4e5740fa2dfb3d6
TO: <sip:Alice_number@FQDN_OF_TRUNK:5061>;user=phone;tag=e8ct9S6ty13va
CSEQ: 4 REFER
CALL-ID: 2c71b2a6669b5343a231e1244b19c945
MAX-FORWARDS: 50
Via: SIP/2.0/UDP
FQDN_OF_TRUNK:5060;branch=z9hG4bK10ae.2c42897feca117121a23bf0c8d54cd19.0;i=c
VIA: SIP/2.0/TLS 52.114.75.24:5061;branch=z9hG4bK7e3e8998
CONTACT: <sip:api-du-a-euwe.pstnhub.microsoft.com:443
;x-i=6b68e7aa-f5e2-44ec-9edf-0bacbabfce07;x-c=2c71b2a6669b5343a231e1244b19c945/d/8/b68f86794a8e44d19543f8edbee6b2fc
CONTENT-LENGTH: 0
REFER-TO: <sip:Bob_number@sip.pstnhub.microsoft.com:5061
;user=phone;transport=tls>
REFERRED-BY: <sip:sip.pstnhub.microsoft.com:5061
;x-m=8:orgid:21bc47d3-c050-4292-8234-46f7005b97aa;x-t=fb788ef8-3c4c-455a-8d62-f3c20832c0d3;x-ti=6b68e7aa-f5e2-44ec-9edf-
acbabfce07;x-tt=aHR0cHM6Ly9hcGktZHUtYS1ldXdlLnBzdG5odWIubWljcm9zb2Z0LmNvbS92MS9uZ2MvY2FsbG5vdGlmaWNhdGlvbj9kY2k9YzIxMjE3MzEyNTQ2NDk1ZjlhYTcwODliYTkwNGIxZGQ%3D>
USER-AGENT: Microsoft.PSTNHub.SIPProxy v.2020.5.6.2 i.EUWE.4
ALLOW: INVITE,ACK,OPTIONS,CANCEL,BYE,NOTIFY
P-ASSERTED-IDENTITY: <tel:MS_TRUNK_NUMBER>,<
sip:customer1@m365x587912.onmicrosoft.com>
PRIVACY: id
X-AUTH-IP: 52.114.75.24
X-AUTH-PORT: 3136
Any advice?
[View Less]
Hello Sergiu,
Thank you for the pointer, the line 1576 is:
get_profile_size("callee", "$avp(custid)", "$avp(concurrent)");
That is where Kamailio refuses to start....
And as you mentioned my error in the IF statement after correction you
pointed out, Kamailio still refuses on the fact that the profile
<callee> was not defined...
Dec 4 13:42:50 proxy01 /usr/local/sbin/kamailio[75008]: CRITICAL:
dialog [dialog.c:391]: fixup_profile(): profile <callee> not defined
…
[View More]Dec 4 13:42:50 proxy01 /usr/local/sbin/kamailio[75008]: ERROR: <core>
[core/route.c:1166]: fix_actions(): fixing failed (code=-6) at
cfg:/usr/local/etc/kamailio/kamailio.cfg:1576
Dec 4 13:42:50 proxy01 systemd[1]: kamailio.service: Main process
exited, code=exited, status=255/n/a
Dec 4 13:42:50 proxy01 systemd[1]: kamailio.service: Failed with result
'exit-code'.
Does anyone else maybe have an idea on where I go wrong?
Rgds,
Gertjan
[View Less]
Hello,
I noticed that when i do calls behind NAT i'm getting this error when i
call fix_nated_sdp() :
"nathelper [nathelper.c:1659]: replace_sdp_ip(): can't extract 'a=rtcp'
IP from the SDP"
As far as i can see, all the ips on SDP are correctly replaced to a public
IP, so i don't understand the origin of this error.
This is the SDP received by Kamailio :
Session Description Protocol
Session Description Protocol Version (v): 0
Owner/Creator, Session Id (o): - 3421914885 1 IN IP4 …
[View More]192.168.24.89
Session Name (s): SIPPER for PhonerLite
Connection Information (c): IN IP4 192.168.24.89
Time Description, active time (t): 0 0
Media Description, name and address (m): audio 5062 RTP/AVP 107 8 0 2 3
97 110 111 9 18 11 118 101
Media Attribute (a): rtpmap:107 opus/48000/2
Media Attribute (a): rtpmap:8 PCMA/8000
Media Attribute (a): rtpmap:0 PCMU/8000
Media Attribute (a): rtpmap:2 G726-32/8000
Media Attribute (a): rtpmap:3 GSM/8000
Media Attribute (a): rtpmap:97 iLBC/8000
Media Attribute (a): rtpmap:110 speex/8000
Media Attribute (a): rtpmap:111 speex/16000
Media Attribute (a): rtpmap:9 G722/8000
Media Attribute (a): rtpmap:18 G729/8000
Media Attribute (a): fmtp:18 annexb=yes
Media Attribute (a): rtpmap:11 L16/44100
Media Attribute (a): rtpmap:118 L16/16000
Media Attribute (a): rtpmap:101 telephone-event/8000
Media Attribute (a): fmtp:101 0-16
Media Attribute (a): ssrc:2716178988
Media Attribute (a): sendrecv
And this is the SDP sent by Kamailio after NAT being treated :
Session Description Protocol
Session Description Protocol Version (v): 0
Owner/Creator, Session Id (o): - 3421914885 1 IN IP4 1.1.1.1 (Public IP)
Session Name (s): SIPPER for PhonerLite
Connection Information (c): IN IP4 1.1.1.1 (Public IP)
Time Description, active time (t): 0 0
Media Description, name and address (m): audio 5062 RTP/AVP 107 8 0 2 3
97 110 111 9 18 11 118 101
Media Attribute (a): rtpmap:107 opus/48000/2
Media Attribute (a): rtpmap:8 PCMA/8000
Media Attribute (a): rtpmap:0 PCMU/8000
Media Attribute (a): rtpmap:2 G726-32/8000
Media Attribute (a): rtpmap:3 GSM/8000
Media Attribute (a): rtpmap:97 iLBC/8000
Media Attribute (a): rtpmap:110 speex/8000
Media Attribute (a): rtpmap:111 speex/16000
Media Attribute (a): rtpmap:9 G722/8000
Media Attribute (a): rtpmap:18 G729/8000
Media Attribute (a): fmtp:18 annexb=yes
Media Attribute (a): rtpmap:11 L16/44100
Media Attribute (a): rtpmap:118 L16/16000
Media Attribute (a): rtpmap:101 telephone-event/8000
Media Attribute (a): fmtp:101 0-16
Media Attribute (a): ssrc:2716178988
Media Attribute (a): sendrecv
Media Attribute (a): oldmediaip:192.168.24.89
Media Attribute (a): oldmediaip:192.168.24.89
Is there something failing in the SDP fix?
Best Regards,
[View Less]
Has anyone ever implemented DMQ replication of TOPOS data between
kamailio servers?
I'm trying to find the easiest (to maintain) way to implement this
replication, possibly without using an external database.
James
Hello, all have a problem with Kamailio presence, I have configured my
kamailio.cfg to handle dialog presence and facing issue in case of
subs_db_mode = 2 in case of mode 2 facing the following presence issue.
1. after hangup presence is still up
2. sometimes stuck in a ringing state
3. sometimes presence not came..etc
but in the case of subs_db_mode = 3 (DB ONLY) mode presence working fine
not facing any issue with this mode.
I noticed that sometimes Kamailio will throw the …
[View More]following message during
PUBLISH processing and it will not generate appropriate NOTIFY I also
verify inactive watcher subscription is there for that user and also a
proper entry in the dialog table.
MSG during PUBLISH processesing and it will not generate appropriate NOTIFY
Oct 30 07:42:10 NC-HOSTED-1 /usr/local/sbin/kamailio[2409]: DEBUG: presence
[notify.c:1444]: publ_notify(): Could not find subs_dialog
kamailio.cfg param
modparam("pua", "db_url", DBURL_KAMAILIO)
modparam("pua", "db_mode", 2)
modparam("pua", "update_period", 100)
modparam("pua", "dlginfo_increase_version", 1)
modparam("pua", "default_expires", 3600)
modparam("pua", "fetch_rows", 1000)
modparam("pua", "outbound_proxy", SERVER_IP)
modparam("dialog", "db_url", DBURL_KAMAILIO )
modparam("dialog", "db_mode", 1)
modparam("dialog", "db_update_period", 260)
modparam("dialog", "db_fetch_rows", 500)
modparam("pua_dialoginfo", "include_callid", 1)
modparam("pua_dialoginfo", "send_publish_flag", 8)
modparam("pua_dialoginfo", "caller_confirmed", 0)
modparam("pua_dialoginfo", "include_tags", 1)
modparam("pua_dialoginfo", "use_pubruri_avps", 1)
modparam("pua_dialoginfo", "include_localremote", 1)
modparam("pua_dialoginfo", "override_lifetime", 300)
modparam("pua_dialoginfo", "pubruri_caller_avp", "$avp(s:puburis_caller)")
modparam("pua_dialoginfo", "pubruri_caller_dlg_var", "pubruri_caller")
modparam("pua_dialoginfo", "pubruri_callee_dlg_var", "pubruri_callee")
modparam("pua_dialoginfo", "pubruri_callee_avp", "$avp(s:puburis_callee)")
modparam("presence_dialoginfo", "force_single_dialog", 1)
modparam("presence", "db_table_lock_type", 0)
modparam("presence", "db_url", DBURL_KAMAILIO)
modparam("presence", "db_update_period", 5)
modparam("presence", "send_fast_notify", 1)
modparam("presence", "clean_period", 100)
modparam("presence", "subs_db_mode", 2)
//modparam("presence", "subs_db_mode", 3)
modparam("presence", "timeout_rm_subs", 1) //new/
//modparam("presence", "notifier_processes", 2) //new//
modparam("presence", "notifier_poll_rate", 20) //new//
modparam("presence", "waitn_time",1)
modparam("presence", "fetch_rows", 1000)
modparam("presence", "presentity_table", "presentity")
modparam("presence", "active_watchers_table", "active_watchers")
modparam("presence", "watchers_table", "watchers")
modparam("presence", "max_expires", 3600)
modparam("presence_xml", "db_url", DBURL_KAMAILIO)
modparam("presence_xml", "force_active", 1)
logic for presence
request_route {
if(is_method("PUBLISH") || is_method("SUBSCRIBE")) {
route(HANDLE_PRESENCE);
}
}
route[HANDLE_PRESENCE] {
if (! t_newtran())
{
sl_reply_error();
exit;
}
if(is_method("PUBLISH"))
{
handle_publish();
t_release();
} else if( is_method("SUBSCRIBE")) {
handle_subscribe();
t_release();
}
exit;
}
route[RELAY] {
if(is_method("INVITE|BYE|UPDATE|CANCEL|ACK")) {
$avp(t_ext) = $tU ;
$avp(domain) = $fd ;
$avp(et) = $_s(sip:$avp(t_ext)@$avp(domain)) ;
$avp(s:puburis_callee) = $avp(et);
setflag(8);
dlg_manage();
}
}
I already report this issue in Kamailio git
https://github.com/kamailio/kamailio/issues/2540
--
--
Regards,
*Aatif Shaikh *| Software Developer
+91 9033976268Hangout: aatif.shaikh(a)ecosmob.comSkype :
aatif.shaikh(a)ecosmob.com
*Ecosmob Technologies Pvt. Ltd. *
https://www.ecosmob.com
VoIP | Web | Mobile | IoT | Big Data
<https://twitter.com/ecosmob> <https://www.facebook.com/Ecosmob>
<https://plus.google.com/+Ecosmob>
<https://www.linkedin.com/company/ecosmob>
<https://in.pinterest.com/ecosmob/>
This e-mail message may contain confidential or legally privileged
information and is intended only for the use of the intended recipient(s).
Any unauthorized disclosure, dissemination, distribution, copying or the
taking of any action in reliance on the information herein is prohibited.
Ecosmob Technologies is not responsible for errors or omissions in this
message and denies any responsibility for any damage arising from the use
of e-mail. Any opinion and other statement contained in this message and
any attachment are solely those of the author and do not necessarily
represent those of the company.
--
*Disclaimer*
In addition to generic Disclaimer which you have agreed on our
website, any views or opinions presented in this email are solely those of
the originator and do not necessarily represent those of the Company or its
sister concerns. Any liability (in negligence, contract or otherwise)
arising from any third party taking any action, or refraining from taking
any action on the basis of any of the information contained in this email
is hereby excluded.
*Confidentiality*
This communication (including any
attachment/s) is intended only for the use of the addressee(s) and contains
information that is PRIVILEGED AND CONFIDENTIAL. Unauthorized reading,
dissemination, distribution, or copying of this communication is
prohibited. Please inform originator if you have received it in error.
*Caution for viruses, malware etc.*
This communication, including any
attachments, may not be free of viruses, trojans, similar or new
contaminants/malware, interceptions or interference, and may not be
compatible with your systems. You shall carry out virus/malware scanning on
your own before opening any attachment to this e-mail. The sender of this
e-mail and Company including its sister concerns shall not be liable for
any damage that may incur to you as a result of viruses, incompleteness of
this message, a delay in receipt of this message or any other computer
problems.
[View Less]
Hello Kamailions,
I am running into the following issue.
The same setup I had working on 5.0, now I am using a 5.4 version of
Kamailio, but I do not believe it has to do with the version, more with
my ability to make errors...
I am trying to limit incoming calls by using the dialog module. The max
concurrent calls value I retrieve from a database.
But when I try to start Kamailio it will not because the dialog profile
is not defined...
These are my configured Dialog parameters:
# ---- …
[View More]Dialog params -------------
modparam("dialog", "default_timeout", 7200)
modparam("dialog", "db_mode", 0)
modparam("dialog", "dlg_flag", DLG_FLAG)
modparam("dialog", "hash_size", 4096)
#modparam("dialog", "detect_spirals", 1)
modparam("dialog", "profiles_with_value", "callee")
My check on the concurrent inbound calls:
route[CONCURRENT_IN]
{
#Add call to callee profile
#Check if callee has not reached inbound call limit
#Get max concurrent calls
sql_query("cc", "select max_calls_in from calllimit where
cust_id='$avp(custid)'", "ra");
$avp(maxcalls)=$dbr(ra=>[0,0]);
sql_result_free("ra");
$avp(concurrent) = 0;
get_profile_size("callee", "$avp(custid)", "$avp(concurrent)");
if( $avp(concurrent) = $var(max) )
{
xlog("L_INFO"," Call limit reached for customer
$avp(custid)\r\n ");
sl_send_reply("503", "No Lines Available");
exit;
}
set_dlg_profile("callee", "$avp(custid)");
return;
}
And the kamailio log error:
Dec 3 09:12:08 proxy01 kamailio[74102]: INFO: <core> [main.c:2833]:
main(): processes (at least): 21 - shm size: 67108864 - pkg size: 8388608
Dec 3 09:12:08 proxy01 kamailio[74102]: CRITICAL: dialog
[dialog.c:391]: fixup_profile(): profile <callee> not defined
Dec 3 09:12:08 proxy01 kamailio[74102]: ERROR: <core>
[core/route.c:1166]: fix_actions(): fixing failed (code=-6) at
cfg:/usr/local/etc/kamailio/kamailio.cfg:1576
Is someone able to see where I go wrong and point me in the right direction?
Thank you.
Rgds,
Gertjan Wolzak
[View Less]
Hello!
I'm using a $TF variable in my config for some logging purposes. It was
providing the correct string with Kamailio version 5.3.8 on CentOS 6 and 8.
After updating to Kamailio version 5.4.1, the variable started to show
something else.
I also tried versions 5.4.2 and development 5.5.0 on CentOS 6 and the
problem still persists. With version 5.5.0_dev3 this variable shows "pG▒"
for me.
I was wondering if someone else is using it too with Kamailio version 5.4.1
or newer on different …
[View More]platforms and has this issue.
Thanks!
[View Less]
Hello everyone,
On a debian buster i added the repo
deb http://deb.kamailio.org/kamailio51 buster main
deb-src http://deb.kamailio.org/kamailio51 buster main
But when i install i get 5.2, is this right?
additional info:
# apt-cache showpkg kamailio
Package: kamailio
Versions:
5.2.1-1
(/var/lib/apt/lists/deb.debian.org_debian_dists_buster_main_binary-i386_Packages)
(/var/lib/dpkg/status)
Description Language:
File:
/var/lib/apt/lists/deb.debian.…
[View More]org_debian_dists_buster_main_binary-i386_Packages
MD5: df3e15f422439e08c305782f5650a98c
Description Language: en
File:
/var/lib/apt/lists/deb.debian.org_debian_dists_buster_main_i18n_Translation-en
MD5: df3e15f422439e08c305782f5650a98c
5.1.10.1+bpo10
(/var/lib/apt/lists/deb.kamailio.org_kamailio51_dists_buster_main_binary-i386_Packages)
Description Language:
File:
/var/lib/apt/lists/deb.kamailio.org_kamailio51_dists_buster_main_binary-i386_Packages
MD5: ebddf40d0dfbfde1c479419970f978c7
Regards,
David Villasmil
email: david.villasmil.work(a)gmail.com
phone: +34669448337
[View Less]
Folks,
I have a weird situation, when I enable Path header, kamailio behind a
Path proxy,
that kamailio doesn't recognise the ACK to CANCEL and tries to forward it.
Test scenario:
- voice.example.com is a stateless proxy with TLS/UDP bridging to kamailio.
- on the UDP leg to kamailio it will add a Path: header to REGISTER
UA1 = david is calling UA2 = charles and UA2 is sending 603
1 . UA1: preloaded route set (outbound proxy)
# this is the Path proxy
Route: sip:voice.example.com;transport=…
[View More]tls;lr
2. UA2: sends CANCEL 603
- kamailio immediately sends its (per-hop?) ACK
- kamailio forwards CANCEL to UA1
kamailio sent this (per-hop?) ACK
- the Route header is the internal UDP interface of the Path proxy
ACK sip:charles@192.168.1.7:37309;transport=TCP;ob SIP/2.0
Via: SIP/2.0/UDP
192.168.122.99:5064;branch=z9hG4bK735d.6b27c8d09e40462ef47eccf90eb10823.0
Max-Forwards: 70
From: sip:david@voice.example.com;tag=i1acAHsitf2gcN9uHH-ZSyJ5OdT8O5M0
To: <sip:charles@voice.example.com>;tag=LmUY79rIdBQiiSakML4F0lHl271VdUn8
Call-ID: qM3W-fMrzPsvcjRSD1okEp5nbgHCF5Hu
CSeq: 16667 ACK
Route: <sip:192.168.122.100;lr>
Content-Length: 0
3. UA1 sends ACK
kamailio sees this
- top Via is path proxy
- 2nd Via is UA (caller)
- CSeq correctly matches the INVITE
- kamailio does not recognise this ACK from UA1(caller),
tries to forward it, and also resends 603 to UA1(caller) 3 times
ACK sip:charles@voice.example.com SIP/2.0
Via: SIP/2.0/UDP
192.168.122.100:5060;branch=z9hG4bKb3c9a7a3b6ec9e78d0144cda709f7047
Via: SIP/2.0/TLS
192.168.1.17:44925;rport=44925;branch=z9hG4bKPjFM-9gpaJEghJvN19TjnvScCwCoAGzwEc;alias;received=192.168.1.17
Max-Forwards: 70
From: sip:david@voice.example.com;tag=i1acAHsitf2gcN9uHH-ZSyJ5OdT8O5M0
To: sip:charles@voice.example.com;tag=LmUY79rIdBQiiSakML4F0lHl271VdUn8
Call-ID: qM3W-fMrzPsvcjRSD1okEp5nbgHCF5Hu
CSeq: 16667 ACK
Route: <sip:voice.example.com;transport=tls;lr>
Content-Length: 0
Now kamailio should absorb this ACK, as it has already sent its
per-hop ACK. Instead I see
ERROR: <core> [core/forward.c:541]: forward_request(): cannot forward
to af 2, proto 3 no corresponding listening socket
I don't expect kamailio to forward anything at this point. The route
block is route[WITHINDLG] and it calls t_relay() normally.
route[WITHINDLG] {
if (!has_totag()) return;
# sequential request withing a dialog should
# take the path determined by record-routing
if (loose_route()) {
route(DLGURI);
if (is_method("BYE")) {
setflag(FLT_ACC); # do accounting ...
setflag(FLT_ACCFAILED); # ... even if the transaction fails
} else if ( is_method("ACK") ) {
# ACK is forwarded statelessly
route(NATMANAGE);
} else if ( is_method("NOTIFY") ) {
# Add Record-Route for in-dialog NOTIFY as per RFC 6665.
record_route();
}
route(RELAY); # we should absorb this ACK, no?
exit;
}
4. If I remove the Path proxy and kamailio is the TLS proxy at
voice.example.com the call flow works perfectly.
The ACK from caller (david) is absorbed.
5. Regular calls, when UA2 accepts the call, work fine. In-dialog
requests for BYE, from both UAs, work
correctly with this Path proxy. Each UA has the complete 5 element
route set( 2 x Path proxy + kamailio + 2 x Path proxy).
The working route set looks like this:
BYE sip:david@192.168.1.17:44925;transport=TCP;ob SIP/2.0
Via: SIP/2.0/TLS
192.168.1.7:37309;rport;branch=z9hG4bKPjHdUtaUL5AfRcV-SX1Puya4niJKOOQ4VQ;alias
Max-Forwards: 70
From: <sip:charles@voice.example.com>;tag=6zOt.H7w8NL5njV7klwGLlSJy.U5yBC9
To: <sip:david@voice.example.com>;tag=Pa0ORUxA-7lK0BnR4pLJ5n8rn2OvQrJy
Call-ID: 3gWy4Q7O.-zQ-I07lRKHyFyX6azyCSwG
CSeq: 12855 BYE
Route: <sip:voice.example.com;transport=tls;lr;r2=on>
Route: <sip:192.168.122.100;lr;r2=on>
Route: <sip:192.168.122.99:5064;lr>
Route: <sip:192.168.122.100;lr;r2=on>
Route: <sip:voice.example.com;transport=tls;lr;r2=on>
User-Agent: basesip 1.0.0
Content-Length: 0
Any ideas?
Anthony Alba
[View Less]
Hello,
I note that I can use the ndb_redis server config parameter to specify connection details for my redis servers; I also note that the connection string can specify a “db” parameter which can be set from 0 to 9, with the default being 0.
I am looking for a way to dynamically set the db parameter. I do not which to add the same server with different names N times just to select a different db and having N times more connections to it than necessary.
It looks as though I can call …
[View More]redis_cmd(“svrN”, “SELECT dbN”, “init”); but will that propagate properly and set the correct db for all connections to my redis server for the lifetime of the request?
Ideally, I’d like to be able to specify an avp for the db, or have a function to set the db per request.
With every blessing,
—
Daniel Donoghue
[View Less]
Hi,
I want to remove some "Allow" features from my Kamailio SBC like I want to keep following only
Allow: OPTIONS, NOTIFY, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, REGISTER,
How can I achieve that?
Thanks,
Subject: How to DIY/Setup An Open Source IP PBX Appliance/Server?
Good day from Singapore,
After reading recent reviews, I gather that Asterisk is the gold
standard when it comes to open source VoIP systems and it is the most
famous open source PBX out there.
Article: Compare the Top 10 Best Open Source PBX Software of 2020
Link:
https://www.voipreview.org/business-voip/best-open-source-pbx-software
Article: Top 10 Free Open Source PBX Software Solutions
Link: https://getvoip.com/blog/…
[View More]2016/09/23/best-open-source-pbx-software/
The following is an excerpt from Wikipedia:
"Asterisk is a core component in many commercial products and
open-source projects. Some of the commercial products are hardware and
software bundles, for which the manufacturer supports and releases the
software with an open-source distribution model.
AskoziaPBX, a fork of the m0n0wall project, uses Asterisk PBX software
to realize all telephony functions.
AstLinux is a "Network Appliance for Communications" open-source
software distribution.[15]
FreePBX, an open-source graphical user interface, bundles Asterisk as
the core of its FreePBX Distro[16]
LinuxMCE bundles Asterisk to provide telephony; there is also an
embedded version of Asterisk for OpenWrt routers.
PBX in a Flash/Incredible PBX and trixbox are software PBXes based on
Asterisk.
Elastix previously used Asterisk, HylaFAX, Openfire and Postfix to offer
PBX, fax, instant messaging and email functions, respectively, before
switching to 3CX.
Issabel is an open-source Unified Communications software which uses
Asterisk for telephony functions. It was forked from the open-source
versions of Elastix when 3CX acquired it.
*astTECS uses Asterisk in its VoIP and mobile gateways."
Link: https://en.wikipedia.org/wiki/Asterisk_(PBX)
I would like to DIY/setup an IP PBX appliance/server using free open
source projects.
Which free open source project, mentioned in the list and links above,
would you recommend to DIY my IP PBX appliance/server?
Should I buy a desktop computer or get one of those appliances listed in
the link below to serve as my IP PBX appliance/server?
Link:
https://www.lazada.sg/products/pfsense-iron-metal-case-fanless-intel-celero…
Please also refer me to very good, detailed and well explained
guides/tutorials/manuals on setting up open source IP PBX
appliances/servers.
Lastly, please recommend a cheap and affordable IP phone (suggest brand
and model) to go along with my DIY open source IP PBX appliance/server.
Mr. Turritopsis Dohrnii Teo En Ming, 42 years as of 1st December 2020
Tuesday, is a TARGETED INDIVIDUAL (TI) living in Singapore.
Thank you very much.
-----BEGIN EMAIL SIGNATURE-----
The Gospel for all Targeted Individuals (TIs):
[The New York Times] Microwave Weapons Are Prime Suspect in Ills of
U.S. Embassy Workers
Link:
https://www.nytimes.com/2018/09/01/science/sonic-attack-cuba-microwave.html
********************************************************************************************
Singaporean Targeted Individual Mr. Turritopsis Dohrnii Teo En Ming's
Academic
Qualifications as at 14 Feb 2019 and refugee seeking attempts at the
United Nations Refugee Agency Bangkok (21 Mar 2017), in Taiwan (5 Aug
2019) and Australia (25 Dec 2019 to 9 Jan 2020):
[1] https://tdtemcerts.wordpress.com/
[2] https://tdtemcerts.blogspot.sg/
[3] https://www.scribd.com/user/270125049/Teo-En-Ming
-----END EMAIL SIGNATURE-----
[View Less]
Is there a way to obtain the effect of msg_apply_changes in a branch route?
I want to do:
route[BRANCHMANAGE] {
rtpengine_manage()
msg_apply_changes()
// further mangle the SDP with textops for
// obtuse UAs
}
The reason for this, is that after forking, I have some UAs that are
extremely picky about SDP, and I need to mangle the body to make them
happy. (4000 char limit, 68 attribute limit on SDP body - ever seen
that? Compared with the absolutely gigantic OFFERs from WebRTC
signalling …
[View More]libraries...)
Now rtpengine_manage() and textops are working on separate copies of
the msg body and the results don't stack correctly.
Cheers
Anthony Alba
[View Less]
Thanks for the link.
One issue I've noticed:
If you have an empty comment line (just # on a single line), then the next line is wrongly highlighted as comments.
For example:
#
loadmodule "db_postgres.so"
> i'm using https://github.com/miconda/vscode-kamailio-syntax in VScode.
> its great!
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not …
[View More]the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
[View Less]
Hi Patrick,
better to contact our sr-users list with the usage related questions, added to CC.
Have a look to the SDP of the SIP packets to see if it contains the correct IP would be one idea to debug this further.
Feel free to ask again on sr-users after you have got more details.
Cheers,
Henning
--
Henning Westerholt – https://skalatan.de/blog/
Kamailio services – https://gilawa.com<https://gilawa.com/>
From: sr-dev <sr-dev-bounces(a)lists.kamailio.org> On Behalf Of Patrick …
[View More]Leybag
Sent: Wednesday, November 25, 2020 6:26 AM
To: sr-dev(a)lists.kamailio.org
Subject: [sr-dev] kamailio SIP and RTP proxy
Hi, Can someone help me?
I self host a kamailio using my raspberry pi as a load balancer for my two asterisk servers and get a did number. when I call to my DID number it points to my kamailio and kamailio will distribute to asterisk server but the call has no audio. I tried port forwarding ports 5060 for SIP and 10000-20000 for RTP but it still does not work.
Any help is much appreciated. Thank you in advance
[View Less]
Hi,
I am having a problem on fail overing my master kamailio server and slave
kamailio server.
I use kamailio as a load balancer for my asterisk servers. And it is
working with calls, but when I added failover with keepalived to the slave,
there is no audio during calls.
Thank you,
Rolly
Hello,
I have a kamailio server running behind HAProxy with proxy protocol v2 enabled.
In Kamailio I have set the parameter tcp_accept_haproxy=yes and loaded tcpops module.
UEs are registered using TLS and kamailio sees that the message has received from their real ip address + port and not HAProxy ip + port.
When UE A calls UE B, kamailio is trying to reach UE B using his real ip address and port instead of HAProxy IP address + port.
I know I can get the tcp ip and port of HAProxy using $tcp(…
[View More]c_si) and $tcp(c_sp) but I can’t make it work.
What is the right way to do this? How should I use these variables properly in order to establish the call successfully?
Thanks,
Joey.
[View Less]
Greetings,
I'm having a "fun" time trying to run Kamailio inside a Docker container.
It keeps failing with:
0(238) DEBUG: <core> [core/mem/pkg.c:108]: pkg_print_manager(): pkg -
using memory manager: q_malloc
0(238) DEBUG: <core> [core/mem/shm.c:300]: shm_print_manager(): shm -
using memory manager: q_malloc
Illegal instruction (core dumped)
Unfortunately the core dump is nowhere to be found. I have tried to follow
the instructions at:
https://www.kamailio.org/wiki/…
[View More]tutorials/troubleshooting/coredumpfile
but that hasn't helped.
The environment is as follows:
* Host hardware: Raspberry Pi 4 (4G memory)
* Host OS: Ubuntu 20.04.1 LTS
* Docker version 19.03.13
* Docker base image: arm32v7/ubuntu
root@2ef8a21534fa:/# kamailio -v
version: kamailio 5.3.2 (arm/linux)
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE,
USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC,
TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT-NOSMP,
USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST,
HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024,
BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: unknown
compiled with gcc 9.2.1
The config file passes the syntax check:
kamailio -c -f /etc/kamailio/kamailio.cfg
and, the most interesting part, if I run Kamailio on the host machine,
_with the exact same config file_, it runs fine.
I'd appreciate any clues you may have. Thanks.
cv
[View Less]
Hi,
What is the lifecycle of Branch Flag? If its set in Request Route will it be available till end of Dialog or It will be available during Transaction only ?
Thanks
Dear Users
I have been facing a diameter peer disconnection issue between I-CSCF and HSS. after taking traces on both sides, I saw a lot of TCP Zero Window packets from HSS towards I-CSCF and after that HSS disconnects with the following errors in the log.
Nov 26 20:30:25 PROD-HSS-STANDBY [HSS][16401]: ERROR: cdp [peerstatemachine.c:157]: sm_process(): sm_process(): In state Closed invalid event Timeout
Nov 26 20:31:25 PROD-HSS-STANDBY [HSS][16401]: ERROR: cdp [peerstatemachine.c:157]: …
[View More]sm_process(): sm_process(): In state Closed invalid event Timeout
Nov 26 20:32:25 PROD-HSS-STANDBY [HSS][16401]: ERROR: cdp [peerstatemachine.c:157]: sm_process(): sm_process(): In state Closed invalid event Timeout
Nov 26 20:33:04 PROD-HSS-STANDBY systemd[1]: Stopping LSB: Start the Kamailio SIP proxy server...
Nov 26 20:33:04 PROD-HSS-STANDBY kamailio_hss[18098]: Stopping Kamailio SIP Server: kamailio_hss:.
Nov 26 20:33:04 PROD-HSS-STANDBY systemd[1]: kamailio_hss.service: Succeeded.
Nov 26 20:33:04 PROD-HSS-STANDBY systemd[1]: Stopped LSB: Start the Kamailio SIP proxy server.
Nov 26 20:33:04 PROD-HSS-STANDBY [HSS][16274]: CRITICAL: cdp [diameter_peer.c:423]: diameter_peer_destroy(): destroy_diameter_peer(): Bye Bye from C Diameter Peer test
Nov 26 20:33:07 PROD-HSS-STANDBY systemd[1]: Starting LSB: Start the Kamailio SIP proxy server...
Nov 26 20:33:07 PROD-HSS-STANDBY kamailio_hss[18138]: Starting Kamailio SIP Server: kamailio_hss:loading modules under config path: /usr/local/lib64/kamailio/modules/:/usr/lib64/kamailio/modules_k/:/usr/lib64/kamailio/modules/:/usr/local/lib/kamailio/modules/
Nov 26 20:33:07 PROD-HSS-STANDBY kamailio_hss[18138]: Listening on
Nov 26 20:33:07 PROD-HSS-STANDBY kamailio_hss[18138]: udp: 10.161.224.81 [10.161.224.81]:8080
Nov 26 20:33:07 PROD-HSS-STANDBY kamailio_hss[18138]: tcp: 127.0.0.1 [127.0.0.1]:5090
Nov 26 20:33:07 PROD-HSS-STANDBY kamailio_hss[18138]: tcp: 10.161.224.81 [10.161.224.81]:8080
Nov 26 20:33:07 PROD-HSS-STANDBY kamailio_hss[18138]: Aliases:
Nov 26 20:33:07 PROD-HSS-STANDBY [HSS][18155]: WARNING: sl [../../modules/tm/tm_load.h:149]: load_tm_api(): Cannot import load_tm function from tm module
Nov 26 20:33:07 PROD-HSS-STANDBY [HSS][18155]: WARNING: sl [../../modules/tm/tm_load.h:149]: load_tm_api(): Cannot import load_tm function from tm module
Nov 26 20:33:07 PROD-HSS-STANDBY [HSS][18281]: WARNING: cdp [tcp_accept.c:120]: create_socket(): create_socket(): Trying to open/bind/listen on 10.161.224.81 port 3868
Nov 26 20:33:07 PROD-HSS-STANDBY [HSS][18281]: WARNING: cdp [tcp_accept.c:145]: create_socket(): create_socket(): Successful socket open/bind/listen on 10.161.224.81 port 3868
Nov 26 20:33:07 PROD-HSS-STANDBY kamailio_hss[18138]: .
Nov 26 20:33:07 PROD-HSS-STANDBY systemd[1]: Started LSB: Start the Kamailio SIP proxy server.
Nov 26 20:38:44 PROD-HSS-STANDBY [HSS][18282]: WARNING: cdp [peermanager.c:310]: peer_timer(): Inactivity on peer [icscfcdp2.ims.mnc006.mcc410.3gppnetwork.org] and no DWA, Closing peer...
Nov 26 20:39:01 PROD-HSS-STANDBY systemd[1]: Starting Clean php session files...
Nov 26 20:39:01 PROD-HSS-STANDBY systemd[1]: phpsessionclean.service: Succeeded.
Nov 26 20:39:01 PROD-HSS-STANDBY systemd[1]: Started Clean php session files.
Nov 26 20:39:20 PROD-HSS-STANDBY [HSS][18282]: ERROR: cdp [peerstatemachine.c:157]: sm_process(): sm_process(): In state Closed invalid event Timeout
I am using the following Kamailio version
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
Version: kamailio 5.2.8 (x86_64/linux) 5a7f5b
Default config: /usr/local/etc/kamailio/kamailio.cfg
Default paths to modules: /usr/local/lib64/kamailio/modules
Compile flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
MAX_RECV_BUFFER_SIZE=262144
MAX_URI_SIZE=1024
BUF_SIZE=65535
DEFAULT PKG_SIZE=8MB
DEFAULT SHM_SIZE=64MB
ADAPTIVE_WAIT_LOOPS=1024
TCP poll methods: poll, epoll_lt, epoll_et, sigio_rt, select
Source code revision ID: 5a7f5b
Compiled with: gcc 8.3.0
Compiled on: 04:34:39 Nov 19 2020
How I can resolve TCP Zero Window Error? I have already tried increasing CDP worker threads, TCP read and write buffers etc.
Regards
Hamid R. Hashmi
[View Less]
Hello,
I want to ask for your opinion on the best approach regarding the handling of locally generated 478 errors.
To give an example, like the ones generated from TM during t_relay() on an unresolvable destination.
Nov 25 17:40:13 kamailio[19345]: ERROR: {28607414 INVITE bba500ac-a9df-1239-6693-00505682c04d} tm [ut.h:286]: uri2dst2(): failed to resolve "invalid.skalatan.de" :unresolvable A or AAAA request (-7)
Nov 25 17:40:13 kamailio[19345]: ERROR: {28607414 INVITE bba500ac-a9df-1239-6693-…
[View More]00505682c04d} tm [t_fwd.c:1738]: t_forward_nonack(): failure to add branches
Nov 25 17:40:13 kamailio[19345]: CRITICAL: {28607414 INVITE bba500ac-a9df-1239-6693-00505682c04d} rtpengine [../../core/parser/../ip_addr.h:658]: ip_addr2sbuf(): unknown address family 0
These errors will not show up in onreply or failure_route. A long time ago this was discussed on the list [1], as some functionality were phased out out that support these scenarios.
Kamailio will try to generate a 478 with TM, this will obviously fail as well, and then generate a 478 with SL.
Question 1)
Is this intentional that the internally generated 478 is not showing up in the failure_route, like for for 408? This has been tested several times, but it is a complicated configuration.
Question 2)
Are there any other (better) ideas how to handle that besides using a "event_route[sl:local-response]" to catch this, e.g. to tear down otherwise stale rtpengine sessions etc..? As a side note, event_route[tm:local-response] seems not to work as well because of the tm failure.
Thanks,
Henning
[1] https://lists.kamailio.org/pipermail/sr-users/2011-June/069020.html
--
Henning Westerholt - https://skalatan.de/blog/
Kamailio services - https://gilawa.com<https://gilawa.com/>
[View Less]
Greetings ,
i am around to setup an IMS solution based on your Kamailio solution
however i cant find a clear guide to dit properly.
I am seeking by this mail you guide to could achieve my setup
Thanks and BR,
Adnen
Dear all
We are trying to use the evapi module to send some data to an external
application but I'm having problems getting the clients connected.
I have the kamailio (version 5.3) running with a tcp socket 127.0.0.1:8228,
and the evapi params are just
modparam("evapi", "workers", 4)
modparam("evapi", "netstring_format", 0)
modparam("evapi", "bind_addr", "127.0.0.1:8448")
modparam("evapi", "max_clients", 32)
I tried a different number of workers and netstring_format 1 too.
When I start the …
[View More]kamailio i added some debug to the code, and seems when
doing the mod init of the evapi dispatcher
38(4779) DEBUG: <core> [core/sr_module.c:779]: init_mod_child(): idx 38
rank -2: evapi [EvAPI Dispatcher]
it reaches to
while(1) {
ev_loop (loop, 0);
}
at evapi_run_dispatcher function.
I guess if I connected to the tcp socket and sent some event, I would see
the client accepted and the event route evapi:connection-new would be
triggered. But i'm not able to do that.
I tried to use the prime option, a tcp input client connection from
logstash, so i could relay the data to the logstash using the evapi relay,
but i only see the tcp socket being created but no client accepted.
I also tried to connect with an erlang gen_tcp client, but it's the same
i only see
47(4798) DEBUG: <core> [core/ip_addr.c:229]: print_ip(): tcpconn_new: new
tcp connection: 127.0.0.1
47(4798) DEBUG: <core> [core/tcp_main.c:1174]: tcpconn_new(): on port
54537, type 2, socket 105
47(4798) DEBUG: <core> [core/tcp_main.c:1497]: tcpconn_add(): hashes:
1117:1187:1505, 1
47(4798) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG:
io_watch_add(0xad0880, 105, 2, 0x7fc211712d58), fd_no=53
and if i try to send any data
47(4798) DEBUG: <core> [core/io_wait.h:600]: io_watch_del(): DBG:
io_watch_del (0xad0880, 105, -1, 0x0) fd_no=54 called
47(4798) DEBUG: <core> [core/tcp_main.c:4456]: handle_tcpconn_ev(): sending
to child, events 1
47(4798) DEBUG: <core> [core/tcp_main.c:4129]: send2child(): selected tcp
worker idx:0 proc:43 pid:4791 for activity on [tcp:127.0.0.1:8448],
0x7fc211712d58
43(4791) DEBUG: <core> [core/tcp_read.c:1749]: handle_io(): received n=8
con=0x7fc211712d58, fd=39
43(4791) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG:
io_watch_add(0xb3c720, 39, 2, 0x7fc211712d58), fd_no=1
43(4791) DEBUG: <core> [core/io_wait.h:600]: io_watch_del(): DBG:
io_watch_del (0xb3c720, 39, -1, 0x10) fd_no=2 called
43(4791) DEBUG: <core> [core/tcp_read.c:1671]: release_tcpconn(): releasing
con 0x7fc211712d58, state 1, fd=39, id=1 ([127.0.0.1]:54537 ->
[127.0.0.1]:8448)
43(4791) DEBUG: <core> [core/tcp_read.c:1672]: release_tcpconn():
extra_data (nil)
47(4798) DEBUG: <core> [core/tcp_main.c:3559]: handle_tcp_child(): reader
response= 7fc211712d58, 1 from 0
47(4798) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG:
io_watch_add(0xad0880, 105, 2, 0x7fc211712d58), fd_no=53
47(4798) DEBUG: <core> [core/tcp_main.c:3686]: handle_tcp_child():
CONN_RELEASE 0x7fc211712d58 refcnt= 1
and when i try to send any data
38(10867) DEBUG: evapi [evapi_dispatch.c:610]: evapi_recv_notify():
received [0x7f17d23fc628] [{"test" : "1.1.1.1", "uuid" : "1-31629(a)3.3.3.3"
, "pdd" : "4"}] (75)
38(10867) DEBUG: evapi [evapi_dispatch.c:316]: evapi_dispatch_notify(): the
message was sent to 0 clients
I don't know what i'm missing, or if i'm understanding the use of the
module correctly
could you please take a look?
thanks a lot
David
--
[image: Logo]
David Escartín Almudévar
VoIP/Switch Engineer
descartin(a)sonoc.io
*SONOC*
C/ Josefa Amar y Borbón, 10, 4ª · 50001 Zaragoza, España
Tlf: +34 917019888 · www.sonoc.io
[View Less]
On a usrloc record there is an Address field and Received field. The
Received field is sometimes not set. What causes it to be not set and what
is the difference between the two fields. Sorry if this is a dumb question,
I looked at documentation but couldn't find it spelled out. Here is are 2
examples from kamcmd ul.dump:
{
AoR: utkcf9b6h3(a)ata.phaxio.com
Contacts: {
Contact: {
Address: sip:utkc4ff9b6h3@69.78.34.56:4615;transport=tcp
…
[View More] Expires: 42
Q: -1.000000
Call-ID: d1c314305df3d342(a)192.168.0.3
CSeq: 129173
User-Agent: OBIHAI/OBi200-3.2.2.5898
Received: [not set]
Path: [not set]
State: CS_NEW
Flags: 0
CFlags: 0
Socket: tcp:10.0.22.254:5060
Methods: 7839
Ruid: uloc-5fbdd369-491e-4
Instance:
<urn:uuid:00000000-0000-0000-0000-9cadef62b3da>
Reg-Id: 0
Server-Id: 0
Tcpconn-Id: 58
Keepalive: 0
Last-Keepalive: 1606317577
Last-Modified: 1606317577
}
}
}
Contact: {
Address: sip:mfjngfd272av@192.168.0.106:5060
Expires: 30
Q: -1.000000
Call-ID: 67413de375b2e76c(a)192.168.0.106
CSeq: 146320
User-Agent: OBIHAI/OBi300-3.2.2.5921
Received: sip:70.34.56.78:5060
Path: [not set]
State: CS_NEW
Flags: 0
CFlags: 64
Socket: udp:10.0.22.254:5060
Methods: 7839
Ruid: uloc-5fbdd369-490e-efa3
Instance: <urn:uuid:00000000-0000-0000-0000-9cadef810877>
Reg-Id: 0
Server-Id: 0
Tcpconn-Id: -1
Keepalive: 1
Last-Keepalive: 1606314719
Last-Modified: 1606314719
}
[View Less]
Hello,
in order to plan the roadmap to next major release, it is time to
organize another online devel meeting, so the developers and community
members can syncronize and plan what should be done till Kamailio v5.5
will be out.
Because freenode.net service is requiring user registration to join
IRC channels on their servers, the meeting will be done on a matrix chat
room. More details are in the wiki page of the event, available at:
* https://www.kamailio.org/wiki/devel/irc-meetings/…
[View More]2020b
Feel free to add there topics that you want to be discussed.
The proposed date is next Wednesday, November 25, 2020, at 15:00UTC (15:00
London/Dublin, 16:00 most of West Europe, 10:00 New York), but other
dates can be proposed if they suit for more participants.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
[View Less]
hi,
i'm using https://github.com/miconda/vscode-kamailio-syntax in VScode.
its great!
But i need format code. Are there some formatters for kamailio.cfg? It
can be for other editors than VScode.
Marek
Hi all,
I need some help on getting to work my scenario:
I have 3 asterisk servers, and every agents (soft phones like zoiper) is
connecting to which server they need by contacting the PublicIP of each
server. (the problem is that I need to reuse the IP address on others
servers) .
I want if is possible to use a proxy like "haproxy" but for sip to redirect
the agents (softphones),
to their coresponding server.
For example:
- james(a)ast.example.com -> must register to asterisk server 1,
…
[View More]- sarah(a)ast2.exampe.com -> must register to asterisk server 2
- andy(a)ast3.example.com-> must register to asterisk server 3
ast.example.com, ast2.example.com, ast3.example.com = will share all
the same ip,
when the request arrives in the proxy it should check the vhost and
redirect to the coresponding server for registering.
Any hints and how to do this scenario?
[View Less]
Hi,
I am integrating PBX with Teams via Kamailio
Call is working but ACK delivery has an issue
This is the ACK Kamailio receives from PBX
I process the ACK with
handle_ruri_alias();
and
record_route_preset(AS per GUIDE LINES)
But this change is not reflected in RELAY
ACK from PBX
ACK sip:api-du-b-usea.pstnhub.microsoft.com:443;x-i=0c344c6a-cd75-4095-9891-bf9445c28b82;x-c=5691aa770226562db7d3e16ab090e196/s/1/e857255ef2344e03bd1d12e270ef5e6c;ias=52.114.132.…
[View More]46~5061~3 SIP/2.0 Via: SIP/2.0/UDP PBX_IP:7790;rport;branch=z9hG4bKPjc50440d0-77db-4467-94cb-2f93c4f88538 From: "USER" <sip:13300@PBX_IP>;tag=ab87b9b5-eee3-420c-8472-2eec82a769ac To: <sip:1508@KAMAILIO_IP>;tag=a2ce378b106949cf8bac8f978bb573fb Call-ID: 3dbc6680-fec3-4ba5-8232-6dda8c669bca CSeq: 23811 ACK Route: <sip:KAMAILIO_IP:7790;lr;ftag=ab87b9b5-eee3-420c-8472-2eec82a769ac> Route: <sip:sbc.KAMAILIO_FQDN.com;transport=tls;lr;ftag=ab87b9b5-eee3-420c-8472-2eec82a769ac> Route: <sip:sip-du-a-us.pstnhub.microsoft.com:5061;transport=tls;lr> Max-Forwards: 70 User-Agent: Asterisk Content-Length: 0 X-Siptrace-Fromip: udp:PBX_IP:7790 X-Siptrace-Toip: udp:KAMAILIO_IP:7790 X-Siptrace-Time: 1606135546 516717 X-Siptrace-Method: ACK X-Siptrace-Dir: in
[View Less]
Hello kamailioers,
Version 5.4.2.
I have a R-URI that I need to change TLS -> TCP in all branches.
I do this in request route before t_relay:
// AoR has multiple contacts, all with transport=TLS
route[REQUEST] {
textops.subst_uri("/transport=TLS/transport=TCP/i")
//parallel forking
//why doesn't this change all branches?
t_relay()
}
If I print out the R-URI in the branch route, I see that only the
first R-URI is changed, in the other branches the R-URI transport=TLS
is not changed to …
[View More]transport=TCP.
Any suggestions on how to get this to work across all Contact addresses?
Thanks
Anthony Alba
[View Less]
Hi Folks,
I was wondering if somebody could help me with an issue. I’m a newbie here, just installing Kamailio sip server.
I’ve enabled TLS, and am trying create a SIP Trunk to external SIP Service which is TLS enabled port 5061.
I’ve configured the following in tls.cfg:
[server:default]
method = TLSv1.2+
verify_certificate = yes
require_certificate = yes
private_key = /etc/kamailio/certs/sbc-private.pem
certificate = /etc/kamailio/certs/godaddy.pem
ca_list = /etc/kamailio/certs/calist.…
[View More]pem
In the section above – ca_list = calist.pem contains all the CA’s and Subordinates of the destination server.
Private_key and certificate are of my own server (public godaddy signed)
[client:default]
method = TLSv1.2+
verify_certificate = yes
require_certificate = yes
private_key = /etc/kamailio/certs/sbc-private.pem
certificate = /etc/kamailio/certs/godaddy.pem
ca_list = /etc/kamailio/certs/godaddyca.pem
In the section above the ca_list is godaddy’s ca and subordinate.
In the wireshark I can see that I’m sending out SIP OPTIONS PING (I’m using dispatcher module).
Then the server replies with tls SERVER HELLO which includes it’s certificate
But for some reason we are rejecting it:
Alert (level: fatal, Description: Unknown CA)
How should I set this up to make sure the remote server CA’s are verified?
Thank you,
[View Less]
Hello,
I'm trying to use the function t_uac_send inside a failure_route as
described in https://kamailio.org/docs/modules/5.3.x/modules/tm.html#tm.f.t_uac_send
to send a CANCEL out.
Although the documentation says "it can include From/To tags" i was
not able to get the from tag provided to be used. Another random
generated one is used.
I've tried the following format without success:
t_uac_send("CANCEL", "$ru", "", "", "From: <$fu>;tag=$ft\r\nTo:
$tu\r\nCall-ID: $ci\r\n", "")
…
[View More]t_uac_send("CANCEL", "$ru", "", "", "From: $fu;tag=$ft\r\nTo:
$tu\r\nCall-ID: $ci\r\n", "")
t_uac_send("CANCEL", "$ru", "", "", "From:
bob(a)kamailio.org;tag=2w3e\r\nTo: $tu\r\nCall-ID: $ci\r\n", "")
In the last one which is copied from the documentation that is how the
>From header going out looks like:
From: <bob(a)kamailio.org;tag=2w3e>;tag=3393f0703fb0ccaca74109ff37de39f5-36d71ef0
Any tips on how to get the From tag passed to the function to be used?
Thanks,
Joao Arruda
[View Less]
Hi, I have have Kamailio as SBC one-end is SRTP and other end is RTP
So I m using
rtpengine_manage("replace-origin replace-session-connection DTLS=passive OSRTP-offer ICE=force SRTP")rtpengine_manage("replace-origin replace-session-connection DTLS=off SDES-off ICE=remove RTP")
1-Asterisk(RTP) -----2-Kamailio/RTPEngine ------ 3- Carrier with SRTP
I detect source IPs and to manage this all.
When call is made from 1 to 3 all works and during call 3 send re-Invite to Hold Call .. We …
[View More]need to call rtpengine_manage and also when on 200OK reply of re-invite from 1.
How shall I detect that 1- if this is Re-Invite (has_totag() )and 2- its from Callee.
Please advise.
[View Less]
Hi;
I want to remove all plain text usernames an passwords from kamailio.cfg
file. Like modparam("auth_db", "db_url", "dbdriver://username:password
@dbhost/dbname")
or this modparam("sqlops","sqlcon","ca=>dbdriver://username:password
@dbhost/dbname")
Can you help me with some ideas of how can I handle that?
Thank you.
Hi everyone,
I've got a specific case: when the inv_fr times out, I need to add a Reason
header to the CANCEL generated by kamailio. I've tried to see if I could do
it in the onsend_route, but that one is not triggered for the generated
CANCEL. I also checked event_route[tm:local-request], but that one isn't
triggered either for the generated CANCEL.
Is there any way to do it? Or maybe to have any pointer about where to look
in the code so I may try to trigger event_route[tm:local-request] …
[View More]for these
generated CANCELs?
Regards,
Alfonso
[View Less]
Hello guys,
I have a setup like this:
FS(private)-->(private)Kamailio1(Public)-->Kamailio2(public)-->provider.
I have mhomed=0, enable_double_rr=1, I'm listening on 2 different ports, 1
private, 1 public (with advertise) and on Kamailio1 the DISPATCH ROUTE I
force the socket
$fs = "LISTEN_PRIVATE_PROTO:LISTEN_PRIVATE_IF:5080";
To the private ip when the destination IP is a private IP.
This all works fine.
But When calling OUT (i.e. public) kamailio adds itself only for the
…
[View More]private IP:
*INVITE sip:12345678@mydmain.com <sip%3A12345678(a)mydmain.com>
SIP/2.0Record-Route: <sip:172.31.25.124:5080;lr;did=9da.3a61;nat=yes>Via:
SIP/2.0/UDP
172.31.25.124:5080;branch=z9hG4bKf05e.979fd257ac7f288804ef146d12c1e0fb.0Via:
SIP/2.0/UDP
172.31.6.1:5080;received=172.31.6.1;rport=5080;branch=z9hG4bKQ3H8mgHaUjaBm*
So when INFO messages come from the provider to kamailio2, kamailio 2 tries
to send the INFO straight to "172.21.25.124".
Should i manually add a record-route when calling OUT with
record_route_advertised_address("1.2.3.4:5090");
Or is there a better way of getting this working?
Regards,
David Villasmil
email: david.villasmil.work(a)gmail.com
phone: +34669448337
[View Less]
Hi there!
Configuring the UAC module to use "remote registers" in a Kamailio 4.4.3.
Everything it's working except for the flags database field to which I
always put a value of 0. But when Kamailio starts to launch the
REGISTRATION that field does not persist in the DB.
In the kamailio.cfg file I have not made any changes, I only use the
remote registers DB feature.
Is it normal behavior? Do I have any parameters not set or incorrectly set?
Regards, JV
Hi there,
Does Kamailio have a function to add URI parameters? I looked around but
couldn't find one. I refuse to believe Kamailio doesn't have one.
There's a *add_uri_param(param)*, but that's strictly for R-URI. I need it
for something else, Contact.
Thanks,
--Sergiu
Hi
I want to configure Kamailio SIP server to act as a SBC.
I had read the article of Kamailio working as SBC to connect MS Team project:
https://skalatan.de/en/blog/kamailio-sbc-teams
But I can not find the kamailio.cfg file for this scenario.
Can anybody give me a configuration template of SBC?
BRs
Albert
Hi,
I am using FreeSwitches behind the Kamailio proxy server and I am trying to
allow multiple registration to my extensions.
So, following configuration is sample of my Kamailio
modparam("registrar", "xavp_cfg", "reg")
......
$xavp(reg=>max_contacts) = 10;
save("location");
....
I saw my phones could register with the same account credentials via
several phones such as Cisco, Zoiper, Yealing etc. When the call is forward
to this extension, all of them are ringing. Very Nice.
But, …
[View More]when I am trying to REGISTER WebRTC supports soft-phones to my system
and with the same account credentials, my extensions are not ringing like
in the previous scenario. WebRTC uses Websocket (WS) technology and
clients register to Kamailio via usrloc module.
When the call is forward to this extension, Kamailio try to replicate
WebRTC'S INVITE packet to other phones (Cisco, Yealing, zoiper etc) and
none of them understand incoming INVITE request because of WebRTC
supported protocols (ICE ,a=candidate) , in a brief, phones could not
recognize/understand incoming WebRTC request.
This is a really tough issue for me, how can I send appropriate INVITEs for
each of them.
[View Less]
About The Algorithm “13” - latency optimized dispatching,
Is now reviewed once and tested, it will most likely be ready to merge soon.
I want to share my thoughts on it one more time as it is not too late to
get more feedback before we merge.
I think it is the best algorithm in most use cases, here is why :
It is providing round-robin and fail-over with automatic de-prioritization
of slow/unresponsive gateways.
You probably asked yourself the following questions in the past :
"How do I set …
[View More]the thresholds to put a gateway out of service ?"
*ds_probing_threshold*, *ds_inactive_threshold* and timers ...
- If your thresholds are too strict, you may end up running out of gateway.
- If your thresholds are too tolerant, you may end up adding excessive
delays to call establishment and using degraded gateways.
The automatic de-prioritization can help to address this concern more
efficiently by providing more flexibility.
- it can react faster than lets say 2 consecutive timeouts.
- it will not disable gateways but simply de-prioritize / reorder them if
needed.
The only main drawback I can imagine is when you always need to evenly
distribute calls using round-robin.
It may be needed sometimes but in this case it means you are willing accept
to send calls to a degraded gateway or trough degraded network paths.
Even if you may select to preset a mixture of round-robin sets, thanks to
*ds_select_routes* however it will stay static, needs to be configured
precisely, and will not react to degradation automatically.
I hope this will help use to protect QoS and lower latency of calls routed
by Kamailio.
Feel free to let me know what you think
Julien
[View Less]
Hi,
I'm currently trying to connect Kamailio, running in docker, to my
FritzBox. The FritzBox is the modem provided by my ISP, with a builtin voip
server which I can use to dial out (basically a PSTN gateway). In my setup
I have a custom router/firewall/NAT between the FritzBox and the server.
When I connect LinPhone to the FritzBox, from behind the NAT, it works
fine. But when I use the Kamailio uac remote registration, I don't get a
response. After some investigation with wireshark, I found …
[View More]that the the SIP
response from the FritzBox comes on the wrong port, and gets rejected by
the NAT. The request comes from port 1025, but the response is sent to port
5060. I compared the requests from LinPhone and Kamailio, and combined with
some research, found it probably was the rport option in the VIA header.
>From what I read, it basically signals the uas to use the source port to
reply to, instead of the port indicated in the request, which would be
necessary to effectively go through a NAT.
After reading a lot of documentation (and even parts of the source), I
wasn't able to find an option to enable this option. Is there some option I
completely missed, or is it not possible? Or am I completely wrong in my
"diagnosis"?
Thanks in advance,
Jetse
[View Less]
Hello Everyone.
I am having trouble to setting up kamailio for load balancing for asterisk
servers.
I am using module dispatcher for load balancing AND two different servers
for kamailio and asterisk.
I am doing it first time and have not exact idea about its all configs… but
i have researched and done so far, now need help from you guys. Currently,
trying to setup with the one kamailio and one asterisk then will go ahead
if I get any success…
using MariaDB MySQL for the dispatcher data.
…
[View More]Simply I want to do is :
1. Register my asterisk devices with kamailioIP (and I am able to do this
using below configs)
Devices are getting register with the asterisk from with kamailioIP
2. I want to receive calls on the registered devices with KamailioIP (and i
am not able to do this)
WORK FLOW:
KAMAILIO IP = XX.XX.XX.95 on port 5060 and Asterisk IP = XX.XX.XX.164 on
port 5060
SIP Device(ZOIPER) -------->>>>KAMAILIO SERVER(device register/load
balancer)--------->>> ASTERISK SERVER
Please have a look into my configuration files and let me know if anything
is missing or wrong in these. Or anything to add or remove from the confs…
my kamailio.cfg
#!KAMAILIO
#!define WITH_MYSQL
#!define WITH_AUTH
#!define WITH_ASTERISK
#define WITH_NAT
#!define WITH_DEBUG
#!define WITH_USRLOCDB
#
# Kamailio (OpenSER) SIP Server v3.3 - default configuration script
# - web: http://www.kamailio.org
# - git: http://sip-router.org
#
# Direct your questions about this file to: <sr-users(a)lists.sip-router.org>
#
# Refer to the Core CookBook at http://www.kamailio.org/dokuwiki/doku.php
# for an explanation of possible statements, functions and parameters.
#
# Several features can be enabled using '#!define WITH_FEATURE' directives:
#
# *** To run in debug mode:
# - define WITH_DEBUG
#
# *** To enable mysql:
# - define WITH_MYSQL
#
# *** To enable authentication execute:
# - enable mysql
# - define WITH_AUTH
# - add users using 'kamctl'
#
# *** To enable IP authentication execute:
# - enable mysql
# - enable authentication
# - define WITH_IPAUTH
# - add IP addresses with group id '1' to 'address' table
#
# *** To enable persistent user location execute:
# - enable mysql
# - define WITH_USRLOCDB
#
# *** To enable presence server execute:
# - enable mysql
# - define WITH_PRESENCE
#
# *** To enable nat traversal execute:
# - define WITH_NAT
# - install RTPProxy: http://www.rtpproxy.org
# - start RTPProxy:
# rtpproxy -l _your_public_ip_ -s udp:localhost:7722
#
# *** To enable PSTN gateway routing execute:
# - define WITH_PSTN
# - set the value of pstn.gw_ip
# - check route[PSTN] for regexp routing condition
#
# *** To enable database aliases lookup execute:
# - enable mysql
# - define WITH_ALIASDB
#
# *** To enable speed dial lookup execute:
# - enable mysql
# - define WITH_SPEEDDIAL
#
# *** To enable multi-domain support execute:
# - enable mysql
# - define WITH_MULTIDOMAIN
#
# *** To enable TLS support execute:
# - adjust CFGDIR/tls.cfg as needed
# - define WITH_TLS
#
# *** To enable XMLRPC support execute:
# - define WITH_XMLRPC
# - adjust route[XMLRPC] for access policy
#
# *** To enable anti-flood detection execute:
# - adjust pike and htable=>ipban settings as needed (default is
# block if more than 16 requests in 2 seconds and ban for 300 seconds)
# - define WITH_ANTIFLOOD
#
# *** To block 3XX redirect replies execute:
# - define WITH_BLOCK3XX
#
# *** To enable VoiceMail routing execute:
# - define WITH_VOICEMAIL
# - set the value of voicemail.srv_ip
# - adjust the value of voicemail.srv_port
#
# *** To enhance accounting execute:
# - enable mysql
# - define WITH_ACCDB
# - add following columns to database
#!ifdef ACCDB_COMMENT
ALTER TABLE acc ADD COLUMN src_user VARCHAR(64) NOT NULL DEFAULT '';
ALTER TABLE acc ADD COLUMN src_domain VARCHAR(128) NOT NULL DEFAULT '';
ALTER TABLE acc ADD COLUMN src_ip varchar(64) NOT NULL default '';
ALTER TABLE acc ADD COLUMN dst_ouser VARCHAR(64) NOT NULL DEFAULT '';
ALTER TABLE acc ADD COLUMN dst_user VARCHAR(64) NOT NULL DEFAULT '';
ALTER TABLE acc ADD COLUMN dst_domain VARCHAR(128) NOT NULL DEFAULT '';
ALTER TABLE missed_calls ADD COLUMN src_user VARCHAR(64) NOT NULL DEFAULT
'';
ALTER TABLE missed_calls ADD COLUMN src_domain VARCHAR(128) NOT NULL
DEFAULT '';
ALTER TABLE missed_calls ADD COLUMN src_ip varchar(64) NOT NULL default '';
ALTER TABLE missed_calls ADD COLUMN dst_ouser VARCHAR(64) NOT NULL DEFAULT
'';
ALTER TABLE missed_calls ADD COLUMN dst_user VARCHAR(64) NOT NULL DEFAULT
'';
ALTER TABLE missed_calls ADD COLUMN dst_domain VARCHAR(128) NOT NULL
DEFAULT '';
#!endif
####### Defined Values #########
# *** Value defines - IDs used later in config
#!ifdef WITH_MYSQL
# - database URL - used to connect to database server by modules such
# as: auth_db, acc, usrloc, a.s.o.
#!define DBURL "mysql://kamailio:kamailiorw@localhost/kamailio"
#!ifdef WITH_ASTERISK
#!define DBASTURL "mysql://kamailio:kamailiorw@localhost/kamailio"
#!endif
#!endif
#!ifdef WITH_MULTIDOMAIN
# - the value for 'use_domain' parameters
#!define MULTIDOMAIN 1
#!else
#!define MULTIDOMAIN 0
#!endif
# - flags
# FLT_ - per transaction (message) flags
# FLB_ - per branch flags
#!define FLT_ACC 1
#!define FLT_ACCMISSED 2
#!define FLT_ACCFAILED 3
#!define FLT_NATS 5
#!define FLB_NATB 6
#!define FLB_NATSIPPING 7
####### Global Parameters #########
#!ifdef WITH_DEBUG
debug=4
log_stderror=yes
#!else
debug=2
log_stderror=no
#!endif
memdbg=5
memlog=5
log_facility=LOG_LOCAL7
log_name="kamailio"
children=4
/* uncomment the next line to disable TCP (default on) */
#disable_tcp=yes
/* uncomment the next line to disable the auto discovery of local aliases
based on reverse DNS on IPs (default on) */
#auto_aliases=no
/* add local domain aliases */
#alias="sip.mydomain.com"
/* uncomment and configure the following line if you want Kamailio to
bind on a specific interface/port/proto (default bind on all available) */
#listen=udp:0.0.0.0:5060
#listen=udp: KamailioIP:5060
/* port to listen to
* - can be specified more than once if needed to listen on many ports */
port=5060
#!ifdef WITH_TLS
enable_tls=yes
#!endif
# life time of TCP connection when there is no traffic
# - a bit higher than registration expires to cope with UA behind NAT
tcp_connection_lifetime=3605
####### Custom Parameters #########
# These parameters can be modified runtime via RPC interface
# - see the documentation of 'cfg_rpc' module.
#
# Format: group.id = value 'desc' description
# Access: $sel(cfg_get.group.id) or @cfg_get.group.id
#
#!ifdef WITH_PSTN
# PSTN GW Routing
#
# - pstn.gw_ip: valid IP or hostname as string value, example:
# pstn.gw_ip = "10.0.0.101" desc "My PSTN GW Address"
#
# - by default is empty to avoid misrouting
pstn.gw_ip = "" desc "PSTN GW Address"
#!endif
#!ifdef WITH_VOICEMAIL
# VoiceMail Routing on offline, busy or no answer
#
# - by default Voicemail server IP is empty to avoid misrouting
voicemail.srv_ip = "" desc "VoiceMail IP Address"
voicemail.srv_port = "5060" desc "VoiceMail Port"
#!endif
#!ifdef WITH_ASTERISK
asterisk.bindip = " ASTERISKIP.164" desc "Asterisk IP Address"
asterisk.bindport = "5060" desc "Asterisk Port"
kamailio.bindip = " KamailioIP .95" desc "Kamailio IP Address"
kamailio.bindport = "5060" desc "Kamailio Port"
#!endif
####### Modules Section ########
# set paths to location of modules (to sources or installation folders)
#!ifdef WITH_SRCPATH
mpath="/usr/local/kamailio-devel/lib64/kamailio/modules/"
#!else
mpath="/usr/local/kamailio-devel/lib64/kamailio/modules/"
#!endif
#!ifdef WITH_MYSQL
loadmodule "db_mysql.so"
#!endif
loadmodule "kex.so"
loadmodule "tm.so"
loadmodule "tmx.so"
loadmodule "sl.so"
loadmodule "rr.so"
loadmodule "pv.so"
loadmodule "maxfwd.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "textops.so"
loadmodule "siputils.so"
loadmodule "xlog.so"
loadmodule "sanity.so"
loadmodule "ctl.so"
loadmodule "cfg_rpc.so"
loadmodule "acc.so"
loadmodule "sctp.so"
loadmodule "dialog.so"
loadmodule "siptrace.so"
#!ifdef WITH_AUTH
loadmodule "auth.so"
loadmodule "auth_db.so"
#!ifdef WITH_IPAUTH
loadmodule "permissions.so"
#!endif
#!endif
#!ifdef WITH_ALIASDB
loadmodule "alias_db.so"
#!endif
#!ifdef WITH_SPEEDDIAL
loadmodule "speeddial.so"
#!endif
#!ifdef WITH_MULTIDOMAIN
loadmodule "domain.so"
#!endif
#!ifdef WITH_PRESENCE
loadmodule "presence.so"
loadmodule "presence_xml.so"
#!endif
#!ifdef WITH_NAT
loadmodule "nathelper.so"
loadmodule "rtpproxy.so"
#!endif
#!ifdef WITH_TLS
loadmodule "tls.so"
#!endif
#!ifdef WITH_ANTIFLOOD
loadmodule "htable.so"
loadmodule "pike.so"
#!endif
#!ifdef WITH_XMLRPC
loadmodule "xmlrpc.so"
#!endif
#!ifdef WITH_DEBUG
loadmodule "debugger.so"
#!endif
#!ifdef WITH_ASTERISK
loadmodule "uac.so"
loadmodule "dispatcher.so"
loadmodule "jsonrpcs.so"
loadmodule "htable.so"
# ---------------------- mod dispatcher params
------------------------------
modparam("dispatcher", "db_url", DBURL)
modparam("dispatcher", "table_name", "dispatcher")
modparam("dispatcher", "ds_ping_interval", 15)
modparam("dispatcher", "ds_ping_from", "sip:dispathcer@ KamailioIP ")
modparam("dispatcher", "force_dst", 1)
modparam("dispatcher", "ds_ping_method", "INFO")
#modparam("dispatcher", "ds_probing_mode", 1)
modparam("dispatcher", "ds_probing_threshold", 1)
#modparam("dispatcher", "ds_ping_reply_codes",
"class=2;code=403;code=404;code=484;code=488;code=481;class=3")
modparam("dispatcher", "ds_ping_reply_codes", "class=2;class=3;class=4")
#modparam("dispatcher", "priority_col", "dstpriority")
#modparam("dispatcher", "dstid_avp", "$avp(dsdstid)")
# do failover
modparam("dispatcher", "flags", 2)
#modparam("dispatcher", "dst_avp", "$avp(AVP_DST)")
#modparam("dispatcher", "grp_avp", "$avp(AVP_GRP)")
#modparam("dispatcher", "cnt_avp", "$avp(AVP_CNT)")
#!endif
# ----------------- setting module-specific parameters ---------------
modparam("siptrace", "db_url", DBURL)
modparam("siptrace", "trace_flag", 22)
modparam("siptrace", "trace_on", 1)
# ----- jsonrpcs params -----
modparam("jsonrpcs", "pretty_format", 1)
/* set the path to RPC fifo control file */
# modparam("jsonrpcs", "fifo_name", "/run/kamailio/kamailio_rpc.fifo")
/* set the path to RPC unix socket control file */
# modparam("jsonrpcs", "dgram_socket", "/run/kamailio/kamailio_rpc.sock")
#!ifdef WITH_JSONRPC
modparam("jsonrpcs", "transport", 7)
#!endif
# ---------------------- mod uac params ------------------------------
modparam("uac", "reg_contact_addr", "ASTERISKIP:5060")
modparam("uac", "reg_db_url", "mysql://kamailio:kamailiorw@localhost
/kamailio")
modparam("uac", "reg_db_table", "uacreg")
modparam("uac", "reg_timer_interval", 60)
modparam("uac","restore_mode","auto")
modparam("uac", "restore_dlg", 1)
modparam("uac","auth_realm_avp","$avp(s:auth_realm_avp)")
modparam("uac","auth_username_avp","$avp(s:auth_username_avp)")
modparam("uac","auth_password_avp","$avp(s:auth_password_avp)")
# ----- mi_fifo params -----
#modparam("mi_fifo", "fifo_name", "/tmp/kamailio_fifo")
# ----- tm params -----
# auto-discard branches from previous serial forking leg
modparam("tm", "failure_reply_mode", 3)
# default retransmission timeout: 30sec
modparam("tm", "fr_timer", 30000)
# default invite retransmission timeout after 1xx: 120sec
modparam("tm", "fr_inv_timer", 120000)
modparam("tm", "ruri_matching", 0)
# ----- rr params -----
# add value to ;lr param to cope with most of the UAs
modparam("rr", "enable_full_lr", 1)
# do not append from tag to the RR (no need for this script)
#!ifdef WITH_ASTERISK
modparam("rr", "append_fromtag", 1)
#!else
modparam("rr", "append_fromtag", 0)
#!endif
# ----- registrar params -----
modparam("registrar", "method_filtering", 1)
/* uncomment the next line to disable parallel forking via location */
# modparam("registrar", "append_branches", 0)
/* uncomment the next line not to allow more than 10 contacts per AOR */
#modparam("registrar", "max_contacts", 10)
# max value for expires of registrations
modparam("registrar", "max_expires", 3600)
# set it to 1 to enable GRUU
modparam("registrar", "gruu_enabled", 0)
# ----- acc params -----
/* what special events should be accounted ? */
modparam("acc", "early_media", 0)
modparam("acc", "report_ack", 0)
modparam("acc", "report_cancels", 0)
/* by default ww do not adjust the direct of the sequential requests.
if you enable this parameter, be sure the enable "append_fromtag"
in "rr" module */
modparam("acc", "detect_direction", 0)
/* account triggers (flags) */
modparam("acc", "log_flag", FLT_ACC)
modparam("acc", "log_missed_flag", FLT_ACCMISSED)
modparam("acc", "log_extra",
"src_user=$fU;src_domain=$fd;src_ip=$si;"
"dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")
modparam("acc", "failed_transaction_flag", FLT_ACCFAILED)
/* enhanced DB accounting */
#!ifdef WITH_ACCDB
modparam("acc", "db_flag", FLT_ACC)
modparam("acc", "db_missed_flag", FLT_ACCMISSED)
modparam("acc", "db_url", DBURL)
modparam("acc", "db_extra",
"src_user=$fU;src_domain=$fd;src_ip=$si;"
"dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")
#!endif
# ----- usrloc params -----
/* enable DB persistency for location entries */
#!ifdef WITH_USRLOCDB
modparam("usrloc", "db_url", DBURL)
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "use_domain", MULTIDOMAIN)
modparam("usrloc", "matching_mode", 1)
modparam("usrloc", "db_insert_update", 1)
#!endif
# ----- auth_db params -----
#!ifdef WITH_AUTH
modparam("auth_db", "db_url", DBURL)
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "load_credentials", "")
#!ifdef WITH_ASTERISK
modparam("auth_db", "user_column", "username")
modparam("auth_db", "password_column", "secret")
modparam("auth_db", "db_url", DBASTURL)
modparam("auth_db", "version_table", 0)
#!else
modparam("auth_db", "db_url", DBURL)
modparam("auth_db", "password_column", "password")
modparam("auth_db", "use_domain", MULTIDOMAIN)
#!endif
# ----- permissions params -----
#!ifdef WITH_IPAUTH
modparam("permissions", "db_url", DBURL)
modparam("permissions", "db_mode", 1)
modparam("permissions", "trusted_table", "trusted")
#!endif
#!endif
# ----- alias_db params -----
#!ifdef WITH_ALIASDB
modparam("alias_db", "db_url", DBURL)
modparam("alias_db", "use_domain", MULTIDOMAIN)
#!endif
# ----- speedial params -----
#!ifdef WITH_SPEEDDIAL
modparam("speeddial", "db_url", DBURL)
modparam("speeddial", "use_domain", MULTIDOMAIN)
#!endif
# ----- domain params -----
#!ifdef WITH_MULTIDOMAIN
modparam("domain", "db_url", DBURL)
# register callback to match myself condition with domains list
modparam("domain", "register_myself", 1)
#!endif
#!ifdef WITH_PRESENCE
# ----- presence params -----
modparam("presence", "db_url", DBURL)
# ----- presence_xml params -----
modparam("presence_xml", "db_url", DBURL)
modparam("presence_xml", "force_active", 1)
#!endif
#!ifdef WITH_NAT
# ----- rtpproxy params -----
modparam("rtpproxy", "rtpproxy_sock", "udp:127.0.0.1:7722")
# ----- nathelper params -----
modparam("nathelper", "natping_interval", 30)
modparam("nathelper", "ping_nated_only", 1)
modparam("nathelper", "sipping_bflag", FLB_NATSIPPING)
modparam("nathelper", "sipping_from", "sip:pinger@kamailio.org")
# params needed for NAT traversal in other modules
modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)")
modparam("usrloc", "nat_bflag", FLB_NATB)
#!endif
#!ifdef WITH_TLS
# ----- tls params -----
modparam("tls", "config", "/usr/local/etc/kamailio/tls.cfg")
#!endif
#!ifdef WITH_ANTIFLOOD
# ----- pike params -----
modparam("pike", "sampling_time_unit", 2)
modparam("pike", "reqs_density_per_unit", 16)
modparam("pike", "remove_latency", 4)
# ----- htable params -----
# ip ban htable with autoexpire after 5 minutes
#modparam("htable", "htable", "ipban=>size=8;autoexpire=300;")
modparam("htable", "htable", "stats=>size=6;")
#!endif
#!ifdef WITH_XMLRPC
# ----- xmlrpc params -----
modparam("xmlrpc", "route", "XMLRPC");
modparam("xmlrpc", "url_match", "^/RPC")
#!endif
#!ifdef WITH_DEBUG
# ----- debugger params -----
#modparam("debugger", "cfgtrace", 1)
#modparam("debugger", "breakpoint", 1)
modparam("debugger", "log_level_name", "exec")
#!endif
####### Routing Logic ########
# Main SIP request routing logic
# - processing of any incoming SIP request starts with this route
# - note: this is the same as route { ... }
request_route {
route(DISPATCH);
# per request initial checks
route(REQINIT);
# NAT detection
route(NATDETECT);
# handle requests within SIP dialogs
route(WITHINDLG);
### only initial requests (no To tag)
if(is_method("OPTIONS"))
{
sl_send_reply("200","Keepalive");
exit;
}
if(is_method("NOTIFY"))
{
sl_send_reply("200","OK");
exit;
}
# CANCEL processing
if (is_method("CANCEL"))
{
if (t_check_trans())
t_relay();
exit;
}
t_check_trans();
# authentication
route(AUTH);
# record routing for dialog forming requests (in case they are routed)
# - remove preloaded route headers
remove_hf("Route");
if (is_method("INVITE|SUBSCRIBE"))
record_route();
# account only INVITEs
if (is_method("INVITE"))
{
setflag(FLT_ACC); # do accounting
}
# dispatch requests to foreign domains
route(SIPOUT);
### requests for my local domains
# handle presence related requests
route(PRESENCE);
# handle registrations
route(REGISTRAR);
if ($rU==$null)
{
# request with no Username in RURI
sl_send_reply("484","Address Incomplete");
exit;
}
# dispatch destinations to PSTN
route(PSTN);
# user location service
route(LOCATION);
route(RELAY);
}
route[RELAY] {
# enable additional event routes for forwarded requests
# - serial forking, RTP relaying handling, a.s.o.
if (is_method("INVITE|SUBSCRIBE")) {
t_on_branch("MANAGE_BRANCH");
t_on_reply("MANAGE_REPLY");
}
if (is_method("INVITE")) {
t_on_failure("MANAGE_FAILURE");
}
if (!t_relay()) {
sl_reply_error();
}
exit;
}
# Per SIP request initial checks
route[REQINIT] {
#!ifdef WITH_ANTIFLOOD
# flood dection from same IP and traffic ban for a while
# be sure you exclude checking trusted peers, such as pstn gateways
# - local host excluded (e.g., loop to self)
if(src_ip!=myself)
{
if($sht(ipban=>$si)!=$null)
{
# ip is already blocked
xdbg("request from blocked IP - $rm from $fu (IP:$si:$sp)\n");
exit;
}
if (!pike_check_req())
{
xlog("L_ALERT","ALERT: pike blocking $rm from $fu (IP:$si:$sp)\n");
$sht(ipban=>$si) = 1;
exit;
}
}
#!endif
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
}
if(!sanity_check("1511", "7"))
{
xlog("Malformed SIP message from $si:$sp\n");
exit;
}
}
# Handle requests within SIP dialogs
route[WITHINDLG] {
if (has_totag()) {
# sequential request withing a dialog should
# take the path determined by record-routing
if (loose_route()) {
if (is_method("BYE")) {
setflag(FLT_ACC); # do accounting ...
setflag(FLT_ACCFAILED); # ... even if the transaction fails
}
if ( is_method("ACK") ) {
# ACK is forwarded statelessy
route(NATMANAGE);
}
route(RELAY);
} else {
if (is_method("SUBSCRIBE") && uri == myself) {
# in-dialog subscribe requests
route(PRESENCE);
exit;
}
if ( is_method("ACK") ) {
if ( t_check_trans() ) {
# no loose-route, but stateful ACK;
# must be an ACK after a 487
# or e.g. 404 from upstream server
t_relay();
exit;
} else {
# ACK without matching transaction ... ignore and discard
exit;
}
}
sl_send_reply("404","Not here");
}
exit;
}
}
# Handle SIP registrations
route[REGISTRAR] {
if (is_method("REGISTER"))
{
if(isflagset(FLT_NATS))
{
setbflag(FLB_NATB);
# uncomment next line to do SIP NAT pinging
## setbflag(FLB_NATSIPPING);
}
if (!save("location"))
sl_reply_error();
#!ifdef WITH_ASTERISK
route(REGFWD);
#!endif
exit;
}
}
# USER location service
route[LOCATION] {
#!ifdef WITH_SPEEDIAL
# search for short dialing - 2-digit extension
if($rU=~"^[0-9][0-9]$")
if(sd_lookup("speed_dial"))
route(SIPOUT);
#!endif
#!ifdef WITH_ALIASDB
# search in DB-based aliases
if(alias_db_lookup("dbaliases"))
route(SIPOUT);
#!endif
#!ifdef WITH_ASTERISK
if(is_method("INVITE") && (!route(FROMASTERISK))) {
# if new call from out there - send to Asterisk
# - non-INVITE request are routed directly by Kamailio
# - traffic from Asterisk is routed also directy by Kamailio
append_hf("FromIp: $src_ip\r\n", "Call-ID");
route(TOASTERISK);
exit;
}
#!endif
$avp(oexten) = $rU;
if (!lookup("location")) {
$var(rc) = $rc;
route(TOVOICEMAIL);
t_newtran();
switch ($var(rc)) {
case -1:
case -3:
send_reply("404", "Not Found");
exit;
case -2:
send_reply("405", "Method Not Allowed");
exit;
}
}
# when routing via usrloc, log the missed calls also
if (is_method("INVITE"))
{
setflag(FLT_ACCMISSED);
}
}
# Presence server route
route[PRESENCE] {
if(!is_method("PUBLISH|SUBSCRIBE"))
return;
#!ifdef WITH_PRESENCE
if (!t_newtran())
{
sl_reply_error();
exit;
};
if(is_method("PUBLISH"))
{
handle_publish();
t_release();
}
else
if( is_method("SUBSCRIBE"))
{
handle_subscribe();
t_release();
}
exit;
#!endif
# if presence enabled, this part will not be executed
if (is_method("PUBLISH") || $rU==$null)
{
sl_send_reply("404", "Not here");
exit;
}
return;
}
# Authentication route
route[AUTH] {
#!ifdef WITH_AUTH
#!ifdef WITH_ASTERISK
# do not auth traffic from Asterisk - trusted!
if(route(FROMASTERISK))
return;
#!endif
#!ifdef WITH_IPAUTH
if((!is_method("REGISTER")) && allow_source_address())
{
# source IP allowed
return;
}
if (is_method("REGISTER") || from_uri==myself){
if (!allow_trusted()) {
xlog('wokred here for ipauth check');
sl_send_reply("403", "Forbidden");
}
}
#!endif
if (is_method("REGISTER") || from_uri==myself)
{
# authenticate requests
#!ifdef WITH_ASTERISK
if (!auth_check("$fd", "sip_users", "1")) {
#!else
if (!auth_check("$fd", "subscriber", "1")) {
#!endif
auth_challenge("$fd", "0");
exit;
}
# user authenticated - remove auth header
if(!is_method("REGISTER|PUBLISH"))
consume_credentials();
}
# if caller is not local subscriber, then check if it calls
# a local destination, otherwise deny, not an open relay here
if (from_uri!=myself && uri!=myself)
{
sl_send_reply("403","Not relaying");
exit;
}
#!endif
return;
}
# Caller NAT detection route
route[NATDETECT] {
#!ifdef WITH_NAT
force_rport();
if (nat_uac_test("19")) {
if (is_method("REGISTER")) {
fix_nated_register();
} else {
fix_nated_contact();
}
setflag(FLT_NATS);
}
#!endif
return;
}
# RTPProxy control
route[NATMANAGE] {
#!ifdef WITH_NAT
if (is_request()) {
if(has_totag()) {
if(check_route_param("nat=yes")) {
setbflag(FLB_NATB);
}
}
}
if (!(isflagset(FLT_NATS) || isbflagset(FLB_NATB)))
return;
rtpproxy_manage();
if (is_request()) {
if (!has_totag()) {
add_rr_param(";nat=yes");
}
}
if (is_reply()) {
if(isbflagset(FLB_NATB)) {
fix_nated_contact();
}
}
#!endif
return;
}
# Routing to foreign domains
route[SIPOUT] {
if (!uri==myself)
{
append_hf("P-hint: outbound\r\n");
route(RELAY);
}
}
# PSTN GW routing
route[PSTN] {
#!ifdef WITH_PSTN
# check if PSTN GW IP is defined
if (strempty($sel(cfg_get.pstn.gw_ip))) {
xlog("SCRIPT: PSTN rotuing enabled but pstn.gw_ip not defined\n");
return;
}
# route to PSTN dialed numbers starting with '+' or '00'
# (international format)
# - update the condition to match your dialing rules for PSTN routing
if(!($rU=~"^(\+|00)[1-9][0-9]{3,20}$"))
return;
# only local users allowed to call
if(from_uri!=myself) {
sl_send_reply("403", "Not Allowed");
exit;
}
$ru = "sip:" + $rU + "@" + $sel(cfg_get.pstn.gw_ip);
route(RELAY);
exit;
#!endif
return;
}
# XMLRPC routing
#!ifdef WITH_XMLRPC
route[XMLRPC] {
# allow XMLRPC from localhost
if ((method=="POST" || method=="GET")
&& (src_ip==127.0.0.1)) {
# close connection only for xmlrpclib user agents (there is a bug in
# xmlrpclib: it waits for EOF before interpreting the response).
if ($hdr(User-Agent) =~ "xmlrpclib")
set_reply_close();
set_reply_no_connect();
dispatch_rpc();
exit;
}
send_reply("403", "Forbidden");
exit;
}
#!endif
# route to voicemail server
route[TOVOICEMAIL] {
#!ifdef WITH_VOICEMAIL
if(!is_method("INVITE"))
return;
# check if VoiceMail server IP is defined
if (strempty($sel(cfg_get.voicemail.srv_ip))) {
xlog("SCRIPT: VoiceMail rotuing enabled but IP not defined\n");
return;
}
if($avp(oexten)==$null)
return;
$ru = "sip:" + $avp(oexten) + "@" + $sel(cfg_get.voicemail.srv_ip)
+ ":" + $sel(cfg_get.voicemail.srv_port);
route(RELAY);
exit;
#!endif
return;
}
# manage outgoing branches
branch_route[MANAGE_BRANCH] {
xdbg("new branch [$T_branch_idx] to $ru\n");
route(NATMANAGE);
}
# manage incoming replies
onreply_route[MANAGE_REPLY] {
xdbg("incoming reply\n");
if(status=~"[12][0-9][0-9]")
route(NATMANAGE);
}
# manage failure routing cases
failure_route[MANAGE_FAILURE] {
route(NATMANAGE);
if (t_is_canceled()) {
exit;
}
if(t_check_status("401")) {
uac_auth();
}
#!ifdef WITH_BLOCK3XX
# block call redirect based on 3xx replies.
if (t_check_status("3[0-9][0-9]")) {
t_reply("404","Not found");
exit;
}
#!endif
#!ifdef WITH_VOICEMAIL
# serial forking
# - route to voicemail on busy or no answer (timeout)
if (t_check_status("486|408")) {
route(TOVOICEMAIL);
exit;
}
t_relay();
#!endif
}
# Test if coming from Asterisk
route[FROMASTERISK] {
# if($si==$sel(cfg_get.asterisk.bindip)
# && $sp==$sel(cfg_get.asterisk.bindport))
# return 1;
# return -1;
# dispatch: is this asterisk ip ?
if (ds_is_from_list("1"))
return 1;
return -1;
}
# Send to Asterisk
route[TOASTERISK] {
# $du = "sip:" + $sel(cfg_get.asterisk.bindip) + ":"
# + $sel(cfg_get.asterisk.bindport);
# append_hf("X-Asterisk-Context: dexter-phones\r\n");
# route(RELAY);
# exit;
# select asterisk port
append_hf("X-Asterisk-Context: dexter-phones\r\n");
route(DISPATCH);
}
route[DISPATCH] {
# round robin dispatching on gateways group '1'
#xlog("<<<<<<<<<<<<<<<<trying for dispatch>>>>>>>>>>>>>>>>>>>");
#if (is_method("INVITE")) {
# dst_select( "GROUP", "HASH METHOD")
#ds_select_dst("1","4");
#sl_send_reply("100","Trying");
# forward();
# exit();
#}
if (!ds_select_domain("1", "4")) {
send_reply("404", "No destination");
exit;
}
t_on_failure("RTF_DISPATCH");
route(RELAY);
exit;
}
# Forward REGISTER to Asterisk
route[REGFWD] {
if(!is_method("REGISTER"))
{
return;
}
$var(rip) = $sel(cfg_get.asterisk.bindip);
$uac_req(method)="REGISTER";
$uac_req(ruri)="sip:" + $var(rip) + ":" + $sel(cfg_get.asterisk.bindport);
$uac_req(furi)="sip:" + $au + "@" + $var(rip);
$uac_req(turi)="sip:" + $au + "@" + $var(rip);
$uac_req(hdrs)="Contact: <sip:" + $au + "@" + $sel(cfg_get.kamailio.bindip)
+ ":" + $sel(cfg_get.kamailio.bindport) + ">\r\n";
if($sel(contact.expires) != $null)
$uac_req(hdrs)= $uac_req(hdrs) + "Expires: " + $sel(contact.expires) +
"\r\n";
else
$uac_req(hdrs)= $uac_req(hdrs) + "Expires: " + $hdr(Expires) + "\r\n";
uac_req_send();
}
“kamctl dispatcher dump” looks like this:
{
"jsonrpc": "2.0",
"result": {
"NRSETS": 1,
"RECORDS": [{
"SET": {
"ID": 1,
"TARGETS": [{
"DEST": {
"URI": "sip:ASTERISKIP:5060",
"FLAGS": "AP",
"PRIORITY": 1,
"ATTRS": {
"BODY": "rweight=50;weight=50;cc=1",
"DUID": "",
"MAXLOAD": 0,
"WEIGHT": 50,
"RWEIGHT": 50,
"SOCKET": "",
"SOCKNAME": "",
"OBPROXY": ""
}
}
}]
}
}]
},
"id": 13403
}
And also have set trunk in ASTERISK sip.conf
register => kamailioSIP:XXXX@KamailioIP:5060
[kamailio]
type=friend
host= KamailioIP
port=5060
transport=udp
allow=all
allow=gsm
allow=alaw,ulaw
insecure=invite,port
Permit = 0.0.0.0/0.0.0.0
sipdebug=yes
username=kamailioSIP
canreinvite=no
secret=XXXX
qualify=yes
dtmfmode=auto
when i Register my asterisk devices with kamailioIP (and I am able to do
this)
Devices are getting register with the asterisk from with kamailioIP
asterisk -r : (here 8101 and 8100 is registered with Kamailio IP )
[Nov 9 10:36:02] -- Registered SIP '8101' at XX.XX.XX.95:5060
[Nov 9 10:36:02] -- Unregistered SIP '8101'
[Nov 9 10:36:03] -- Registered SIP '8101' at XX.XX.XX..95:5060
[Nov 9 10:36:03] == Manager 'listencron' logged on from 127.0.0.1
[Nov 9 10:36:04] == Manager 'sendcron' logged off from 127.0.0.1
[Nov 9 10:36:07] -- Unregistered SIP '8100'
[Nov 9 10:36:09] -- Registered SIP '8100' at XX.XX.XX..95:5060
[Nov 9 10:36:09] > Saved useragent "Z 3.15.40006 rv2.8.20" for peer 8100
[Nov 9 10:36:09] NOTICE[8453]: chan_sip.c:23869 handle_response_peerpoke:
Peer '8100' is now
Reachable. (51ms / 2000ms)
when i dial 8100 to 8101 i get in my asteris -r
NOTICE[8453][C-0000000b]: chan_sip.c:26002 handle_request_invite: Call from
'8101' (95.217.223.95:5060) to extension '8100' rejected because extension
not found in context 'none-dial'.
and not able to call extension to extension,
PLEASE HELP to do this, I have search a lot and tried so much of stuff in
configs but no success still kindly guide me if anything I am missing to do
in the process or anything I am doing wrong.
I will be eagerly waiting for any help or pointer…
Thanks in advance
[View Less]
When i used lockup location it is done but if the user registered one time on server the location will be saved on kamailio so i want a method to check registered users live every second for example and i want to delete locations of un registered users ?
Thank u.
> On 10/11/2020, at 12:41 PM, ahmed moghazy <ahmed.m.moghazi(a)gmail.com> wrote:
>
I want to check if callee is registered or not before routing call because this made error and make caller unregistered untill i restarted the linphone
Hello dear community.
We use a presence module with the enabled option "timeout_rm_subs". And we
face issues that subscriptions remove too early. We expect that it will be
removed after the fr_timer, but it is removed after 1 second.
We I can see in log (i'm add additional logs):
when we send NOTIFY:
tm [timer.c:491]: retr_buf_handler(): timer retr_buf_handler @1436309038
(timer_ln 0x7f4708f45bd0 -> rbuf 0x7f4708f45bb0 -> [0x7f4708f458a0 <->
11592:145228
527])
tm [timer.c:492]: …
[View More]retr_buf_handler(): fr_expire 1436309054 T1 4000 T2
4000 fr_timeout 80
tm [timer.c:536]: retr_buf_handler(): new interval 4000 ms / 64 ticks (max
4000 ms)
when timer expire:
tm [timer.c:491]: retr_buf_handler(): timer retr_buf_handler @1436309054
(timer_ln 0x7f4708f45bd0 -> rbuf 0x7f4708f45bb0 -> [0x7f4708f458a0 <->
11592:145228
527])
tm [timer.c:492]: retr_buf_handler(): fr_expire 1436309054 T1 4000 T2
4000 fr_timeout 80
tm [timer.c:367]: final_response_handler(): transaction [0x7f4708f458a0 <->
11592:145228527] scheduled for deletion
tm [timer.c:424]: final_response_handler(): stop retr. and send CANCEL
(0x7f4708f458a0)
and then subscription remove.
As we can see the fr_expire variable was set to ticks+16 ( 1 second). And
another strange thing that T1 and T2 timers are the same.
So the question is if this behaviour is correct, how can we configure the
presence module fr_timer as an expiration value for the answer to notify?
And can we use it without retransmissions?
[View Less]
Hello everybody,
Today I received a request from a carrier which needs us to send the calls
using a prefix in the INVITE header.
I am reading the documentation for kamailio 4.3.x but I havent found anything
I can use in order to modify the Request Line (INVITE) string.
I need to change from this:
INVITE sip:123456789@IP:5060
to this:
INVITE sip:PREFIX123456789@IP:5060
If you can guide me to the right direction would be more than great.
Thanks
--
Jose Figueroa
Senior Software Engineer
Hello,
When i make a call from specific user to another it didnt make call and it gave missed call to another one after a minute so the call doesnot complete i dont know why ,
Thank you.
Hi,
How to do git clone of kamailio source code with minor version.
I could only do git checkout of 5.3 version and it is automatically taking
latest stable version. I don't need in this way. I need to do git clone of
exact version of kamailio source code .
Example - if I need 5.3.6 version.. exact version source code has to be git
checked out from kamailio website.
How to do that .. kindly let me know..
Thanks,
Pavithra
Hi,
Here's an example kamailio.cfg that uses record_route so in-dialog requests
will go through the Kamailio proxy:
https://github.com/kamailio/kamailio/blob/master/etc/kamailio.cfg
There are many other example cfg files:
https://github.com/kamailio/kamailio/tree/master/misc/examples
Any server that wants to see the in-dialog messages needs to add itself to
the record route list when receiving the initial INVITE for example. If a
server is not in the list of record routes, then in-dialog …
[View More]requests will
not be sent to the server. Headers that are most important in terms of
routing are R-URI, Route, Record-Route, Contact, Via.
Via header is for routing responses, while Record-Route is for in-dialog
requests.
I've put a few tips and some resources here about starting with Kamailio,
which hopefully may help you a bit:
http://tao-communications-ltd.simplesite.com/447576389
Cheers,
Yufei
>* Message: 7
*>* Date: Thu, 5 Nov 2020 12:26:16 +0200
*>* From: "Adrian Tabacioiu" <Adi.Tabacioiu at c-s.ro
<https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>>
*>* To: sr-users at lists.kamailio.org
<https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
*>* Subject: [SR-Users] Proxy configuration that exit dialog afer INVITE
*>* -> OK
*>* Message-ID: <7449102a9f3dbe38b6dba753d1cffcd8.squirrel at
mail.c-s.ro <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>>
*>* Content-Type: text/plain;charset=iso-8859-1
*>>>* Hello all,
*>>* Am I new in the usage of kamailio, sorry if I ask somehow something simple
*>* or terribly wrong .
*>>* I need to test a configuration of Kamailio which exit the dialog between
*>* UA after the first OK (that means it will not receive the following ACK,
*>* BYE).
*>>* I understand that in theory this is possible in two configuration types:
*>* - no Record Route header
*>* - or stateless proxy
*>>* First question:
*>* Am I correct with the choices above?
*>* Can I find example configuration for this two modes ?
*>>* Question 2:
*>* two or more proxy should be inter-connected, removing the Record Route
*>* header would interfere with proxy routing ? (should not the "Via"
*>* information be sufficient?)
*>>* Thank you in advance for help.
*>>* Best regards,
*>* Adrian Tabacioiu
*>
[View Less]
Is there a similar hook to make kamailio dump its current configuration it
is reading including ... included files, i.e. similar to nginx -T
root@main:/home/brandon# nginx -h
nginx version: nginx/1.14.2
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g
directives]
Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-T : test …
[View More]configuration, dump it and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen,
reload
-p prefix : set prefix path (default: /usr/share/nginx/)
-c filename : set configuration file (default: /etc/nginx/nginx.conf)
-g directives : set global directives out of configuration file
Thanks for your time in advance!
[View Less]
Many times (especially when there is a hacking attempt) I want to close
TCP or TLS session after sending reply. So, for example, I write:
set_reply_close();
send_reply("403", "Forbidden");
It would be more convenient if these two calls could be combined into
one, for example:
send_reply_and_close("403", "Forbidden");
-- Juha
Hi,
Here's an example kamailio.cfg that uses record_route so in-dialog requests
will go through the Kamailio proxy:
https://github.com/kamailio/kamailio/blob/master/etc/kamailio.cfg
There are many other example cfg files:
https://github.com/kamailio/kamailio/tree/master/misc/examples
Any server that wants to see the in-dialog messages needs to add itself to
the record route list when receiving the initial INVITE for example. If a
server is not in the list of record routes, then in-dialog …
[View More]requests will
not be sent to the server. Headers that are most important in terms of
routing are R-URI, Route, Record-Route, Contact, Via.
Via header is for routing responses, while Record-Route is for in-dialog
requests.
Cheers,
Yufei
> Message: 7
> Date: Thu, 5 Nov 2020 12:26:16 +0200
> From: "Adrian Tabacioiu" <Adi.Tabacioiu(a)c-s.ro>
> To: sr-users(a)lists.kamailio.org
> Subject: [SR-Users] Proxy configuration that exit dialog afer INVITE
> -> OK
> Message-ID: <7449102a9f3dbe38b6dba753d1cffcd8.squirrel(a)mail.c-s.ro>
> Content-Type: text/plain;charset=iso-8859-1
>
>
> Hello all,
>
> Am I new in the usage of kamailio, sorry if I ask somehow something simple
> or terribly wrong .
>
> I need to test a configuration of Kamailio which exit the dialog between
> UA after the first OK (that means it will not receive the following ACK,
> BYE).
>
> I understand that in theory this is possible in two configuration types:
> - no Record Route header
> - or stateless proxy
>
> First question:
> Am I correct with the choices above?
> Can I find example configuration for this two modes ?
>
> Question 2:
> two or more proxy should be inter-connected, removing the Record Route
> header would interfere with proxy routing ? (should not the "Via"
> information be sufficient?)
>
> Thank you in advance for help.
>
> Best regards,
> Adrian Tabacioiu
>
>
[View Less]
Hi,
I want add some custom Table Creation during installation of Kamailio.
I want to add my Custom Table during the execution of
kamdbctl create
command. Currently I am adding my script in
share/kamailio/mysql/auth_db-create.sql
Thanks,
Hi,
I have several Kamailio proxies - loadbalancer which is used as TLS offload
and Authorization server and behind registrar servers.
In this case I can't make tsilo work on the registrar server.
I'm always getting: "tm [t_append_branches.c:172]: t_append_branches():
failure to add branches (-1)"
If I use just one Kamailio which is used as Authorization and Registrar
server then tsilo works as expected.
Looks like kamailio where I run ts_append tries to connect to UAC directly
and not …
[View More]through Loadbalancer.
Any ideas? How can I troubleshoot this?
Thank you!
Jurijs
[View Less]
Hello all,
Am I new in the usage of kamailio, sorry if I ask somehow something simple
or terribly wrong .
I need to test a configuration of Kamailio which exit the dialog between
UA after the first OK (that means it will not receive the following ACK,
BYE).
I understand that in theory this is possible in two configuration types:
- no Record Route header
- or stateless proxy
First question:
Am I correct with the choices above?
Can I find example configuration for this two modes ?
Question 2:…
[View More]
two or more proxy should be inter-connected, removing the Record Route
header would interfere with proxy routing ? (should not the "Via"
information be sufficient?)
Thank you in advance for help.
Best regards,
Adrian Tabacioiu
[View Less]
Hello list,
Hope you are all good!
Recently, the issue https://github.com/kamailio/kamailio/issues/2535 has
been investigated and the utilization of the feature vsphere Fault
Tolerance is linked as a source of network latency and probably CPU
allocation latency. This increases the chances of the mentioned issue to
happen.
So I would just like to ask if anyone out there is using Kamilio in a
VMware environment with Fault Tolerance on? How is the experience?
Kind regards,
Patrick Wakano
Nov 2 21:13:28 main kamailio[1331]: INFO: <script>: AUTH_TOKEN_EXPIRED,
lets retrieve a new one
Nov 2 21:13:28 main kamailio[1331]: INFO: <script>: AUTH_TOKEN_RECEIVED,
{"data":{"token":{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.…
[View More]eyJpc3MiOiJDUllZIiwiaWF0IjoxNjA0MzUxNjA4LCJleHAiOjE2MDQzNTUyMDgsIm1ldGhvZCI6InBvc3Q6YXV0aDp0b2tlbiIsImFjY291bnQiOnsiaWQiOiIxIiwiZmlyc3RuYW1lIjoiVGVzdCIsImxhc3RuYW1lIjoiQXJtc3RlYWQiLCJlbWFpbCI6ImJyYW5kb25AY3J5eS5jb20ifSwic291cmNlIjp7ImFkZHJlc3MiOiIzNC45NC4xMjMuMTIxIn19.sUQImDqDfE-xdA1SQ-7I5TnFMZaPh8WB2c-S-ut1hog","header":{"alg":"HS256","typ":"JWT"},"payload":{"iss":"CRYY","iat":1604351608,"exp":1604355208,"method":"post:auth:token","account":{"id":"1","firstname":"Test","lastname":"Armstead","email":"
brandon(a)cryy.com
"},"source":{"address":"34.94.123.121"}},"signature":"sUQImDqDfE-xdA1SQ-7I5TnFMZaPh8WB2c-S-ut1hog"}}}
Nov 2 21:13:28 main kamailio[1331]: INFO: <script>: AUTH_TOKEN_TIME,
1604351608
root@main:/etc/kamailio# kamcmd htable.dump server
{
entry: 11
size: 1
slot: {
{
name: auth::token
value:
{"data":{"token":{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDUllZIiwiaWF0IjoxNjA0MzUxNjA4LCJleHAiOjE2MDQzNTUyMDgsIm1ldGhvZCI6InBvc3Q6YXV0aDp0b2tlbiIsImFjY291bnQiOnsiaWQiOiIxIiwiZmlyc3RuYW1lIjoiVGVzdCIsImxhc3RuYW1lIjoiQXJtc3RlYWQiLCJlbWFpbCI6ImJyYW5kb25AY3J5eS5jb20ifSwic291cmNlIjp7ImFkZHJlc3MiOiIzNC45NC4xMjMuMTIxIn19.sUQImDqDfE-xdA1SQ-7I5TnFMZaPh8WB2c-S-ut1hog","header":{"alg":"HS256","typ":"JWT"},"payload":{"iss":"CRYY","iat":1604351608,"exp":1604355208,"method":"post:auth:token","account":{"id":"1","firstname":"Test","lastname":"Armstead","email":"
brandon(a)cryy.com
"},"source":{"address":"34.94.123.121"}},"signature":"sUQImDqDfE-xdA1SQ-7I5TnFMZaPh8WB2c-S-ut1hog"}}}
type: str
}
}
}
Nov 2 21:13:48 main kamailio[1334]: INFO: <script>: AUTH_TOKEN_EXPIRED,
lets retrieve a new one
Nov 2 21:13:48 main kamailio[1334]: INFO: <script>: AUTH_TOKEN_RECEIVED,
{"data":{"token":{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDUllZIiwiaWF0IjoxNjA0MzUxNjI4LCJleHAiOjE2MDQzNTUyMjgsIm1ldGhvZCI6InBvc3Q6YXV0aDp0b2tlbiIsImFjY291bnQiOnsiaWQiOiIxIiwiZmlyc3RuYW1lIjoiVGVzdCIsImxhc3RuYW1lIjoiQXJtc3RlYWQiLCJlbWFpbCI6ImJyYW5kb25AY3J5eS5jb20ifSwic291cmNlIjp7ImFkZHJlc3MiOiIzNC45NC4xMjMuMTIxIn19.stW5JzPR-Gz3oVvQEb1wxF7I0GcZ1KjkkQhinHGEivQ","header":{"alg":"HS256","typ":"JWT"},"payload":{"iss":"CRYY","iat":1604351628,"exp":1604355228,"method":"post:auth:token","account":{"id":"1","firstname":"Test","lastname":"Armstead","email":"
brandon(a)cryy.com
"},"source":{"address":"34.94.123.121"}},"signature":"stW5JzPR-Gz3oVvQEb1wxF7I0GcZ1KjkkQhinHGEivQ"}}}
Nov 2 21:13:48 main kamailio[1334]: INFO: <script>: AUTH_TOKEN_TIME,
1604351628
root@main:/etc/kamailio# kamcmd htable.dump server
{
entry: 0
size: 1
slot: {
{
name: auth::time
value: 1604351628
type: int
}
}
}
Nov 2 21:14:08 main kamailio[1331]: INFO: <script>: AUTH_TOKEN_EXPIRED,
lets retrieve a new one
Nov 2 21:14:08 main kamailio[1331]: INFO: <script>: AUTH_TOKEN_RECEIVED,
{"data":{"token":{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDUllZIiwiaWF0IjoxNjA0MzUxNjQ4LCJleHAiOjE2MDQzNTUyNDgsIm1ldGhvZCI6InBvc3Q6YXV0aDp0b2tlbiIsImFjY291bnQiOnsiaWQiOiIxIiwiZmlyc3RuYW1lIjoiVGVzdCIsImxhc3RuYW1lIjoiQXJtc3RlYWQiLCJlbWFpbCI6ImJyYW5kb25AY3J5eS5jb20ifSwic291cmNlIjp7ImFkZHJlc3MiOiIzNC45NC4xMjMuMTIxIn19.P52y8GIkL2FEeT51WbYicjIdjdWp-1FXpIRPLHFmlw4","header":{"alg":"HS256","typ":"JWT"},"payload":{"iss":"CRYY","iat":1604351648,"exp":1604355248,"method":"post:auth:token","account":{"id":"1","firstname":"Test","lastname":"Armstead","email":"
brandon(a)cryy.com
"},"source":{"address":"34.94.123.121"}},"signature":"P52y8GIkL2FEeT51WbYicjIdjdWp-1FXpIRPLHFmlw4"}}}
Nov 2 21:14:08 main kamailio[1331]: INFO: <script>: AUTH_TOKEN_TIME,
1604351648
root@main:/etc/kamailio# kamcmd htable.dump server
{
entry: 11
size: 1
slot: {
{
name: auth::token
value:
{"data":{"token":{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDUllZIiwiaWF0IjoxNjA0MzUxNjQ4LCJleHAiOjE2MDQzNTUyNDgsIm1ldGhvZCI6InBvc3Q6YXV0aDp0b2tlbiIsImFjY291bnQiOnsiaWQiOiIxIiwiZmlyc3RuYW1lIjoiVGVzdCIsImxhc3RuYW1lIjoiQXJtc3RlYWQiLCJlbWFpbCI6ImJyYW5kb25AY3J5eS5jb20ifSwic291cmNlIjp7ImFkZHJlc3MiOiIzNC45NC4xMjMuMTIxIn19.P52y8GIkL2FEeT51WbYicjIdjdWp-1FXpIRPLHFmlw4","header":{"alg":"HS256","typ":"JWT"},"payload":{"iss":"CRYY","iat":1604351648,"exp":1604355248,"method":"post:auth:token","account":{"id":"1","firstname":"Test","lastname":"Armstead","email":"
brandon(a)cryy.com
"},"source":{"address":"34.94.123.121"}},"signature":"P52y8GIkL2FEeT51WbYicjIdjdWp-1FXpIRPLHFmlw4"}}}
type: str
}
}
}
On Mon, Nov 2, 2020 at 12:44 PM Brandon Armstead <brandon(a)cryy.com> wrote:
> Also to add one more thing, I added a third static variable into the mix
> to test when using the "bad config" just setting server=>auth::name to
> "brandon" and introducing the 3rd variable seems to just make kamailio hang
> when doing kamcmd htable.dump server <---- (no results returned).
>
> On Mon, Nov 2, 2020 at 12:41 PM Brandon Armstead <brandon(a)cryy.com> wrote:
>
>> Daniel,
>>
>> In short kamcmd does not reflect the value set in $sht(server=>auth
>> ::token)
>>
>> It alternates between being set and not being set (reflecting in kamcmd
>> htable.dump
>>
>> root@main:/etc/kamailio# kamcmd htable.dump server
>>
>> {
>>
>> entry: 11
>>
>> size: 1
>>
>> slot: {
>>
>> {
>>
>> name: auth::token
>>
>> value:
>> {"data":{"token":{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJDUllZIiwiaWF0IjoxNjA0MzQ2NzgzLCJleHAiOjE2MDQzNTAzODMsIm1ldGhvZCI6InBvc3Q6YXV0aDp0b2tlbiIsImFjY291bnQiOnsiaWQiOiIxIiwiZmlyc3RuYW1lIjoiVGVzdCIsImxhc3RuYW1lIjoiQXJtc3RlYWQiLCJlbWFpbCI6ImJyYW5kb25AY3J5eS5jb20ifSwic291cmNlIjp7ImFkZHJlc3MiOiIzNC45NC4xMjMuMTIxIn19.aFGWqQg31oNnw10XfZ61Xm5Jncvt7RoNri2ZuDJ6yLQ","header":{"alg":"HS256","typ":"JWT"},"payload":{"iss":"CRYY","iat":1604346783,"exp":1604350383,"method":"post:auth:token","account":{"id":"1","firstname":"Test","lastname":"Armstead","email":"
>> brandon(a)cryy.com
>> "},"source":{"address":"34.94.123.121"}},"signature":"aFGWqQg31oNnw10XfZ61Xm5Jncvt7RoNri2ZuDJ6yLQ"}}}
>>
>> type: str
>>
>> }
>>
>> }
>>
>> }
>>
>>
>> In the kamailio logs it always shows AUTH_TOKEN_RECEIVED (correctly, with
>> the correct auth token), kamcmd dump of htable alternates between execution
>> of this route: htable:expired:server
>>
>> Exec 1:
>>
>> auth::time => [timestamp]
>>
>> Exec 2:
>>
>> auth::token => token
>>
>> Exec 3:
>>
>> auth::time => [timestamp]
>>
>> So on and so forth, [ kamcmd htable.dump server ] it does not correctly
>> hold both $sht(server=>auth::time) and $sht(server=>auth::token) like it
>> should, despite kamailio logs showing the HTTP_AUTH_TOKEN received message
>> with the correct auth token (100% of the time).
>>
>> It's almost like there is a race condition when using the modules
>> http_client_query in both init and expired event route.
>>
>> When I changed it to the resolved code block above separating the calls
>> and introducing http_async_client inside htable:expired:server
>>
>> The result is 100% of the time auth token exists correctly, just like the
>> logs 100% of the time show the auth token received regardless of
>> event_route implementation.
>>
>> So somewhere somehow the problematic config causes the hash table to not
>> store HTTP_AUTH_TOKEN it receives and logs.
>>
>
[View Less]
kamailio 5.5.0-dev3
I'm unsure if this is expected behavior, so thought I would ask...
When using http_async_query("URI", "ROUTENAME")
request_route {
route(AUTH);
# this does not get executed below route(AUTH)
xinfo("[$ci][$rm] we hit this line");
}
route[AUTH] {
t_newtran();
http_async_query("URI", "ROUTENAME");
}
route[ROUTENAME] {
# do stuff here to check authentication and return
if(auth + registration) {
append_hf("Path....");
…
[View More]msg_apply_changes(); # this fails and errors out about incorrect
route
# ^ invalid usage - not in request route or a reply
save("location");
}
if(auth + invite) {
# route to pstn
}
}
Expected behavior: to be able to obtain some processing / information
gathering about authentication with the call and additional information
possibly and return to normal routing. As-is now I've to move the actions
all into ROUTENAME for kamailio to continue processing, it does not go back
to request_route { }.
# this does not get executed below route(AUTH)
Is this expected behavior, or am I missing something?
If I do catch route(AUTH) with a hash table and prevent its execution after
first run, the avp's from the transaction created are not available in
request_route that were set in ROUTENAME.
[View Less]
Running 5.5.0-dev3
modparam("htable", "htable", "ipban=>size=8;autoexpire=300;dmqreplicate=1;")
modparam("htable", "enable_dmq", 1)
modparam("htable", "dmq_init_sync", 1)
modparam("htable", "timer_procs", 4)
modparam("htable", "timer_interval", 5)
modparam("htable", "db_expires", 1)
modparam("htable", "htable", "account=>size=4;dmqreplicate=1;")
modparam("htable", "htable", "server=>size=4;autoexpire=15;")
I'm attempting to retrieve an auth token in the init process and also
refresh …
[View More]the token upon expiration in the htable:expired event.
I'm seeing some behavior where every other execution of htable:expired the
variable $sht(server=>auth::token) is set per kamcmd htable.dump server,
however xinfo() reports that the token was retrieved in the variable $sht
(server=>auth::token).
Please see remaining event route config below:
event_route[htable:mod-init] {
# generate auth token into
http_client_query("https://www.cryy.com/api/auth/token", '{"email": "
brandon(a)cryy.com", "password":"XXXX"}', "$var(result)");
sht_lock("server=>auth::token");
$sht(server=>auth::token) = $var(result);
sht_unlock("server=>auth::token");
xinfo("AUTH_TOKEN_RECEIVED, $sht(server=>auth::token)");
}
event_route[htable:expired:server] {
# process expired htable, renew auth token
xinfo("AUTH_TOKEN_EXPIRED, lets retrieve a new one");
http_client_query("https://www.cryy.com/api/auth/token", '{"email": "
brandon(a)cryy.com", "password":"XXXX"}', "$var(result)");
sht_lock("server=>auth::token");
$sht(server=>auth::time) = $TS;
$sht(server=>auth::token) = $var(result);
sht_unlock("server=>auth::token");
xinfo("AUTH_TOKEN_RECEIVED, $sht(server=>auth::token)");
xinfo("AUTH_TOKEN_TIME, $sht(server=>auth::time)");
}
I've tried both with locking and unlocking. Also one last thing worth
mentioning is that on the alternation where kamcmd htable.dump server shows
no auth token, $sht(server=>auth::time) is available, when the auth token
is visible in kamcmd htable.dump server there is no sht(server=>auth::time)
returned.
Also just to be explicitly clear -- xinfo() always returns AUTH_TOKEN_RECEIVED
correctly in both event routes.
Perhaps I'm over looking something -- thank you for the help in advance.
- Brandon
[View Less]
Hi there,
Is there a PV that exposes the outgoing TCP connection ID? $conid seems to
be for received only.
*$conid - The TCP connection ID of the connection the current message
arrived on for TCP, TLS, WS, and WSS. Set to $null for SCTP and UDP.*
The objective is to check the status of the egress TCP connection like for
e.g.:
if(!tcp_conid_state(conid)) {
Thanks.
--Sergiu
Hello,
Kamailio SIP Server v5.3.7 stable release is out.
This is a maintenance release of the latest stable branch, 5.3, that
includes fixes since the release of v5.3.6. There is no change to
database schema or configuration language structure that you have to do
on previous installations of v5.3.x. Deployments running previous v5.3.x
versions are strongly recommended to be upgraded to v5.3.7.
Note that 5.3 is the second last stable branch, still officially maintained
by Kamailio development …
[View More]team. The latest stable branch is 5.4, with
v5.4.2 being release out of it.
For more details about version 5.3.7 (including links and guidelines to
download the tarball or from GIT repository), visit:
* https://www.kamailio.org/w/2020/11/kamailio-v5-3-7-released/
RPM, Debian/Ubuntu packages will be available soon as well.
Many thanks to all contributing and using Kamailio!
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
[View Less]
Hello,
I am planning to release Kamailio v5.3.7 sometime next week, likely on
Monday or Tuesday, this being the usual prior notice for heads up to
identify issues not reported yet on bug tracker as well as the commits
you are aware of that were not backported yet.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Hello everybody,
I am trying an INVITE with a SBCs but fails, finding out it seems the
Session-Expires doesn't include the param refresher= and according to
this closed issue is already included
https://github.com/kamailio/kamailio/issues/288 but I cannot achive this, I
read the sst module documentation but I don't see anything related this
parameter.
So, in summary the SBC expects the following:
Session-Expires: 1800; refresher=uac;
Min-SE: 600
I set only:
modparam("sst", "enable_stats", 1);…
[View More]
modparam("dialog", "dlg_flag", 5)
modparam("sst", "sst_flag", 6);
modparam("sst", "min_se". 1800);
Now on the invite I the setflag(); 5 and 6 so I see now the header
Session-Expires: 1800 but not the refresher=uac; and also I don't see how to set
the Min-SE:600
Could you please point me to the right direction? Any hint would be very
helpful.
--
Jose Figueroa
Software Engineer
[View Less]
Hey all,
I’m a little stuck on an implementation of a set of dispatchers via TCP. There are some oddities about the behavior of the TCP source port of the Kamailio tcp worker/s, and maybe this is expected, but it doesn’t seem valid. For instance, I have a dispatcher:
"RECORDS": [{
"SET": {
"ID": 1,
"TARGETS": [{
"DEST": {
"URI": “sip:2.2.2.2:5060;transport=tcp",
"FLAGS": "AP",
"PRIORITY": 5
}
}]
}
}]
But when Kamailio sends …
[View More]an OPTIONS keep alive, the source port for the worker is 33940, and not 5060 (which is the TCP listen port), as received by Freeswitch:
recv 447 bytes from tcp/[1.1.1.1]:33940 at 18:58:24.958720:
------------------------------------------------------------------------
OPTIONS sip:2.2.2.2:5060;transport=tcp SIP/2.0
Via: SIP/2.0/TCP 1.1.1.1;branch=z9hG4bK1525.80a9e442000000000000000000000000.0
To: <sip:2.2.2.2:5060;transport=tcp>
From: <sip:inbound-kamailio-01>;tag=3c52ba62ee4c4621b9660728159919d3-cda8066f
CSeq: 10 OPTIONS
Call-ID: 3aa18693487268dc-2790(a)1.1.1.1
Max-Forwards: 70
Content-Length: 0
User-Agent: kamailio (5.4.2 (x86_64/linux))
------------------------------------------------------------------------
Also, I get weird debug messages when this tcp worker is spun up (specifically about Resource temporarily unavailable):
11(2790) DEBUG: dispatcher [dispatch.c:3340]: ds_ping_result_helper(): probe all, mode DS_PROBE_ALL
11(2790) DEBUG: dispatcher [dispatch.c:3383]: ds_ping_set(): probing set #1, URI sip:2.2.2.2:5060;transport=tcp
11(2790) DEBUG: dispatcher [dispatch.c:3414]: ds_ping_set(): Default ping_from: sip:inbound-kamailio-01
11(2790) DEBUG: dispatcher [dispatch.c:3424]: ds_ping_set(): Default outbound proxy:
11(2790) DEBUG: tm [uac.c:450]: t_uac_prepare(): next_hop=<sip:2.2.2.2:5060;transport=tcp>
11(2790) DEBUG: tm [uac.c:158]: dlg2hash(): hashid 21073
11(2790) DEBUG: <core> [core/tcp_main.c:1993]: tcp_send(): no open tcp connection found, opening new one
11(2790) DEBUG: <core> [core/ip_addr.c:229]: print_ip(): tcpconn_new: new tcp connection: 2.2.2.2
11(2790) DEBUG: <core> [core/tcp_main.c:1175]: tcpconn_new(): on port 5060, type 2, socket -1
11(2790) DEBUG: <core> [core/tcp_main.c:1494]: tcpconn_add(): hashes: 2712:0:0, 1
11(2790) DEBUG: <core> [core/tcp_main.c:2886]: tcpconn_1st_send(): pending write on new connection 0x7f24e64c1e18 sock 8 (-1/447 bytes written) (err: 11 - Resource temporarily unavailable)
11(2790) DEBUG: tm [uac.c:678]: send_prepared_request_impl(): uac: 0x7f24e65285a8 branch: 0 to 2.2.2.2:5060
11(2790) DEBUG: <core> [core/onsend.c:50]: run_onsend(): required parameters are not available - ignoring
27(2806) DEBUG: <core> [core/tcp_main.c:3792]: handle_ser_child(): read response= 7f24e64c1e18, 5, fd 46 from 11 (2790)
27(2806) DEBUG: <core> [core/io_wait.h:375]: io_watch_add(): DBG: io_watch_add(0x56490f0f8060, 46, 2, 0x7f24e64c1e18), fd_no=37
27(2806) DEBUG: <core> [core/io_wait.h:782]: io_watch_chg(): DBG: io_watch_chg (0x56490f0f8060, 46, 0x1, 0xffffffff) fd_no=38 called
27(2806) DEBUG: <core> [core/io_wait.h:600]: io_watch_del(): DBG: io_watch_del (0x56490f0f8060, 46, -1, 0x0) fd_no=38 called
27(2806) DEBUG: <core> [core/tcp_main.c:4457]: handle_tcpconn_ev(): sending to child, events 1
27(2806) DEBUG: <core> [core/tcp_main.c:4127]: send2child(): selected tcp worker idx:0 proc:19 pid:2798 for activity on [tcp:1.1.1.1:5060], 0x7f24e64c1e18
19(2798) DEBUG: <core> [core/tcp_read.c:1749]: handle_io(): received n=8 con=0x7f24e64c1e18, fd=8
19(2798) DEBUG: <core> [core/tcp_read.c:1548]: tcp_read_req(): content-length=0
19(2798) DEBUG: <core> [core/parser/msg_parser.c:620]: parse_msg(): SIP Reply (status):
19(2798) DEBUG: <core> [core/parser/msg_parser.c:622]: parse_msg(): version: <SIP/2.0>
19(2798) DEBUG: <core> [core/parser/msg_parser.c:624]: parse_msg(): status: <200>
19(2798) DEBUG: <core> [core/parser/msg_parser.c:626]: parse_msg(): reason: <OK>
19(2798) DEBUG: <core> [core/parser/parse_via.c:1303]: parse_via_param(): Found param type 232, <branch> = <z9hG4bK1525.80a9e442000000000000000000000000.0>; state=6
19(2798) DEBUG: <core> [core/parser/parse_via.c:1303]: parse_via_param(): Found param type 235, <rport> = <33940>; state=16
19(2798) DEBUG: <core> [core/parser/parse_via.c:2639]: parse_via(): end of header reached, state=5
19(2798) DEBUG: <core> [core/parser/msg_parser.c:498]: parse_headers(): Via found, flags=2
19(2798) DEBUG: <core> [core/parser/msg_parser.c:500]: parse_headers(): this is the first via
19(2798) DEBUG: <core> [core/parser/parse_addr_spec.c:185]: parse_to_param(): add param: tag=1mB9HryQ8ZBFc
19(2798) DEBUG: <core> [core/parser/parse_addr_spec.c:864]: parse_addr_spec(): end of header reached, state=29
19(2798) DEBUG: <core> [core/parser/msg_parser.c:171]: get_hdr_field(): <To> [59]; uri=[sip:2.2.2.2:5060;transport=tcp]
19(2798) DEBUG: <core> [core/parser/msg_parser.c:174]: get_hdr_field(): to body (39)[<sip:2.2.2.2:5060;transport=tcp>], to tag (13)[1mB9HryQ8ZBFc]
19(2798) DEBUG: <core> [core/parser/msg_parser.c:152]: get_hdr_field(): cseq <CSeq>: <10> <OPTIONS>
19(2798) DEBUG: <core> [core/receive.c:319]: receive_msg(): --- received sip message - reply - call-id: [3aa18693487268dc-2790(a)1.1.1.1] - cseq: [10 OPTIONS]
19(2798) DEBUG: <core> [core/parser/msg_parser.c:185]: get_hdr_field(): content_length=0
19(2798) DEBUG: <core> [core/parser/msg_parser.c:89]: get_hdr_field(): found end of header
Are these SIP messages expected to come from other ports than the listen port (5060 in this case)? Also, if the worker source port is not 5060, shouldn’t the SIP message get updated with the correct port?
In the case of OPTIONS, Freeswitch is replying correctly to the source port: 33940.
However, in the case of an in dialog BYE, Freeswitch is NOT replying to the source port of the Kamailio messages, but only to port 5060. Here is an example (relayed from web sockets to freeswitch over TCP) INVITE (as received from Freeswitch):
recv 1481 bytes from tcp/[1.1.1.1]:33940 at 16:56:47.920698:
------------------------------------------------------------------------
INVITE sip:991012@sip.domain <sip:991012@sip.domain>.com SIP/2.0
Record-Route: <sip:1.1.1.1;transport=tcp;r2=on;lr;nat=yes>
Record-Route: <sip:1.1.1.1:5061;transport=tls;r2=on;lr;nat=yes>
Via: SIP/2.0/TCP 1.1.1.1;branch=z9hG4bKd408.3f53e940ccb20c1033df4b3a8ebd8a34.0;i=1
Via: SIP/2.0/TLS 172.22.199.110:55304;received=5.5.5.5;rport=39518;branch=z9hG4bKPj5Css6JomCt9Cli2cCINbXi4FbPM5wewG;alias
Max-Forwards: 69
From: "Noah Mehl" <sip:5135555555@inbound-jail>;tag=s3i3y2tiOCgnUId5TD4Vp0UChf9GyEy9
To: <sip:991012@inbound-jail>
Contact: <sip:74895612@172.22.199.110:54887;transport=tls;alias=5.5.5.5~39518~3>
Call-ID: 5aoRBMBHahxqSLzrIpFnlfRz.UcGsmfq
CSeq: 27271 INVITE
Allow: SUBSCRIBE, NOTIFY, INVITE, ACK, BYE, CANCEL, UPDATE, MESSAGE, REFER
Supported: replaces, norefersub, gruu
User-Agent: Blink Pro 4.6.0 (MacOSX)
Content-Type: application/sdp
Content-Length: 528
v=0
o=- 3812979407 3812979407 IN IP4 5.5.5.5
s=Blink Pro 4.6.0 (MacOSX)
t=0 0
m=audio 50016 RTP/SAVP 113 0 101
c=IN IP4 5.5.5.5
a=rtcp:50017
a=rtpmap:113 opus/48000/2
a=fmtp:113 useinbandfec=1
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:UhHq6hth9HqALmiJ3AEeoGkixObBzkLURG60wJKT
a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:VKYaSCVwgvXCPaRvudTrgLORhWmOA7wyDJVeGjcu
a=sendrecv
a=oldmediaip:172.22.199.110
a=oldmediaip:172.22.199.110
------------------------------------------------------------------------
This doesn’t seem valid, as the top Via doesn’t have a port specified?
For reference, just rebuilt form the 5.4 branch today:
commit 62dff5b8b157236cae7defe64291a6e4a8ae27b5 (upstream/5.4)
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: Wed Oct 28 20:16:28 2020 +0100
modules: readme files regenerated - modules ... [skip ci]
Thanks!
~Noah
[View Less]
Hello guys,
This happened to me a long time ago but i totally forgot the reason.
I using a simple dispatcher, and when relaying out to the destination,
kamailio is adding an additional :5060 port to the To header:
To: <sip:910609738@172.31.6.1:5080:5060>
The Destination is actually 172.16.6.1:5080, i don't know why Kamailio is
adding that :5060
The dispatcher is
if (!ds_select_dst($var(dispatcher_outbound), "4")) {
xlog("[DISPATCH]: ds_select_dst FAILED!\n");
…
[View More]send_reply("404", "No destination");
exit;
} else {
xlog("[DISPATCH]: ds_select_dst was succesful\n");
}
xlog("L_DBG", "[DISPATCH]: going to <$ru> via <$du>\n");
t_on_failure("RTF_DISPATCH");
route(RELAY);
Any ideas? I totally forgot... and it's late, i guess...
Thanks!
David Villasmil
email: david.villasmil.work(a)gmail.com
phone: +34669448337
[View Less]
Perfect, that's what I was looking for. :)
Thanks!
> This is what I have always done:
>
> # export PATH=$PATH:/usr/pgsql-${MAJOR_VER}/bin
> # cd src/modules/db_postgres
> # make install
>
> The `pg_config` utility in /usr/pgsql-${MAJOR_VER}/bin ensures that the proper header include path is supplied.
>
> -- Alex
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person …
[View More]to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
[View Less]
Hello,
I'd like to build Kamailio module db_postgres, with the PostgreSQL headers and libs in a non-standard location.
I'm trying to figure out how to do that, if it's possible, without having to edit db_postgres/Makefile.
I see in the Makefile that it's trying to find the files relative to $(LOCALBASE):
# use standard know paths
# libpq-fe.h locations
DEFS +=-I$(LOCALBASE)/include -I$(LOCALBASE)/pgsql/include \
-I$(SYSBASE)/include/pgsql -I$(SYSBASE)/…
[View More]include/postgresql \
-I$(SYSBASE)/include/postgresql/8.0
LIBS +=-L$(LOCALBASE)/lib -L$(LOCALBASE)/pgsql/lib \
-L$(LOCALBASE)/lib/pgsql -lpq
However, LOCALBASE (which defaults to /usr/local) is used for many things other than PostgreSQL, so changing that is not a great idea, I think...
Any idea ?
Regards,
Nicolas.
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
[View Less]
Hello list,
Hope all are doing well!
We are running load tests in our Kamailio server, that is just making
inbound and outbound calls and eventually (there is no identified pattern)
Kamailio freezes and of course all calls start to fail. It does not crash,
it just stops responding and it has to be killed -9. When this happens, SIP
messages are not processed, dmq keepalive fails (so the other node reports
as down), dialog KA are not sent, but Registrations from UAC seem to still
go out (logs …
[View More]from local_route are seen).
We don't have a high amount of cps, it is max 3 or 4 per sec, and it gets
around 1900 active calls. We are now using Kamailio 5.2.8 installed from
the repo on a CentOS7 server. Dialog has KA active and DMQ (with 2 workers)
is being used on an active-active instance.
>From investigation using GDB as pasted below, I can see UDP workers are
stuck on a lock either on a callback from t_relay...
#0 0x00007ffb74e9bbf9 in syscall () from /lib64/libc.so.6
#1 0x00007ffb2b1bce08 in futex_get (lock=0x7ffb35217b90) at
../../core/futexlock.h:108
#2 0x00007ffb2b1bec44 in bcast_dmq_message1 (peer=0x7ffb35e8bf38,
body=0x7fff2e95ffb0, except=0x0, resp_cback=0x7ffb2a8a0ab0
<dlg_dmq_resp_callback>, max_forwards=1, content_type=0x7ffb2a8a0a70
<dlg_dmq_content_type>, incl_inactive=0) at dmq_funcs.c:156
#3 0x00007ffb2b1bf46b in bcast_dmq_message (peer=0x7ffb35e8bf38,
body=0x7fff2e95ffb0, except=0x0, resp_cback=0x7ffb2a8a0ab0
<dlg_dmq_resp_callback>, max_forwards=1, content_type=0x7ffb2a8a0a70
<dlg_dmq_content_type>) at dmq_funcs.c:188
#4 0x00007ffb2a6448fa in dlg_dmq_send (body=0x7fff2e95ffb0, node=0x0) at
dlg_dmq.c:88
#5 0x00007ffb2a64da5d in dlg_dmq_replicate_action (action=DLG_DMQ_UPDATE,
dlg=0x7ffb362ea3c8, needlock=1, node=0x0) at dlg_dmq.c:628
#6 0x00007ffb2a61f28e in dlg_on_send (t=0x7ffb36c98120, type=16,
param=0x7fff2e9601e0) at dlg_handlers.c:739
#7 0x00007ffb2ef285b6 in run_trans_callbacks_internal
(cb_lst=0x7ffb36c98198, type=16, trans=0x7ffb36c98120,
params=0x7fff2e9601e0) at t_hooks.c:260
#8 0x00007ffb2ef286d0 in run_trans_callbacks (type=16,
trans=0x7ffb36c98120, req=0x7ffb742f27e0, rpl=0x0, code=-1) at t_hooks.c:287
#9 0x00007ffb2ef38ac1 in prepare_new_uac (t=0x7ffb36c98120,
i_req=0x7ffb742f27e0, branch=0, uri=0x7fff2e9603e0, path=0x7fff2e9603c0,
next_hop=0x7ffb742f2a58, fsocket=0x7ffb73e3e968, snd_flags=..., fproto=0,
flags=2, instance=0x7fff2e9603b0, ruid=0x7fff2e9603a0,
location_ua=0x7fff2e960390) at t_fwd.c:381
#10 0x00007ffb2ef3d02d in add_uac (t=0x7ffb36c98120,
request=0x7ffb742f27e0, uri=0x7ffb742f2a58, next_hop=0x7ffb742f2a58,
path=0x7ffb742f2e20, proxy=0x0, fsocket=0x7ffb73e3e968, snd_flags=...,
proto=0, flags=2, instance=0x7ffb742f2e30, ruid=0x7ffb742f2e48,
location_ua=0x7ffb742f2e58) at t_fwd.c:811
#11 0x00007ffb2ef4535a in t_forward_nonack (t=0x7ffb36c98120,
p_msg=0x7ffb742f27e0, proxy=0x0, proto=0) at t_fwd.c:1699
#12 0x00007ffb2ef20505 in t_relay_to (p_msg=0x7ffb742f27e0, proxy=0x0,
proto=0, replicate=0) at t_funcs.c:334
or loose_route...
#0 0x00007ffb74e9bbf9 in syscall () from /lib64/libc.so.6
#1 0x00007ffb2b1bce08 in futex_get (lock=0x7ffb35217b90) at
../../core/futexlock.h:108
#2 0x00007ffb2b1bec44 in bcast_dmq_message1 (peer=0x7ffb35e8bf38,
body=0x7fff2e9629d0, except=0x0, resp_cback=0x7ffb2a8a0ab0
<dlg_dmq_resp_callback>, max_forwards=1, content_type=0x7ffb2a8a0a70
<dlg_dmq_content_type>, incl_inactive=0) at dmq_funcs.c:156
#3 0x00007ffb2b1bf46b in bcast_dmq_message (peer=0x7ffb35e8bf38,
body=0x7fff2e9629d0, except=0x0, resp_cback=0x7ffb2a8a0ab0
<dlg_dmq_resp_callback>, max_forwards=1, content_type=0x7ffb2a8a0a70
<dlg_dmq_content_type>) at dmq_funcs.c:188
#4 0x00007ffb2a6448fa in dlg_dmq_send (body=0x7fff2e9629d0, node=0x0) at
dlg_dmq.c:88
#5 0x00007ffb2a64da5d in dlg_dmq_replicate_action (action=DLG_DMQ_STATE,
dlg=0x7ffb363e0c10, needlock=0, node=0x0) at dlg_dmq.c:628
#6 0x00007ffb2a62b3bf in dlg_onroute (req=0x7ffb742f11d0,
route_params=0x7fff2e962ce0, param=0x0) at dlg_handlers.c:1538
#7 0x00007ffb2e7db203 in run_rr_callbacks (req=0x7ffb742f11d0,
rr_param=0x7fff2e962d80) at rr_cb.c:96
#8 0x00007ffb2e7eb2f9 in after_loose (_m=0x7ffb742f11d0, preloaded=0) at
loose.c:945
#9 0x00007ffb2e7eb990 in loose_route (_m=0x7ffb742f11d0) at loose.c:979
or t_check_trans:
#0 0x00007ffb74e9bbf9 in syscall () from /lib64/libc.so.6
#1 0x00007ffb2a5ea9c6 in futex_get (lock=0x7ffb35e78804) at
../../core/futexlock.h:108
#2 0x00007ffb2a5f1c46 in dlg_lookup_mode (h_entry=1609, h_id=59882,
lmode=0) at dlg_hash.c:709
#3 0x00007ffb2a5f27aa in dlg_get_by_iuid (diuid=0x7ffb36326bd0) at
dlg_hash.c:777
#4 0x00007ffb2a61ba1d in dlg_onreply (t=0x7ffb36952988, type=2,
param=0x7fff2e963bf0) at dlg_handlers.c:437
#5 0x00007ffb2ef285b6 in run_trans_callbacks_internal
(cb_lst=0x7ffb36952a00, type=2, trans=0x7ffb36952988,
params=0x7fff2e963bf0) at t_hooks
.c:260
#6 0x00007ffb2ef286d0 in run_trans_callbacks (type=2,
trans=0x7ffb36952988, req=0x7ffb3675c360, rpl=0x7ffb742f1930, code=200) at
t_hooks.c:28
7
#7 0x00007ffb2ee7037f in t_reply_matching (p_msg=0x7ffb742f1930,
p_branch=0x7fff2e963ebc) at t_lookup.c:997
#8 0x00007ffb2ee725e4 in t_check_msg (p_msg=0x7ffb742f1930,
param_branch=0x7fff2e963ebc) at t_lookup.c:1101
#9 0x00007ffb2eee44c7 in t_check_trans (msg=0x7ffb742f1930) at tm.c:2351
And the DMQ workers are here:
#0 0x00007ffb74e9bbf9 in syscall () from /lib64/libc.so.6
#1 0x00007ffb2b1d6c81 in futex_get (lock=0x7ffb35217c34) at
../../core/futexlock.h:108
#2 0x00007ffb2b1d7c3a in worker_loop (id=1) at worker.c:86
#3 0x00007ffb2b1d5d35 in child_init (rank=0) at dmq.c:300
Currently I will not be able to upgrade to latest 5.4 version to try to
reproduce the error and since 5.2.8 has already reached end-of-life, maybe
is there anything I can do on the configuration to avoid such condition?
Any ideas are welcome!
Kind regards,
Patrick Wakano
[View Less]
Hello,
Kamailio SIP Server v5.4.2 stable release is out.
This is a maintenance release of the latest stable branch, 5.4, that
includes fixes since the release of v5.4.1. There is no change to
database schema or configuration language structure that you have to do
on previous installations of v5.4.x. Deployments running previous v5.4.x
versions are strongly recommended to be upgraded to v5.4.1.
For more details about version 5.4.2 (including links and guidelines to
download the tarball or …
[View More]from GIT repository), visit:
* https://www.kamailio.org/w/2020/10/kamailio-v5-4-2-released/
RPM, Debian/Ubuntu packages will be available soon as well.
Many thanks to all contributing and using Kamailio!
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
[View Less]
Hello,
I am considering to release Kamailio v5.4.2 sometime next week, likely
on Tuesday, October 27, 2020. This is the usual heads up notification to
see if anyone is aware of issues not yet reported to bug tracker and if
yes, do it as soon as possible to give them a chance to be fixed.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Funding: https://www.paypal.me/dcmierla