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; };
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@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
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@sip.domain.net 2 0.000364 OSER -> SER-PA_RLS SIP Request: SUBSCRIBE sip:anton.schula@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@UA:7944 6 0.095282 OSER -> SER-PA_RLS SIP Request: PUBLISH sip:anton.schula@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@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@UA:7944 11 0.552488 OSER -> SER-PA_RLS SIP Request: PUBLISH sip:anton.schula@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@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@UA:7944 16 1.586292 OSER -> SER-PA_RLS SIP Request: SUBSCRIBE sip:anton.schula@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@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@UA:7944 21 7.386253 SER-PA_RLS -> UA SIP Request: NOTIFY sip:anton.schula@UA:7944 22 11.236379 SER-PA_RLS -> UA SIP Request: NOTIFY sip:anton.schula@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@iptel.org An: Anton Schula anton.schula@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@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
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@sip.domain.net 2 0.000364 OSER -> SER-PA_RLS SIP Request: SUBSCRIBE sip:anton.schula@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@UA:7944 6 0.095282 OSER -> SER-PA_RLS SIP Request: PUBLISH sip:anton.schula@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@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@UA:7944 11 0.552488 OSER -> SER-PA_RLS SIP Request: PUBLISH sip:anton.schula@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@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@UA:7944 16 1.586292 OSER -> SER-PA_RLS SIP Request: SUBSCRIBE sip:anton.schula@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@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@UA:7944 21 7.386253 SER-PA_RLS -> UA SIP Request: NOTIFY sip:anton.schula@UA:7944 22 11.236379 SER-PA_RLS -> UA SIP Request: NOTIFY sip:anton.schula@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@iptel.org An: Anton Schula anton.schula@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@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
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@iptel.org An: Anton Schula anton.schula@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@sip.domain.net
2 0.000364 OSER -> SER-PA_RLS SIP Request: SUBSCRIBE
sip:anton.schula@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@UA:7944
6 0.095282 OSER -> SER-PA_RLS SIP Request: PUBLISH
sip:anton.schula@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@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@UA:7944
11 0.552488 OSER -> SER-PA_RLS SIP Request: PUBLISH
sip:anton.schula@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@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@UA:7944
16 1.586292 OSER -> SER-PA_RLS SIP Request: SUBSCRIBE
sip:anton.schula@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@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@UA:7944
21 7.386253 SER-PA_RLS -> UA SIP Request: NOTIFY
sip:anton.schula@UA:7944
22 11.236379 SER-PA_RLS -> UA SIP Request: NOTIFY
sip:anton.schula@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@iptel.org An: Anton Schula anton.schula@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@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
:-) 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@iptel.org An: Anton Schula anton.schula@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@sip.domain.net
2 0.000364 OSER -> SER-PA_RLS SIP Request: SUBSCRIBE
sip:anton.schula@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@UA:7944
6 0.095282 OSER -> SER-PA_RLS SIP Request: PUBLISH
sip:anton.schula@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@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@UA:7944
11 0.552488 OSER -> SER-PA_RLS SIP Request: PUBLISH
sip:anton.schula@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@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@UA:7944
16 1.586292 OSER -> SER-PA_RLS SIP Request: SUBSCRIBE
sip:anton.schula@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@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@UA:7944
21 7.386253 SER-PA_RLS -> UA SIP Request: NOTIFY
sip:anton.schula@UA:7944
22 11.236379 SER-PA_RLS -> UA SIP Request: NOTIFY
sip:anton.schula@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@iptel.org An: Anton Schula anton.schula@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@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