Sendrpid adds CID:EXT to outgoing calls

When doing an attended transfer on a Polycom phone, the Caller ID does not change on the destination phone. For example…

User A calls User B to inform them of a call. User B can see the Caller ID of User A. After User B accepts the transfer, the Caller ID is still for User A.

To fix this where the User B will see the Caller ID of the actual caller after the transfer is done, I enabled sendrpid on each extension. Changing the option from “No” to “Send Remote-Party-ID header” or “Send P-Asserted-Identity header” seems to create the same behavior. I have not seen any difference between the two yet.

Unfortunately this fix brought up another issue. When making outbound calls the Polycom will show “CID:EXT(DID)” instead of just “(DID)”. Turing the senderpid option back to “No” fixes this but I really need this to work both ways. I’m using FreePBX 2.11.0.10.

Thanks,
-Sean

What model of Polycom?

What firmware on the Polycom?

Is trustrpid set to yes?

FreePBX Distro or installed by hand?

What version of Asterisk?

What model of Polycom? - SoundPoint IP 330

What firmware on the Polycom? - BootROM: 4.3.1.0040

Is trustrpid set to yes? - Yes

FreePBX Distro or installed by hand? - Installed using AsteriskNOW 3.0.0

What version of Asterisk? - Asterisk 11.5.0

Thanks!

I have installed many Polycom phones and this usually just works. I have never used AsteriskNow so I can not say that the feature is supported there.

Send some logs of a call.

Here is a recent log entry. I did replace the phone number with X’s.

Start of Call, dialing out

