[asterisk-users] Troubleshooting one-way audio with H.323 trunk between Asterisk and Avaya IP Office

Phil Frost phil at macprofessionals.com
Tue Jan 31 13:49:45 CST 2012


I'm attempting to configure an H.323 trunk (using chan_h323) between an Asterisk box and an Avaya IP office. It mostly works. Calls from Polycom SIP devices registered to Asterisk can place calls over the trunk to IP Office extensions and everything works great. However, calling from an IP Office handset to any of the Polycoms results in a one-way call where the Polycom can not hear the Avaya.

I think what's happening is somehow, the Polycom is receiving two RTP streams, and one of them is silence. I think this because if I place the call on hold, I will hear, occasionally, short bursts of what could be the hold music on the Polycom. Also, when I look at packet captures taken from the Polycom's port, I see two streams when it's working (the Polycom calls Avaya) and three when it's not (Avaya calls Polycom).

I do notice that this "extra" stream has a unique SSRC. If I do the packet captures from the Asterisk box, it looks like the extra stream is generated by Asterisk. Graphically, the RTP streams and their SSRCs I see on a working call (Polycom calls Avaya) looks like this:

Polycom --0x123-> Asterisk --0x123-> IP Office
        <-0x456--          <-0x456

The non-working call (Avaya calls Polycom) looks like:

        <-0x789--
Polycom --0x123-> Asterisk --0x123-> IP Office
        <-0x456--          <-0x456

However, I'm new to Asterisk, and I'm not very familiar with any of these VoIP protocols, so I find myself stuck. Can anyone suggest some troubleshooting steps or material I might read which would help me to determine if my hypothesis is correct, and if so, how I can determine what's responsible for this extra stream?

Console output from a non-working call with sip and h323 debug and trace on follows. Here, 207 is the Avaya handset originating the call, and 216 is the Polycom receiving it. 172.20.20.233 is the IP Office, 172.20.20.205 is Asterisk, and 172.20.32.70 is the Polycom.

asterisk01*CLI>
        == New H.323 Connection created.
        --Received SETUP message
    -- Setting up Call
    --          Call token:  [ip$172.20.20.233:4232/71]
    --          Calling party name:  []
    --          Calling party number:  [207]
    --          Called party name:  [216]
    --          Called party number:  [216]
    --          Calling party IP:  [172.20.20.233]
Setting capabilities to 0x4 (ulaw)
Capabilities in preference order is (ulaw)
DTMF mode is 8
Allowed Codecs for ip$172.20.20.233:4232/71 (ip$172.20.20.205:1720):
         Table:
   G.711-uLaw-64k <1>
   UserInput/hookflash <2>
   UserInput/basicString <3>
 Set:
   0:
     0:
       G.711-uLaw-64k <1>
     1:
       UserInput/hookflash <2>
     2:
       UserInput/basicString <3>

        =-= In OnAnswerCall for call 71
                - Progress Indicator: 0
                - Inserting PI of 8 into ALERTING message
    -- Executing [216 at default:1] Dial("H323/ip$172.20.20.233:4232/71", "SIP/216") in new stack
  == Using SIP RTP CoS mark 5
Audio is at 172.20.20.205 port 10488
Adding codec 0x4 (ulaw) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
Reliably Transmitting (NAT) to 172.20.32.70:5060:
INVITE sip:216 at 172.20.32.70 SIP/2.0
Via: SIP/2.0/UDP 172.20.20.205:5060;branch=z9hG4bK799c13df;rport
Max-Forwards: 70
From: "207" <sip:207 at 172.20.20.205>;tag=as1de701d2
To: <sip:216 at 172.20.32.70>
Contact: <sip:207 at 172.20.20.205>
Call-ID: 4c0201703a430c12490761fe7d6cdead at 172.20.20.205
CSeq: 102 INVITE
User-Agent: Asterisk PBX 1.6.2.9-2+squeeze4
Date: Tue, 31 Jan 2012 19:41:49 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 247

v=0
o=root 992661417 992661417 IN IP4 172.20.20.205
s=Asterisk PBX 1.6.2.9-2+squeeze4
c=IN IP4 172.20.20.205
t=0 0
m=audio 10488 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16 
a=ptime:20
a=sendrecv

