I have integrated Microsoft teams and freepbx using Kamailio version 5.8 as
my SBC.
Calls from freepbx to teams are working fine with audio and I am having
challenges with calls from teams to freepbx. The calls rings and after
answering there is only way audio and the call drops off after thirty
seconds. My pbx is behind a microtik router and I have port forwarded my sip
port and rtp ports to freepbx and have also disabled sip alg. My Kamailio is
hosted in AWS. Below are google drive links logs for the incoming call in
Kamailio , freepbx and my Kamailio.cfg. I am thinking It's a
misconfiguration challenge or something else. Please help I am failing to
see my challenge.
kamailio.pcap -
https://drive.google.com/file/d/1aoJhksgwcH-52unwxuyzn8GAmG9PEnOM/view?usp=s
haring
freepbx.pcap -
https://drive.google.com/file/d/1JJXs9UOUFak5Y4uWI_ARB56vQfVYfSDj/view?usp=s
haring
kamailio.cfg -
https://drive.google.com/file/d/1v2ZtylOf8fIMYH4OckGmnP489PO7WI7J/view?usp=s
haring
Best Regards
Hi
I am running kamailio 5.4 on debian
I have carrierfailureroute configured incase of primary service provider
fails. I also have Stirshaken configured to add Identity header on outbound
calls. Issue is when call fail overs to carrierfailureroute,
http_async_query changes $ru to the primary carrier
From the debug logs, when primary carrier sends a 488 (primary carrier
expects SIP TLS but my call is UDP - to test the failover scenario)
39(285) DEBUG: {1 18398 INVITE 8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn} tmx
[t_var.c:561]: pv_get_tm_reply_code(): reply code is <488>
39(285) DEBUG: {1 18398 INVITE 8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn}
carrierroute [cr_func.c:178]: set_next_domain_on_rule(): searching for
matching routing rules39(285) INFO: {1 18398 INVITE
8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn} carrierroute [cr_func.c:197]:
set_next_domain_on_rule(): next_domain is 47987
Carrier route rewrites the failover carrier
39(285) INFO: {1 18398 INVITE 8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn}
carrierroute [cr_func.c:706]: cr_do_route(): uri 14371234567 was rewritten
to sip:14371234567@sip.primaryprovider.com, carrier 1, domain 47987
Before http_async_query rd and ru are still the failover carrier
39(285) INFO: {1 18398 INVITE 8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn} <script>:
[callid: 8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn] - [cfg:2976] - Debug testing
----- rd is sip.primaryprovider.com ----- ru is
sip:14371234567@sip.primaryprovider.com
39(285) DEBUG: {1 18398 INVITE 8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn}
http_async_client [async_http.c:469]: async_send_query(): transaction
suspended [5261:1830449764]
39(285) DEBUG: {1 18398 INVITE 8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn}
http_async_client [async_http.c:625]: async_push_query(): query sent [
https://authn-uat.ccid.neustar.biz/ccid/authn/v2/identity?apiKey=randomkey]
(0x7fdcad097e60) to worker 1
However, when the route is being called after the http_async_query it
changes to the primary one:
26(272) DEBUG: tm [t_lookup.c:1612]: t_lookup_ident_filter(): transaction
found
26(272) DEBUG: http_async_client [async_http.c:235]: async_http_cb():
resuming transaction (5261:1830449764)
26(272) DEBUG: tm [t_lookup.c:1612]: t_lookup_ident_filter(): transaction
found
26(272) INFO: <script>: [callid: 8EmmsLqNuMRYBduMqFgX3w4JHAn4C2xn] -
[cfg:2995] - Debug testing ----- rd is 1.2.3.4 ----- ru is
sip:14371234567@1.2.3.4:5061;transport=TLS
Due to this, call keeps going to the primary and it fails
if ( http_async_query(STIRSHAKEN_AS_URL, "AS_RESPONSE") == -1 ) {
xlog("L_ERR ", "[cfg:$cfg(line)] Failed to connect AS service for token $fu
-> $tu \n");
return;
}
route[AS_RESPONSE] {
xlog("L_INFO", "[callid: $ci] - [cfg:$cfg(line)] - Debug testing ----- rd
is $rd ----- ru is $ru\n");
if ($http_ok) {
xlog("L_INFO", "[cfg:$cfg(line)] Resuming outbound call transaction for $fu
-> $tu Received - $http_rb \n");
# Add identity and Date headers
if (jansson_get("identity", $http_rb, "$var(identity)")) {
insert_hf("Identity: $var(identity)\n", "Content-Length");
}
if (jansson_get("date", $http_rb, "$var(date)")) {
if ($hdr(Date) != $null){
remove_hf("Date");
}
insert_hf("Date: $var(date)\n", "Identity");
}
} else {
xlog("L_ERR", "[cfg:$cfg(line)] Resuming outbound call transaction. Error -
$http_err)\n");
}
route(RELAY);
exit;
}
Please help to understand why rd / ru changes to primary carrier.
Regards,
Maharaja Azhagiah
Hello,
Can anyone help me to resolve one issue? scenario is -
1- Register two UE (UE-A and UE-B)
2- Call from UE-A to UE-B for a specific duration (lets say: 100 seconds)
3 Verify if call is working: Answer is YES, call is working.
4. shutdown the eNB
5. Observation: No BYE/De-registration message is not coming as expected.
6. Again start eNB and register same UE (UE-A and UE-B)
7. Register UE-A and UE-B both
8. It will not remove previous contacts or not updating the reg-state.
9. I am running with Rx enable mode.
Hello!
I am working on with Kamailio, I have already understood to add log
prefix like `log_prefix="NAT {$rm $mt $hdr(CSeq) $ci}: "`, but I also want
to record event time, so
how can I config `datetime` in log files. Thanks~
Hello,
I'm using the async_task_group_route for async module to handle some invites, when testing with sipp tools, I got some Dead call error message and after investigating It seems that for the same invite I sent multiple 302 message to sipp because the ACK sent by sipp was not handle before thr retr_timer1 & retr_timer2.
Please can you help me to free the transaction after sending the first 302 ? Thank you in advance.
Hi guys, some modules are not shown in Kamailio Kemi's documentation, such as secfilter. Is there any way to load them and use them in Python?
a way is to simulate the secfilter but it is not a general solution.
(Sorry in advance for the obvious question)
Hi guys, some modules are not shown in Kamailio Kemi's documentation, such as secfilter. Is there any way to load them and use them in Python?
a way is to simulate the secfilter but it is not a general solution.
(Sorry in advance for the obvious question)
Hi guys, some modules are not shown in Kamailio Kemi's documentation, such as secfilter. Is there any way to load them and use them in Python?
a way is to simulate the secfilter but it is not a general solution.
(Sorry in advance for the obvious question)
VIER is looking for a System Engineer VoIP
What VIER does
VIER is a global contact center technology provider. VIER develops and runs its own technology in several data centers. You will be part of the Real-time Media Processing Team which is responsible for the telephony connections between carriers, applications and call-center agents.
Your mission
You are responsible for the support of the VoIP systems as well as the associated infrastructure
Since you have sovereignty over the VoIP systems, you are also responsible for performing system upgrades and configurations.
You have a lot of freedom to design, plan, and implement new VoIP system components for internal and external projects.
You manage and implement change requests and are a specialist for special topics in the communication area.
You show a high-sense of responsibility and foresight to keep systems running 24/7
You are prepared to work occasionally also in the evening hours to roll out new features
Your skills
You have several years experience in the day-to-day operation of telecom systems
You have worked extensively with opensource VoIP software such as Kamailio / OpenSIPS, FreeSWITCH
You can administer Linux systems such as RockyLinux and Debian
You know SIP, RTP, RTCP, TLS, WebRTC protocols and can debug problems with Wireshark
You have also worked with MySQL, Git
You are communicative and like to work with team colleagues
Further beneficial skills
Experience with Ansible or Puppet for automation and configuration management.
CheckMK, Homer, Hepic, Redis, CGRates, CDR Tools, Python
Own VoIP software projects
German language skills
Please apply here:
https://vier.jobs.personio.de/job/1638419?language=en&display=en