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

Anton Schula anton.schula at gmx.at
Mon Jun 19 15:41:29 CEST 2006


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



More information about the sr-users mailing list