[2013-08-19 21:13:58] VERBOSE[1503][C-0000001c] netsock2.c: == Using SIP RTP TOS bits 184
[2013-08-19 21:13:58] VERBOSE[1503][C-0000001c] netsock2.c: == Using SIP RTP CoS mark 5
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:1] Macro(“SIP/103-00000031”, “user-callerid,LIMIT,”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:1] Set(“SIP/103-00000031”, “TOUCH_MONITOR=1376972038.49”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:2] Set(“SIP/103-00000031”, “AMPUSER=103”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:3] GotoIf(“SIP/103-00000031”, “0?report”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:4] ExecIf(“SIP/103-00000031”, “1?Set(REALCALLERIDNUM=103)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:5] Set(“SIP/103-00000031”, “AMPUSER=103”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:6] Set(“SIP/103-00000031”, “AMPUSERCIDNAME=Polycom1”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:7] GotoIf(“SIP/103-00000031”, “0?report”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:8] Set(“SIP/103-00000031”, “AMPUSERCID=103”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:9] Set(“SIP/103-00000031”, “__DIAL_OPTIONS=Ttr”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:10] Set(“SIP/103-00000031”, “CALLERID(all)=“Polycom1” <103>”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:11] GotoIf(“SIP/103-00000031”, “0?limit”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:12] ExecIf(“SIP/103-00000031”, “1?Set(GROUP(concurrency_limit)=103)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:13] ExecIf(“SIP/103-00000031”, “0?Set(CHANNEL(language)=)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:14] GosubIf(“SIP/103-00000031”, “7?sub-ccss,s,1(from-internal,XXXXXXXXXX)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:1] ExecIf(“SIP/103-00000031”, “0?Return()”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:2] Set(“SIP/103-00000031”, “CCSS_SETUP=TRUE”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:3] GosubIf(“SIP/103-00000031”, “0?monitor_config,1(from-internal,XXXXXXXXXX):monitor_default,1(from-internal,XXXXXXXXXX)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:1] GotoIf(“SIP/103-00000031”, “0?is_exten”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:2] StackPop(“SIP/103-00000031”, “”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:3] Return(“SIP/103-00000031”, “FALSE”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:15] GotoIf(“SIP/103-00000031”, “1?continue”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Goto (macro-user-callerid,s,28)
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:28] Set(“SIP/103-00000031”, “CALLERID(number)=103”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:29] Set(“SIP/103-00000031”, “CALLERID(name)=Polycom1”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:30] Set(“SIP/103-00000031”, “CDR(cnum)=103”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:31] Set(“SIP/103-00000031”, “CDR(cnam)=Polycom1”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:32] Set(“SIP/103-00000031”, “CHANNEL(language)=en”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:2] Set(“SIP/103-00000031”, “MOHCLASS=default”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:3] Set(“SIP/103-00000031”, “_NODEST=”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:4] Gosub(“SIP/103-00000031”, “sub-record-check,s,1(out,XXXXXXXXXX,)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:1] Set(“SIP/103-00000031”, “REC_POLICY_MODE_SAVE=”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:2] GotoIf(“SIP/103-00000031”, “1?check”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Goto (sub-record-check,s,7)
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:7] Set(“SIP/103-00000031”, “__MON_FMT=wav”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:8] GotoIf(“SIP/103-00000031”, “1?next”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Goto (sub-record-check,s,11)
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:11] ExecIf(“SIP/103-00000031”, “0?Return()”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:12] ExecIf(“SIP/103-00000031”, “0?Set(__REC_POLICY_MODE=)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:13] GotoIf(“SIP/103-00000031”, “0?out,1”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:14] Set(“SIP/103-00000031”, “__REC_STATUS=INITIALIZED”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:15] Set(“SIP/103-00000031”, “NOW=1376972038”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:16] Set(“SIP/103-00000031”, “__DAY=19”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:17] Set(“SIP/103-00000031”, “__MONTH=08”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:18] Set(“SIP/103-00000031”, “__YEAR=2013”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:19] Set(“SIP/103-00000031”, “__TIMESTR=20130819-211358”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:20] Set(“SIP/103-00000031”, “__FROMEXTEN=103”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:21] Set(“SIP/103-00000031”, “__CALLFILENAME=out-XXXXXXXXXX-103-20130819-211358-1376972038.49”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:22] Goto(“SIP/103-00000031”, “out,1”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Goto (sub-record-check,out,1)
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:1] ExecIf(“SIP/103-00000031”, “1?Set(__REC_POLICY_MODE=dontcare)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:2] GosubIf(“SIP/103-00000031”, “0?record,1(exten,XXXXXXXXXX,103)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:3] Return(“SIP/103-00000031”, “”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:5] Macro(“SIP/103-00000031”, “dialout-trunk,2,XXXXXXXXXX,off”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:1] Set(“SIP/103-00000031”, “DIAL_TRUNK=2”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:2] GosubIf(“SIP/103-00000031”, “0?sub-pincheck,s,1()”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:3] GotoIf(“SIP/103-00000031”, “0?disabletrunk,1”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:4] Set(“SIP/103-00000031”, “DIAL_NUMBER=XXXXXXXXXX”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:5] Set(“SIP/103-00000031”, “DIAL_TRUNK_OPTIONS=Ttr”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:6] Set(“SIP/103-00000031”, “OUTBOUND_GROUP=OUT_2”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:7] GotoIf(“SIP/103-00000031”, “1?nomax”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Goto (macro-dialout-trunk,s,9)
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:9] GotoIf(“SIP/103-00000031”, “0?skipoutcid”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:10] Set(“SIP/103-00000031”, “DIAL_TRUNK_OPTIONS=Tt”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:11] Macro(“SIP/103-00000031”, “outbound-callerid,2”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:1] ExecIf(“SIP/103-00000031”, “0?Set(CALLERPRES()=)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:2] ExecIf(“SIP/103-00000031”, “0?Set(REALCALLERIDNUM=103)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:3] GotoIf(“SIP/103-00000031”, “1?normcid”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Goto (macro-outbound-callerid,s,6)
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:6] Set(“SIP/103-00000031”, “USEROUTCID=”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:7] Set(“SIP/103-00000031”, “EMERGENCYCID=”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:8] Set(“SIP/103-00000031”, “TRUNKOUTCID=”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:9] GotoIf(“SIP/103-00000031”, “1?trunkcid”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Goto (macro-outbound-callerid,s,14)
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:14] ExecIf(“SIP/103-00000031”, “0?Set(CALLERID(all)=)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:15] ExecIf(“SIP/103-00000031”, “0?Set(CALLERID(all)=)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:16] ExecIf(“SIP/103-00000031”, “0?Set(CALLERID(all)=)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:17] ExecIf(“SIP/103-00000031”, “0?Set(CALLERPRES()=prohib_passed_screen)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:18] Set(“SIP/103-00000031”, “CDR(outbound_cnum)=103”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:19] Set(“SIP/103-00000031”, “CDR(outbound_cnam)=Polycom1”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:12] GosubIf(“SIP/103-00000031”, “0?sub-flp-2,s,1()”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:13] Set(“SIP/103-00000031”, “OUTNUM=XXXXXXXXXX”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:14] Set(“SIP/103-00000031”, “custom=SIP/OUT”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:15] ExecIf(“SIP/103-00000031”, “0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default)Tt)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:16] ExecIf(“SIP/103-00000031”, “0?Set(DIAL_TRUNK_OPTIONS=TtM(confirm))”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:17] Macro(“SIP/103-00000031”, “dialout-trunk-predial-hook,”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:1] MacroExit(“SIP/103-00000031”, “”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:18] GotoIf(“SIP/103-00000031”, “0?bypass,1”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:19] ExecIf(“SIP/103-00000031”, “1?Set(CONNECTEDLINE(num,i)=XXXXXXXXXX)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:20] ExecIf(“SIP/103-00000031”, “1?Set(CONNECTEDLINE(name,i)=CID:103)”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:21] GotoIf(“SIP/103-00000031”, “0?customtrunk”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:22] Dial(“SIP/103-00000031”, “SIP/OUT/XXXXXXXXXX,300,Tt”) in new stack
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] netsock2.c: == Using SIP RTP TOS bits 184
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] netsock2.c: == Using SIP RTP CoS mark 5
[2013-08-19 21:13:58] VERBOSE[17871][C-0000001c] app_dial.c: – Called SIP/OUT/XXXXXXXXXX
[2013-08-19 21:14:01] VERBOSE[17871][C-0000001c] app_dial.c: – SIP/OUT-00000032 is making progress passing it to SIP/103-00000031
[2013-08-19 21:14:07] VERBOSE[17871][C-0000001c] app_dial.c: – SIP/OUT-00000032 answered SIP/103-00000031

