One way audio on an IAX2 trunk



  • I know it has to be a firewall or network setting. But tired Jared is tired and not thinking clearly.

    IAX2 trunk between client FreePBX 13 and my system (older FreePBX 11).

    I have routes setup and calls complete.

    Call from my PBX to Client and there is 2 way audio.

    Call from client to my PBX, and I can hear client, but they cannot hear me.

    Connection between phone systems is over an IPSEC VPN tunnel.

    Which side is the problem here?

    Both ends have an Ubiquiti ERL for their router.



  • @JaredBusch
    Would it be a port issue? I've not dealt with PBX systems like you, @art_of_shred, @Mike-Ralston or others have,.. but if the ports are open, I would think that should cover it.


  • Banned

    Is the MTU set correctly?

    Are you doing NAT over the VPN?

    Do you have STUN setup?


  • Banned

    Also did you add the network for the remote site in asterisk?



  • Oh yeah, check subnet masks on the machines, just in case.



  • Did more trouble shooting on this today and I am still confused.

    Both PBX systems were using the external IP addresses and not the IPSEC VPN.

    I did try it on the IPSEC VPN with no difference.

    PBX A calls PBX B and the person on PBX B has 2 way audio. The person on PBX A cannot hear the person on PBX B.

    PBX B calls to PBX A and both parties have 2 way audio normally.

    PBX B also has an IAX2 trunk to PBX C and PBX D. All calls work perfectly for those.



  • Here is a test call from PBX A (ext 220) to PBX B (ext 103) where PBX A cannot hear PBX B.

    [[email protected] ~]# asterisk -rvvvvv
    Asterisk 13.9.1, Copyright (C) 1999 - 2014, Digium, Inc. and others.
    Created by Mark Spencer <[email protected]>
    Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
    This is free software, with components licensed under the GNU General Public
    License version 2 and other licenses; you are welcome to redistribute it under
    certain conditions. Type 'core show license' for details.
    =========================================================================
    Connected to Asterisk 13.9.1 currently running on pbx (pid = 1822)
        -- Executing [[email protected]:1] Macro("PJSIP/220-00000007", "user-callerid,LIMIT,EXTERNAL,") in new stack
        -- Executing [[email protected]:1] Set("PJSIP/220-00000007", "TOUCH_MONITOR=1463375032.14") in new stack
        -- Executing [[email protected]:2] Set("PJSIP/220-00000007", "AMPUSER=220") in new stack
        -- Executing [[email protected]:3] GotoIf("PJSIP/220-00000007", "0?report") in new stack
        -- Executing [[email protected]:4] ExecIf("PJSIP/220-00000007", "1?Set(REALCALLERIDNUM=220)") in new stack
        -- Executing [[email protected]:5] Set("PJSIP/220-00000007", "AMPUSER=220") in new stack
        -- Executing [[email protected]:6] GotoIf("PJSIP/220-00000007", "0?limit") in new stack
        -- Executing [[email protected]:7] Set("PJSIP/220-00000007", "AMPUSERCIDNAME=IT Department") in new stack
        -- Executing [[email protected]:8] GotoIf("PJSIP/220-00000007", "0?report") in new stack
        -- Executing [[email protected]:9] Set("PJSIP/220-00000007", "AMPUSERCID=220") in new stack
        -- Executing [[email protected]:10] Set("PJSIP/220-00000007", "__DIAL_OPTIONS=Ttr") in new stack
        -- Executing [[email protected]:11] Set("PJSIP/220-00000007", "CALLERID(all)="IT Department" <220>") in new stack
        -- Executing [[email protected]:12] GotoIf("PJSIP/220-00000007", "0?limit") in new stack
        -- Executing [[email protected]:13] ExecIf("PJSIP/220-00000007", "1?Set(GROUP(concurrency_limit)=220)") in new stack
        -- Executing [[email protected]:14] ExecIf("PJSIP/220-00000007", "0?Set(CHANNEL(language)=)") in new stack
        -- Executing [[email protected]:15] GotoIf("PJSIP/220-00000007", "1?continue") in new stack
        -- Goto (macro-user-callerid,s,29)
        -- Executing [[email protected]:29] Set("PJSIP/220-00000007", "CALLERID(number)=220") in new stack
        -- Executing [[email protected]:30] Set("PJSIP/220-00000007", "CALLERID(name)=IT Department") in new stack
        -- Executing [[email protected]:31] Set("PJSIP/220-00000007", "CDR(cnum)=220") in new stack
        -- Executing [[email protected]:32] Set("PJSIP/220-00000007", "CDR(cnam)=IT Department") in new stack
        -- Executing [[email protected]:33] Set("PJSIP/220-00000007", "CHANNEL(language)=en") in new stack
        -- Executing [[email protected]:2] Gosub("PJSIP/220-00000007", "sub-record-check,s,1(out,103,dontcare)") in new stack
        -- Executing [[email protected]:1] GotoIf("PJSIP/220-00000007", "0?initialized") in new stack
        -- Executing [[email protected]:2] Set("PJSIP/220-00000007", "__REC_STATUS=INITIALIZED") in new stack
        -- Executing [[email protected]:3] Set("PJSIP/220-00000007", "NOW=1463375032") in new stack
        -- Executing [[email protected]:4] Set("PJSIP/220-00000007", "__DAY=16") in new stack
        -- Executing [[email protected]:5] Set("PJSIP/220-00000007", "__MONTH=05") in new stack
        -- Executing [[email protected]:6] Set("PJSIP/220-00000007", "__YEAR=2016") in new stack
        -- Executing [[email protected]:7] Set("PJSIP/220-00000007", "__TIMESTR=20160516-000352") in new stack
        -- Executing [[email protected]:8] Set("PJSIP/220-00000007", "__FROMEXTEN=220") in new stack
        -- Executing [[email protected]:9] Set("PJSIP/220-00000007", "__MON_FMT=wav") in new stack
        -- Executing [[email protected]:10] NoOp("PJSIP/220-00000007", "Recordings initialized") in new stack
        -- Executing [[email protected]:11] ExecIf("PJSIP/220-00000007", "0?Set(ARG3=dontcare)") in new stack
        -- Executing [[email protected]:12] Set("PJSIP/220-00000007", "REC_POLICY_MODE_SAVE=") in new stack
        -- Executing [[email protected]:13] ExecIf("PJSIP/220-00000007", "0?Set(REC_STATUS=NO)") in new stack
        -- Executing [[email protected]:14] GotoIf("PJSIP/220-00000007", "3?checkaction") in new stack
        -- Goto (sub-record-check,s,17)
        -- Executing [[email protected]:17] GotoIf("PJSIP/220-00000007", "1?sub-record-check,out,1") in new stack
        -- Goto (sub-record-check,out,1)
        -- Executing [[email protected]:1] NoOp("PJSIP/220-00000007", "Outbound Recording Check from 220 to 103") in new stack
        -- Executing [[email protected]:2] Set("PJSIP/220-00000007", "RECMODE=dontcare") in new stack
        -- Executing [[email protected]:3] ExecIf("PJSIP/220-00000007", "1?Goto(routewins)") in new stack
        -- Goto (sub-record-check,out,7)
        -- Executing [[email protected]:7] Gosub("PJSIP/220-00000007", "recordcheck,1(dontcare,out,103)") in new stack
        -- Executing [[email protected]:1] NoOp("PJSIP/220-00000007", "Starting recording check against dontcare") in new stack
        -- Executing [[email protected]:2] Goto("PJSIP/220-00000007", "dontcare") in new stack
        -- Goto (sub-record-check,recordcheck,3)
        -- Executing [[email protected]:3] Return("PJSIP/220-00000007", "") in new stack
        -- Executing [[email protected]:8] Return("PJSIP/220-00000007", "") in new stack
        -- Executing [[email protected]:3] ExecIf("PJSIP/220-00000007", "0 ?Set(CDR(accountcode)=)") in new stack
        -- Executing [[email protected]:4] Set("PJSIP/220-00000007", "INTRACOMPANYROUTE=YES") in new stack
        -- Executing [[email protected]:5] Set("PJSIP/220-00000007", "MOHCLASS=default") in new stack
        -- Executing [[email protected]:6] Set("PJSIP/220-00000007", "_NODEST=") in new stack
        -- Executing [[email protected]:7] Macro("PJSIP/220-00000007", "dialout-trunk,2,103,,off") in new stack
        -- Executing [[email protected]:1] Set("PJSIP/220-00000007", "DIAL_TRUNK=2") in new stack
        -- Executing [[email protected]:2] GosubIf("PJSIP/220-00000007", "0?sub-pincheck,s,1()") in new stack
        -- Executing [[email protected]:3] GotoIf("PJSIP/220-00000007", "0?disabletrunk,1") in new stack
        -- Executing [[email protected]:4] Set("PJSIP/220-00000007", "DIAL_NUMBER=103") in new stack
        -- Executing [[email protected]:5] Set("PJSIP/220-00000007", "DIAL_TRUNK_OPTIONS=Ttr") in new stack
        -- Executing [[email protected]:6] Set("PJSIP/220-00000007", "OUTBOUND_GROUP=OUT_2") in new stack
        -- Executing [[email protected]:7] GotoIf("PJSIP/220-00000007", "1?nomax") in new stack
        -- Goto (macro-dialout-trunk,s,9)
        -- Executing [[email protected]:9] GotoIf("PJSIP/220-00000007", "1?skipoutcid") in new stack
        -- Goto (macro-dialout-trunk,s,12)
        -- Executing [[email protected]:12] GosubIf("PJSIP/220-00000007", "0?sub-flp-2,s,1()") in new stack
        -- Executing [[email protected]:13] Set("PJSIP/220-00000007", "OUTNUM=103") in new stack
        -- Executing [[email protected]:14] Set("PJSIP/220-00000007", "custom=IAX2/aci_to_bundy") in new stack
        -- Executing [[email protected]:15] ExecIf("PJSIP/220-00000007", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default)Ttr)") in new stack
        -- Executing [[email protected]:16] ExecIf("PJSIP/220-00000007", "0?Set(DIAL_TRUNK_OPTIONS=TtrM(confirm))") in new stack
        -- Executing [[email protected]:17] Macro("PJSIP/220-00000007", "dialout-trunk-predial-hook,") in new stack
        -- Executing [[email protected]:1] MacroExit("PJSIP/220-00000007", "") in new stack
        -- Executing [[email protected]:18] GotoIf("PJSIP/220-00000007", "0?bypass,1") in new stack
        -- Executing [[email protected]:19] ExecIf("PJSIP/220-00000007", "1?Set(CONNECTEDLINE(num,i)=103)") in new stack
        -- Executing [[email protected]:20] ExecIf("PJSIP/220-00000007", "1?Set(CONNECTEDLINE(name,i)=CID:220)") in new stack
        -- Executing [[email protected]:21] ExecIf("PJSIP/220-00000007", "0?Set(CONNECTEDLINE(name,i)=CID:(Hidden)220)") in new stack
        -- Executing [[email protected]:22] GotoIf("PJSIP/220-00000007", "0?customtrunk") in new stack
        -- Executing [[email protected]:23] Dial("PJSIP/220-00000007", "IAX2/aci_to_bundy/103,300,Ttr") in new stack
        -- Called IAX2/aci_to_bundy/103
        -- Call accepted by XXX.XXX.XXX.13:4569 (format alaw)
        -- Format for call is (alaw)
        -- IAX2/aci_to_bundy-897 is ringing
        -- IAX2/aci_to_bundy-897 is ringing
        -- IAX2/aci_to_bundy-897 answered PJSIP/220-00000007
        -- Channel IAX2/aci_to_bundy-897 joined 'simple_bridge' basic-bridge <67c8af7d-33c9-4712-a076-5e8f5b2e06ef>
        -- Channel PJSIP/220-00000007 joined 'simple_bridge' basic-bridge <67c8af7d-33c9-4712-a076-5e8f5b2e06ef>
           > 0x7f36fc728aa0 -- Probation passed - setting RTP source address to 10.254.103.10:11938
        -- Channel IAX2/aci_to_bundy-897 left 'simple_bridge' basic-bridge <67c8af7d-33c9-4712-a076-5e8f5b2e06ef>
        -- Hungup 'IAX2/aci_to_bundy-897'
        -- Channel PJSIP/220-00000007 left 'simple_bridge' basic-bridge <67c8af7d-33c9-4712-a076-5e8f5b2e06ef>
      == Spawn extension (macro-dialout-trunk, s, 23) exited non-zero on 'PJSIP/220-00000007' in macro 'dialout-trunk'
      == Spawn extension (from-internal, 103, 7) exited non-zero on 'PJSIP/220-00000007'
        -- Executing [[email protected]:1] Macro("PJSIP/220-00000007", "hangupcall") in new stack
        -- Executing [[email protected]:1] GotoIf("PJSIP/220-00000007", "1?theend") in new stack
        -- Goto (macro-hangupcall,s,3)
        -- Executing [[email protected]:3] ExecIf("PJSIP/220-00000007", "0?Set(CDR(recordingfile)=)") in new stack
        -- Executing [[email protected]:4] Hangup("PJSIP/220-00000007", "") in new stack
      == Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'PJSIP/220-00000007' in macro 'hangupcall'
      == Spawn extension (from-internal, h, 1) exited non-zero on 'PJSIP/220-00000007'
    pbx*CLI>
    


  • Circling back to this... I need more damned time in a day....

    As far as I can tell the firewalls are all correctly forwarding traffic.

    WTF



  • @Jason said in One way audio on an IAX2 trunk:

    Also did you add the network for the remote site in asterisk?

    Found this topic again after checking the IAX2 tag.

    Thought I would update with the answer.

    This was the problem