Summary:ASTERISK-17557: Followme not giving the callerid
Reporter:hamlet505a (hamlet505a)Labels:
Date Opened:2011-03-14 18:07:50Date Closed:2011-12-13 17:02:39.000-0600
Versions:1.8.3 Frequency of
Description:I have tested this on 1.8.2 and 1.8.3 Asterisk.    I have recently upgraded from 1.4 to 1.8.  I have copied the configurations from 1.4 to 1.8.  I have changed the configs slightly as to account for some syntax.  But this was a working configuration on Asterisk 1.4 as it successfully passed the callerid through followme.

Here is the code followed by a simple trace without followme that successfully shows the callerid using Asterisk 1.8:

exten => 2970,1,NoOp(${CALLERID(name)})
exten => 2970,2,set(CALLERID(num)=${prefix}${CALLERID(num)})
exten => 2970,3,Dial(SIP/${icell}@cme,15,t)

 == Using SIP RTP CoS mark 5
   -- Executing [2970@incoming-mobile-extensions:1] NoOp("SIP/4831-00000029", "4831") in new stack
   -- Executing [2970@incoming-mobile-extensions:2] Set("SIP/4831-00000029", "CALLERID(num)=prefix4831") in new stack
   -- Executing [2970@incoming-mobile-extensions:3] Dial("SIP/4831-00000029", "SIP/xxxxxxxxxx@cme,15,t") in new stack
 == Using SIP RTP CoS mark 5
   -- Called xxxxxxxxxx@cme
   -- SIP/cme-0000002a is making progress passing it to SIP/4831-00000029
   -- SIP/cme-0000002a is making progress passing it to SIP/4831-00000029
 == Spawn extension (incoming-mobile-extensions, 2970, 3) exited non-zero on 'SIP/4831-00000029'

Above, icell=xxxxxxxxxx a ten digit phone number (blocked it out).  CME is Cisco call manager express.  Prefix is the 1st 6 digits and CallerID(num) is a 4 digit extension.    The above worked.

Now we add followme in:

exten => 2970,1,NoOp(${CALLERID(name)})
exten => 2970,2,set(CALLERID(num)=${prefix}${CALLERID(num)})
exten => 2970,3,Goto(2970-followme,s,1)

exten => s,1,FollowMe(2970)
exten => s,n,VoiceMail(2970}@internal)
exten => s,n,Wait(2)
exten => s,n,Hangup()

 == Using SIP RTP CoS mark 5
   -- Executing [2970@incoming-mobile-extensions:1] NoOp("SIP/4831-00000037", "4831") in new stack
   -- Executing [2970@incoming-mobile-extensions:2] Set("SIP/4831-00000037", "CALLERID(num)=prefix4831") in new stack
   -- Executing [2970@incoming-mobile-extensions:3] Goto("SIP/4831-00000037", "2970-followme,s,1") in new stack
   -- Goto (2970-followme,s,1)
   -- Executing [s@2970-followme:1] FollowMe("SIP/4831-00000037", "2970") in new stack
   -- <SIP/4831-00000037> Playing 'followme/pls-hold-while-try.ulaw' (language 'en')
   -- Music class default requested but no musiconhold loaded.
   -- calling xxxxxxxxxx@outgoing
   -- Executing [xxxxxxxxxx@outgoing:1] Dial("Local/xxxxxxxxxx@outgoing-ace0;2", "SIP/xxxxxxxxxx@cme") in new stack
 == Using SIP RTP CoS mark 5
   -- Called xxxxxxxxxx@cme
   -- SIP/cme-00000038 is making progress passing it to Local/xxxxxxxxxx@outgoing-ace0;2
   -- Local/xxxxxxxxxx@outgoing-ace0;1 is making progress passing it to SIP/4831-00000037
   -- SIP/cme-00000038 is making progress passing it to Local/xxxxxxxxxx@outgoing-ace0;2
   -- Local/xxxxxxxxxx@outgoing-ace0;1 is making progress passing it to SIP/4831-00000037
 == Spawn extension (outgoing, xxxxxxxxxx, 1) exited non-zero on 'Local/xxxxxxxxxxx@outgoing-ace0;2'

Of course, same as above, prefix is the 1st 6 digits.  xxxxxxxxxx is the same as icell.    The caller id is not passed to the mobile phone.  


