[asterisk-bugs] [Asterisk 0017633]: (Regression) Pickup from Grandstream BLF button ignores the context specified in Pickup command

Asterisk Bug Tracker noreply at bugs.digium.com
Thu Aug 12 09:03:29 CDT 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=17633 
====================================================================== 
Reported By:                urosh
Assigned To:                dvossel
====================================================================== 
Project:                    Asterisk
Issue ID:                   17633
Category:                   Channels/chan_sip/General
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     feedback
Target Version:             1.6.2.12
Asterisk Version:           SVN 
JIRA:                       SWP-1852 
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2010-07-13 05:22 CDT
Last Modified:              2010-08-12 09:03 CDT
====================================================================== 
Summary:                    (Regression) Pickup from Grandstream BLF button
ignores the context specified in Pickup command
Description: 
Hi i had problem described in this issue: 
https://issues.asterisk.org/view.php?id=17120
asterisk error was:

[Mar 30 09:48:26] NOTICE[30223]: chan_sip.c:19860 handle_request_invite:
Trying to pick up 520 at blf
[Mar 30 09:48:27] NOTICE[30223]: chan_sip.c:19860 handle_request_invite:
Trying to pick up 520 at blf
[Mar 30 09:48:27] NOTICE[30223]: app_directed_pickup.c:257 pickup_exec: No
target channel found for 520.

I managed to correct it with removing p->callid in line 11302.
I am not a programmer of c++ so I am attaching corrected lines, that
worked for me.

Now phone works like in version 1.6.1, where phone on blinking BLF called
**EXTEN.


======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
related to          0014567 Directed call pickup does not work usin...
related to          0017671 Fetching Call with Grandstream-BLF (**$...
related to          0017120 (Regression) Pickup from Grandstream BL...
====================================================================== 

---------------------------------------------------------------------- 
 (0125884) urosh (reporter) - 2010-08-12 09:03
 https://issues.asterisk.org/view.php?id=17633#c125884 
---------------------------------------------------------------------- 
I tried suggested and it still doesn't work. I testet with:
exten => 1111, 1, NoCDR()
exten => 1111, n, Set(__PICKUPMARK=company_internal)
exten => 1111, n, Set(__PICKUPMARK=298 at company_internal)
exten => 1111, n, Set(_PICKUPMARK=company_internal)
exten => 1111, n, Set(_PICKUPMARK=298 at company_internal)
exten => 1111, n, Set(PICKUPMARK=company_internal)
exten => 1111, n, Set(PICKUPMARK=298 at company_internal)
exten => 1111, n, Dial(SIP/298)
 and 
exten => 1111, 1, NoCDR()
exten => 1111, n, Set(__PICKUPMARK=BLF)
exten => 1111, n, Set(__PICKUPMARK=298 at BLF)
exten => 1111, n, Set(_PICKUPMARK=BLF)
exten => 1111, n, Set(_PICKUPMARK=298 at BLF)
exten => 1111, n, Set(PICKUPMARK=BLF)
exten => 1111, n, Set(PICKUPMARK=298 at BLF)
exten => 1111, n, Dial(SIP/298)
I even add an extension in BLF context:
exten => _**XXX, 1, NoOp(testing)

Problem is that asterisk doesn't go into the dialplan. Our dialplan for
pickup:

;#########################################################
;##########		PICKUP			##########
exten => _**., 1,
Set(pickupgroup=${SIPPEER(${CALLERID(number)},pickupgroup)})
;# dobi vse dodatne pod interne
exten => _**., n,
Set(all_peer_acc=${ODBC_ALL_PEER_ACC(${EXTEN:2})})				;dobi vse pod
stevilke
exten => _**., n, Set(i=1)									;i je ena ;)
exten => _**., n, Set(CALLED_NUM=SIP/${EXTEN:2})						;primarna klicana je
**exten
exten => _**., n, While($[${i}<$[${all_peer_acc}]])						;gremo cez vse
pod stevilke
exten => _**., n, Set(CALLED_NUM=${CALLED_NUM}&SIP/${EXTEN:2}${i})
exten => _**., n, Set(i=$[${i}+1])								
exten => _**., n, EndWhile
;# kanc
exten => _**., n, Set(callgroup=${SIPPEER(${EXTEN:2},callgroup)})
exten => _**., n, GoToIF($["${callgroup}"=""]?hangup)
exten => _**., n, Set(pickup_groups=${FIELDQTY(pickupgroup,\,)})
exten => _**., n, Set(i=1) 
exten => _**., n, While($[${i}<$[${pickup_groups}+1]])
exten => _**., n, Set(test_group=${CUT(pickupgroup,\,,${i}) })
exten => _**., n, GoToIf($[${test_group}=${callgroup}]?pickup)
exten => _**., n, Set(i=$[${i}+1]) 
exten => _**., n, EndWhile 
exten => _**., n(hangup), HangUp()
exten => _**., n(pickup), Set(DIALED_NUMBER=${EXTEN:2})
exten => _**., n, 	  PickupChan(${CALLED_NUM})						
exten => _**., n, 	  HangUp()

I do not use pickup mark in features.conf, instead I have special dialplan
for picking up. This is because when user wants to pick-up phone, he will
know which call he will pickup. With pickup in features.conf  user pickups
the last incoming call in callgroup.

The problem still exists, i overcome it with correction in chan_sip.c.
In asterisk 1.6.1.X worked all well.

@alecdavis, when i use this correction in chan_sip the transfer call and
holding it worked. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-08-12 09:03 urosh          Note Added: 0125884                          
======================================================================




More information about the asterisk-bugs mailing list