Hi ! I have managed to get the XMPP module working for IM. Now I am working on Presence service with the pua_xmpp module. I have experienced some problems and I would like to ask some questions to clarify my understandig of Kamailio.
When a SUBSCRIBE arrives to Kamailio, it adds a subscribtion to the watchers table in the database. And if the subscriber is online, he is also in the active_watchers table, right?
Next... when a PUBLISH request arrives to Kamailio, by default the handle_publish() function is called. This function generates all NOTIFY msgs (based on the database content of watchers and presence rules) and send them to the recipients. I wanted to ask if these generated NOTIFY msgs go through the routing logic, or not ?
As I was saying, I was trying to get pua_xmpp module working, but Kamailio does not seem to send NOTIFY to users in XMPP (winfo is sent, bude presence itself is not).
Here is a piece of my configuration file:
if(is_method("NOTIFY")) { xlog(" ==== NOTIFY msg ====\n"); } if(is_method("NOTIFY") && uri=~"sip:.+[*].+@sip.sk") { xlog(" ====== NOTIFY from $fu to $tu ======\n"); if(pua_xmpp_notify()) { xlog(" ====== NOTIFY to xmpp domain from $fu to $tu ======\n"); t_reply("200", "OK"); } exit; } if(is_method("PUBLISH")) { xlog("===== PUBLISH FROM $fu ====="); handle_publish(); t_release(); } else if( is_method("SUBSCRIBE")) { handle_subscribe(); if(uri=~"sip:.+[*].+@sip.sk" && $hdr(Event)== "presence") { xlog(" ====== SUBSCRIBE for XMPP domain from $fu to see $tu ======\n"); pua_xmpp_req_winfo("$ruri", "$hdr(Expires)"); } t_release(); } exit;
Based on this configuration, I never get the " ==== NOTIFY msg ====" output to the syslog. So I assume the NOTIFY never goes through the routing logic. Is that right?? If so, how can I get it to pass the routing logic so the pua_xmpp_notify() function can be executed ?? Is there any way to do this??
Regards Martin