Call Pickup with 1.6.2 and Snom phone

Hi,

I’ve used various patches with asterisk 1.4 to have support for call pickup and notification with good results.

Now I’m trying vanilla 1.6.2 with its official support for “dialog-info+xml” notifications with no success. This is what i’m doing:

  • Phone A has a key configured as type “extension” pointing to Phone B.
  • In sip.conf I added notifycid=ignore-context
  • Phone A and B and C are in the same callgroup and pickupgroup
  • Phone A and B and C are in the same context

Phone C calls Phone B and asterisk generates a notification for phone A:

<?xml version="1.0"?> sip:35501@10.40.23.179 sip:35505@10.40.23.179 early

With this notification, Phone A shows on the screen that Phone C is calling Phone B, and the function key blinks. If one presses the blinking function key, the phone generates an Invite with replaces, to try to pickup the call:

INVITE sip:35501@10.40.23.179 SIP/2.0
Via: SIP/2.0/UDP 10.40.24.175:5060;branch=z9hG4bK-qoz3zjhmyfcw;rport
From: “Lab 4” sip:35504@10.40.23.179;tag=o28fq65rfu
To: “Lab 1” sip:35501@10.40.23.179
Call-ID: 3c2672b3f35a-dpd0zv11yegl
CSeq: 1 INVITE
Max-Forwards: 70
Contact: sip:35504@10.40.24.175:5060;flow-id=1
Replaces: pickup-3c26701519b8-5xxapzoav2u4
P-Key-Flags: keys="3"
User-Agent: snom320/7.1.39
Accept: application/sdp
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK, MESSAGE, INFO
Allow-Events: talk, hold, refer, call-info
Supported: timer, 100rel, replaces, from-change
Session-Expires: 600;refresher=uas
Min-SE: 90
Content-Type: application/sdp
Content-Length: 368

Then asterisk receives the pickup request:

[Feb 11 10:44:13] DEBUG[4659] chan_sip.c: Invite/replaces: Will use Replace-Call-ID : pickup-3c26701519b8-5xxapzoav2u4 Fromtag: Totag:
[Feb 11 10:44:13] NOTICE[4659] chan_sip.c: Trying to pick up 35505@RedEdelca
[Feb 11 10:44:13] VERBOSE[4659] chan_sip.c: Sending to 10.40.24.175 : 5060 (no NAT)
[Feb 11 10:44:13] DEBUG[4659] chan_sip.c: Initializing initreq for method INVITE - callid 3c2672b3f35a-dpd0zv11yegl
[Feb 11 10:44:13] VERBOSE[4659] chan_sip.c: Using INVITE request as basis request - 3c2672b3f35a-dpd0zv11yegl
[…]
[Feb 11 10:44:13] DEBUG[4659] chan_sip.c: INVITE part of call transfer. Replaces [pickup-3c26701519b8-5xxapzoav2u4]
[Feb 11 10:44:13] DEBUG[4659] chan_sip.c: Invite/replaces: Will use Replace-Call-ID : pickup-3c26701519b8-5xxapzoav2u4 Fromtag: Totag:
[Feb 11 10:44:13] NOTICE[4659] chan_sip.c: Trying to pick up 35505@RedEdelca
[Feb 11 10:44:13] VERBOSE[4659] chan_sip.c: Sending to 10.40.24.175 : 5060 (no NAT)
[Feb 11 10:44:13] DEBUG[4659] chan_sip.c: Initializing initreq for method INVITE - callid 3c2672b3f35a-dpd0zv11yegl
[Feb 11 10:44:13] VERBOSE[4659] chan_sip.c: Using INVITE request as basis request - 3c2672b3f35a-dpd0zv11yegl
[…]
[Feb 11 10:44:13] DEBUG[4659] chan_sip.c: About to call Pickup(35505@PICKUPMARK)
[Feb 11 10:44:13] DEBUG[4649] devicestate.c: Changing state for SIP/35504 - state 2 (In use)
[Feb 11 10:44:13] DEBUG[4649] devicestate.c: device ‘SIP/35504’ state ‘2’
[Feb 11 10:44:13] NOTICE[4659] app_directed_pickup.c: No target channel found for 35505.
[Feb 11 10:44:13] DEBUG[4659] channel.c: Hanging up channel ‘SIP/35504-0000000f’
[Feb 11 10:44:13] DEBUG[4659] chan_sip.c: Hangup call SIP/35504-0000000f, SIP callid 3c2672b3f35a-dpd0zv11yegl

After this obviously phone A hasn’t picked up the call, and Phone B keeps ringing.

Did I miss something in the dialplan or is it a bug?