I just performed a sip debug.  I see that the "from" line is anonymous when followme is used.  Without followme, the caller ID is correct in the from line of SIP.


I installed asterisk 1.8 using yum CentOS 5.5 repository.
Comments:By: hamlet505a (hamlet505a) 2011-03-15 18:08:45

More clarification:   On Asterisk 1.4, the followme phone number (mobile) was able to see the original Caller ID.  On Asterisk 1.8, followme does not seem to pass the Caller ID.  The call comes up as "Unavailable".      Using a straight up dial command successfully passes the caller ID to the mobile phone.

Installed from Yum repository for Centos 5.5.

By: millsu2 (millsu2) 2011-03-16 16:00:16

I am also seeing this problem after upgrading from 1.6.2 to 1.8. The callerid information is completely lost after using the followme app. It shows "anonymous sip@asterisk" or somehting similar on the phones and the callerid field is empty in the CDR's.

By: Leif Madsen (lmadsen) 2011-03-31 12:58:12

In sip.conf do you have trustrpid=yes and sendrpid=yes enabled?

By: hamlet505a (hamlet505a) 2011-03-31 17:59:58

I just added both of the above statements into sip.conf under the general section.  I restarted asterisk.  The result is the same.  Caller ID does not pass when using followme.

By: hamlet505a (hamlet505a) 2011-05-27 09:28:25

I just updated to Asterisk 1.8.4 and the result is the same:  Caller ID does not pass.

By: Mina Naguib (minaguib) 2011-06-29 21:15:08.579-0500

I've run into this as well once I've upgraded to asterisk 1.8

It was actually pretty bad for me because one of the extensions followme was set up to call is a Dial() using an external VOIP provider which *REQUIRES* a valid callerid to be present, otherwise that outgoing channel receives CONGESTION

So, since followme invoked the extension sans callerid, that provider refused the call, and the end device (a cell phone) never received the call.

By: Filip Jenicek (phill) 2011-08-15 08:01:01.752-0500

I can confirm that this is indeed broken in 1.8.5. It makes followme quite unusable.

By: Jonathan Habers (jhabers) 2011-09-21 14:19:51.964-0500

This is still broken in 1.8.6, any idea whena fix for this will be made available? Anyone know of a work around?

By: hamlet505a (hamlet505a) 2011-09-26 10:46:50.772-0500

I can also confirm it is still broken in 1.8.6.   Unfortunately, I have not found a work around.  My users are just dealing with not being able to see callerid using followme.

By: Mina Naguib (minaguib) 2011-09-27 12:19:39.901-0500

FWIW this is still broken on asterisk 1.8.7.

In my case I *NEED* a callerid to be able to use my outbound provider, so my work-around is something like this for the extension followme calls:

exten   =>      s,n,GotoIf($["${CALLERID(num)}" = ""]?:outhascallerid)
exten   =>      s,n,Set(CALLERID(num)=5555555555)
exten   =>      s,n(outhascallerid),Dial(.....)

This at least allows followme to call my phone, though it's only a work-around in the technical sense (the called phone shows caller (555) 555-5555).  In terms of usability it's the same as blocked.

By: Matt Jordan (mjordan) 2011-11-17 11:52:46.092-0600

This may be occurring because the caller ID number being set is associated with the channel being dialed, not with each channel that is dialed during the FollowMe sequence.  To accomplish setting the caller ID on each channel dialed during FollowMe, try the following:

Set an inherited variable with the value of the caller-ID prior to the FollowMe application:

Prior to dialing any number referenced by FollowMe, apply the value of the inherited variable to the caller ID:

By: hamlet505a (hamlet505a) 2011-11-18 16:42:16.320-0600

I had tried this back in March and it did not work.  I just tried it again using 1.8.7 and I still do not see CallerID using followme.


By: hamlet505a (hamlet505a) 2011-11-21 10:13:33.483-0600

I tested this more today.    I set the inherited variable prior to the FollowMe app.  I see the NEWID is set to the caller ID. Just before followme starts I reset the callerid to NEWID.  It still shows unknown to the users.  I see in the sip debug that it shows anonymous for callerid as before.

By: Richard Mudgett (rmudgett) 2011-12-06 16:05:31.881-0600

Please see the review https://reviewboard.asterisk.org/r/1612/ for a patch.