End of call, hang up

[2013-08-19 21:14:29] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:1] Macro(“SIP/103-00000031”, “hangupcall,”) in new stack
[2013-08-19 21:14:29] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:1] GotoIf(“SIP/103-00000031”, “1?theend”) in new stack
[2013-08-19 21:14:29] VERBOSE[17871][C-0000001c] pbx.c: – Goto (macro-hangupcall,s,3)
[2013-08-19 21:14:29] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:3] ExecIf(“SIP/103-00000031”, “0?Set(CDR(recordingfile)=)”) in new stack
[2013-08-19 21:14:29] VERBOSE[17871][C-0000001c] pbx.c: – Executing [[email protected]:4] Hangup(“SIP/103-00000031”, “”) in new stack
[2013-08-19 21:14:29] VERBOSE[17871][C-0000001c] app_macro.c: == Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘SIP/103-00000031’ in macro ‘hangupcall’
[2013-08-19 21:14:29] VERBOSE[17871][C-0000001c] pbx.c: == Spawn extension (macro-dialout-trunk, h, 1) exited non-zero on ‘SIP/103-00000031’
[2013-08-19 21:14:29] VERBOSE[17871][C-0000001c] app_macro.c: == Spawn extension (macro-dialout-trunk, s, 22) exited non-zero on ‘SIP/103-00000031’ in macro ‘dialout-trunk’
[2013-08-19 21:14:29] VERBOSE[17871][C-0000001c] pbx.c: == Spawn extension (from-internal, XXXXXXXXXX, 5) exited non-zero on ‘SIP/103-00000031’

I was having the same issue on our Yealink phones after upgrading to firmware .71 - the outbound calls were showing CID:EXT(DID) instead of the dialled number. Fixed this by going to Advanced Settings in FreePBX and then under Dialplan and Operational (about half way down the page) I set “Display CallerID on Calling Phone” to False.
Now the original caller ID is working on transferred calls and the proper outgoing numbers are appearing on outgoing calls :slight_smile:
Hope this works for you though? Let us know…

1 Like