Call pickup and Reason Header

On my Asterisk box I have 2 ways of picking up a call that is ringing on a remote extension.

  1. General Call Pikcup
    In my case I do this with a call to featurecode “**”. That is defined in featurecodes.conf.
pickupexten = **                ; Configure the pickup extension. (default is *8)
  1. Directed Call Pickup
    In my case I do this with a call to featurecode “**extension”. For that I use the dialplan application PickupChan()
exten => _**.,1,PickupChan(SIP/${EXTEN:2})

Both methods seems to do the job properly with a small difference - the presentation of a missed call on the phone from where the call was picked up from (the remote phone that was ringing initially). If I use **, the remote phone shows a missed call. If I use **exten, the remote phone does not show a missed call (that is the desired behaviour).

In my setup I am using Aastra phones that know how to read “Reason: Call completed elsewhere” header in SIP Cancel messages and do not list such a calls as missed. It looks like there is a bug in Asterisk when using the “pickupexten” the Reason header is not added in the SIP Cancel message.

In my setup I am using Asterisk 11.5.1.

Is anyone aware of this kind of a problem?

I’m not aware of it; it sounds like a new discovery; probably not something that was thought about (in-call DTMF features) when the cancel support was added into the dial appliation.


My issue has nothing to do with In-Call DTMF. This is the call scenario:

A calls B
***** B is ringing *****
C dials “**” or “**B” and picks up a call that rings at B
C talks to A

The problem that I have is:

  • if I use **, B has a Missed call
  • if I use **B, B does not have a Missed call

The “Reason: Call completed elsewhere” in SIP Cancel message is used a lot of times with Dial() application. The most common place is when you dial multiple phones (with &) and one answers the call (in that case, all other phones get a SIP Cancel with “Reason: Call completed elsewhere”). That way there is no bad missed calls on phones that are a part of the “Ring Group”.

Malcom what do you say - should I put this issue on the bug tracker?


It still sounds like what I originally responded with. There is no featurecodes.conf, that’s not an Asterisk configuration file. There is features.conf, and that corresponds to the built-in features that Asterisk can provide when Asterisk is sitting in the middle of the call and can intercept DTMF that’s being passed up into it for the purposes of call features.

Like I said, the usage of that with addition the Dial flag for sending the Cancel reason probably wasn’t something that’s considered. Though it’s being presented as a bug for you, I’d lean more towards feature, since it’s an area where it’s probably never worked as the original use cases didn’t consider someone wanting to do that using a features.conf pickup.

You’re welcome to take it to the issue tracker, as it’s something that should be recorded.

I made a typo, I meant features.conf and not featurecodes.conf. Sorry for the hickup.

I will do some more debugs and present this feature/bug on the bug tracker. I think that a lot of users will find this new feature useful, since missed calls that were answered elsewhere are an issue.


As you say though it’s only an issue if you’re use features.conf and in-call DTMF, if you’re performing normal dialing in a new call scenario, it should be working just fine.



I have exact this same issue with a fully up to date Asterisk 11 server.
Note, this is NOT an DTMF issue.

Here in sort is the issue.

Scenario 1:
Phone 111 rings.
Phone 222 calls to **111, and PickupChan is used to take over the call.
Phone 222 gets the call, and on phone 111 there is NO missed call indication. (As expected, the call is not missed, it is answered)

Scenario 2:
Phone 111 rings.
Phone 222 calls to **, and the features.conf pickupexten feature is used to take over the call.
Phone 222 gets the call, and on phone 111 there is “1 missed call” indication. (What is wrong, it is answered)

Please advice how to correct this.
I looked, but I cannot find any setting to correct this.