[OpenSIPS-Users] pua_xmpp sip-xmpp gateway - works one way, not other way
Anca Vamanu
anca at opensips.org
Thu Jun 25 16:58:27 CEST 2009
Hi Mani,
I can not open the document on google docs. It says that the document is
not available.
I see in the paste of your config document that at the line with the
check before calling pua_xmpp_req_winfo there is a big space in the
middle of the word "presence" .. You could check that.
regards,
Anca
mani sivaraman wrote:
> Hi Anca
> I am using 1.5.1 version of opensips and I have pua_xmpp_req_winfo
> call in my cfg file. I get NOTIFY for Watcher Info with the
> watcherinfo+xml payoad. But there is no presence state communication
> sent from Jabber2 server to opensips. Did you look at the debug output
> document that I sent you ?. That should have it all.
>
> Here is my config file.
>
>
> # main request routing logic
>
> route{
>
> # initial sanity checks -- messages with
> # max_forwards==0, or excessively long requests
> if (!mf_process_maxfwd_header("10")) {
> sl_send_reply("483","Too Many Hops");
> exit;
> };
>
> #if (msg:len >= 2048 ) {
> # sl_send_reply("513", "Message too big");
> # exit;
> #};
>
> # we record-route all messages -- to make sure that
> # subsequent messages will go through our proxy; that's
> # particularly good if upstream and downstream entities
> # use different transport protocol
> if (!method=="REGISTER")
> record_route();
>
> # subsequent messages withing a dialog should take the
> # path determined by record-routing
> if (loose_route()) {
> # mark routing logic in request
> append_hf("P-hint: rr-enforced\r\n");
> route(1);
> };
> if(method == "INVITE")
> setflag(5);
>
> if( uri=~"sip:.+ at sip-xmpp.smithmicro.com
> <mailto:sip%3A.%2B at sip-xmpp.smithmicro.com>" ||
> uri=~"sip:.+ at sip-xmpp.smithmicro.com
> <mailto:sip%3A.%2B at sip-xmpp.smithmicro.com>" ||
> uri=~"sip:.+ at sips01.smithmicro.com
> <mailto:sip%3A.%2B at sips01.smithmicro.com>")
> {
> if( is_method("PUBLISH|SUBSCRIBE|NOTIFY"))
> route(2);
> }
>
> if( uri=~"sip:.+ at sip-xmpp.smithmicro.com
> <mailto:sip%3A.%2B at sip-xmpp.smithmicro.com>")
> {
> # absorb retransmissions ###
> if (!t_newtran()) {
> sl_reply_error();
> return;
> }
> if (method == "MESSAGE") {
> log("*** xmpp-handled MESSAGE message.\n");
> if (xmpp_send_message()) {
> t_reply("200", "Accepted");
> } else {
> t_reply("404", "Not found");
> }
> return;
> }else {
> t_reply("403","not supported");
> exit;
> }
>
> }
>
> if (!uri==myself) {
> # mark routing logic in request
> append_hf("P-hint: outbound\r\n");
> # if you have some interdomain connections via TLS
> #if(uri=~"@tls_domain1.net <http://tls_domain1.net>") {
> # t_relay("tls:domain1.net <http://domain1.net>");
> # exit;
> #} else if(uri=~"@tls_domain2.net
> <http://tls_domain2.net>") {
> # t_relay("tls:domain2.net <http://domain2.net>");
> # exit;
> #}
> route(1);
> };
>
> # if the request is for other domain use UsrLoc
> # (in case, it does not work, use the following command
> # with proper names and addresses in it)
> if (uri==myself) {
>
> if( is_method("PUBLISH|SUBSCRIBE|NOTIFY"))
> route(2);
>
> if (method=="REGISTER") {
>
> if (!www_authorize("", "subscriber"))
> {
> www_challenge("", "0");
> exit;
> }
>
> if (!check_to())
> {
> sl_send_reply("403","Forbidden auth ID");
> exit;
> }
>
> if (!save("location"))
> sl_reply_error();
>
> exit;
> };
>
> # native SIP destinations are handled using our USRLOC DB
> if (!lookup("location")) {
> sl_send_reply("404", "Not Found");
> exit;
> };
> append_hf("P-hint: usrloc applied\r\n");
> };
>
> route(1);
> }
>
> route[1] {
> # send it out now; use stateful forwarding as it works reliably
> # even for UDP2TCP
> if (!t_relay()) {
> sl_reply_error();
> };
> exit;
> }
>
> route[2]
> {
> if ( !t_newtran() ){
> sl_reply_error();
> exit;
> };
>
> if( is_method("NOTIFY") &&
> uri=~"sip:.+ at sip-xmpp.smithmicro.com
> <mailto:sip%3A.%2B at sip-xmpp.smithmicro.com>"){
> pua_xmpp_notify();
> t_reply("200", "OK");
> exit;
> }
>
> if(is_method("PUBLISH")){
> handle_publish();
> #t_release();
> /* the call to t_release is no longer needed in 1.5 */
> }
> else
> if( is_method("SUBSCRIBE")){
> handle_subscribe();
> if( uri=~"sip:.+ at sip-xmpp.smithmicro.com
> <mailto:sip%3A.%2B at sip-xmpp.smithmicro.com>" && $hdr(Event)==
> "pres ence"){
> pua_xmpp_req_winfo("$ruri", "$hdr(Expires)");
> }
> #t_release();
> /* the call to t_release is no longer needed in 1.5 */
> }
> exit;
> }
>
>
> On Thu, Jun 25, 2009 at 7:26 AM, Anca Vamanu <anca at opensips.org
> <mailto:anca at opensips.org>> wrote:
>
> Hi Mani,
>
> I order to have opensips send subscribe messages to jabber, you
> need to call 'pua_xmpp_req_winfo("$ruri", "$hdr(Expires)");' when
> you see from the script that a Subscribe request is sent to a
> jabber contact. This is the function responsible for sending
> subscribe messages to jabber.
>
> What opensips version are you using?
>
>
> regards,
> Anca
>
> mani sivaraman wrote:
>
> Hi Anca
> I do not see any xmpp subscribe packet request sent from
> opensips to jabber server. That's the reason why jabber server
> is not sending any presence notify to opensips. Jabber sends
> the xmpp status to other clients like pidgin.
>
> When I add a xmpp buddy to sip client, I get the
> Subscriber/200 OK response. I can see the output saying
> subscribe sent in behalf of xmpp buddy.. etc. But this is just
> a sip subscribe output. I do not see any xmpp subscribe sent
> to jabber server from opensips. What is blocking opensips from
> sendsing the xmpp subscribes to jabber server ?
>
> Please let me know.
>
> On Wed, Jun 24, 2009 at 11:12 AM, mani sivaraman
> <mani.opensips at gmail.com <mailto:mani.opensips at gmail.com>
> <mailto:mani.opensips at gmail.com
> <mailto:mani.opensips at gmail.com>>> wrote:
>
> Oh wait, this xml packet is destined to
> "jabb2 at xmpp.smithmicro.com <mailto:jabb2 at xmpp.smithmicro.com>
> <http://jabb2@xmpp.smithmicro.com/275c37159368
> <http://xmpp.smithmicro.com/275c37159368>>" , not opensips
>
> c2s interface. Since all status goes out from 5347 to all xmpp
> clients, I have to separate out the opensips port connected to
> 5347 and then try. I found it to be dynamic port 59284. After
> doing ngrep on that port I see opensips sending all status
> update
> to 5347, but not other way. The only packet from 5347 to
> 59284 is
> a probe to know if the an offline sip buddy is available (last
> couple of packets)
>
> Here is the ngrep output
>
> sips01:/etc/jabberd2# ngrep -d lo port 59284
> interface: lo (127.0.0.0/255.0.0.0
> <http://127.0.0.0/255.0.0.0> <http://127.0.0.0/255.0.0.0>)
>
> filter: (ip or ip6) and ( port 59284 )
> #
> T 172.16.0.139:59284 <http://172.16.0.139:59284>
> <http://172.16.0.139:59284> ->
> 172.16.0.139:5347 <http://172.16.0.139:5347>
> <http://172.16.0.139:5347> [AP]
>
> <presence to="jabb2 at xmpp.smithmicro.com
> <mailto:jabb2 at xmpp.smithmicro.com>
> <mailto:jabb2 at xmpp.smithmicro.com
> <mailto:jabb2 at xmpp.smithmicro.com>>"
>
> from="rboxall*sips01.smithmicro.com
> <http://sips01.smithmicro.com>
> <http://sips01.smithmicro.com>@xmpp-sip.smithmicro.com
> <http://xmpp-sip.smithmicro.com>
> <http://xmpp-sip.smithmicro.com>"
> type="unavailable"/>
> ##
> T 172.16.0.139:59284 <http://172.16.0.139:59284>
> <http://172.16.0.139:59284> ->
> 172.16.0.139:5347 <http://172.16.0.139:5347>
> <http://172.16.0.139:5347> [AP]
>
> <presence to="jabb1 at xmpp.smithmicro.com
> <mailto:jabb1 at xmpp.smithmicro.com>
> <mailto:jabb1 at xmpp.smithmicro.com
> <mailto:jabb1 at xmpp.smithmicro.com>>"
>
> from="rboxall*sips01.smithmicro.com
> <http://sips01.smithmicro.com>
> <http://sips01.smithmicro.com>@xmpp-sip.smithmicro.com
> <http://xmpp-sip.smithmicro.com>
> <http://xmpp-sip.smithmicro.com>"
> type="unavailable"/>
> ##
> T 172.16.0.139:59284 <http://172.16.0.139:59284>
> <http://172.16.0.139:59284> ->
> 172.16.0.139:5347 <http://172.16.0.139:5347>
> <http://172.16.0.139:5347> [AP]
>
> <presence to="jabb2 at xmpp.smithmicro.com
> <mailto:jabb2 at xmpp.smithmicro.com>
> <mailto:jabb2 at xmpp.smithmicro.com
> <mailto:jabb2 at xmpp.smithmicro.com>>"
>
> from="rboxall*sips01.smithmicro.com
> <http://sips01.smithmicro.com>
> <http://sips01.smithmicro.com>@xmpp-sip.smithmicro.com
> <http://xmpp-sip.smithmicro.com>
> <http://xmpp-sip.smithmicro.com>">
>
> . <status>hi there !!!</status>.
> <priority>0.00</priority>. </presence>
> ##
> T 172.16.0.139:59284 <http://172.16.0.139:59284>
> <http://172.16.0.139:59284> ->
> 172.16.0.139:5347 <http://172.16.0.139:5347>
> <http://172.16.0.139:5347> [AP]
>
> <presence to="jabb1 at xmpp.smithmicro.com
> <mailto:jabb1 at xmpp.smithmicro.com>
> <mailto:jabb1 at xmpp.smithmicro.com
> <mailto:jabb1 at xmpp.smithmicro.com>>"
>
> from="rboxall*sips01.smithmicro.com
> <http://sips01.smithmicro.com>
> <http://sips01.smithmicro.com>@xmpp-sip.smithmicro.com
> <http://xmpp-sip.smithmicro.com>
> <http://xmpp-sip.smithmicro.com>">
>
> . <status>hi there !!!</status>.
> <priority>0.00</priority>. </presence>
> ##
> T 172.16.0.139:5347 <http://172.16.0.139:5347>
> <http://172.16.0.139:5347> ->
> 172.16.0.139:59284 <http://172.16.0.139:59284>
> <http://172.16.0.139:59284> [AP]
>
> <presence xmlns='jabber:client' type='probe'
> to='rboxall*sips01.smithmicro.com
> <http://sips01.smithmicro.com>
> <http://sips01.smithmicro.com>@xmpp-sip.smithmicro.com
> <http://xmpp-sip.smithmicro.com>
> <http://xmpp-sip.smithmicro.com>' from='jabb1
> @xmpp.smithmicro.com <http://xmpp.smithmicro.com>
> <http://xmpp.smithmicro.com>'/>
> ##
> T 172.16.0.139:59284 <http://172.16.0.139:59284>
> <http://172.16.0.139:59284> ->
> 172.16.0.139:5347 <http://172.16.0.139:5347>
> <http://172.16.0.139:5347> [AP]
>
> <presence to="jabb1 at xmpp.smithmicro.com
> <mailto:jabb1 at xmpp.smithmicro.com>
> <mailto:jabb1 at xmpp.smithmicro.com
> <mailto:jabb1 at xmpp.smithmicro.com>>"
>
> from="rboxall*sips01.smithmicro.com
> <http://sips01.smithmicro.com>
> <http://sips01.smithmicro.com>@xmpp-sip.smithmicro.com
> <http://xmpp-sip.smithmicro.com>
> <http://xmpp-sip.smithmicro.com>">. <status>
>
> hi there !!!</status>. <priority>0.00</priority>.
> </presence>
> ##
> T 172.16.0.139:5347 <http://172.16.0.139:5347>
> <http://172.16.0.139:5347> ->
> 172.16.0.139:59284 <http://172.16.0.139:59284>
> <http://172.16.0.139:59284> [AP]
>
> <presence xmlns='jabber:client' type='probe'
> to='msivaraman*sips01.smithmicro.com
> <http://sips01.smithmicro.com>
> <http://sips01.smithmicro.com>@xmpp-sip.smithmicro.com
> <http://xmpp-sip.smithmicro.com>
> <http://xmpp-sip.smithmicro.com>' from='ja
> bb1 at xmpp.smithmicro.com <mailto:bb1 at xmpp.smithmicro.com>
> <mailto:bb1 at xmpp.smithmicro.com
> <mailto:bb1 at xmpp.smithmicro.com>>'/>
> #
> T 172.16.0.139:59284 <http://172.16.0.139:59284>
> <http://172.16.0.139:59284> ->
> 172.16.0.139:5347 <http://172.16.0.139:5347>
> <http://172.16.0.139:5347> [AP]
>
> <presence to="jabb1 at xmpp.smithmicro.com
> <mailto:jabb1 at xmpp.smithmicro.com>
> <mailto:jabb1 at xmpp.smithmicro.com
> <mailto:jabb1 at xmpp.smithmicro.com>>"
>
> from="msivaraman*sips01.smithmicro.com
> <http://sips01.smithmicro.com>
> <http://sips01.smithmicro.com>@xmpp-sip.smithmicro.com
> <http://xmpp-sip.smithmicro.com>
> <http://xmpp-sip.smithmicro.com>" type="unav
> ailable"/>
>
>
>
>
More information about the Users
mailing list