Auto Answer Woes - Polycom Mixed Environment

Quick Background:
I have quite a few PBX’s that are currently running Trixbox 2.6.2.2 and * 1.4 (bleh) and I am working on upgrading them all to take advantage of all the latest and greatest. Everything was going great until I hit this snag and I am hoping that someone here can point me in the right direction.

Current Setup:

   ┌────────────────────────System Information───────────────────────────┐
   │  Asterisk   = ONLINE  | Dahdi     = ONLINE  | MySQL     = ONLINE    │
   │  SSH        = ONLINE  | Apache    = ONLINE  | Iptables  = OFFLINE   │
   │  Fail2ban   = OFFLINE | Internet  = ONLINE  | Ip6Tables = ONLINE    │
   │  BlueTooth  = OFFLINE | Hidd      = OFFLINE | NTPD      = ONLINE    │
   │  SendMail   = ONLINE  | Samba     = OFFLINE | Webmin    = ONLINE    │
   │  Ethernet0  = ONLINE  | Ethernet1 = N/A     | Wlan0     = N/A       │
   │                                                                     │
   │  PBX in a Flash Version   = 1.7.5.7 Running on *HARDWARE*           │
   │  FreePBX Version          = 2.9.0.7                                 │
   │  Running Asterisk Version = 1.6.2.20                                │
   │  Asterisk Source Version  = 1.6.2.20                                │
   │  Dahdi Source Version     = 2.5.0.2+2.5.0.2                         │
   │  Libpri Source Version    = 1.4.12                                  │
   │  Addons Source Version    = 1.6.2.3                                 │
   │  IP Address               = 192.168.1.2 on eth0                     │
   │  Operating System         = CentOS release 5.7 (Final)              │
   │  Kernel Version           = 2.6.18-274.3.1.el5 - 32 Bit             │
   └─────────────────────────────────────────────────────────────────────┘

My problem:
I have a phone environment that includes Polycom 550, 330, and 501s (bleh). Currently on trixbox, all phones are able to auto answer (page, intercom, etc) without issue. I fired up a test box and installed the newest FPBX distro and setup a basic environment for testing. While going through and testing to make sure all the features that I normally use were functioning, I noticed that whenever I tried to intercom/page my 501’s, they would ring a few times and then hang up. I figured that I just messed up my sip.cfg and forgot to include the Ring_Answer AlertInfo and all would be ok… Well, I verified that it is in fact there and being passed to the phone, it just will not auto answer for some reason. I tried PIAF (what I am currently running - see info above), and it has the same issue. I even tried with Asterisk 1.6 and still no go.

This has to be a configuration issue, right? The only difference between the two are the SIP versions. IP550/330 uses SIP 3.3 and IP501 uses SIP 3.1.7.

The 550’s & 330’s work just fine and auto answer as intended. What gives?

Intercom - IP330 -> IP501

