Hi,
The behaviour of the sdpops module is not fully clear to me.
Lets say in the INVITE contains in the m= line the payloads 0 99 but has no a= line for codec 0 / PCMU, Would the sdp_keep_codecs_by_name(“PCMU”) keep PCMU ?
What about the case that the INVITE contains in the m=line only the payload 99 but shows an additional a=line for codec 0 / PCMU. Would the sdp_keep_codecs_by_name(“PCMU”) keep PCMU ? If yes, would the extra mtype parameter prevent that? e.g. sdp_keep_codecs_by_name(“PCMU”, mtype)
What happens when several m= lines are present? Does sdp_keep_codecs_by_name consider all m=lines ? Are the treated separately?
What happens to payloads which are not in the hard-coded list in sdpops_data.c ? Can they be used with the sdpops functions?
Thanks for your hints.
Best Gerry
codecsmap_t sdpops_codecsmap_table[] = {
{ {"PCMU", 4}, {"0", 1} },
{ {"GSM", 3}, {"3", 1} },
{ {"G723", 4}, {"4", 1} },
{ {"DVI4", 4}, {"5,6,16,17", 9} },
{ {"LPC", 3}, {"7", 1} },
{ {"PCMA", 4}, {"8", 1} },
{ {"G722", 4}, {"9", 1} },
{ {"L16", 3}, {"10,11", 5} },
{ {"QCELP", 5}, {"12", 2} },
{ {"CN", 2}, {"13", 5} },
{ {"MPA", 3}, {"14", 2} },
{ {"G728", 4}, {"15", 2} },
{ {"G729", 4}, {"18", 2} },
{ {0, 0}, {0, 0} }
};
Hey kamailio team,
When are the callbacks in the dialog module for updating
$dlg_var(cseq_diff) called?
I am trying to dynamically enable / disable cseq updates (some specific
carriers need it and some don't) by setting $dlg_var(cseq_diff)=$null prior
to sending the request but it seems like the callback happens after
relaying.
For example I tried various locations:
- prior to t_relay()
- in onreply_route[]
- in failure_route[]
- in event_route[tm:local-request]
- in event_route[tm:local-response]
I also tried setting modparam("dialog", "initial_cbs_inscript", 1) and
calling dlg_manage() prior to routing and those didn't seem to be the right
callbacks either.
Either the callback that updates $dlg_var(cseq_diff) occurs after t_relay()
/ forward() is called or setting $dlg_var(cseq_diff)=$null has no effect.
Is dynamically turning CSEQ updates on / off possible by
overwriting $dlg_var(cseq_diff)?
Or would this require new logic in the dialog module to be supported?
Regards,
*Tyler Moore* <https://devopsec.net/>
Full Stack Software Engineer
<http://www.google.com/search?q=full+stack+software+engineer+job+description>
Flyball Labs <http://goflyball.com/>
Office: 888-907-2085, ext: 34 <8889072085;ext=34>
Cell: 248-909-2769 <2489092769>
Email: tmoore(a)goflyball.com
[image: FLYBALL TECHNICAL SOLUTIONS, LLC]
Hello,
this is the notification to let everybody know that the development of
Kamailio v5.5.x series will be frozen at the end of March 31, 2021.
Should anyone plan to add new features/modules and be part of v5.5.x,
then they must be committed to git master branch or a pull request
created by that date.
Afterwards, the new features will have to be hold for a few weeks till
branch 5.5 is created and development branch unfrozen, and they will be
part of the next future release v5.6.x (or other version number to be
decided later).
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Funding: https://www.paypal.me/dcmierla
Hi Folks - I am using JANSSON to store JSON data in an htable. How does
one remove an entire element from a JSON?
I do not see a specific function mentioning clear or remove exposed in the
Kamailio module, but do see various clear/remove methods in the underlying
C library.
Below does set the value of key foo to null. I would like to remove both
the key and value of foo.
jansson_set("null", "$var(foo)", "$var(json)", "$var(result)");
Running Kamailio v5.4
Debian 10
-Jeremy
Dear Kamailians,
I have Kamailio+rtpengine as a dispatcher in front of FreeSWITCH.
Kamailio and FreeSWITCH are on the same private network (in an AWS VPC).
Kamailio receives calls on the Public Internet IP address and port, and
dispatches to FreeSWITCH on the private network.
All calls are coming from a SIP Trunk provider, from the Internet so no NAT
on this side.
My Hello World scenario is: FreeSWITCH answers the calls, plays a media
file and disconnects.
Problems:
1) In the INVITE relayed from Kamailio to FreeSWITCH, I can see a
Record-Route with the public IP of Kamailio.
Hence, the BYE sent by FreeSWITCH is sent to this public IP, rather than
going back to the Kamailio path, and the call never gets completed from the
caller's point of view.
I tried adding record_route() in request_route{} but nothing changes.
2) The SDP part of all the messages coming back and forth from Kamailio and
FreeSWITCH all contain the correct private IPs, but still the media file
can't be heard on the caller's side. Is RTPengine correctly bridging the
RTPs?
Kamailio configuration is here:
https://gist.github.com/eravelo/b3f026723e27d42354804ef942b34a04
Rtpengine configuration file has:
[rtpengine]
table = 0
interface = internal/10.20.1.158;external/10.20.1.158!KAMAILIO_PUBLIC_IP
listen-ng = 127.0.0.1:2223
timeout = 60
silent-timeout = 3600
tos = 184
port-min = 16384
port-max = 32768
Your help is appreciated.
Thank you.
Eric R.
Hi
I'd like to make sure I've understood correctly how use_received in path
module is supposed to work, because I don't get what I expected to get
after reading the documentation
I've got a little set up with a UAC behind a NAT registering to a kamailio
registrar through a kamailio edge proxy (he UAC is a simple sipp script
simulating a UAC behind a NAT)
path is enabled on both EP and registrar, and use_received is set to 1 on EP
the path, contact and via headers in the REGISTER going from the EP to the
registrar are :
Via: SIP/2.0/UDP
192.168.26.129;branch=z9hG4bK20da.9f4ab6ad25eae6acdd4bd4d655b320ce.0
Via: SIP/2.0/UDP 10.0.0.5:6060
;received=192.168.26.1;rport=23456;branch=z9hG4bK-105-1-1
Contact: <sip:1000@10.0.0.5:6060>;methods="INVITE, ACK, BYE, CANCEL,
OPTIONS"
Path: <sip:inside@192.168.26.129;lr;received=sip:192.168.26.1:23456>
where 192.168.26.129 is obviously the edge proxy
then I place a call to the UAC through registrar
the EP receiveds the following INVITE :
INVITE sip:1000@10.0.0.5:6060 SIP/2.0
Record-Route: <sip:192.168.26.142;lr>
Via: SIP/2.0/UDP
192.168.26.142;branch=z9hG4bKdf25.142eebc72e940d07ad983a858c67f64e.0
Route: <sip:inside@192.168.26.129;lr;received=sip:192.168.26.1:23456>
Via: SIP/2.0/UDP 192.168.26.1:34567
;received=192.168.26.1;rport=34567;branch=z9hG4bK-107-1-1
From: "1001" <sip:1001@my-fake-domain.com>;tag=107-1
To: <sip:1000@my-fake-domain.com;user=phone>
CSeq: 1 INVITE
Call-ID: 1-107(a)192.168.26.1
Contact: <sip:1001@192.168.26.1:34567>
...
The Route header is exactly what is expected, but the edge proxy still
sends the request to the request-URI address (10.0.0.5:6060) instead of
sending the request to the received address set in the first Route header
The path module documentation states :
3.1. use_received (int)
If set to 1, the “received” parameter of the first Route URI is evaluated
and used as destination-URI if present.
kamailio configuration on the EP is almost the default one (just added path
support, and modified the REGISTRAR route to forward the request instead on
saving the contact, so there is not even a mid registrar on the EP
tried with kamailio 5.3.7 and 5.4.4
thanks
Hi all,
I have one question.
What softphones can I use when trying VoLTE (not VoIP) with Kamailio? I
would like to verify VoLTE of private LTE with Open5GS and Kamailio.
I'm sorry to ask you a question without much understanding of Kamailio,
VoIP and VoLTE.
Thank you very much in advance.
Best regards,
--Shigeru
Hello!
I'm configuring Kamailio proxy and trying to find instructions or
advises for choosing the following options:
*Host specific*
- Number of cores
- RAM size
*Kamailio specific*
- Number of children to fork for the UDP interfaces
- Shared memory size
The proxy will not connect to the database, only route INVITEs using the
dispatcher. The expected load is 70K requests per hour.
Are there any formulas for calculating the parameters?
Hello,
Using kamailio 5.1, I am trying to use sip_trace(<internal-sip-uri>) from a branch route to send a copy of the current sip message to another location. Sending the message works fine but I note that the message being sent is the original incoming request and does not contain what was changed for the particular branch.
Is there any way to get sip_trace() to send the content of the message for that specific branch?
With every blessing,
—
Daniel Donoghue