---
    -- Called 216

<--- SIP read from UDP:172.20.32.70:5060 --->
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 172.20.20.205:5060;branch=z9hG4bK799c13df;rport
From: "207" <sip:207 at 172.20.20.205>;tag=as1de701d2
To: <sip:216 at 172.20.32.70>;tag=9BF9794A-AD4778F1
CSeq: 102 INVITE
Call-ID: 4c0201703a430c12490761fe7d6cdead at 172.20.20.205
Contact: <sip:216 at 172.20.32.70>
User-Agent: PolycomSoundStationIP-SPIP_6000-UA/3.0.4.0061
Content-Length: 0


<-------------> 
--- (9 headers 0 lines) ---

<--- SIP read from UDP:172.20.32.70:5060 --->
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 172.20.20.205:5060;branch=z9hG4bK799c13df;rport
From: "207" <sip:207 at 172.20.20.205>;tag=as1de701d2
To: <sip:216 at 172.20.32.70>;tag=9BF9794A-AD4778F1
CSeq: 102 INVITE
Call-ID: 4c0201703a430c12490761fe7d6cdead at 172.20.20.205
Contact: <sip:216 at 172.20.32.70>
User-Agent: PolycomSoundStationIP-SPIP_6000-UA/3.0.4.0061
Allow-Events: talk,hold,conference
Content-Length: 0


<-------------> 
--- (10 headers 0 lines) ---
    -- SIP/216-00000006 is ringing
        Sending alerting

<--- SIP read from UDP:172.20.32.70:5060 --->
SIP/2.0 200 OK  
Via: SIP/2.0/UDP 172.20.20.205:5060;branch=z9hG4bK799c13df;rport
From: "207" <sip:207 at 172.20.20.205>;tag=as1de701d2
To: <sip:216 at 172.20.32.70>;tag=9BF9794A-AD4778F1
CSeq: 102 INVITE
Call-ID: 4c0201703a430c12490761fe7d6cdead at 172.20.20.205
Contact: <sip:216 at 172.20.32.70>
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, INFO, MESSAGE, SUBSCRIBE, NOTIFY, PRACK, UPDATE, REFER
User-Agent: PolycomSoundStationIP-SPIP_6000-UA/3.0.4.0061
Content-Type: application/sdp
Content-Length: 199

v=0
o=- 1167617253 1167617253 IN IP4 172.20.32.70
s=Polycom IP Phone
c=IN IP4 172.20.32.70
t=0 0
m=audio 2256 RTP/AVP 0 101
a=sendrecv
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000

<-------------> 
--- (11 headers 9 lines) ---
Found RTP audio format 0
Found RTP audio format 101
Found audio description format PCMU for ID 0
Found audio description format telephone-event for ID 101
Capabilities: us - 0x4 (ulaw), peer - audio=0x4 (ulaw)/video=0x0 (nothing)/text=0x0 (nothing), combined - 0x4 (ulaw)
Non-codec capabilities (dtmf): us - 0x1 (telephone-event), peer - 0x1 (telephone-event), combined - 0x1 (telephone-event)
Peer audio RTP is at port 172.20.32.70:2256
list_route: hop: <sip:216 at 172.20.32.70>
set_destination: Parsing <sip:216 at 172.20.32.70> for address/port to send to
set_destination: set destination to 172.20.32.70, port 5060
Transmitting (NAT) to 172.20.32.70:5060:
ACK sip:216 at 172.20.32.70 SIP/2.0
Via: SIP/2.0/UDP 172.20.20.205:5060;branch=z9hG4bK1c7d2fea;rport
Max-Forwards: 70
From: "207" <sip:207 at 172.20.20.205>;tag=as1de701d2
To: <sip:216 at 172.20.32.70>;tag=9BF9794A-AD4778F1
Contact: <sip:207 at 172.20.20.205>
Call-ID: 4c0201703a430c12490761fe7d6cdead at 172.20.20.205
CSeq: 102 ACK   
User-Agent: Asterisk PBX 1.6.2.9-2+squeeze4
Content-Length: 0