AMG*CLI>
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Executing [*80210@from-internal:1] Goto("SIP/211-00000014", "ext-intercom,*80210,1") in new stack
    -- Goto (ext-intercom,*80210,1)
    -- Executing [*80210@ext-intercom:1] Macro("SIP/211-00000014", "user-callerid,") in new stack
    -- Executing [s@macro-user-callerid:1] Set("SIP/211-00000014", "AMPUSER=211") in new stack
    -- Executing [s@macro-user-callerid:2] GotoIf("SIP/211-00000014", "0?report") in new stack
    -- Executing [s@macro-user-callerid:3] ExecIf("SIP/211-00000014", "1?Set(REALCALLERIDNUM=211)") in new stack
    -- Executing [s@macro-user-callerid:4] Set("SIP/211-00000014", "AMPUSER=211") in new stack
    -- Executing [s@macro-user-callerid:5] Set("SIP/211-00000014", "AMPUSERCIDNAME=330Test") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("SIP/211-00000014", "0?report") in new stack
    -- Executing [s@macro-user-callerid:7] Set("SIP/211-00000014", "AMPUSERCID=211") in new stack
    -- Executing [s@macro-user-callerid:8] Set("SIP/211-00000014", "CALLERID(all)="330Test" <211>") in new stack
    -- Executing [s@macro-user-callerid:9] GotoIf("SIP/211-00000014", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:10] ExecIf("SIP/211-00000014", "0?Set(GROUP(concurrency_limit)=211)") in new stack
    -- Executing [s@macro-user-callerid:11] ExecIf("SIP/211-00000014", "0?Set(CHANNEL(language)=)") in new stack
    -- Executing [s@macro-user-callerid:12] GotoIf("SIP/211-00000014", "0?continue") in new stack
    -- Executing [s@macro-user-callerid:13] Set("SIP/211-00000014", "__TTL=64") in new stack
    -- Executing [s@macro-user-callerid:14] GotoIf("SIP/211-00000014", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,25)
    -- Executing [s@macro-user-callerid:25] Set("SIP/211-00000014", "CALLERID(number)=211") in new stack
    -- Executing [s@macro-user-callerid:26] Set("SIP/211-00000014", "CALLERID(name)=330Test") in new stack
    -- Executing [*80210@ext-intercom:2] Set("SIP/211-00000014", "dialnumber=210") in new stack
    -- Executing [*80210@ext-intercom:3] Set("SIP/211-00000014", "INTERCOM_CALL=TRUE") in new stack
    -- Executing [*80210@ext-intercom:4] GotoIf("SIP/211-00000014", "0?end") in new stack
    -- Executing [*80210@ext-intercom:5] GotoIf("SIP/211-00000014", "0?end") in new stack
    -- Executing [*80210@ext-intercom:6] GotoIf("SIP/211-00000014", "0?allow") in new stack
    -- Executing [*80210@ext-intercom:7] GotoIf("SIP/211-00000014", "0?nointercom") in new stack
    -- Executing [*80210@ext-intercom:8] GotoIf("SIP/211-00000014", "0?nointercom") in new stack
    -- Executing [*80210@ext-intercom:9] Set("SIP/211-00000014", "DEVICES=210") in new stack
    -- Executing [*80210@ext-intercom:10] GotoIf("SIP/211-00000014", "0?end") in new stack
    -- Executing [*80210@ext-intercom:11] Set("SIP/211-00000014", "LOOPCNT=1") in new stack
    -- Executing [*80210@ext-intercom:12] Set("SIP/211-00000014", "_SIPURI=") in new stack
    -- Executing [*80210@ext-intercom:13] Set("SIP/211-00000014", "_ALERTINFO=Alert-Info: Ring Answer") in new stack
    -- Executing [*80210@ext-intercom:14] Set("SIP/211-00000014", "_CALLINFO=Call-Info: <uri>\;answer-after=0") in new stack
    -- Executing [*80210@ext-intercom:15] Set("SIP/211-00000014", "_SIPURI=intercom=true") in new stack
    -- Executing [*80210@ext-intercom:16] Set("SIP/211-00000014", "_DOPTIONS=A(beep)") in new stack
    -- Executing [*80210@ext-intercom:17] Set("SIP/211-00000014", "_DTIME=5") in new stack
    -- Executing [*80210@ext-intercom:18] Set("SIP/211-00000014", "_ANSWERMACRO=") in new stack
    -- Executing [*80210@ext-intercom:19] GotoIf("SIP/211-00000014", "0?pagemode") in new stack
    -- Executing [*80210@ext-intercom:20] Macro("SIP/211-00000014", "autoanswer,210") in new stack
    -- Executing [s@macro-autoanswer:1] Set("SIP/211-00000014", "DIAL=SIP/210") in new stack
    -- Executing [s@macro-autoanswer:2] ExecIf("SIP/211-00000014", "0?Set(DIAL=DAHDI/210)") in new stack
    -- Executing [s@macro-autoanswer:3] GotoIf("SIP/211-00000014", "0?macro") in new stack
    -- Executing [s@macro-autoanswer:4] Set("SIP/211-00000014", "phone=PolycomSoundPointIP-SPIP_501-UA/3.1.7.0134") in new stack
    -- Executing [s@macro-autoanswer:5] ExecIf("SIP/211-00000014", "0?Set(CALLINFO=Call-Info: <sip:broadworks.net>\;answer-after=0)") in new stack
    -- Executing [s@macro-autoanswer:6] ExecIf("SIP/211-00000014", "1?SipAddHeader(Alert-Info: Ring Answer)") in new stack
    -- Executing [s@macro-autoanswer:7] ExecIf("SIP/211-00000014", "1?SipAddHeader(Call-Info: <uri>;answer-after=0)") in new stack
    -- Executing [s@macro-autoanswer:8] ExecIf("SIP/211-00000014", "1?Set(__SIP_URI_OPTIONS=intercom=true)") in new stack
    -- Executing [*80210@ext-intercom:21] ChanIsAvail("SIP/211-00000014", "SIP/210,s") in new stack
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Executing [*80210@ext-intercom:22] GotoIf("SIP/211-00000014", "0?end") in new stack
    -- Executing [*80210@ext-intercom:23] Dial("SIP/211-00000014", "SIP/210,5,A(beep)") in new stack
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Called 210
    -- SIP/210-00000016 is ringing
    -- Nobody picked up in 5000 ms
    -- Executing [*80210@ext-intercom:24] ExecIf("SIP/211-00000014", "?Return()") in new stack
    -- Executing [*80210@ext-intercom:25] Busy("SIP/211-00000014", "20") in new stack
  == Spawn extension (ext-intercom, *80210, 25) exited non-zero on 'SIP/211-00000014'
