[asterisk-users] Troubleshooting one-way voice... how to peek into SIP RTP?
Philip Prindeville
philipp_subx at redfish-solutions.com
Sun Sep 28 15:09:50 CDT 2008
Well, things just got a lot more interesting... Adding Monitor() to an
extension ends the one-way voice problem on inbound calls!
So an incoming call gets handled as:
[ctc-incoming]
exten => 208345****,1,Noop()
exten => 208345****,n,Log(NOTICE: RDNIS: ${CALLERID(rdnis)} ANI:
${CALLERID(ani)})
exten => 208345****,n,Goto(redfish-pstn,s,1)
...
[redfish-pstn]
exten => s,1(incoming),Noop()
exten => s,n,Answer()
exten => s,n,Wait(0.5)
...
some filters for bogus ANI's like 888888888.... goes to badani below
exten => s,n(exten),Background(vm-enter-num-to-call)
exten => s,nWaitExten(5)
exten => s,n(goodbye),Playback(vm-goodbye)
exten => s,n(end),Hangup()
exten => s,n(badani),Log(DEBUG,ANI: ${CALLERID(ani)} clearing)
exten => s,n,Playback(privacy-unident)
exten => s,n,Wait(0.5)
exten => s,n,Congestion()
exten => s,n,Hangup()
include => redfish-extens
exten => i,1,NoOp(Invalid: ${EXTEN})
exten => i,n,Playback(pbx-invalid)
exten => i,n,Goto(s,exten)
exten => t,1,Goto(s,goodbye)
[redfish-extens]
...
exten => 113,1,Monitor(wav,,w) ; for debugging
exten => 113,n,Macro(stdexten,113,${GUEST},redfish)
exten => 113,n,Goto(s,exten)
...
exten => 113,1,Macro(stdexten,119,${GUEST},redfish)
exten => 113,n,Goto(s,exten)
So I don't get this at all. If I dial 208345****, then enter '119' as
the extension, it rings on a few phones (including a Xlite softphone)
and if I pick up on any of those, I get one-way voice (I can hear the
caller but they can't hear me).
If I enter '113' as the extension, it rings on two SPA-942's (one of
which is the same as above, just a different line presentation)... and
if I answer, then I get two-way voice! Only difference is the Monitor()
statement.
I'm starting to suspect it's a CODEC issue in Asterisk, though (a) why
Asterisk would need to transcode a call between two uLaw endpoints, I
don't know... and (b) why is it staying in the Media path at all?
I have the SIP peer that the calls come in on as:
[sip-proxy]
...
type=peer
nat=no
canreinvite=no
reinvite=no
Anyone know why the Monitor() would change the duplex(ity) of the audio
stream? I'm baffled (no pun intended). And is there any debugging I
can turn on to reveal CODEC behavior that might differ from 113 and 119?
Thanks,
-Philip
Philip Prindeville wrote:
> I've got the following situation. I'm running Asterisk 1.4.18 on a
> firewall/gateway machine, with some SPA-942 (f/w 5.1.15(a)) phones
> behind it.
>
> I'm peering SIP with a Coppercom switch sitting behind an SBC.
>
> On outbound calls, I get 2-way voice, no worries.
>
> On inbound calls, I get one-way voice (I can hear the caller but they
> can't hear me).
>
> I've looked at tcpdumps of the RTP traffic, and the addresses and port
> numbers correspond to what's in the SIP INVITE/OK messages (assuming
> that they don't somehow get munged by NAT after tcpdump looks at them --
> there is no NAT device upstream of my Asterisk firewall).
>
> I'll look into using Record() or Monitor() to capture the phone call,
> but if there's any conversion being done by codecs then that won't
> eliminate the possibility that the code itself is misconfigured or buggy
> and generating a bad stream on one of the legs...
>
> Anyone have an idea about how to best go about troubleshooting this?
>
> Thanks,
>
> -Philip
>
More information about the asterisk-users
mailing list