Hi,
I am trying to use Kamailio with WebTRC to make and receive calls from the browser.
Using the rpms from the Kamailio repository I have installed and tried the websocket config example from the source code. Using the first debug example from here https://www.kamailio.org/wiki/tutorials/tls/testing-and-debugginga I can see that my TLS wss setup is working. But I try JSCommunicator and sipML5 I get no success, they fail to register in Kamailio. From the logs I can see that something goes wrong with TLS. Doing some research, it is more like that several products are currently broken and not working...
So can anyone help me (share a config and tricky) or point to a document that would help me to get it running?
Thanks,
Moacir
Is there is reason why this post does not get approved?
From: Pejman Rajabian [mailto:pejman@italkip.com]
Sent: Wednesday, May 18, 2016 12:59 PM
To: 'sr-users(a)lists.sip-router.org'
Subject: Kamailio notify conflict when a second call lands on a phone
I am having a dilemma with manipulation of the light status when multiple
calls land on the same extension.
Let's say a call is in progress on extension 107 and Kamailio has already
sent notifies to all subscribers who watch the status of extension 107 and
they all have a red light for the blf button assigned to 107 on their
phones.
When a second call is destined for extension 107 while the first call is in
progress, the Kamailio server sends a new notify to the subscribers to 107.
If one of the two calls hangs up while the other one is still in progress,
Kamailio sends a new notify to subscribers to report idle status and the
subscribers phone blf light for extension 107 turns green while there is an
active call on this extension and it should be red. I guess what Im trying
to say is that I need a way to tell Kamilio to reset back to the last status
instead of just sending a idle status.
Can someone please help with this matter?
Pejman Rajabian
Director of Product Development
iTalk IP Networks LLC
Office: (703) 550-8888 x.107
Cell: (571) 723-2224
Fax: (703) 439-1350
pejman(a)italkip.com
Hello,
I’m attempting to deploy a homer sip capture server on SPARC and I’m seeing some strange date related errors:
ERROR: db_mysql [km_dbase.c:128]: db_mysql_submit_query(): driver error on query: Incorrect datetime value: '2052-06-12 16:21:06' for column 'date' at row 1 (1292)
Is there some sore of endianness issue?
Thanks for any assistance!
Regards,
Spencer
Hi,
We are heavily using Kamailio in our product Sipwise NGCP and currently
testing possibility to provide rollback for the customers with the huge
systems as the last resort functionality in case if upgrade went wrong.
We hope never use it on practice but prefer to have such possibility.
The main logic here is to change DB in 'backward compatible' way.
So OLD code must work with NEW DB schema (but NOT a vice verse).
We have some rules which helps us care about it, like
"Do not drop columns, just discontinue them" and
"All new fields should have defaults", etc.
Also we have separated 'code', 'configs' and 'data' parts of our
product and rollback 'code'/'configs' only, while 'data' (e.g.
MySQL DB) stays in new state.
Otherwise rollback will require a lot if time to revert all DB
statements and sometimes it is just not possible.
While every time we have to upgrade Kamailio we have a problems with
rollback possibility.
The point here that Kamailio checks DB table_version and doesn't start
if the version mismatch found.
Q: What about to add Kamailio possibility to work in backward compatible
mode?
Sample for upgrade Kamailio 4.3.x -> 4.4.x (the versions here as an
example only!)
https://www.kamailio.org/wiki/install/upgrade/4.3.x-to-4.4.0
We have 3 DB statements there which are adding new columns to 3 tables, like
> -- table: active_watchers
> ALTER TABLE active_watchers
> ADD COLUMN flags INT(11) NOT NULL DEFAULT '0',
> ADD COLUMN user_agent VARCHAR(255) NOT NULL;
> DELETE FROM version WHERE TABLE_NAME='active_watchers';
> INSERT INTO version (`table_name`, `table_version`) VALUES
('active_watchers','12');
Problem here is missed default for column 'user_agent' which can be
empty value as for me.
So, lets assume we have it there. Then we can add new column to table
'version', like that:
> mysql> select * from version where table_name='active_watchers';
> +-----------------+---------------+---------------------+
> | table_name | table_version | table_compatibility |
> +-----------------+---------------+---------------------+
> | active_watchers | 12 | 11 |
> +-----------------+---------------+---------------------+
> 1 row in set (0.00 sec)
Currently:
- module presence version 4.4.x starts check required version and
refuse to load if table_version!=12
Proposed behaviour:
- module presence version 4.4.x starts check required version and
refuse to load if table_version!=12 and compatibility option is not set
- if compatibility option is set, check value of table_compatibility
and refuse to load if current version less then table_compatibility value
>From the sample above I would say module presence in Kamailio 4.4.x is
compatible with Kamailio 4.3.x if we define default value for the field
'user_agent'.
Having that will allow us to rollback on previous NGCP release and
_temporary_ work on Kamailio 4.3.x having new Kamailio DB 4.4.x
P.S. This is just a question to check Kamailio community vision here and
reality is more complex as described,
so some additional checks/limitations will be in place.
P.P.S Compatibility Kamailio option can/should be disabled by default.
Field 'table_compatibility' can be outside table 'version', e.g. in
separate table.
Complete compatibility logic can be some separate Kamailio
'compatibility' module.
Thank you!
--
Alexander Lutay
Head of Quality Assurance
Sipwise GmbH, Campus 21/Europaring F15
AT-2345 Brunn am Gebirge
Office: +43(0)13012036
Email: alutay(a)sipwise.com
Website: https://www.sipwise.com
Meet us @ ANGACOM: Hall 10.1 / booth N10
Exhibition and Congress for Broadband,
Cable & Satellite: 07 – 09 June, 2016 in Cologne
I am having a dilemma with manipulation of the light status when multiple
calls land on the same extension.
Let's say a call is in progress on extension 107 and Kamailio has already
sent notifies to all subscribers who watch the status of extension 107 and
they all have a red light for the blf button assigned to 107 on their
phones.
When a second call is destined for extension 107 while the first call is in
progress, the Kamailio server sends a new notify to the subscribers to 107.
If one of the two calls hangs up while the other one is still in progress,
Kamailio sends a new notify to subscribers to report idle status and the
subscribers phone blf light for extension 107 turns green while there is an
active call on this extension and it should be red. I guess what Im trying
to say is that I need a way to tell Kamilio to reset back to the last status
instead of just sending a idle status.
Can someone please help with this matter?
Pejman Rajabian
Director of Product Development
iTalk IP Networks LLC
Office: (703) 550-8888 x.107
Cell: (571) 723-2224
Fax: (703) 439-1350
<mailto:pejman@italkip.com> pejman(a)italkip.com
hello
When I uncomment in /etc/kazoo/kamailio/local.cfg#!trydef TRAFFIC-FILTER-ROLE
(it was commented previously)
And the kamailio does not start and the log gives this error:-Invalid route satement
The structure of files is simple:the trafic-filter-role is in the separate file.
and in the main file (default.cfg
#!ifdef TRAFFIC_FILTER-ROLEinclude_file "traffic-filter-role.cfg"
and that's it.
But it gives INVALID ROUTE ERROR
Hello, David.
Sorry for the time to reply you. I was a little busy here in the last few
days.
I am not sure about the "==". We had tried it here, but it only worked when
we used with =~. We are currently running kamailio 4.2, so it may be a
problem with our version.
About the $hdr variable, it is used to get information from the SIP
Headers. I am not sure, but I dont think that there is an header with
Instance-ID, so you must try to find how can you get this ID in kamailio,
as I don't know where is it saved.
*Bruno Emer*
Mobile: +55 11 96540-0044
email: brunoemer(a)gmail.com
<https://www.facebook.com/bruno.emer.5>
<https://www.linkedin.com/profile/view?id=86461237&trk=spm_pic>
<https://twitter.com/brunoemer_>
<https://www.flickr.com/photos/122070309@N03/>
<http://google.com/+BrunoEmer> <http://instagram.com/brunoemer_>
2016-05-13 12:24 GMT-03:00 Bruno Emer <brunoemer(a)gmail.com>:
> Hello all!
>
> After some time I was able to get this working here, and now I am coming
> back to share my configuration with you guys (in case someone needs to get
> this working).
>
> Here is what we have done:
>
> route[REGISTRAR] {
> if (is_method("REGISTER"))
> {
> if(isflagset(FLT_NATS))
> {
> setbflag(FLB_NATB);
> # uncomment next line to do SIP NAT pinging
> ## setbflag(FLB_NATSIPPING);
> }
>
> xlog("L_INFO", "checking $tu registered with
> User-Agent:$hdr(User-Agent)\n");
> if(reg_fetch_contacts("location", "$tu", "caller"))
> {
> xlog("L_INFO", "$(ulc(caller=>count)) records
> found for $tu\n");
> $var(i) = 0;
> while($var(i) < $(ulc(caller=>count)))
> {
>
> xlog("L_INFO", "record $var(i) with
> ruid:$(ulc(caller=>ruid)[$var(i)]) -
> User-Agent:$(ulc(caller=>user_agent)[$var(i)])");
> if
> ($hdr(User-Agent)=~$(ulc(caller=>user_agent)[$var(i)]))
> {
> $var(ruid) =
> $(ulc(caller=>ruid)[$var(i)]);
> xlog("L_INFO", "unregistering $tu
> ruid:$var(ruid)");
> unregister("location", "$tu",
> "$var(ruid)");
> }
> $var(i) = $var(i) + 1;
> }
> }
> if (!save("location", "0x00"))
> sl_reply_error();
>
> exit;
> }
> }
>
>
> There are some logs over there because we used it to see what was going on
> while testing the configurations.
>
>
> With this we can get just one register per User-Agent.
>
>
> And again, thanks Olle for your help in this problem
>
> *Bruno Emer*
>
> Mobile: +55 11 96540-0044
> email: brunoemer(a)gmail.com
> <https://www.facebook.com/bruno.emer.5>
> <https://www.linkedin.com/profile/view?id=86461237&trk=spm_pic>
> <https://twitter.com/brunoemer_>
> <https://www.flickr.com/photos/122070309@N03/>
> <http://google.com/+BrunoEmer> <http://instagram.com/brunoemer_>
>
> 2016-04-01 17:37 GMT-03:00 Bruno Emer <brunoemer(a)gmail.com>:
>
>> Sure it is!
>>
>> This is exactly what I was looking for! Actually I wasn't able to see
>> that there was a way to perform this action!
>>
>> Thanks for your help, Olle!
>>
>> I will try to create this, and when I have it done, I will post my script
>> here, so if someone else need the same problem I can help.
>>
>> Now, I have just one more question about my scenario: when I register a
>> user, is there a way to create something like a "custom field" on the
>> location? To explain better: If possible, I can add something like a custom
>> header that says if the user is registered from a phone device or the web
>> interface, then I can perform the loop and replace only the oldest contact
>> using that device...
>>
>>
>>
>> *Bruno Emer*
>>
>> Mobile: +55 11 96540-0044
>> email: brunoemer(a)gmail.com
>>
>> 2016-04-01 17:18 GMT-03:00 Bruno Emer <brunoemer(a)gmail.com>:
>>
>>> This is my problem... I want to have 2 contacts for AOR, and not only
>>> one.
>>>
>>> When the 3rd arrives, it must remove the oldest and continue with 2...
>>>
>>> *If I am using the 0x04 parameter, it will save just one contact, and
>>> the user will not be able to get the Invite both, in the mobile device and
>>> web interface.*
>>>
>>> *Bruno Emer*
>>>
>>> Mobile: +55 11 96540-0044
>>> email: brunoemer(a)gmail.com
>>> <https://www.facebook.com/bruno.emer.5>
>>> <https://www.linkedin.com/profile/view?id=86461237&trk=spm_pic>
>>> <https://twitter.com/brunoemer_>
>>> <https://www.flickr.com/photos/122070309@N03/>
>>> <http://google.com/+BrunoEmer> <http://instagram.com/brunoemer_>
>>>
>>> 2016-04-01 17:07 GMT-03:00 Bruno Emer <brunoemer(a)gmail.com>:
>>>
>>>> Hello, *Olle!*
>>>>
>>>> *Thanks for your help in this case, and don't worry about the time
>>>> (actually I wasn't even expecting to get an answer today).*
>>>>
>>>>
>>>> *I know the max_contacts parameter. But the problem is that if I set
>>>> the max_contacts to 2, when the user tries to register again, he gets an
>>>> error message 503. The point is that I want to get the user registered, and
>>>> replace the oldest location entry for the newest one.*
>>>>
>>>>
>>>>
>>>> *Bruno Emer*
>>>>
>>>> Mobile: +55 11 96540-0044
>>>> email: brunoemer(a)gmail.com
>>>>
>>>> 2016-04-01 16:31 GMT-03:00 Bruno Emer <brunoemer(a)gmail.com>:
>>>>
>>>>> Hello all.
>>>>>
>>>>> I have problem here and I tried to find a solution and search over
>>>>> internet, but without success.
>>>>>
>>>>> My scenario is the following: I have an application that must be
>>>>> registered in Kamailio when a user logs in the web interface, so he can get
>>>>> calls (something like a web softphone using webrtc). At this point, we are
>>>>> OK, and everything is working fine.
>>>>>
>>>>> To get these register functions I am using the parameter
>>>>> "save("location", "0x04")" as described in the REGISTRAR module
>>>>> documentation, so if a user logs in another web browser or computer, only
>>>>> the last one will continue registered and all calls will be forwarded to
>>>>> him.
>>>>>
>>>>> The point is that now we are creating a phone app that will do almost
>>>>> the same thing as the web interface, allowing users to receive calls using
>>>>> the mobile device, and here is my problem: I want to allow my users to be
>>>>> registered on two devices at the same time, but if a user logs into another
>>>>> device, I don't want to reply with a 503. I want to allow the user to
>>>>> register again, deregistering the oldest contact.
>>>>>
>>>>> I saw that there is a module named "ims_usrloc_scscf" and on its
>>>>> description it says "implemented overwrite oldest contact behaviour",
>>>>> but I couldn't find any documentation about it.
>>>>>
>>>>> So, is there a way to get this working today?
>>>>>
>>>>>
>>>>> *Bruno Emer*
>>>>>
>>>>> Mobile: +55 11 96540-0044
>>>>> email: brunoemer(a)gmail.com
>>>>>
>>>>
>>>>
>>>
>>
>
Hello,
I'm trying to use enum module at core level to route my numbers to
end-point asterisk servers.
As i read (and validated by tests), when a phone number has two DNS NAPTER
entries, enum module create two branch, one for each entries, and send
request to asterisk servers (in the same time).
Do you know any tricks or functions to disable parallel branching, and make
serial branching instead (following responses returned by asterisk) ? I
have also change preference and order in dns config file, same results.
Thanks in advance.
Regards.
Hi Community,
I'm doing very first steps to use kamailio as an S-CSCF.
Now I'm confused about some defines in the examples/scscf/scscf.cfg file.
#!define DB_URL "con1=>mysql://scscf:heslo@xxx.xxx.xxx.xxx/scscf"
##!define DB_URL2 "con2=>mysql://scscf:heslo@10.1.27.217/scscf"
Tutorials/ims/Installation-howto tell me only I-CSCF needs a database, I do not find anything about database for S-CSCF.
However, when I comment out the defines
##!define DB_URL "con1=>mysql://scscf:heslo@xxx.xxx.xxx.xxx/scscf"
##!define DB_URL2 "con2=>mysql://scscf:heslo@10.1.27.217/scscf"
then the kamctl start results in a segmentation fault.
I have installed kamailio-4.4.0 from RPMs.
Is there any hint about database for S-CSCF?
Thanks in advance
Christoph