Hi,
I am having the below Error while executing the kamailio cfg file. Before
an hour it executed successfully, There is no changes in cfg.
loading modules under config path: /usr/local/lib64/kamailio/modules/
0(27575) : <core> [core/mem/shm.c:105]: shm_getmem(): could not attach
shared memory segment: Cannot allocate memory
0(27575) : <core> [core/mem/q_malloc.c:1203]:
qm_malloc_init_shm_manager(): could not initialize qm shm memory pool
Too much qm shm memory demanded: 67108864 bytes
0(27575) CRITICAL: <core> [core/cfg.y:3414]: yyerror_at(): parse error in
config file /usr/local/etc/kamailio/config/kamailio_final.cfg, line 302,
column 39: Can't initialize shared memory
ERROR: bad config file (1 errors)
Input please?
Thanks & Kind Regards,
*Logeshwaran G*
*"Be Hungry, Stay Foolish"*
Hello,
Kamailio will be present at Astricon 2017 having a stand in the expo
area (Orlando, FL, during October 3-5 -- more details at www.astricon.net).
Should you participate at the event and have flyers/other materials with
products/solutions/services that use Kamailio or giveaways, you are
welcome to join the booth or just drop them there, we are more than
happy to promote and spread them. Also, you are very welcome to just
stop by and have a chat.
Besides the activity in the exhibition area, I and Fred Posner will have
presentations about using Kamailio together with Asterisk or other VoIP
applications. Be sure you do not miss them, the agenda is available at:
- http://www.asterisk.org/community/astricon-user-conference/schedule
Expect a consistent group from Kamailio community, it's a great event to
be at!
Looking forward to meeting many of you next week in Orlando!
Cheers,
Daniel
--
Daniel-Constantin Mierla
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - www.asipto.com
Kamailio World Conference - www.kamailioworld.com
Hello list,
After deep investigation I found out that the issue is happening because of
the mechanism Kamailio uses to find the most appropriate socket combined
with the virtual IP usage....
For socket selection, Kamailio first asks Linux which would be the routing
for a certain destination, then matches this outcome with the list of
listened sockets.
By default Linux will always return the local IP instead of the virtual
one. So if Kamailio only binds to the virtual IP, the Linux's returned IP
won't match our socket list and then the socket selection fails....
So currently Kamailio active/stand-by HA setup with virtual IP in a
multi-homed environment does not work properly...
We can overcome this by listening to all addresses, but then Kamailio will
decide to use the local IP instead of the virtual one, and then the HA idea
end up broken....
We can also force socket for everything. For regular call routing, this
options actually works fine if the script always force some socket, but it
seems to be not always possible for local generated messages. By disabling
mhomed and using the dispatcher socket attr to send the OPTIONS message it
works for example. But for the LCR module we have no option because
apparently the LCR module has only one socket option, and so I am not able
have a different socket per gateway.
We can also explicitly set the src address for a routing rule to be the
virtual IP instead of the local one. This makes Linux to return the virtual
IP instead of the local one. This solution seems fine, but since it is done
at linux level, every other service on the box would be affected and every
route on the box would needed to be changed..
Another problem I found out is that I am not able to force the socket for
local generated messages. It actually crashes Kamailio, and I always get a
"core was not generated" msg.... anyone aware of that?
The actual fix for this, would be having Kamailio to search the most
appropriate socket in a different manner. It could loop the sockets and see
which one reaches the destination instead of asking Linux to do it, or it
could have some routing directives which could be consulted before
selecting a socket.... (just ideas, not sure how feasible they are...)
I am considering using the Linux routing change option, but has anyone
faced such situation before?
Regards,
Patrick Wakano
On 24 August 2017 at 09:18, Patrick Wakano <pwakano(a)gmail.com> wrote:
> Hello Daniel,
> I still couldn't make this SIP probing work.... So currently my setup
> cannot actively check for GW availability...
> Any idea about what may be causing it?
>
> Thanks for your time,
> Patrick Wakano
>
> On 16 August 2017 at 13:01, Patrick Wakano <pwakano(a)gmail.com> wrote:
>
>> Forgot to mention it is a centos7 box...
>>
>> On 16 Aug. 2017 11:02 am, "Patrick Wakano" <pwakano(a)gmail.com> wrote:
>>
>>> Hi Daniel!
>>> Very grateful for your attention!
>>>
>>> Apologies for lacking important info, check below the version and
>>> sockets.
>>> It may be worth mentioning these IPs are virtual ones and I am using net.ipv4.ip_nonlocal_bind
>>> = 1(in this case the virtual IP is assigned to the box)
>>> Interesting that it has a "mhomed: no" for all sockets but I do have
>>> mhomed=1 in my cfg file.... could that be the issue?
>>> Also there is no message before this one: /usr/sbin/kamailio[6164]:
>>> ERROR: <core> [core/forward.c:181]: get_out_socket(): no socket found
>>> This is the first one that pops when dispatcher tries to ping....
>>>
>>> Thanks,
>>> Patrick
>>>
>>> kamailio -v
>>> version: kamailio 5.0.2 (x86_64/linux)
>>> flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, 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
>>> ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16,
>>> 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 on 12:03:49 Jun 26 2017 with gcc 4.8.5
>>>
>>> kamcmd> core.sockets_list
>>> {
>>> socket: {
>>> proto: udp
>>> address: 172.28.128.100
>>> ipaddress: 172.28.128.100
>>> port: 5060
>>> mcast: no
>>> mhomed: no
>>> }
>>> socket: {
>>> proto: udp
>>> address: 192.168.33.100
>>> ipaddress: 192.168.33.100
>>> port: 5060
>>> mcast: no
>>> mhomed: no
>>> }
>>> socket: {
>>> proto: tcp
>>> address: 172.28.128.100
>>> ipaddress: 172.28.128.100
>>> port: 5060
>>> mcast: no
>>> mhomed: no
>>> }
>>> socket: {
>>> proto: tcp
>>> address: 192.168.33.100
>>> ipaddress: 192.168.33.100
>>> port: 5060
>>> mcast: no
>>> mhomed: no
>>> }
>>> socket: {
>>> proto: tcp
>>> address: 172.28.128.100
>>> ipaddress: 172.28.128.100
>>> port: 8080
>>> mcast: no
>>> mhomed: no
>>> }
>>> }
>>>
>>>
>>> On 15 August 2017 at 17:24, Daniel-Constantin Mierla <miconda(a)gmail.com>
>>> wrote:
>>>
>>>> Hello,
>>>>
>>>> what are the sockets kamailio is listening on? See `kamcmd help` for
>>>> the command that lists the sockets.
>>>>
>>>> Also, what is the log messages before the first one you pasted, there
>>>> should be another one printed from get_out_socket().
>>>> It is always important to provide kamailio version (kamailio -v) and
>>>> the operating system you are using.
>>>>
>>>> Cheers,
>>>> Daniel
>>>>
>>>>
>>>> On 14.08.17 14:41, Patrick Wakano wrote:
>>>>
>>>> Hello Kamailio list,
>>>>
>>>> Hope you all doing well!
>>>>
>>>> I am stuck with one problem that should be incredibly easy to be done,
>>>> but apparently it is not.... I want my dispatcher, LCR and nathelper
>>>> modules to always SIP ping my SIP clients. I have a Kamailio based SBC that
>>>> is separating two networks, and so I am using the 'mhomed' flag, but none
>>>> of these SIP pings are working.... for now I will only ask about the
>>>> dispatcher....
>>>> My dispatcher module has to talk with SIP servers in both networks, the
>>>> thing is when I enable SIP ping for it (modparam("dispatcher",
>>>> "ds_probing_mode", 1)), it gives me this type of error:
>>>> /usr/sbin/kamailio[6164]: ERROR: <core> [core/forward.c:181]:
>>>> get_out_socket(): no socket found
>>>> /usr/sbin/kamailio[6164]: ERROR: <core> [core/forward.c:183]:
>>>> get_out_socket(): no corresponding socket found for(udp:
>>>> 192.168.33.110:6060)
>>>> /usr/sbin/kamailio[6164]: ERROR: tm [ut.h:317]: uri2dst2(): no
>>>> corresponding socket found for "192.168.33.110" af 2 (udp:
>>>> 192.168.33.110:6060)
>>>> /usr/sbin/kamailio[6164]: ERROR: tm [uac.c:443]: t_uac_prepare(): no
>>>> socket found
>>>> /usr/sbin/kamailio[6164]: ERROR: dispatcher [dispatch.c:2652]:
>>>> ds_ping_set(): unable to ping [sip:192.168.33.110:6060]
>>>>
>>>> After research it seems I need to manually set a "socket" attribute for
>>>> each of my GWs in dispatcher list. After putting the socket parameter for
>>>> the GW, I got another error:
>>>> /usr/sbin/kamailio[14190]: ERROR: <core> [core/socket_info.c:2046]:
>>>> parse_protohostport(): bad port number in udp:192.168.33.100:5060
>>>> /usr/sbin/kamailio[14190]: ERROR: <core> [core/forward.c:181]:
>>>> get_out_socket(): no socket found
>>>> /usr/sbin/kamailio[14190]: ERROR: <core> [core/forward.c:183]:
>>>> get_out_socket(): no corresponding socket found for(udp:
>>>> 192.168.33.110:6060)
>>>> /usr/sbin/kamailio[14190]: ERROR: tm [ut.h:317]: uri2dst2(): no
>>>> corresponding socket found for "192.168.33.110" af 2 (udp:
>>>> 192.168.33.110:6060)
>>>> /usr/sbin/kamailio[14190]: ERROR: tm [uac.c:443]: t_uac_prepare(): no
>>>> socket found
>>>> /usr/sbin/kamailio[14190]: ERROR: dispatcher [dispatch.c:2652]:
>>>> ds_ping_set(): unable to ping [sip:192.168.33.110:6060]
>>>>
>>>> What can be wrong in my port info in the socket config? (I tried the
>>>> socket with and without quotes but had no luck...)
>>>> select * from dispatcher where id=2;
>>>> id | setid | destination | flags | priority
>>>> | attrs | description
>>>> ----+-------+-------------------------+-------+----------+--
>>>> -------------------------------------------+---------------------
>>>> 2 | 2 | sip:192.168.33.110:6060 | 0 | 0 | socket="udp:
>>>> 192.168.33.100:5060";rweight=50 |
>>>> (1 row)
>>>>
>>>> Anyhow, I was expecting the 'mhomed' parameter to do the socket
>>>> selection for me. Regular call routing either by the dispatcher or by LCR,
>>>> also seems to require me to explicitly set the socket otherwise Kamailio
>>>> (or the OS) may end up using the wrong socket. So, another question is why
>>>> 'mhomed' does not dictate the whole socket selection Kamailio has to do
>>>> regardless the module it is using to send SIP requests?
>>>>
>>>> Sorry for the long e-mail....
>>>> Best regards,
>>>> Patrick Wakano
>>>>
>>>>
>>>> _______________________________________________
>>>> Kamailio (SER) - Development Mailing Listsr-dev@lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev
>>>>
>>>>
>>>> --
>>>> Daniel-Constantin Mierlawww.twitter.com/miconda -- www.linkedin.com/in/miconda
>>>> Kamailio Advanced Training - www.asipto.com
>>>> Kamailio World Conference - www.kamailioworld.com
>>>>
>>>>
>>>
>
Hello list,
I was trying to activate continuous SIP ping from the LCR module, which
apparently was available in the past, but currently it is not possible
anymore. As I could check It can only ping inactive GWs. Question is, why
such change was promoted? We have to send a call to the GW to detect it has
died instead of actively monitoring them and so avoid this useless call
attempt.
It is not that big deal, but it does gives me a better monitoring of my
providers (specially the ones not used so frequently) health.
Regards,
Patrick
I feel fairly confident I’m running into a memory tuning issue, but I’m
struggling to determine the next step. Can someone give me some guidance
on how to adjust settings to allow the system to stop crashing kamailio?
Sep 14 18:25:15 server1 kamailio[29468]: ERROR: <core>
[core/mem/q_malloc.c:292]: qm_find_free(): qm_find_free(0x7fa9eeeea000,
144); Free fragment not found!
Sep 14 18:25:15 server1 kamailio[29468]: ERROR: <core>
[core/mem/q_malloc.c:425]: qm_malloc(): qm_malloc(0x7fa9eeeea000, 144)
called from kazoo: kz_amqp.c: kz_amqp_async_query(1357), module: kazoo;
Free fragment not found!
Sep 14 18:25:15 server1 kamailio[29468]: ERROR: kazoo [kz_amqp.c:1359]:
kz_amqp_async_query(): failed to allocate kz_amqp_cmd in process 29468
Sep 14 18:25:15 server1 kamailio[29468]: INFO: <script>:
kGddp3V0bA6nitnk25dB4w..|log|failed to send Kazoo query for authentication
xxxxxxxxxxxxxxxxxx
Sep 14 18:25:15 server1 kamailio[29468]: ERROR: tm [t_reply.c:494]:
_reply_light(): cannot allocate shmem buffer
Sep 14 18:25:15 server1 kamailio[29468]: ERROR: sl [sl.c:271]:
send_reply(): failed to reply stateful (tm)
Sep 14 18:25:16 server1 kamailio[29483]: CRITICAL: <core>
[core/pass_fd.c:277]: receive_fd(): EOF on 108
Sep 14 18:25:16 server1 kamailio[29360]: ALERT: <core> [main.c:743]:
handle_sigs(): child process 29438 exited by a signal 11
Sep 14 18:25:16 server1 kamailio[29360]: ALERT: <core> [main.c:746]:
handle_sigs(): core was not generated
Thanks,
Joe Baran
Hi list,
Is it possible to have a htable shared between servers on different
machines?
I have two kamailio proxies on different servers for resilience and I'm
storing
call information in a hash table. Then I can route calls for the same
user to the respective PBX.
The reason for this is to have attended transfers working reliably
(attended transfer between PBXes are a mess).
Thank you!
Kind regards,
--
/Iskren Hadzhinedev/
Hi everyone,
I'm having a hard time transferring calls when the users are on
different FreeSWITCH servers behind kamailio.
The users are distributed as follows:
user1(a)sip.test.com -> Kamailio - ds_select_dst(1,1) -> FreeSWITCH1
user2(a)sip.test.com-> Kamailio - ds_select_dst(1,1) -> FreeSWITCH1
user3(a)sip.test.com -> Kamailio - ds_select_dst(1,1) -> FreeSWITCH2
When user1 calls user2 and user2 does an attended transfer to user3, the
following happens:
285 67.220453 USER2_IP -> KAMAILIO_IP SIP 726 Request: REFER
sip:mod_sofia@FreeSWITCH1_IP:5060, in-dialog |
286 67.220674 KAMAILIO_IP -> FreeSWITCH1_IP SIP 877 Request: REFER
sip:mod_sofia@FreeSWITCH1_IP:5060, in-dialog |
287 67.223651 FreeSWITCH1_IP -> KAMAILIO_IP SIP 925 Status: 202 Accepted |
288 67.223753 KAMAILIO_IP -> USER2_IP SIP 838 Status: 202 Accepted |
289 67.225502 FreeSWITCH1_IP -> KAMAILIO_IP SIP/SDP 1225 Request:
INVITE sip:user3@sip.test.com |
290 67.387323 KAMAILIO_IP -> 69.172.200.109 SIP/SDP 1420 Request:
INVITE sip:user3@sip.test.com |
Turns out 69.172.200.109 is the actual IP address of sip.test.com (I've
probably should have gone with sip.example.com or something else).
What is the proper way to route that INVITE back to the other FreeSWITCH
server so that the transfer would work?
Thanks!
Kind regards,
--
/Iskren Hadzhinedev/
Hi guys,
I want the caller to play a short audio(like "the number your are calling is busy") when the callee declines the call. How can i do that?
Best Regards
Jesse