Hi,
I've tried to trace the process with GDB. It seems a cooperation problem between SEMS and SER. While SER sending some response to SEMS (the buffer content is a 200 OK), the reply_addr passed to tsend_dgram() remained to all zeros. Is it the fault of SEMS or SER? Maybe we need more trace.
-----邮件原件----- 发件人: Bogdan-Andrei Iancu [mailto:bogdan@voice-system.ro] 发送时间: 2005年4月14日 22:32 收件人: Parvel 抄送: serusers@lists.iptel.org 主题: Re: [Serusers] tsend_dgram in tsend.c problems while RTP transffering in SER-0.9.0
the script chunk seams ok. But judging after the text error, the problem is not when passing the requests to SEMS (when tsend_dgram_ev() function is used), but when the SER unix server receives a command from SEMS and tries to send back a reply (via tsend_dgram() function). Increase the debug level to get more info about the error context.
bogdan
Parvel wrote:
I used a soft phone to connect with the server. The SIP messages seems OK, the INVITE, 100, 200, ACK messages are exchanged, connection established, G711u codec is used to transfer. But the RTP stage seems wrong. In the sniffer only the soft phone's RTP packets are sent, but none of the
server's
response received. In the debug mode it seems the SEMS sent the response to socket, but the SER throw some error messages.
# ser -d -E 127.0.0.1 [127.0.0.1]:5060 0(1926) WARNING: fix_socket_list: could not rev. resolve 10.167.16.32 10.167.16.32 [10.167.16.32]:5060 127.0.0.1 [127.0.0.1]:5060 0(1926) WARNING: fix_socket_list: could not rev. resolve 10.167.16.32 10.167.16.32 [10.167.16.32]:5060 Listening on udp: 127.0.0.1 [127.0.0.1]:5060 udp: 10.167.16.32 [10.167.16.32]:5060 tcp: 127.0.0.1 [127.0.0.1]:5060 tcp: 10.167.16.32 [10.167.16.32]:5060 Aliases: tcp: localhost:5060 tcp: localhost.localdomain:5060 tcp: VM-Redhat:5060 udp: localhost:5060 udp: localhost.localdomain:5060 udp: VM-Redhat:5060
stateless - initializing [root@VM-Redhat root]# 0(0) Maxfwd module- initializing 0(0) INFO: udp_init: SO_RCVBUF is initially 65535 0(0) INFO: udp_init: SO_RCVBUF is finally 131070 0(0) INFO: udp_init: SO_RCVBUF is initially 65535 0(0) INFO: udp_init: SO_RCVBUF is finally 131070 1(1929) to: 1(1929) ERROR: tsend_dgram: failed to send: (107) Transport endpoint is
not
connected 16(1944) ERROR: tsend_dgram: failed to send: (22) Invalid argument
While sending the RTP packet, the terminate also sent some RTCP packets,
but
a ICMP port unreachable response received.
By the way, when the BYE request is sent, a first 404 response received, then the 200 OK. Maybe the conf files are not correct?