Update CallerID During Call

Is there anyway to update the CallerID info on a callers SIP phone during a call? I can think of a couple examples of times when it would be nice to do something like this…

  1. Speeddials - In our dialplan, extensions 01-99 are speed-dials to an external number. The numbers are stored in MySQL. It would be nice to display the name and number instead of the Speed dial number on the callers phone

  2. When dialing another Sip phone, use the dialplan to determine if the other party is on another phone call. If so, display that info on the callers display much like our old Nortel system would do.

  3. We handle call forwarding information in MySQL as well. Again, during the call, update the callers display to indicate the progress like “Trying cell” or something…

From what I have read in the Aastra documentation, the CallerID info can be updated in a 200 OK or re-invite message. As far as I can tell, there is not a way to initiate something like this from the Dialplan. Is there something I have missed?

Changing the caller ID in a re-invite violates the current main SIP RFC, even though the need to keep the To and From headers constant is only retained for backward compatibility.

If there is an additional header for this, it is not part of the core standard.

I am needing a way to update the caller-ID as well for call pickup on incoming calls and for pulling a call from a parking orbit.

When a call is parked in Asterisk 1.4.25, the caller-ID is kept with the call. (I don’t know where as I am not a guru developer) When I dial the park location to retrieve the call from the orbit, the park location code displays on the Aastra 5i series phones (since it was a dialed call) and when I connect to the parked caller, the display keeps the dialed park code on the display. (again because the phone placed the call rather than receiving the call)

Is there a way that when the call is pulled from the park orbit and connected to the Aastra phone that Asterisk can pass the caller-ID? I know the caller-ID is there because once I pull it from park and transfer it to another Aastra phone, the original caller-ID shows on the phone that’s receiving the transfer.

David55 states that it violates the SIP RFC, so rather than violating in the core, is there a way in the dial plan that a SipAddheader() can be formed to resend the caller-ID so that on a case-by-case basis Asterisk Admins can choose to “violate” in order to accomplish a feature that the end user is used to from their old PBX system… and in fact, a needed feature.

If a SipAddheader() could be used, what would be the content or how wold it be formed?

I am open to any ideas.


Kerry Cox
General Manager
ITC Systems


You might be able to do something with xml, It looks like the info is there as if you leave a parked call to timeout the original callerid is displayed.


To be specific, you are not allowed to update From and To header content during a re-invite (and Asterisk doesn’t allow you to override that). It’s for backward compatibility, as the call-id is actually sufficient.

For this scenario, you might, in theory be able to use refer/replaces, but Asterisk doesn’t have any code to allow it to send refer/replaces.

There may also be SIP extensions, but I’m not aware of any.