BLF Pickup show CID

Good morning,

I am trying to blf looking for fast pickup on my yealink phones.

The calling number is not displayed. I found the notifycid option but that only works with chan_sip. Is there an equivalent parameter for chan_pjsip?


What version of Asterisk? This was added awhile ago to PJSIP where that information is present in dialog-info+xml, however there is no pickup functionality like chan_sip.

Asterisk Version 16.10.0

How can i exploit the dialog-info+xml to show at the screen the cid before the pickup ?


That version does not include it.

And that version is no longer supported.

To allow a endpoint to communicate the callerid i use this to call the endpoint :

exten => _X.,1,NoOp(Incoming call from ${PJSIP_HEADER(read,From)})
same => n,Dial(${PJSIP_DIAL_CONTACTS(${EXTEN})},30,tTD(:1))

On my yealink i activate the Direct Call Pickup and i added a extension to the blf key (*4)

For the pickup function i made this :

exten => _*4.,1,pickup(${EXTEN:2})

This works perfectly (16 & 20 version), if a user accepts to pickup a call that appears on his screen thanks to the BLF check, the original callerid(num) will be displayed instead of *4XXX

If some people have problems, I was recommended to activate this option: rpid_immediate=yes (not needed in my case)


I think Yealink phones behave differently when pressing a BLF or dialing a full Direct PickUp sequence (.
In the first case, Caller name is shown.
In the second one, Caller name is not shown.

Indeed, a specific BLF verification option exists in yealink

Displaying the name of the person during *4 is only possible by activating this option, by adding *4 in the extension of the BLF key and letting the phone do the pick-up.

Can you elaborate a bit further ? I created a thread in Yealink forum a couple of weeks ago (see [1]) but I didn’t get any answer.
Can you read Caller’s name after dialing the full Pickup sequence (*4123 in our example if ringing extension is 123) ?

[1] Picking up a call does not display Caller's Name

I need to verify but i think it’s not possible to retrieve the “Callerid(all)” but only the callerid name or num.

In my case, the pickup function is only use when an external call incoming to a phone so i dont have any name directly on the screen (just numbers), it is the remote directory does the matching between numbers and (know) names.

For the configuration :

  • Activate the Features->Call Pickup → Direct Call Pickup and add a direct call pickup code (in my case *4)
  • Add your pickup code to your blf dsskey (in my case *4) in ‘Extension’
  • Set rpid_immediate=yes
  • Set send_pai=yes
  • Set send_rpid=yes

Dont forget to update your device