Hello,
ngrep or pcap traces are more useful because I can see full content of
SIP messages instead of summary.
As I could get it from what you send, the 489 Event Package Not
Supported reply is sent by X-Lite -- so you do not handle that SUBSCRIBE
with presence module from openser. Do a "ngrep -d any -qt port 5060" on
openser server and see if the SUBSCRIBE is sent to x-lite and from there
comes then the reply.
Cheers,
Daniel
On 02/05/07 15:35, Kc Ayuba wrote:
Hi,
Here is the SIP messages that i captured when OpenSER crashed.
After package number 312 (PUBLISH) OpenSER crashed.
No. Time Source Destination Protocol Info
303 395.082565 192.168.3.172 192.168.3.170 SIP
Request:REGISTER sip:192.168.3.170 sip:192.168.3.170
CSeq: 1 REGISTER
Expires: 60
User-Agent: X-Lite
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE,
SUBSCRIBE, INFO
No. Time Source Destination Protocol Info
304 395.086627 192.168.3.170 192.168.3.172 SIP
Status: 200 OK (1 bindings)
CSeq: 1 REGISTER
Server: OpenSer (1.2.0-dev14-notls (i386/linux))
No. Time Source Destination Protocol Info
305 395.393790 192.168.3.172 192.168.3.170 SIP
Request:SUBSCRIBE sip:Klaas@192.168.3.170
CSeq: 1 SUBSCRIBE
Expires: 3600
Accept: application/watcherinfo+xml
Event: presence.winfo
User-Agent: X-Lite
No. Time Source Destination Protocol Info
306 395.393944 192.168.3.172 192.168.3.170 SIP
Request:SUBSCRIBE sip:Chelsea@192.168.3.170
CSeq: 1 SUBSCRIBE
Expires: 3600
Accept: multipart/related, application/rlmi+xml, application/pidf+xml
Event: presence
User-Agent: X-Lite
No. Time Source Destination Protocol Info
307 395.394042 192.168.3.172 192.168.3.170 SIP/XML
Request:PUBLISH sip:Klaas@192.168.3.170
CSeq: 1 PUBLISH
Expires: 3600
Content-Type: application/pidf+xml
User-Agent: X-Lite
Event: presence
No. Time Source Destination Protocol Info
308 395.397656 192.168.3.170 192.168.3.172 SIP
Status: 404 Not Found
CSeq: 1 SUBSCRIBE
Server: OpenSer (1.2.0-dev14-notls (i386/linux))
No. Time Source Destination Protocol Info
309 395.536895 192.168.3.170 192.168.3.172 SIP
Request:SUBSCRIBE
sip:Klaas@192.168.3.172:14188;rinstance=38756ac05409b128
CSeq: 1 SUBSCRIBE
Expires: 3600
User-Agent: X-Lite
Accept: application/watcherinfo+xml
Event: presence.winfo
P-hint: usrloc applied
No. Time Source Destination Protocol Info
310 395.638825 192.168.3.172 192.168.3.170 SIP
Status: 489 Event Package Not Supported
CSeq: 1 SUBSCRIBE
User-Agent: X-Lite
No. Time Source Destination Protocol Info
311 395.641067 192.168.3.170 192.168.3.172 SIP
Status: 489 Event Package Not Supported
CSeq: 1 SUBSCRIBE
User-Agent: X-Lite
No. Time Source Destination Protocol Info
312 395.946974 192.168.3.172 192.168.3.170 SIP/XML
Request:PUBLISH sip:Klaas@192.168.3.170
CSeq: 1 PUBLISH
Expires: 3600
Content-Type: application/pidf+xml
User-Agent: X-Lite
Event: presence
No. Time Source Destination Protocol Info
313 395.949651 192.168.3.170 192.168.3.172 ICMP
Destination unreachable (Port unreachable)
Internet Control Message Protocol
Kinds regards,
Kc
On 2/5/07, Daniel-Constantin Mierla <daniel(a)voice-system.ro> wrote:
Hello,
presence.winfo should be supported. Cesc could you send some netork
trace to watch a bit?
The issue with strlen might be there. I will have a look in these days.
Cheers,
Daniel
On 02/04/07 13:16, Nicolas Palix wrote:
Hi,
"strange event package" .winfo is RFC3857
A Watcher Information Event Template-Package for
the Session Initiation Protocol (SIP)
http://www.ietf.org/rfc/rfc3857.txt
Le vendredi 02 février 2007 16:54, Cesc a écrit :
> Hi,
>
> Just add something my colleague forgot to mention and i think it
may help.
> This error happened after the phone sends a
subscribe (or was it a
> publish?) message with a strange event package = presence.winfo (or
> something like this).
> The reaction of presence module (out of my head, so could be
wrong) is
> to answer with a 484 Event package not known
...
> Then, after a while, a timer gets called which tries to clean the
> active watchers table ... and then ... pum! :) the seg fault here
> attached ...
>
> As you can see in the bt, the problem seems to be in strlen call ...
> probably the row_vals returned is null (?) ... and strlen I think is
> not very robust against this sort of perversions :)
>
>
>> 610 subs.event_id.len =
strlen(row_vals[event_id_col].val.str_val.s);
>>
> Cesc
> PS - The work around seems to be to start openser with a clean
> (=empty) active_watchers dbtext file ...
>
> On 2/2/07, Kc Ayuba <kc.ayuba(a)gmail.com> wrote:
>
>> Hi,
>> I'm trying to use db_text database with the presence module of
>> OpenSER(1.2.x).
>> User agent is X-Lite(3.0). When I try to send a REGISTER message to
>> OpenSER, OpenSER still works.
>> But if i sent a SUBSCRIBE or a PUBLISH message, then openser
crashes.
> If i
use the MySQL database, then everything works just fine. But i
> prefer to use the db_text database.
> Here is the core file that was generated when OpenSER crashed.
>
> Core generated:
>
> Program terminated with signal 11, Segmentation fault.
> #0 0xa7ced659 in msg_active_watchers_clean (ticks=100, param=0x0) at
> subscribe.c:610
> 610 subs.event_id.len =
> strlen(row_vals[event_id_col].val.str_val.s);
> (gdb) bt
> #0 0xa7ced659 in msg_active_watchers_clean (ticks=100, param=0x0) at
> subscribe.c:610
> #1 0x080a3f6c in timer_ticker () at timer.c:141
> #2 0x0806b51f in main_loop () at main.c:724
> #3 0x0806d43b in main (argc=3, argv=0xaff0a2e4) at main.c:1438
> (gdb) frame 0
> #0 0xa7ced659 in msg_active_watchers_clean (ticks=100, param=0x0) at
> subscribe.c:610
> 610 subs.event_id.len =
> strlen(row_vals[event_id_col].val.str_val.s);
> (gdb) list
> 605
> 606 subs.from_domain.s =
> row_vals[from_domain_col].val.str_val.s;
> 607 subs.from_domain.len =
> strlen(row_vals[from_domain_col].val.str_val.s);
> 608
> 609 subs.event_id.s = row_vals[event_id_col].val.str_val.s;
> 610 subs.event_id.len =
> strlen(row_vals[event_id_col].val.str_val.s);
> 611
> 612 subs.to_tag.s = row_vals[to_tag_col].val.str_val.s;
> 613 subs.to_tag.len =
> strlen(row_vals[to_tag_col].val.str_val.s);
> 614
> (gdb)
> 615 subs.from_tag.s = row_vals[from_tag_col].val.str_val.s;
> 616 subs.from_tag.len =
> strlen(row_vals[from_tag_col].val.str_val.s);
> 617
> 618 subs.callid.s = row_vals[callid_col].val.str_val.s;
> 619 subs.callid.len =
> strlen(row_vals[callid_col].val.str_val.s);
> 620
> 621 subs.contact.s = row_vals[contact_col].val.str_val.s;
> 622 subs.contact.len =
> strlen(row_vals[contact_col].val.str_val.s);
> 623
> 624 subs.cseq = row_vals[cseq_col].val.int_val;
>
>
> I really hope that someone can help me with this problem. Thanks in
> advance.
>
> Kind regards,
>
> Kc
> _______________________________________________
> Users mailing list
> Users(a)openser.org
>
http://openser.org/cgi-bin/mailman/listinfo/users
>
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users