[Serusers] Sending NOTIFY messages from presence module to an SIP Proxy Server

Vaclav Kubart vaclav.kubart at iptel.org
Wed Jun 21 08:45:03 CEST 2006


:-) You are welcome.

	Vaclav

On Tue, Jun 20, 2006 at 01:27:39PM +0200, Anton Schula wrote:
> Dear Vaclav,
> 
> 
> using record-route() in the OSER configuration really did the job.
> Thank you for your assistance!
> 
> 
> Here is a small summary for the community:
> 
> The goal: 
> Separate SIP registration and routing from presence services
> One SER (or OpenSer in my case) shall do all the SIP registration and SIP routing and whatever you want. I call it here OSER.
> A second SER with the PA and RLS module shall only process presence related stuff. I call it here SIP-PA_RLS.
> The call flow shall always be accross the OSER: Clients send SUBSCRIBE and PUBLISH via tghe OSER to the SIP-PA_RLS. SIP-PA_RLS send back NOTIFY messages to the clients via the OSER.
> 
> The solution:
> The SIP-PA_RLS can run with the (slightly adapted) standard configuration of the SER Presence Snapshot. Of course you can disable non presence related messages, if you will.
> 
> The OSER needs the following forward rule, which MUST include the register_route():
> 
> ...
> if (method=="SUBSCRIBE" and src_ip!=SER-PA_RLS_IP ||
>     method=="NOTIFY" and src_ip!=SER-PA_RLS_IP ||
>     method=="PUBLISH" and src_ip!=SER-PA_RLS_IP) {
> 
>     # needed here so SER-PA_RLS will route NOTIFY messages via OSER
>     record_route(); 
>     
>     forward_udp(SER-PA_RLS_IP,5060);
>     exit;
>  };
> ...
> 
> 
> You can find the call flows below in this mail.
> 
> 
> best regards
> Toni
> 
> 
> -------- Original-Nachricht --------
> Datum: Mon, 19 Jun 2006 17:34:02 +0200
> Von: Vaclav Kubart <vaclav.kubart at iptel.org>
> An: Anton Schula <anton.schula at gmx.at>
> Betreff: Re: Re: [Serusers] Sending NOTIFY messages from presence module to an SIP Proxy Server
> 
> > The OSER should add Record-Route headers into SUBSCRIBE requests passing
> > through. This seems to be not done by it (but the dump you have sent
> > shows truncated messages, thus they may be hidden).
> > 
> > You are right, I think, the record_route should be called on OSER too.
> > 
> > 	Vaclav
> > 
> > On Mon, Jun 19, 2006 at 04:28:13PM +0200, Anton Schula wrote:
> > > Hi Vaclav,
> > > 
> > > 
> > > thank you for the very, very quick reply!
> > > 
> > > Overview captured with tethereal at SER-PA_RLS:
> > > Capturing on eth0
> > > 1   0.000000 OSER -> SER-PA_RLS SIP Request: PUBLISH
> > sip:anton.schula at sip.domain.net
> > > 2   0.000364 OSER -> SER-PA_RLS SIP Request: SUBSCRIBE
> > sip:anton.schula at sip.domain.net
> > > 3   0.003075 SER-PA_RLS -> OSER SIP Status: 200 OK
> > > 4   0.003579 SER-PA_RLS -> OSER SIP Status: 200 OK
> > > 5   0.003704 SER-PA_RLS -> UA   SIP Request: NOTIFY
> > sip:anton.schula at UA:7944
> > > 6   0.095282 OSER -> SER-PA_RLS SIP Request: PUBLISH
> > sip:anton.schula at sip.domain.net
> > > 7   0.095796 SER-PA_RLS -> OSER SIP Status: 200 OK
> > > 8   0.174615 OSER -> SER-PA_RLS SIP Request: SUBSCRIBE
> > sip:anton.schula at sip.domain.net
> > > 9   0.175103 SER-PA_RLS -> OSER SIP Status: 200 OK
> > > 10   0.526255 SER-PA_RLS -> UA   SIP Request: NOTIFY
> > sip:anton.schula at UA:7944
> > > 11   0.552488 OSER -> SER-PA_RLS SIP Request: PUBLISH
> > sip:anton.schula at sip.domain.net
> > > 12   0.552977 SER-PA_RLS -> OSER SIP Status: 200 OK
> > > 13   0.725375 OSER -> SER-PA_RLS SIP Request: SUBSCRIBE
> > sip:anton.schula at sip.domain.net
> > > 14   0.725446 SER-PA_RLS -> OSER SIP Status: 200 OK
> > > 15   1.226364 SER-PA_RLS -> UA   SIP Request: NOTIFY
> > sip:anton.schula at UA:7944
> > > 16   1.586292 OSER -> SER-PA_RLS SIP Request: SUBSCRIBE
> > sip:anton.schula at sip.domain.net
> > > 17   1.586708 SER-PA_RLS -> OSER SIP Status: 489 Unsupported event
> > package
> > > 18   2.167297 OSER -> SER-PA_RLS SIP Request: SUBSCRIBE
> > sip:anton.schula at sip.domain.net
> > > 19   2.167806 SER-PA_RLS -> OSER SIP Status: 489 Unsupported event
> > package
> > > 20   3.466258 SER-PA_RLS -> UA   SIP Request: NOTIFY
> > sip:anton.schula at UA:7944
> > > 21   7.386253 SER-PA_RLS -> UA   SIP Request: NOTIFY
> > sip:anton.schula at UA:7944
> > > 22  11.236379 SER-PA_RLS -> UA   SIP Request: NOTIFY
> > sip:anton.schula at UA:7944
> > > 
> > > The SER-PA_RLS tries to send out SIP NOTIFY directly to the client
> > machine (called UA here). 
> > > As this is UDP these packages are visible even though the firewall drops
> > them.
> > > 
> > > Details captured with ngrep anton.schula@ port 5060 in the attachment
> > ngrep.out.
> > > 
> > > I use a recored_route for all messages in the ser.cfg of SER-PA_RLS. Do
> > I need this as well before the forward in the OSER ser.cfg?
> > > 
> > > if (method=="SUBSCRIBE" and src_ip!=SER-PA_RLS_IP ||
> > >     method=="NOTIFY" and src_ip!=SER-PA_RLS_IP ||
> > >     method=="PUBLISH" and src_ip!=SER-PA_RLS_IP) {
> > > 
> > >     # needed here? On OSER
> > >     record_route(); 
> > >     
> > >     forward_udp(SER-PA_RLS_IP,5060);
> > >     exit;
> > > };
> > > 
> > > The OSER belongs to somebody else, I need to ask him whether he has a
> > record_route() in the config file.
> > > 
> > > 
> > > 
> > > best regards
> > > Toni
> > > 
> > > 
> > > 
> > > 
> > > -------- Original-Nachricht --------
> > > Datum: Mon, 19 Jun 2006 15:49:19 +0200
> > > Von: Vaclav Kubart <vaclav.kubart at iptel.org>
> > > An: Anton Schula <anton.schula at gmx.at>
> > > Betreff: Re: [Serusers] Sending NOTIFY messages from presence module to
> > an SIP Proxy Server
> > > 
> > > > Hi,
> > > > NOTIFYs should be sent via dialog routes (created by Record-Routes in
> > > > SUBSCRIBE request). Please could you attach message dump from
> > > > SER-PA_RLS? (by ngrep for example)
> > > > 
> > > > May be, that you don't see NOTIFYs because they are "eaten" by loose
> > > > route processing on OSER (try to watch with ngrep on that machine if
> > you
> > > > see a NOTIFY).
> > > > 
> > > > 	Vaclav
> > > > 
> > > > On Mon, Jun 19, 2006 at 03:41:29PM +0200, Anton Schula wrote:
> > > > > Hello,
> > > > > 
> > > > > 
> > > > > I have a routing problem with SER and OpenSer regarding presence
> > > > > NOTIFY messages.
> > > > > 
> > > > > I want to use OpenSer (OSER in the diagram below) as SIP registrar
> > and
> > > > > for routing SIP messages (which is working perfectly).  And I have a
> > > > > separate SER with the PA and RLS modules (called SER-PA_RLS). This
> > one
> > > > > also works perfectly when used as standalone server.
> > > > > 
> > > > > Now I have configured the OSER to forward PUBLISH and SUBSCRIBE
> > > > > messages to the SER-PA_RLS. This part is O.K., messages are routed
> > > > > from the client over the OSER to SER-PA_RLS, reply messages travel
> > > > > back from SER-PA_RLS to the OSER and from there to the client.
> > That's
> > > > > O.K., so OSER apears to have correct routing.
> > > > > 
> > > > > But NOTIFY messages originating at the SER-PA_RLS are sent directly
> > to
> > > > > the client, using the clients contact address.
> > > > > 
> > > > > How can I configure SER-PA_RLS to send the NOTIFY messages via the
> > > > > OSER? In fact, this is all that SER-PA_RLS shall send to the outside
> > > > > world. All routing decissions shall be done in the OSER. The
> > > > > SER-PA_RLS should not be directly accessed (a firewall is in place).
> > > > > 
> > > > > 
> > > > > Call Flows:
> > > > > ===========
> > > > > 
> > > > > Messages from Client to Presence server are O.K.
> > > > > OSER routes them to the SER-PA_RLS.
> > > > > Responses travel back via OSER.
> > > > > 
> > > > > ######         ########       ##############
> > > > > # UA #         # OSER #       # SER-PA_RLS #
> > > > > ######         ########       ##############
> > > > >    |               |                |
> > > > >    |----PUBLISH--->|                |
> > > > >    |               |----PUBLISH---->|
> > > > >    |               |<-----OK------- |
> > > > >    |<------OK------|                |
> > > > >    |               |                |
> > > > >    |               |                |
> > > > >    |---SUBSCRIBE-->|                |
> > > > >    |               |---SUBSCRIBE--->|
> > > > >    |               |<-----OK------- |
> > > > >    |<------OK------|                |
> > > > >    |               |                |
> > > > >    |               |                |
> > > > >    |               |                |
> > > > > 
> > > > > 
> > > > > Intended route of NOTIFY messages:
> > > > > 
> > > > > ######         ########       ##############
> > > > > # UA #         # OSER #       # SER-PA_RLS #
> > > > > ######         ########       ##############
> > > > >    |               |                |
> > > > >    |               |<----NOTIFY-----|
> > > > >    |<----NOTIFY----|                |
> > > > >    |-------OK----->|                |
> > > > >    |               |-------OK------>|
> > > > >    |               |                |
> > > > >    |               |                |
> > > > > 
> > > > > 
> > > > > Observed route of NOTIFY messages:
> > > > > 
> > > > > ######         ########       ##############
> > > > > # UA #         # OSER #       # SER-PA_RLS #
> > > > > ######         ########       ##############
> > > > >    |               |                |
> > > > >    |               |                |
> > > > >    |<-------------NOTIFY------------|
> > > > >    |----------------OK------------->|
> > > > >    |               |                |
> > > > >    |               |                |
> > > > > 
> > > > > (In fact I only see the UDP SIP NOTIFY leavin the SER-PA_RLS
> > machine.
> > > > The firewall blocks this message, so the client nevers receives it.)
> > > > > 
> > > > > 
> > > > > I tried several configurations in ser.cfg, including 
> > > > > ...
> > > > > if (method=="NOTIFY") {
> > > > >    log(1,"NOTIFY forwarded to OSER\n");
> > > > >    forward(OSER-hostname,5060);
> > > > > }
> > > > > ...
> > > > > 
> > > > > I never saw the log message. I think, that sending out messages from
> > > > > the SER or at least the presence module is independend from routing
> > in
> > > > > the ser.cfg.
> > > > > 
> > > > > Can anybody tell me how to forward all outgoing messages to the
> > OSER?
> > > > > 
> > > > > Many thank's in advance!
> > > > > 
> > > > > best regards
> > > > > A. Schula
> > > > > 
> > > > > 
> > > > > 
> > > > > PS: For your information
> > > > > On OSER, I simply use this
> > > > > 
> > > > >             if (method=="SUBSCRIBE" and src_ip!=SER-PA_RLS_IP ||
> > > > >                 method=="NOTIFY" and src_ip!=SER-PA_RLS_IP ||
> > > > >                 method=="PUBLISH" and src_ip!=SER-PA_RLS_IP) {
> > > > >                 forward_udp(SER-PA_RLS_IP,5060);
> > > > >                 exit;
> > > > >               };
> > > > > 
> > > > > 
> > > > > 
> > > > > -- 
> > > > > 
> > > > > 
> > > > > Echte DSL-Flatrate dauerhaft für 0,- Euro*!
> > > > > "Feel free" mit GMX DSL! http://www.gmx.net/de/go/dsl
> > > > > _______________________________________________
> > > > > Serusers mailing list
> > > > > Serusers at lists.iptel.org
> > > > > http://lists.iptel.org/mailman/listinfo/serusers
> > > 
> > > -- 
> > > 
> > > 
> > > Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
> > > Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
> > 
> 
> -- 
> 
> 
> "Feel free" ??? 10 GB Mailbox, 100 FreeSMS/Monat ...
> Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail



More information about the sr-users mailing list