AMG*CLI>

Intercom - IP501 -> IP330

AMG*CLI>
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Executing [*80211@from-internal:1] Goto("SIP/210-00000003", "ext-intercom,*80211,1") in new stack
    -- Goto (ext-intercom,*80211,1)
    -- Executing [*80211@ext-intercom:1] Macro("SIP/210-00000003", "user-callerid,") in new stack
    -- Executing [s@macro-user-callerid:1] Set("SIP/210-00000003", "AMPUSER=210") in new stack
    -- Executing [s@macro-user-callerid:2] GotoIf("SIP/210-00000003", "0?report") in new stack
    -- Executing [s@macro-user-callerid:3] ExecIf("SIP/210-00000003", "1?Set(REALCALLERIDNUM=210)") in new stack
    -- Executing [s@macro-user-callerid:4] Set("SIP/210-00000003", "AMPUSER=210") in new stack
    -- Executing [s@macro-user-callerid:5] Set("SIP/210-00000003", "AMPUSERCIDNAME=501Test") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("SIP/210-00000003", "0?report") in new stack
    -- Executing [s@macro-user-callerid:7] Set("SIP/210-00000003", "AMPUSERCID=210") in new stack
    -- Executing [s@macro-user-callerid:8] Set("SIP/210-00000003", "CALLERID(all)="501Test" <210>") in new stack
    -- Executing [s@macro-user-callerid:9] GotoIf("SIP/210-00000003", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:10] ExecIf("SIP/210-00000003", "0?Set(GROUP(concurrency_limit)=210)") in new stack
    -- Executing [s@macro-user-callerid:11] ExecIf("SIP/210-00000003", "0?Set(CHANNEL(language)=)") in new stack
    -- Executing [s@macro-user-callerid:12] GotoIf("SIP/210-00000003", "0?continue") in new stack
    -- Executing [s@macro-user-callerid:13] Set("SIP/210-00000003", "__TTL=64") in new stack
    -- Executing [s@macro-user-callerid:14] GotoIf("SIP/210-00000003", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,25)
    -- Executing [s@macro-user-callerid:25] Set("SIP/210-00000003", "CALLERID(number)=210") in new stack
    -- Executing [s@macro-user-callerid:26] Set("SIP/210-00000003", "CALLERID(name)=501Test") in new stack
    -- Executing [*80211@ext-intercom:2] Set("SIP/210-00000003", "dialnumber=211") in new stack
    -- Executing [*80211@ext-intercom:3] Set("SIP/210-00000003", "INTERCOM_CALL=TRUE") in new stack
    -- Executing [*80211@ext-intercom:4] GotoIf("SIP/210-00000003", "0?end") in new stack
    -- Executing [*80211@ext-intercom:5] GotoIf("SIP/210-00000003", "0?end") in new stack
    -- Executing [*80211@ext-intercom:6] GotoIf("SIP/210-00000003", "0?allow") in new stack
    -- Executing [*80211@ext-intercom:7] GotoIf("SIP/210-00000003", "0?nointercom") in new stack
    -- Executing [*80211@ext-intercom:8] GotoIf("SIP/210-00000003", "0?nointercom") in new stack
    -- Executing [*80211@ext-intercom:9] Set("SIP/210-00000003", "DEVICES=211") in new stack
    -- Executing [*80211@ext-intercom:10] GotoIf("SIP/210-00000003", "0?end") in new stack
    -- Executing [*80211@ext-intercom:11] Set("SIP/210-00000003", "LOOPCNT=1") in new stack
    -- Executing [*80211@ext-intercom:12] Set("SIP/210-00000003", "_SIPURI=") in new stack
    -- Executing [*80211@ext-intercom:13] Set("SIP/210-00000003", "_ALERTINFO=Alert-Info: Ring Answer") in new stack
    -- Executing [*80211@ext-intercom:14] Set("SIP/210-00000003", "_CALLINFO=Call-Info: <uri>\;answer-after=0") in new stack
    -- Executing [*80211@ext-intercom:15] Set("SIP/210-00000003", "_SIPURI=intercom=true") in new stack
    -- Executing [*80211@ext-intercom:16] Set("SIP/210-00000003", "_DOPTIONS=A(beep)") in new stack
    -- Executing [*80211@ext-intercom:17] Set("SIP/210-00000003", "_DTIME=5") in new stack
    -- Executing [*80211@ext-intercom:18] Set("SIP/210-00000003", "_ANSWERMACRO=") in new stack
    -- Executing [*80211@ext-intercom:19] GotoIf("SIP/210-00000003", "0?pagemode") in new stack
    -- Executing [*80211@ext-intercom:20] Macro("SIP/210-00000003", "autoanswer,211") in new stack
    -- Executing [s@macro-autoanswer:1] Set("SIP/210-00000003", "DIAL=SIP/211") in new stack
    -- Executing [s@macro-autoanswer:2] ExecIf("SIP/210-00000003", "0?Set(DIAL=DAHDI/211)") in new stack
    -- Executing [s@macro-autoanswer:3] GotoIf("SIP/210-00000003", "0?macro") in new stack
    -- Executing [s@macro-autoanswer:4] Set("SIP/210-00000003", "phone=PolycomSoundPointIP-SPIP_330-UA/3.3.2.0413") in new stack
    -- Executing [s@macro-autoanswer:5] ExecIf("SIP/210-00000003", "0?Set(CALLINFO=Call-Info: <sip:broadworks.net>\;answer-after=0)") in new stack
    -- Executing [s@macro-autoanswer:6] ExecIf("SIP/210-00000003", "1?SipAddHeader(Alert-Info: Ring Answer)") in new stack
    -- Executing [s@macro-autoanswer:7] ExecIf("SIP/210-00000003", "1?SipAddHeader(Call-Info: <uri>;answer-after=0)") in new stack
    -- Executing [s@macro-autoanswer:8] ExecIf("SIP/210-00000003", "1?Set(__SIP_URI_OPTIONS=intercom=true)") in new stack
    -- Executing [*80211@ext-intercom:21] ChanIsAvail("SIP/210-00000003", "SIP/211,s") in new stack
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Executing [*80211@ext-intercom:22] GotoIf("SIP/210-00000003", "0?end") in new stack
    -- Executing [*80211@ext-intercom:23] Dial("SIP/210-00000003", "SIP/211,5,A(beep)") in new stack
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Called 211
    -- SIP/211-00000005 is ringing
    -- SIP/211-00000005 answered SIP/210-00000003
    -- <SIP/211-00000005> Playing 'beep.gsm' (language 'en')
    -- Packet2Packet bridging SIP/210-00000003 and SIP/211-00000005
  == Spawn extension (ext-intercom, *80211, 23) exited non-zero on 'SIP/210-00000003'
AMG*CLI>

I used ExamDiff and the two are exactly the same line for line sans the extension number. I am hoping someone can make a fool out of me and point out my failure here? :slight_smile:

Thanks to anyone with input. Questions/Comments/Flames accepted graciously.

-Tyler

PS.

Here is the pastebin for my sip_317.cfg if anyone is feeling crazy enough to look at it. http://pastebin.com/8YTjd66e

I figured it out…

In the server_317.cfg that is generated by EPM there is an empty…

<alertInfo
    voIpProt.SIP.alertInfo.1.value=""
    voIpProt.SIP.alertInfo.1.class=""/>

…which obviously caused issues with values set in sip.cfg - which is where I have always set AlertInfo. Removing the statements from server_317.cfg file solved my problems.

Are you using any Custom Softkeys or EFK’s by any chance on your Polycoms? Like for intercom or other feature codes?

Yes, I have a few configured.