[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