You are right! Sorry for the inconvenience. Can you make diff in the correct order with the new files I have sent?
Best Regards, Laura On Fri, Aug 12, 2011 at 10:58 PM, Daniel-Constantin Mierla <mico...@gmail.com> wrote: > Hello, > > I applied the patches to master branch. One seemed to be in the reverse > order (diff between file.new and file.old instead of diff between file.old > and file.new), can you double-check if that is ok? If fine, then I will > backport to 3.1 branch as well. > > Cheers, > Daniel > > On 8/10/11 1:44 PM, Daniel-Constantin Mierla wrote: > > Hi Laura, > > thanks, I will apply the patches soon. > > Cheers, > Daniel > > On 8/10/11 12:32 PM, laura testi wrote: > > Hi Daniel, > please find the attached diff files and the files patched. > > Best Regards, > Laura > > On Tue, Aug 9, 2011 at 4:34 PM, Daniel-Constantin Mierla > <mico...@gmail.com> wrote: > > Hi Laura, > > thanks for the patches. I will apply them. Can you attach the patches as > files instead of pasting them inline, so I can just download them from email > and apply? The mail client breaks the withe-spacing and will take me some > time to align them. > > Cheers, > Daniel > > On 8/8/11 6:00 PM, laura testi wrote: > > Thank you very much for your reply. > > Finally we have successfully configure the xmpp gateway to work (both > presence and IM) with another kamailio server which provide SIP > REGISTRAR/PROXY/PRESENCE (with integrated xcap function). > > The key points are to put the server address parameter of presence and > pua_xmpp module to the gateway itself instead of the main Presence > Server of the SIP/SIMPLE domains. But the outbound_proxy of the xmpp > module must point to the main PROXY server of the SIP/SIMPLE domains. > The outbound_proxy of pua is not specify, so it point itself. > > following are this part of the configuration: > modparam("xmpp", "outbound_proxy", "<main_proxy_uri>") > modparam("presence", "server_address", "sip:10.10.5.210:5060") > modparam("pua_xmpp", "server_address", "sip:10.10.5.210:5060") > > Now it works fine withe some bugs: > - xmpp add sip contact: ok > - sip add xmpp contact: ok > - xmpp see the sip contact presence: ok > - sip see the xmpp contact presence: ok > - sip IM to xmpp: ok > - xmpp IM to sip: ok > > the bugs we found are following: > - the online/offline status is ok in both direction (SIP<--> XMPP) > - other status (away/busy) is not ok from XMPP to SIP > - busy status is not ok from SIP to XMPP > - each time XMPP contact change the status, triger a new SUBSCRIBE in xmpp > gateway which generate multiple same subscriptions with different callid > in both active_watchers and pua tables. This also makes multiple > multiple NOTIFY > generation from the main Presence Server to GW when the SIP contact > change > it's status > > We have make the following patches in the pua_xmpp module that fix the > above bugs. Hope it can help. > > ------------------------------------------------------------------------------------------------------------------------- > # diff -u simple2xmpp.c.orig simple2xmpp.c > --- simple2xmpp.c.orig 2011-08-05 16:11:55.000000000 +0200 > +++ simple2xmpp.c 2011-08-08 14:57:25.000000000 +0200 > @@ -87,7 +87,7 @@ > if(msg->to->parsed != NULL) > { > pto = (struct to_body*)msg->to->parsed; > - LM_ERR("'To' header ALREADY > PARSED:<%.*s>\n",pto->uri.len,pto->uri.s); > + LM_DBG("'To' header ALREADY > PARSED:<%.*s>\n",pto->uri.len,pto->uri.s); > } > else > { > @@ -415,7 +415,8 @@ > goto error; > } > > - if(xmlStrcasecmp((unsigned char*)note, (unsigned char*)"away")== > 0) > + if((xmlStrcasecmp((unsigned char*)note, (unsigned char*)"away")== > 0)|| > + (xmlStrcasecmp((unsigned char*)note, (unsigned > char*)"On the phone")== 0)) > { > new_node = xmlNewChild(xmpp_root, NULL, BAD_CAST "show", > BAD_CAST "away"); > @@ -456,12 +457,14 @@ > LM_ERR("while adding node: > idle\n"); > goto error; > } > - } > - else */ > + }*/ > + else > if((xmlStrcasecmp((unsigned char*)note, > (unsigned char*)"dnd")== 0)|| > (xmlStrcasecmp((unsigned > char*)note, > - (unsigned char*)"do > not disturb")== 0)) > + (unsigned char*)"do > not disturb")== 0)|| > + (xmlStrcasecmp((unsigned > char*)note, > + (unsigned char*)"Busy (DND)")== > 0)) > { > new_node = > xmlNewChild(xmpp_root, NULL, BAD_CAST "show", > BAD_CAST "dnd"); > @@ -471,6 +474,8 @@ > goto error; > } > } > + else > + LM_DBG("Not Found Status\n"); > > > /* adding status node */ > > > > > ------------------------------------------------------------------------------------------------------------------------- > # diff -u xmpp2simple.c.orig xmpp2simple.c > --- xmpp2simple.c.orig 2011-08-05 12:37:48.000000000 +0200 > +++ xmpp2simple.c 2011-08-08 15:51:56.000000000 +0200 > @@ -76,13 +76,13 @@ > { > LM_DBG("type attribut not present\n"); > build_publish(pres_node, -1); > - if(presence_subscribe(pres_node, 3600, XMPP_SUBSCRIBE)< > 0) > + /* if(presence_subscribe(pres_node, 3600, XMPP_SUBSCRIBE)< > 0) > { > LM_ERR("when sending subscribe for > presence"); > xmlFree(pres_type); > goto error; > } > - > + */ > > /* send subscribe after publish because in xmpp > subscribe message > * comes only when a new contact is inserted in buddy list > */ > @@ -161,6 +161,8 @@ > char* type= NULL; > char* status= NULL; > > + > + > LM_DBG("start\n"); > > entity=(char*)pkg_malloc(7+ strlen(uri)*sizeof(char)); > @@ -243,13 +245,13 @@ > if(show_cont) > { > if(strcmp(show_cont, "xa")== 0) > - status= "not available"; > + status= "Away"; > else > if(strcmp(show_cont, "chat")== 0) > - status= "free for chat"; > + status= "Online"; > else > if(strcmp(show_cont, "dnd")== 0) > - status= "do not disturb"; > + status= "Busy (DND)"; > else > status= show_cont; > } > @@ -264,8 +266,8 @@ > goto error; > } > */ > - node = xmlNewChild(root_node, NULL, BAD_CAST "note", > - BAD_CAST status_cont); > + node = xmlNewChild(tuple_node, NULL, BAD_CAST "note", > + BAD_CAST status); > if(node== NULL) > { > LM_ERR("while adding node\n"); > @@ -273,8 +275,8 @@ > } > }else > if(show_cont) > - { > - node = xmlNewChild(root_node, NULL, BAD_CAST > "note", > + { > + node = xmlNewChild(tuple_node, NULL, BAD_CAST > "note", > BAD_CAST status); > if(node== NULL) > { > @@ -295,23 +297,6 @@ > goto error; > } > } > - node= xmlNewChild(person_node, NULL, BAD_CAST > "activities", > - BAD_CAST 0); > - if(node== NULL) > - { > - LM_ERR("while adding node\n"); > - goto error; > - } > - > - > - if( xmlNewChild(person_node, NULL, BAD_CAST "note", > - BAD_CAST status )== NULL) > - { > - LM_ERR("while adding node\n"); > - goto error; > - } > - > - > } > > > > > > > > > > > > > On Mon, Aug 1, 2011 at 12:10 PM, Daniel-Constantin Mierla > <mico...@gmail.com> wrote: > > Hello, > > On 7/29/11 10:32 AM, laura testi wrote: > > Hi all, > we are trying to setup a kamailio presence server in SIP/SIMPLE domain > to interwork with XMPP domains including the GTalk (see the config > below). The architecture is like this: > - SIP/SIMPLE server: kamailio3.14 with full configuration with XCAP > integration > - XMPP Gateway: another kamailio server + ejabberd server > - component mode > - xmpp moduleL: outbound proxy to the Kamailio SIP/SIMPLE server > - pua_xmpp: no outbound proxy? > - XMPP server: ejabberd > > The users from XMPP domain can add the SIP account and see the > presence of the SIP users, but not vice versa. The chat from both > directions works fine. > > in the Presence Server, we have configured the kamailio with XCAP > integration. We have the following doubts: > - does pua_xmpp/pua modules need the xcap integration for the presence > integration with xmpp domains? > > no, there is no requirement of xcap for sip-xmpp presence gatewaying. > > because to use xcap for presence authorization rules, it needs the > sip clients support the xcap > - does pua_xmpp/pua support xcap? otherwise how to works? > > This mechanism of auth rules in SIP is not compatible with XMPP, afaik. > In > xmpp they have in-band (using XMPP) transfer of the buddy list, unlike in > SIMPLE where is XCAP over HTTP -- it is more like end-to-end presence > model > from early sip specifications. > > > - in case of multiple SIP/SIMPLE presence server, how we can configure > the server_address of > pua_xmpp and presence parameter in xmpp gw? > > Either use many instances or, as workaround, somehow route the traffic to > itself or other instance in order to re-write some headers. > > Cheers, > Daniel > > > Can you help us to clarify the doubts please? > > Many thanks in advanced! > > Best Regards, > Laura > > > PS: following are the main configuration of the xmpp GW: > > > --------------------------------------------------------------------------------------------- > ... > modparam("xmpp", "domain_separator", "*") > modparam("xmpp", "backend", "component") > modparam("xmpp", "gateway_domain", "<mygwdomain>") > modparam("xmpp", "xmpp_domain", "<mygwdomain>") > modparam("xmpp", "xmpp_host", "127.0.0.1") > modparam("xmpp", "xmpp_password", "secret") > modparam("xmpp", "outbound_proxy", "<my oubound proxy uri>") > modparam("pua", "outbound_proxy", "<my outbound proxy uri>") > modparam("pua", "update_period", 60) > modparam("pua", "default_expires", 1200) > modparam("presence", "server_address", "<my presence server uri>") > modparam("pua_xmpp", "server_address", "<my presence server uri>") > > > > route{ > route(REQINIT); > t_check_trans(); > > if (uri =~ "sip:.+@.*<myxmppdomain>") { > route(PRESENCE); > if ($rU==$null) > { > # request with no Username in RURI > sl_send_reply("484","Address Incomplete"); > exit; > } > route(CHAT); > } > > xlog("L_INFO", "*** xmpp: unhandled message type\n"); > t_reply("503", "Service unavailable"); > return; > > } > > ... > > route[CHAT] { > if(!is_method("MESSAGE")) > return; > > if (!t_newtran()) { > sl_reply_error(); > exit; > } > > xlog("L_INFO", "*** xmpp-handled MESSAGE message."); > if ($cT=~"^text/plain") { > if (xmpp_send_message()) { > t_reply("200", "Accepted"); > } else { > t_reply("404", "Not found"); > } > } else { > xlog("L_INFO", "*** xmpp-handled MESSAGE, ignoring not > text > messages"); > t_reply("200", "Accepted"); > } > > t_release(); > exit; > } > > route[PRESENCE] { > if(!is_method("PUBLISH|SUBSCRIBE|NOTIFY")) > return; > > # create new transaction to catch retransmissions > if (!t_newtran()) > { > sl_reply_error(); > exit; > } > > if( is_method("NOTIFY")) > { > xlog("L_INFO", "*** xmpp-handled NOTIFY message."); > if(pua_xmpp_notify()) > t_reply("200", "OK"); > t_release(); > exit; > } else if( is_method("SUBSCRIBE")) > { > xlog("L_INFO", "*** xmpp-handled SUBSCRIBE message.\n"); > handle_subscribe(); > if($(hdr(Event))== "presence") > { > pua_xmpp_req_winfo("$ruri", "$hdr(Expires)"); > } > t_release(); > exit; > } else if(is_method("PUBLISH")) > { > handle_publish(); > t_release(); > exit; > } > } > > ... > > _______________________________________________ > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list > sr-users@lists.sip-router.org > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users > > -- > Daniel-Constantin Mierla -- http://www.asipto.com > Kamailio Advanced Training, Oct 10-13, Berlin: http://asipto.com/u/kat > http://linkedin.com/in/miconda -- http://twitter.com/miconda > > > _______________________________________________ > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list > sr-users@lists.sip-router.org > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users > > -- > Daniel-Constantin Mierla -- http://www.asipto.com > Kamailio Advanced Training, Oct 10-13, Berlin: http://asipto.com/u/kat > http://linkedin.com/in/miconda -- http://twitter.com/miconda > >> > > _______________________________________________ > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list > sr-users@lists.sip-router.org > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users > > -- > Daniel-Constantin Mierla -- http://www.asipto.com > Kamailio Advanced Training, Oct 10-13, Berlin: http://asipto.com/u/kat > http://linkedin.com/in/miconda -- http://twitter.com/miconda > > _______________________________________________ > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list > sr-users@lists.sip-router.org > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users > > -- > Daniel-Constantin Mierla -- http://www.asipto.com > Kamailio Advanced Training, Oct 10-13, Berlin: http://asipto.com/u/kat > http://linkedin.com/in/miconda -- http://twitter.com/miconda _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users