[Home]

Summary:ASTERISK-00986: Cisco 12SP+ can not send voice, only recieve
Reporter:trogs (trogs)Labels:
Date Opened:2004-02-04 03:27:54.000-0600Date Closed:2011-06-07 14:10:49
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Core/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:Echo test does not appear to hear anything from the phone and you cannot be heard at the other end of a call. incoming voice is fine. this happens with mute off or on, and speakerphone off or on.
This happens in all versions, currently using cvs.
Comments:By: trogs (trogs) 2004-02-06 00:51:48.000-0600

tcpdump looks as if it's trying to send a stream of packets to 127.0.0.1 udp port 172 whenever it dials out. so instead of sending voice to asterisk, it's sending the voice back to itself.
19:47:44.380427 10.64.0.130.19394 > 127.0.0.1.14724: udp 172 [tos 0xb8]
19:47:44.410611 10.64.0.130.19394 > 127.0.0.1.14724: udp 172 [tos 0xb8]
19:47:44.411790 10.64.0.130.19394 > 127.0.0.1.14724: udp 172 [tos 0xb8]
19:47:44.440387 10.64.0.130.19394 > 127.0.0.1.14724: udp 172 [tos 0xb8]
19:47:44.470571 10.64.0.130.19394 > 127.0.0.1.14724: udp 172 [tos 0xb8]
19:47:44.471778 10.64.0.130.19394 > 127.0.0.1.14724: udp 172 [tos 0xb8]
19:47:44.500386 10.64.0.130.19394 > 127.0.0.1.14724: udp 172 [tos 0xb8]
19:47:44.530529 10.64.0.130.19394 > 127.0.0.1.14724: udp 172 [tos 0xb8]
19:47:44.532506 10.64.0.130.19394 > 127.0.0.1.14724: udp 172 [tos 0xb8]

By: Paul Cadach (pcadach) 2004-02-07 23:05:16.000-0600

Check your hostname settings - if your hostname points to 127.0.0.1 (in /etc/hosts), so you will get this situation. It's chan_skinny's "feature" to figure out local IP address by just looking IP for hostname, which is wrong.

By: trogs (trogs) 2004-02-07 23:19:27.000-0600

wow that totally fixed it, cheers, I've been banging my head against the desk for weeks on this one  :)

By: Paul Cadach (pcadach) 2004-02-25 01:18:43.000-0600

Does this bug could be closed?

By: trogs (trogs) 2004-02-25 03:40:40.000-0600

yes.

By: jerjer (jerjer) 2004-02-27 23:41:06.000-0600

Its not chan_skinny that figures the IP out, its rtp.c.

By: Paul Cadach (pcadach) 2004-02-28 03:20:58.000-0600

Reminder sent to JerJer

Jeremy, you are wrong about rtp.

Local IP address passes to START_MEDIA_TRANSMISSION message by:
------------------------------------
memcpy(req->data.startmedia.remoteIp, &s->device->ourip, 4);
------------------------------------
while device->ourip is filled by next code:
------------------------------------
       if (ntohl(bindaddr.sin_addr.s_addr)) {
               memcpy(&__ourip, &bindaddr.sin_addr, sizeof(__ourip));
       } else {
               hp = gethostbyname(ourhost);
               if (!hp) {
                       ast_log(LOG_WARNING, ...);
                       return 0;
               }
               memcpy(&__ourip, hp->h_addr, sizeof(__ourip));
       }
------------------------------------
If you don't specify bindaddr parameter at skinny.conf, local IP address for START_MEDIA_TRANSMISSION (i.e. for RTP stream) will be figured out by hostname, by next code:
------------------------------------
       if (gethostname(ourhost, sizeof(ourhost))) {
               ast_log(LOG_WARNING, "Unable to get hostname, Skinny disabled\n");
               return 0;
       }
------------------------------------
So, it's not RTP problem, it's "feature" of chan_skinny which determines local IP address incorrectly... ;-)'