ID: 49423 Updated by: sjo...@php.net 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:
Also, please try on the problematic system with nc instead of asterisk as the listening process. Previous Comments: ------------------------------------------------------------------------ [2009-09-01 13:06:59] david dot schueler at wapkamera dot de And here on a 2nd non-64bit system: Hauser ~ # php fwrite.php 5.2.6RC4-pl0-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 Hauser ~ # nc -l -u -p 5060 REGISTER abcREGISTER REGISTERREGISTER So this really looks to me, that it is depending on 64bit. Is it possible to you to reproduce this on 64bit? ------------------------------------------------------------------------ [2009-09-01 12:52:45] david dot schueler at wapkamera dot de 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? ------------------------------------------------------------------------ [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? ------------------------------------------------------------------------ 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