Hi
I am using Kamailio 5.2 with the following PRESENCE modules and parameters:
loadmodule "presence.so"
loadmodule "presence_xml.so"
loadmodule "presence_dialoginfo.so"
loadmodule "presence_reginfo.so"
modparam("presence", "db_url", DBURL)
modparam("presence_xml", "db_url", DBURL)
modparam("presence_xml", "force_active", 1)
modparam("presence_xml", "disable_bla", 0)
modparam("presence_xml", "integrated_xcap_server", 1)
I have a Yealink T28P phone which has two lines/extensions successfully registered with Kamailio 5.2. When I setup the BLF light to monitor one of the extensions, I get the correct SUBSCRIBE record but the NOTIFY record is sent over and over again until it fails.
-----------------------------------------------------------------------------------------------------------
NOTIFY sip:101@192.168.1.123:5062 SIP/2.0
Via: SIP/2.0/UDP 45.45.45.45;branch=z9hG4bKd16c.03b5bc97000000000000000000000000.0
To: <sip:101@45.45.45.45>;tag=1366853594
From: <sip:104@45.45.45.45>;tag=a6a1c5f60faecf035a1ae5b6e96e979a-e6c3
CSeq: 2 NOTIFY
Call-ID: 594386350(a)192.168.1.123
Content-Length: 0
User-Agent: kamailio (5.2.4 (x86_64/linux))
Max-Forwards: 70
Event: dialog
Contact: <sip:45.45.45.45:5060;transport=udp>
-----------------------------------------------------------------------------------------------------------
When I register the phone with Freeswitch instead and run the same test, the NOTIFY works and I get a much longer NOTIFY message
-----------------------------------------------------------------------------------------------------------
NOTIFY sip:100@192.168.1.123:5064 SIP/2.0
Via: SIP/2.0/UDP 66.66.66.66;rport;branch=z9hG4bK1mXej9r2605UB
Route: <sip:55.55.55.55:5064>;transport=udp
Max-Forwards: 70
From: <sip:102@66.66.66.66>;tag=xUoVghM5syHc
To: "100" <sip:100@66.66.66.66>;tag=1720892352
Call-ID: 2583553127(a)192.168.1.123
CSeq: 1178415701 NOTIFY
Contact: <sip:102@66.66.66.66:5060>
User-Agent: FreeSWITCH-mod_sofia/1.10.1-release-12-f9990221e6~64bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, path, replaces
Event: dialog
Allow-Events: talk, hold, conference, presence, as-feature-event, dialog, line-seize, call-info, sla, include-session-description, presence.winfo, message-summary, refer
Subscription-State: active;expires=1800
Content-Type: application/dialog-info+xml
Content-Length: 149
xml version="1.0"?>
dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="0" state="full" entity="sip:102@66.66.66.66">
dialog-info>
-----------------------------------------------------------------------------------------------------------
Should the message coming from Kamailio contain more data or is that not the issue. Should I be including other modules also?
All guidance would be appreciated.
Hello,
I have 2 kam instances using one shared database and both kam servers
running the same routing logic code. Kamailio servers are configured to use
the same database as dialog backend.
I am limiting the concurrent dialogs in the following way but it seems that
kamailio is using its own memory to read profile size rather than the db.
Second kam is not aware of the dialog profiles that the first kam wrote to
the shared db. Is there a way to get multiple kam instances to read profile
size from the same database when calling the get_profile_size function?
modparam("dialog", "profiles_with_value", "concurrent_calls")
modparam("dialog", "dlg_flag", 4)
modparam("dialog", "db_url", DBURL)
modparam("dialog", "db_mode", 1)
route[LIMIT_CALLS] {
if (!dlg_isflagset("1")) { # $td – gateways, $fu - user
if (get_profile_size("concurrent_calls", "$fu", "$avp(calls)")) {
if ($avp(calls) >= 3) {
xlog("L_INFO", "Concurrent calls $fu at limit");
send_reply("503", "Calls limit reached"); exit;
} else {
dlg_manage(); dlg_setflag("1");
set_dlg_profile("concurrent_calls", "$fu");
}
}
}
}
Cheers,
Olli