---
    -- SIP/216-00000006 answered H323/ip$172.20.20.233:4232/71
        Answering call ip$172.20.20.233:4232/71
    -- Packet2Packet bridging H323/ip$172.20.20.233:4232/71 and SIP/216-00000006
        -- Received Facility message...
        -- Received Facility message...
Peer capability is G.711-uLaw-64k <1>
Found peer capability G.711-uLaw-64k <1>, Asterisk code is 4, frame size (in ms) is 20
Peer capability is UserInput/basicString <2>
Peer capability is UserInput/dtmf <5>
Peer capability is UserInput/hookflash <6>
Peer capabilities = 0x4 (ulaw), ordered list is (ulaw)
        -- Received Facility message...
        -- Started logical channel: sending G.711-uLaw-64k
                -- channelsOpen = 1
        =-= In OnConnectionEstablished for call 71
                -- Connection Established with "Pfrost [172.20.20.233]"
        -- Received Facility message...
        -- Received Facility message...
        -- Started logical channel: receiving G.711-uLaw-64k
                -- channelsOpen = 2
                External RTP Session Starting
                RTP channel id 1 parameters:
                -- remoteIpAddress: 172.20.20.233
                -- remotePort: 49174
                -- ExternalIpAddress: 172.20.20.205
                -- ExternalPort: 18974
        -- Received Facility message...
        MyH323_ExternalRTPChannel::OnReceivedAckPDU
                -- remoteIpAddress: 172.20.20.233
                -- remotePort: 49174
                External RTP Session Starting
                RTP channel id 1 parameters:
                -- remoteIpAddress: 172.20.20.233
                -- remotePort: 49174
                -- ExternalIpAddress: 172.20.20.205
                -- ExternalPort: 18974
        -- Received Facility message...

<--- SIP read from UDP:172.20.32.70:5060 --->
BYE sip:207 at 172.20.20.205 SIP/2.0
Via: SIP/2.0/UDP 172.20.32.70;branch=z9hG4bKa662ae9091F77FE7
From: <sip:216 at 172.20.32.70>;tag=9BF9794A-AD4778F1
To: "207" <sip:207 at 172.20.20.205>;tag=as1de701d2
CSeq: 1 BYE
Call-ID: 4c0201703a430c12490761fe7d6cdead at 172.20.20.205
Contact: <sip:216 at 172.20.32.70>
User-Agent: PolycomSoundStationIP-SPIP_6000-UA/3.0.4.0061
Max-Forwards: 70
Content-Length: 0


<-------------> 
--- (10 headers 0 lines) ---
Sending to 172.20.32.70 : 5060 (NAT)

<--- Transmitting (NAT) to 172.20.32.70:5060 --->
SIP/2.0 200 OK  
Via: SIP/2.0/UDP 172.20.32.70;branch=z9hG4bKa662ae9091F77FE7;received=172.20.32.70
From: <sip:216 at 172.20.32.70>;tag=9BF9794A-AD4778F1
To: "207" <sip:207 at 172.20.20.205>;tag=as1de701d2
Call-ID: 4c0201703a430c12490761fe7d6cdead at 172.20.20.205
CSeq: 1 BYE
Server: Asterisk PBX 1.6.2.9-2+squeeze4
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
Supported: replaces, timer
Content-Length: 0


<------------>  
  == Spawn extension (default, 216, 1) exited non-zero on 'H323/ip$172.20.20.233:4232/71'
        -- Sending RELEASE COMPLETE
        -- ClearCall: Request to clear call with token ip$172.20.20.233:4232/71, cause EndedByRemoteUser
                channelsOpen = 1
                channelsOpen = 0
        ExternalRTPChannel Destroyed
        ExternalRTPChannel Destroyed
 29:53.550          H225 Answer:2f42910      h323pdu.cxx(1297)  H225    Read error (0):
        -- ClearCall: Request to clear call with token ip$172.20.20.233:4232/71, cause EndedByTransportFail
 29:53.562                 H323 Cleaner         h323.cxx(1757)  H323    Connection ip$172.20.20.233:4232/71 terminated.
-- Pfrost [172.20.20.233] has cleared the call
        == H.323 Connection deleted.
Really destroying SIP dialog '4c0201703a430c12490761fe7d6cdead at 172.20.20.205' Method: BYE





More information about the asterisk-users mailing list