ID:               49423
 Comment by:       david dot schueler at wapkamera dot de
 Reported By:      david dot schueler at wapkamera dot de
 Status:           Feedback
 Bug Type:         Streams related
 Operating System: Gentoo Linux
 PHP Version:      5.2.10
 New Comment:

And on a non 64bit system running Gentoo:

athen ~ # uname -a
Linux athen 2.6.20-hardened-r5 #1 SMP Sun Jul 29 21:36:07 GMT 2007 i686
AMD Duron(tm) processor AuthenticAMD GNU/Linux

athen ~ # php fwrite.php 
5.2.3-pl3-gentoo
Outputting: REGISTER abc
Bytes written to socket: 12
Outputting: REGISTER
Bytes written to socket: 8
Outputting:  REGISTER
Bytes written to socket: 9
Outputting: REGISTER 
Bytes written to socket: 9

athen ~ # nc -l -u -p 5060
REGISTER abcREGISTER REGISTERREGISTER 

So this is running fine with a listening process.
So may this issue due to the 64bit?


Previous Comments:
------------------------------------------------------------------------

[2009-09-01 12:39:51] david dot schueler at wapkamera dot de

Okay. I built 5.2.11 on an other systerm running debian.

Here are the results with no process listening on port 5060:
ns20 ~ # php test.php 
5.2.11RC2-dev
Outputting: "REGISTER abc"
Bytes written to socket: 12
Outputting: "REGISTER"
Bytes written to socket: 0
Outputting: " REGISTER"
Bytes written to socket: 9
Outputting: "REGISTER "
Bytes written to socket: 0

And, with listening nc on 5060:
ns20 ~ # nc -l -u -p 5060
REGISTER abcREGISTER REGISTERREGISTER 

ns20 ~ # php test.php
5.2.11RC2-dev
Outputting: "REGISTER abc"
Bytes written to socket: 12
Outputting: "REGISTER"
Bytes written to socket: 8
Outputting: " REGISTER"
Bytes written to socket: 9
Outputting: "REGISTER "
Bytes written to socket: 9

So on that debian system it is working. But i don't know why its
running on that system and not on the Gentoo platform.
There's really no firewall blocking the traffic. Even if it would so,
no packet should go through. But some are doing.

This is driving me crazy. :-/

------------------------------------------------------------------------

[2009-09-01 08:55:49] david dot schueler at wapkamera dot de

Yes. Asterisk is listening on port 5060, which i want to communicate
with, as i described before.

I got this problem when i was trying to send a SIP REGISTER packet to
asterisk.

For beeing sure asterisk is working on 127.0.0.1 i placed a SIP
REGISTER in a file and ran this command:

Kienzle ~ # nc -u 127.0.0.1 5060 < register 
SIP/2.0 404 Not found
From: Joe User <sip:j...@example.com>
To: "J. User" <sip:j...@example.com>;tag=as23fd48f7
Call-ID: 39485...@joespc.example.com
CSeq: 19 REGISTER
User-Agent: WAPKamera Notifier
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY,
INFO
Supported: replaces
Content-Length: 0


So the asterisk is answering with 404 not foud, which is correct.
Even netstat is confirming this.
Kienzle ~ # netstat -anp | grep 5060
udp   0   0 0.0.0.0:5060   0.0.0.0:*   4481/asterisk


But, even if no process is listening on port 5060 nothing would change,
as you can see:

Kienzle ~ # /etc/init.d/asterisk stop
 * Stopping Asterisk ...                     [ ok ]
Kienzle ~ # netstat -anp | grep 5060
Kienzle ~ # php fwrite.php 
5.2.10-pl0-gentoo
Outputting: REGISTER abc
Bytes written to socket: 0
Outputting: REGISTER
Bytes written to socket: 8
Outputting:  REGISTER
Bytes written to socket: 0
Outputting: REGISTER 
Bytes written to socket: 9
Kienzle ~ # nc -u 127.0.0.1 5060 < register 

Kienzle ~ # tcpdump -i lo -s0 -A port 5060
tcpdump: verbose output suppressed, use -v or -vv for full protocol
decode
listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes
10:54:43.706902 IP localhost.5050 > localhost.5060: SIP, length: 8
e.....@.@..M...............#REGISTER
10:54:43.707031 IP localhost.5050 > localhost.5060: SIP, length: 9
e.....@.@..K...............$REGISTER 
^C
2 packets captured
4 packets received by filter
0 packets dropped by kernel
Kienzle ~ #

------------------------------------------------------------------------

[2009-08-31 19:56:01] sjo...@php.net

I can reproduce the behavior you describe, but only if there is no
process listening on port 5060. If I start "nc -l -u -p 5060", the
fwrites succeed. Do you have a program listening on port 5060? 

------------------------------------------------------------------------

[2009-08-31 17:37:27] david dot schueler at wapkamera dot de

Again with latest php5.2:

~ # php test.php 
5.2.11RC2-dev
Outputting: REGISTER abc
Bytes written to socket: 0
Outputting: REGISTER
Bytes written to socket: 8
Outputting:  REGISTER
Bytes written to socket: 9
Outputting: REGISTER 
Bytes written to socket: 9

~ # tcpdump -i lo -s0 -A port 5060
tcpdump: verbose output suppressed, use -v or -vv for full protocol
decode
listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes
19:35:25.189697 IP localhost.5050 > localhost.5060: SIP, length: 8
E..$<....@.@..$...............#REGISTER
19:35:25.189911 IP localhost.5050 > localhost.5060: SIP, length: 9
E..%<....@.@.."...............$ REGISTER
19:35:25.189953 IP localhost.5050 > localhost.5060: SIP, length: 9
E..%<....@.@..!...............$REGISTER 
^C
3 packets captured
6 packets received by filter
0 packets dropped by kernel

------------------------------------------------------------------------

[2009-08-31 16:54:28] david dot schueler at wapkamera dot de

Okay, here's a tcpdump output, which shows that the other REGISTER
strings are beeing sent:

km33 ~ # tcpdump -i lo -s0 -A port 5060
tcpdump: verbose output suppressed, use -v or -vv for full protocol
decode
listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes
18:42:22.598199 IP localhost.5050 > localhost.5060: SIP, length: 8
E..$|b...@.@..................#REGISTER
18:42:22.598231 IP localhost.5050 > localhost.5060: SIP, length: 9
E..%|c...@.@..................$ REGISTER
18:42:22.598242 IP localhost.5050 > localhost.5060: SIP, length: 9
E..%|d...@.@..................$REGISTER
^C
3 packets captured
6 packets received by filter
0 packets dropped by kernel

As you can see i'm sending from port 5050 to port 5060 (which is the
default SIP port). No other process is listening on port 5050. Only
asterisk is listening on port 5060, which i want to communicate with.

km33 ~ # netstat -anp | grep 5050
km33 ~ # netstat -anp | grep 5060
udp   0   0 0.0.0.0:5060   0.0.0.0:*   11132/asterisk

And i'm not blocking any ports on my system, because i'm not using any
firewall on my testsystem.

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/49423

-- 
Edit this bug report at http://bugs.php.net/?id=49423&edit=1

Reply via email to